Browse Source

Updated header sections

Samson Mutunga 3 years ago
parent
commit
5f71ee0553

+ 11 - 0
app/Models/AdminThing.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace App\Models;
+
+# use Illuminate\Database\Eloquent\Model;
+
+class AdminThing extends Model
+{
+    protected $table = 'admin_thing';
+
+}

+ 4 - 0
app/Models/Client.php

@@ -888,4 +888,8 @@ ORDER BY m.ts DESC
         }
         return false;
     }
+
+    public function stabilityInteractionClientMemo(){
+        return $this->hasOne(ClientMemo::class, 'id', 'stability_interaction_client_memo_id');
+    }
 }

+ 52 - 0
app/Models/Pro.php

@@ -1182,5 +1182,57 @@ ORDER BY cm.created_at DESC
             ->orderBy('created_at', 'DESC')->get();
     }       
 
+    public function videoHrRep() {
+        return $this->hasOne(Pro::class, 'id', 'video_hr_rep_pro_id');
+    }
+
+    public function trainingRep(){
+        return $this->hasOne(Pro::class, 'id', 'training_rep_pro_id');
+    }
+    public function newHrStageByPro(){
+        return $this->hasOne(Pro::class, 'id', 'new_hr_stage_by_pro_id');
+    }
+    
+    public function successRep(){
+        return $this->hasOne(Pro::class, 'id', 'success_rep_pro_id');
+    }
+
+    public function offerCallRep(){
+        return $this->hasOne(Pro::class, 'id', 'offer_call_rep_pro_id');
+    }
+    public function previousHrStageByPro(){
+        return $this->hasOne(Pro::class, 'id', 'previous_hr_stage_by_pro_id');
+    }
+    public function introVideoMessage(){
+        return $this->hasOne(InternalMessage::class, 'id', 'intro_video_message_from_hr_rep_internal_message_id');
+    }
+
+    public function replyVideoMessage(){
+        return $this->hasOne(InternalMessage::class, 'id', 'initial_reply_to_video_hr_rep_internal_message_id');
+    }
+    public function hrSpecialist() {
+        return $this->hasOne(Pro::class, 'id', 'hr_rep_pro_id');
+    }
+
+    public function supervisingHcpPro() {
+        return $this->hasOne(Pro::class, 'id', 'supervising_hcp_pro_id');
+    }
+    public function clinicalSupervisor() {
+        return $this->hasOne(Pro::class, 'id', 'supervising_hcp_pro_id');
+    }
+    public function interviewNeededWithPro(){
+        return $this->hasOne(Pro::class, 'id', 'interview_needed_with_pro_id');
+    }
+    public function trainingNeededWithPro(){
+        return $this->hasOne(Pro::class, 'id', 'training_needed_with_pro_id');
+    }
+
+    public function interviewNeededWithDepertment(){
+        return $this->hasOne(Department::class, 'id', 'interview_needed_with_department_id');
+    }
+
+    public function trainingNeededWithDepartment(){
+        return $this->hasOne(Department::class, 'id', 'training_needed_with_department_id');
+    }
 
 }

+ 63 - 0
public/css/z-depricated.css

@@ -0,0 +1,63 @@
+.z {
+    font-size: 0.81em;
+} .z button:focus {
+    outline: none;
+} .z form input {
+    display: block;
+    margin-bottom: 3px;
+} .z h4 {
+    display: inline-block;
+    margin: 0;
+} .z label {
+    font-weight: 500;
+    margin-bottom: 0;
+} .z ul {
+    margin: 0;
+    padding: 0;
+    list-style-type: none;
+}
+
+
+.z .hbox {
+    align-items: center;
+    display: flex;
+} .z .hbox > *:not(:first-child) {
+    margin-left: 10px;
+}
+
+.z .vbox {
+    display: flex;
+    flex-direction: column;
+} .z .vbox > *:not(:first-child) {
+    margin-top: 2px;
+}
+
+.z .separators {
+    display: flex;
+} .z .separators > *:empty {
+    display: none;
+} .z .separators > *:not(:first-child):before {
+    content: '|';
+    font-weight: bold;
+    margin: 0 5px;
+}
+
+
+.z .header {}
+.z .thumbnail {
+    --shadow-color: #aaa;
+    --size: 14px;
+    align-items: center;
+    background: #ccc;
+    box-shadow: 0 0 0px var(--shadow-color);
+    border-radius: 50%;
+    display: flex;
+    flex-shrink: 0;
+    justify-content: center;
+    font-size: 10px;
+    padding: 12px;
+    height: var(--size);
+    width: var(--size);
+} .z .thumbnail.online {
+    --shadow-color: #50a746;
+}

+ 10 - 5
public/css/z.css

@@ -1,5 +1,11 @@
 .z {
     font-size: 0.81em;
+} .z button:not(.btn) {
+    background: #efefef;
+    border: 1px solid #767676;
+    font-size: 0.9em;
+    min-width: 70px;
+    white-space: nowrap;
 } .z button:focus {
     outline: none;
 } .z form input {
@@ -19,7 +25,7 @@
 
 
 .z .hbox {
-    align-items: center;
+    align-items: start;
     display: flex;
 } .z .hbox > *:not(:first-child) {
     margin-left: 10px;
@@ -46,16 +52,15 @@
 .z .header {}
 .z .thumbnail {
     --shadow-color: #aaa;
-    --size: 14px;
+    --size: 23px;
     align-items: center;
     background: #ccc;
-    box-shadow: 0 0 0px var(--shadow-color);
+    box-shadow: 0 0 10px var(--shadow-color);
     border-radius: 50%;
     display: flex;
     flex-shrink: 0;
     justify-content: center;
-    font-size: 10px;
-    padding: 12px;
+    font-size: 11px;
     height: var(--size);
     width: var(--size);
 } .z .thumbnail.online {

+ 25 - 0
resources/views/app/patient/partials/ob_forms/assignOfferCallRep.blade.php

@@ -0,0 +1,25 @@
+<?php
+
+use App\Models\Pro;
+
+$offerCallReps = @$adminPros ?: Pro::where('pro_type', 'ADMIN')->get(); //Pro::where('is_offer_call_rep', true)->get();
+?>
+<div moe>
+	<a start show>Assign Offer Call Rep</a>
+	<form url="/api/pro/assignOfferCallRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Offer Call Rep</label>
+			<select name="repProUid" class="form-control input-sm">
+				<option value="">--</option>
+				@foreach($offerCallReps as $ocrep)
+				<option value="{{$ocrep->uid}}">{{$ocrep->name_first}} {{$ocrep->name_last}}</option>
+				@endforeach
+			</select>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 25 - 0
resources/views/app/patient/partials/ob_forms/assignSuccessRep.blade.php

@@ -0,0 +1,25 @@
+<?php
+
+use App\Models\Pro;
+
+$successReps =  @$adminPros ?: Pro::where('pro_type', 'ADMIN')->get();//Pro::where('is_success_manager', true)->get();
+?>
+<div moe>
+	<a start show>Assign Success Rep</a>
+	<form url="/api/pro/assignSuccessRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Success Rep</label>
+			<select name="repProUid" class="form-control input-sm">
+				<option value="">--</option>
+				@foreach($successReps as $srep)
+				<option value="{{$srep->uid}}">{{$srep->name_first}} {{$srep->name_last}}</option>
+				@endforeach
+			</select>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 25 - 0
resources/views/app/patient/partials/ob_forms/assignTrainingRep.blade.php

@@ -0,0 +1,25 @@
+<?php
+
+use App\Models\Pro;
+
+$trainingReps =  @$adminPros ?: Pro::where('pro_type', 'ADMIN')->get();//Pro::where('is_training_rep', true)->get();
+?>
+<div moe>
+	<a start show>Assign Training Rep</a>
+	<form url="/api/pro/assignTrainingRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Training Rep</label>
+			<select name="repProUid" class="form-control input-sm">
+				<option value="">--</option>
+				@foreach($trainingReps as $trep)
+				<option value="{{$trep->uid}}">{{$trep->name_first}} {{$trep->name_last}}</option>
+				@endforeach
+			</select>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 25 - 0
resources/views/app/patient/partials/ob_forms/assignVideoHrRep.blade.php

@@ -0,0 +1,25 @@
+<?php
+
+use App\Models\Pro;
+
+$videoHrReps =  @$adminPros ?: Pro::where('pro_type', 'ADMIN')->get();//Pro::where('is_video_hr_rep', true)->get();
+?>
+<div moe>
+	<a start show>Assign Video HR Rep</a>
+	<form url="/api/pro/assignVideoHrRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Video HR Rep</label>
+			<select name="repProUid" class="form-control input-sm">
+				<option value="">--</option>
+				@foreach($videoHrReps as $vhrep)
+				<option value="{{$vhrep->uid}}">{{$vhrep->name_first}} {{$vhrep->name_last}}</option>
+				@endforeach
+			</select>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>

+ 15 - 0
resources/views/app/patient/partials/ob_forms/undoAssignOfferCallRep.blade.php

@@ -0,0 +1,15 @@
+@if($patient->shadowOfPro->offerCallRep)
+<div moe>
+	<a start show>Undo</a>
+	<form url="/api/pro/undoAssignOfferCallRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Are you sure?</label>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>
+@endif

+ 15 - 0
resources/views/app/patient/partials/ob_forms/undoAssignSuccessRep.blade.php

@@ -0,0 +1,15 @@
+@if($patient->shadowOfPro->successRep)
+<div moe>
+	<a start show>Undo</a>
+	<form url="/api/pro/undoAssignSuccessRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Are you sure?</label>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>
+@endif

+ 15 - 0
resources/views/app/patient/partials/ob_forms/undoAssignTrainingRep.blade.php

@@ -0,0 +1,15 @@
+@if($patient->shadowOfPro->trainingRep)
+<div moe>
+	<a start show>Undo</a>
+	<form url="/api/pro/undoAssignTrainingRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Are you sure?</label>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>
+@endif

+ 15 - 0
resources/views/app/patient/partials/ob_forms/undoAssignVideoHrRep.blade.php

@@ -0,0 +1,15 @@
+@if($patient->shadowOfPro->videoHrRep)
+<div moe>
+	<a start show>Undo</a>
+	<form url="/api/pro/undoAssignVideoHrRep">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Are you sure?</label>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>
+@endif

+ 153 - 0
resources/views/app/patient/partials/ob_forms/updateInternalCandidateProfessionalProfileValue.blade.php

@@ -0,0 +1,153 @@
+<style>
+	#updateInternalCandidateProfessionalProfile .form-group .control-label {
+		font-weight: bold;
+	}
+</style>
+<div id="updateInternalCandidateProfessionalProfile" moe large relative>
+	<a start show class="py-0 font-weight-normal"><i class="fa fa-edit"></i></a>
+	<form url="/api/pro/updateInternalCandidateProfessionalProfileValue">
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="row">
+			<div class="form-group col-md-6">
+				<label class="control-label">Clinician? </label>
+				<select name="isCandidateClinician" class="form-control input-sm">
+					<option value="">--</option>
+					<option {{$patient->shadowOfPro->is_candidate_clinician == 'YES' ? 'selected': ''}} value="YES">Yes</option>
+					<option {{$patient->shadowOfPro->is_candidate_clinician == 'NO' ? 'selected': ''}} value="NO">No</option>
+					<option {{$patient->shadowOfPro->is_candidate_clinician == 'UNKNOWN' ? 'selected': ''}} value="UNKNOWN">Unknown</option>
+				</select>
+			</div>
+			<div class="form-group col-md-6" clinician-yes>
+				<label class="control-label">NPI</label>
+				<input type="text" name="clinicianNpi" value="{{$patient->shadowOfPro->clinician_npi}}" class="form-control input-sm">
+			</div>
+			<div class="form-group col-md-12" clinician-yes>
+				<label class="control-label">MCP?</label>
+				<select name="isEligibleToBeMcp" value="{{$patient->shadowOfPro->is_eligible_to_be_mcp}}" class="form-control input-sm">
+					<option value="">--</option>
+					<option {{$patient->shadowOfPro->is_eligible_to_be_mcp == 'YES' ? 'selected': ''}} value="YES">Yes</option>
+					<option {{$patient->shadowOfPro->is_eligible_to_be_mcp == 'NO' ? 'selected': ''}} value="NO">No</option>
+					<option {{$patient->shadowOfPro->is_eligible_to_be_mcp == 'UNKNOWN' ? 'selected': ''}} value="UNKNOWN">Unknown</option>
+				</select>
+			</div>
+		</div>
+
+		<div clinician-yes mcp-yes>
+			<div class="row">
+				<div class="col-md-6">
+					<div class="form-group">
+						<label class="control-label">PCP?</label>
+						<select name="isMcpPrimaryCareFocused" value="{{$patient->shadowOfPro->is_mcp_primary_care_focused}}" class="form-control input-sm">
+							<option value="">--</option>
+							<option {{$patient->shadowOfPro->is_mcp_primary_care_focused == 'YES' ? 'selected': ''}} value="YES">Yes</option>
+							<option {{$patient->shadowOfPro->is_mcp_primary_care_focused == 'NO' ? 'selected': ''}} value="NO">No</option>
+							<option {{$patient->shadowOfPro->is_mcp_primary_care_focused == 'UNKNOWN' ? 'selected': ''}} value="UNKNOWN">Unknown</option>
+						</select>
+					</div>
+				</div>
+				<div class="col-md-6">
+					<div class="form-group">
+						<label class="control-label">MCP Spec.</label>
+						<input type="text" name="mcpMainSpecialtyCategory" value="{{$patient->shadowOfPro->mcp_main_specialty_category}}" class="form-control input-sm">
+					</div>
+				</div>
+				<div class="col-md-6">
+					<div class="form-group">
+						<label class="control-label">MCP 2° Spec.</label>
+						<input type="text" name="mcpSecondarySpecialtyCategory" value="{{$patient->shadowOfPro->mcp_secondary_specialty_category}}" class="form-control input-sm">
+					</div>
+				</div>
+				<div class="col-md-6">
+					<div class="form-group">
+						<label class="control-label">Physician?</label>
+						<select name="isCandidatePhysician" value="{{$patient->shadowOfPro->is_candidate_physician}}" class="form-control input-sm">
+							<option value="">--</option>
+							<option {{$patient->shadowOfPro->is_candidate_physician == 'YES' ? 'selected': ''}} value="YES">Yes</option>
+							<option {{$patient->shadowOfPro->is_candidate_physician == 'NO' ? 'selected': ''}} value="NO">No</option>
+							<option {{$patient->shadowOfPro->is_candidate_physician == 'UNKNOWN' ? 'selected': ''}} value="UNKNOWN">Unknown</option>
+						</select>
+					</div>
+				</div>
+			</div>
+		</div>
+
+		<div class="row">
+			<div class="col-md-6">
+				<div class="form-group">
+					<label class="control-label">Prof.</label>
+					<input list="candidateCategoryOptions" name="candidateCategory" class="form-control input-sm" id="candidateCategory" value="{{ $patient->shadowOfPro->candidate_category }}">
+					<datalist id="candidateCategoryOptions">
+						<option {{$patient->shadowOfPro->candidate_category == 'NP' ? 'selected': ''}} value="NP">NP</option>
+						<option {{$patient->shadowOfPro->candidate_category == 'MD' ? 'selected': ''}} value="MD">MD</option>
+						<option {{$patient->shadowOfPro->candidate_category == 'DO' ? 'selected': ''}} value="DO">DO</option>
+						<option {{$patient->shadowOfPro->candidate_category == 'PA' ? 'selected': ''}} value="PA">PA</option>
+						<option {{$patient->shadowOfPro->candidate_category == 'RD' ? 'selected': ''}} value="RD">RD</option>
+						<option {{$patient->shadowOfPro->candidate_category == 'RN' ? 'selected': ''}} value="RN">RN </option>
+						<option {{$patient->shadowOfPro->candidate_category == 'LPN' ? 'selected': ''}} value="LPN">LPN </option>
+						<option {{$patient->shadowOfPro->candidate_category == 'CNA' ? 'selected': ''}} value="CNA">CNA </option>
+						<option {{$patient->shadowOfPro->candidate_category == 'CMA' ? 'selected': ''}} value="CMA">CMA</option>
+						<option {{$patient->shadowOfPro->candidate_category == 'NONE' ? 'selected': ''}} value="NONE">NONE</option>
+					</datalist>
+				</div>
+			</div>
+			<div class="col-md-6">
+				<div class="form-group">
+					<label class="control-label">2° Prof.</label>
+					<input type="text" name="candidateSubCategory" value="{{$patient->shadowOfPro->candidate_sub_category}}" class="form-control input-sm">
+				</div>
+			</div>
+		</div>
+
+		<div class="form-group">
+			<label class="control-label">Background Memo</label>
+			<input type="text" name="candidateBackgroundMemo" value="{{$patient->shadowOfPro->candidate_background_memo}}" class="form-control input-sm">
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>
+
+<script>
+	(function($) {
+		var updateInternalCandidateProfile = {
+			form: {
+				isCandidateClinician: '{{$patient->shadowOfPro->is_candidate_clinician}}',
+				isEligibleToBeMcp: '{{$patient->shadowOfPro->is_eligible_to_be_mcp}}'
+			},
+			initForm: function() {
+				var self = this;
+				$('input, select').on('change', function() {
+					var input = this;
+					var name = input.name;
+					var value = input.value;
+					self.form[name] = value;
+					if (name === 'isCandidateClinician' && value !== 'YES') {
+						self.form.isEligibleToBeMcp = null;
+					}
+					self.refreshFormUi();
+				});
+			},
+			refreshFormUi: function() {
+				var self = this;
+				if (self.form.isCandidateClinician == 'YES') {
+					$('[clinician-yes]').show();
+				} else {
+					$('[clinician-yes]').hide();
+				}
+				if (self.form.isEligibleToBeMcp == 'YES') {
+					$('[mcp-yes]').show();
+				} else {
+					$('[mcp-yes]').hide();
+				}
+
+			},
+			init: function() {
+				this.refreshFormUi();
+				this.initForm();
+			}
+		};
+		updateInternalCandidateProfile.init();
+	})(jQuery);
+</script>

+ 76 - 0
resources/views/app/patient/partials/ob_forms/updateInternalPlacementValue.blade.php

@@ -0,0 +1,76 @@
+<div moe center>
+	<a start show><i class="fa fa-edit"></i></a>
+	<form url="/api/pro/updateInternalPlacementValue">
+		<p class="text-secondary font-weight-bold mb-2">Career Placement</p>
+		<input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+		<div class="form-group">
+			<label class="control-label">Internal Placement Company Pro</label>
+			<select name="internalPlacementCompanyProUid" class="form-control input-sm">
+				<option value="">--</option>
+				@foreach($myCompanyPros as $myCp)
+				<option value="{{$myCp->uid}}" {{$patient->shadowOfPro->internalPlacementCompanyPro?($patient->shadowOfPro->internalPlacementCompanyPro->id == $myCp->id? 'selected':''):''}}>{{$myCp->company->name}}</option>
+				@endforeach
+			</select>
+		</div>
+		<div class="form-group">
+			<label class="control-label">Secondary Internal Placement Company Pro</label>
+			<select name="secondaryInternalPlacementCompanyProUid" class="form-control input-sm">
+				<option value="">--</option>
+				@foreach($myCompanyPros as $myCp)
+				<option value="{{$myCp->uid}}" {{$patient->shadowOfPro->secondaryInternalPlacementCompanyPro?($patient->shadowOfPro->secondaryInternalPlacementCompanyPro->id == $myCp->id? 'selected':''):''}}>{{$myCp->company->name}}</option>
+				@endforeach
+			</select>
+		</div>
+		<div class="form-group">
+			<label class="control-label">Should Non Mcp Clinician Waive Practice</label>
+			<select name="shouldNonMcpClinicianWaivePractice" value="{{$patient->shadowOfPro->should_non_mcp_clinician_waive_practice}}" class="form-control input-sm">
+				<option value="">--</option>
+				<option {{$patient->shadowOfPro->should_non_mcp_clinician_waive_practice == 'YES' ? 'selected': ''}} value="YES">Yes</option>
+				<option {{$patient->shadowOfPro->should_non_mcp_clinician_waive_practice == 'NO' ? 'selected': ''}} value="NO">No</option>
+				<option {{$patient->shadowOfPro->should_non_mcp_clinician_waive_practice == 'UNKNOWN' ? 'selected': ''}} value="UNKNOWN">Unknown</option>
+			</select>
+		</div>
+		
+		<div class="form-group">
+			<label class="control-label">
+				<input type="checkbox" name="isConsideredForMcpAssignment" {{$patient->shadowOfPro->is_considered_for_mcp_assignment? 'checked':''}} class="">
+				Is Considered For MCP Assignment
+			</label>
+		</div>
+		<div class="form-group">
+			<label class="control-label">
+				<input type="checkbox" name="isConsideredForOutreach" {{$patient->shadowOfPro->is_considered_for_outreach? 'checked':''}} class="">
+				Is Considered For Outreach
+			</label>
+		</div>
+		<div class="form-group">
+			<label class="control-label">
+				<input type="checkbox" name="isConsideredForOnboarding" {{$patient->shadowOfPro->is_considered_for_onboarding? 'checked':''}} class="">
+				Is Considered For Onboarding
+			</label>
+		</div>
+		<div class="form-group">
+			<label class="control-label">
+				<input type="checkbox" name="isConsideredForDna" {{$patient->shadowOfPro->is_considered_for_dna? 'checked':''}} class="">
+				Is Considered For Dna
+			</label>
+		</div>
+		<div class="form-group">
+			<label class="control-label">
+				<input type="checkbox" name="isConsideredForRmm" {{$patient->shadowOfPro->is_considered_for_rmm? 'checked':''}} class="">
+				Is Considered For Rmm
+			</label>
+		</div>
+		<div class="form-group">
+			<label class="control-label">
+				<input type="checkbox" name="isConsideredForRme" {{$patient->shadowOfPro->is_considered_for_rme? 'checked':''}} class="">
+				Is Considered For Rme
+			</label>
+		</div>
+		<div class="d-flex align-items-center">
+			<button class="btn btn-sm btn-primary mr-2" submit>Save</button>
+			<button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+		</div>
+	</form>
+</div>
+

+ 365 - 2
resources/views/layouts/patient.blade.php

@@ -7,7 +7,38 @@ $trimLayout = true;
 $routeName = request()->route()->getName();
 $isVisitNote = ($routeName === 'pros.view.notes.view.dashboard' && @$note && !!$note->visitTemplate);
 $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_create($patient->created_at))->invert === 1);
+
+function cleanStatus($_status)
+{
+    return ucwords(strtolower(str_replace("_", " ", $_status)));
+}
+$postHiringStages = [
+    "Accepted_by_HR__Send_Offer",
+    "Offer_Sent",
+    "Offer_Signed__Awaiting_Countersign",
+    "Offer_Signing_Problem",
+    "Offer_Signed_And_Countersigned",
+    "Payroll_And_Credentialing_Submitted",
+    "Payroll_Verified",
+    "Credentialing_Verified",
+    "Payroll_Or_Credentialing_Problem",
+    "Background_Check_Cleared",
+    "Training_Needed",
+    "Training_Scheduled",
+    "Trained",
+    "Working",
+    ];
+
+
+?>
+
+<?php
+/** @var \App\Models\Client $patient */
+$availableHrTags = \App\Models\AdminThing::where('is_removed', false)->where('category', 'HR_TAG')->pluck('value')->toArray();
+$clientTags = $patient->clientTags->pluck('tag')->toArray();
+$availableHrTags = array_values(array_diff($availableHrTags, $clientTags));
 ?>
+
 <style media="screen">
 	.pt-name {
 		font-size: 1.5rem !important;
@@ -122,7 +153,7 @@ $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_creat
 								<div class="hbox mr-auto">
 
 									
-									<section>
+									<section class="mt-2">
 										<div class="hbox">
 											<h4 class="pt-name">{{$patientName}}</h4>
 											<div class="screen-only mr-1 patient-presence-indicator thumbnail {{$online}}"
@@ -144,20 +175,352 @@ $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_creat
 												</span>
 											</div>
 										</div>
+										<div class="d-inline-block">
+                                            <span>Joined <?= $memberSince ?></span>
+                                            <i class="chart mr-2">[#{{$patient->chart_number}}]</i>
+                                            <a native target="_blank" href="{{config('app.stagc_url')}}/log-in-as/{{$performer->session_key}}/{{$patient->shadowOfPro->uid}}" class="mr-2">
+                                                <i class="fa fa-sign-in-alt"></i>
+                                            </a>
+                                            <div moe relative>
+                                                <a start show class="font-weight-bold">
+                                                    <i class="fa fa-key"></i>
+                                                </a>
+                                                <form url="/api/proHrPortalAccess/createAndSendEmail" class="mcp-theme-1" right>
+                                                    <input type="hidden" name="proUid" value="{{$patient->shadowOfPro->uid}}">
+                                                    <div class="mb-2">
+                                                        <label class="text-secondary text-sm">Email Address</label>
+                                                        <input type="text" class="form-control form-control-sm" name="emailAddress" value="{{$patient->shadowOfPro->email_address}}">
+                                                    </div>
+
+                                                    <div>
+                                                        <button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+                                                        <button cancel class="btn btn-sm btn-default border">Cancel</button>
+                                                    </div>
+                                                </form>
+                                            </div>
+                                        </div>
+										<div>
+                                            <label class="text-secondary">HR Spec:</label>
+                                            {{$patient->shadowOfPro && $patient->shadowOfPro->hrSpecialist ? $patient->shadowOfPro->hrSpecialist->displayName() : '-'}}
+                                            @if($patient->shadowOfPro)
+                                            <div moe class="ml-2">
+                                                <a start show><i class="fa fa-edit"></i></a>
+                                                <form url="/api/pro/putHrRepPro" class="mcp-theme-1">
+                                                    <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+                                                    <div class="mb-2">
+                                                        <label class="text-secondary text-sm">MCP Pro</label>
+                                                        <select name="hrRepProUid" provider-search data-pro-uid="{{ @$patient->shadowOfPro->hrSpecialist->uid }}" class="form-control form-control-sm">
+                                                            <option value=""> --select--</option>
+                                                        </select>
+                                                    </div>
+                                                    <div>
+                                                        <button submit class="btn btn-sm btn-primary mr-1">
+                                                            Submit
+                                                        </button>
+                                                        <button cancel class="btn btn-sm btn-default border">
+                                                            Cancel
+                                                        </button>
+                                                    </div>
+                                                </form>
+                                            </div>
+                                            @endif
+                                        </div>
+										<div>
+                                            <label class="text-secondary">Clinical Super:</label>
+                                            {{$patient->shadowOfPro && $patient->shadowOfPro->clinicalSupervisor ? $patient->shadowOfPro->clinicalSupervisor->displayName() : '-'}}
+                                            @if($patient->shadowOfPro)
+                                            <div moe class="ml-2">
+                                                <a start show><i class="fa fa-edit"></i></a>
+                                                <form url="/api/pro/putSupervisingHcpPro" class="mcp-theme-1">
+                                                    <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+                                                    <div class="mb-2">
+                                                        <label class="text-secondary text-sm">MCP Pro</label>
+                                                        <select name="supervisingHcpProUid" provider-search data-pro-uid="{{ @$patient->shadowOfPro->clinicalSupervisor->uid }}" class="form-control form-control-sm">
+                                                            <option value=""> --select--</option>
+                                                        </select>
+                                                    </div>
+                                                    <div>
+                                                        <button submit class="btn btn-sm btn-primary mr-1">
+                                                            Submit
+                                                        </button>
+                                                        <button cancel class="btn btn-sm btn-default border">
+                                                            Cancel
+                                                        </button>
+                                                    </div>
+                                                </form>
+                                            </div>
+                                            @endif
+                                        </div>
 										<div class=separators>
 											<div class="screen-only">
 												<label>Status:</label>
 												<b>{{$patient->client_engagement_status_category ? ucwords(strtolower(str_replace('_', ' ', $patient->client_engagement_status_category == 'DUMMY' ? 'Test Chart' : $patient->client_engagement_status_category))) : '-'}}</b>
 											</div>
 										</div>
+										<div>
+                                            @if($patient->stability_interaction_client_memo_id)
+                                            Next convo: {{friendly_date($patient->stable_until_date)}}<br>
+                                            Last convo: {{friendly_date_time($patient->stabilityInteractionClientMemo->created_at)}}
+                                            @else
+                                            No conversations yet.
+                                            @endif
+                                        </div>
 										
-                                    </section>                                
+                                    </section>      
+									<section class="vbox ml-2 align-self-start mt-2 ml-4">
+                                    <div>
+                                        <div moe relative>
+                                            <button class="col-1-button" start show><i class="fa fa-plus text-sm text-secondary"></i>&nbsp;SMS
+                                            </button>
+                                            <form url="/api/clientSms/createOutgoing" right class="mcp-theme-1">
+                                                <input type="hidden" name="uid" value="{{ $patient->uid }}">
+                                                <div class="mb-2">
+                                                    <label for="" class="text-sm text-secondary mb-1">Cell
+                                                        Number</label>
+                                                    <input type="text" class="form-control form-control-sm" name="cellNumber" value="{{$patient->shadowOfPro->cell_number}}">
+                                                </div>
+                                                <div class="mb-2">
+                                                    <label for="" class="text-sm text-secondary mb-1">Message</label>
+                                                    <textarea type="text" class="form-control form-control-sm" name="message"></textarea>
+                                                </div>
+                                                <div class="d-flex align-items-center">
+                                                    <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
+                                                    <button class="btn btn-sm btn-default mr-2 border" cancel>
+                                                        Cancel
+                                                    </button>
+                                                </div>
+                                            </form>
+                                        </div>
+                                    </div>
+                                    <div>
+                                        <span moe relative class="">
+                                            <button class="col-1-button" start show title="SMS check-in link to the patient"><i class="on-hover-opaque fa fa-paper-plane text-secondary"></i> Send</button>
+                                            <form url="/api/client/sendCheckInTokenViaSmsOrEmail" right class="mcp-theme-1">
+                                                <input type="hidden" name="uid" value="{{ $patient->uid }}">
+                                                <p class="small min-width-200px mb-2">Send Check-In link to patient?</p>
+                                                <div class="mb-2">
+                                                    <label for="" class="text-sm text-secondary mb-1">Cell Number</label>
+                                                    <input type="text" class="form-control input-sm" name="cellNumber" value="{{$patient->cell_number}}">
+                                                </div>
+                                                <div class="mb-2">
+                                                    <label for="" class="text-sm text-secondary mb-1">Email address</label>
+                                                    <input type="text" class="form-control input-sm" name="emailAddress" value="{{$patient->email_address}}">
+                                                </div>
+                                                <div class="d-flex align-items-center">
+                                                    <button class="btn btn-sm btn-primary mr-2" submit>Send</button>
+                                                    <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
+                                                </div>
+                                            </form>
+                                        </span>
+                                    </div>
+                                    @if($performer->pro->pro_type == 'ADMIN')
+                                    <div>
+                                        <button class="col-1-button" onclick="return openInRHS('/pro/check-video/{{ $patient->uid }}')"> <i class="fas fa-video text-secondary"></i> Check</button>
+                                    </div>
+                                    @endif
+                                    <div>
+                                        <button class="col-1-button" onclick="return openInRHS('/pro/meet/{{ $patient->uid }}')"><i class="fas fa-video text-secondary"></i> Join</button>
+                                    </div>
+                                </section>
+									<section class="vbox ml-2 mt-2">
+                                    <?php
+                                    $map = null;
+                                    if ($patient->shadowOfPro->hr_section_map) {
+                                        $map = json_decode($patient->shadowOfPro->hr_section_map);
+                                        $map = $map && isset($map->{'profession'}) ? $map->{'profession'} : null;
+                                        if ($map) {
+                                            $map = $map->proposedData;
+                                            if ($map) {
+                                                $map = json_decode($map);
+                                            } else {
+                                                $map = null;
+                                            }
+                                        }
+                                    }
+                                    $hcpMismatchClass = '';
+                                    if (!!$patient->shadowOfPro->is_hcp !== !!(@$map->is_hcp)) {
+                                        $hcpMismatchClass = 'text-danger';
+                                    }
+                                    ?>
+                                    <div class="d-flex align-items align-self-stretch my-0 pl-4 mcp-theme-1">
+                                        Is HCP:&nbsp;<b class="{{$hcpMismatchClass}}"><?= $patient->shadowOfPro->is_hcp ? 'Yes' : 'No' ?></b>
+                                        @if( $patient->shadowOfPro->is_hcp)
+                                        <div moe class="ml-2">
+                                            <a start show href='#' class='font-weight-normal text-sm'>
+                                                <i class='fa fa-circle'></i>&nbsp;<span>Mark as Non-HCP</span>
+                                            </a>
+                                            <form url="/api/pro/setIsHcpToFalse" class="width-200px">
+                                                <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+                                                <p>Set Is Hcp To False?</p>
+                                                <div class="">
+                                                    <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
+                                                    <button class="btn btn-sm btn-default border px-3" cancel>No</button>
+                                                </div>
+                                            </form>
+                                        </div>
+                                        @else
+                                        <div moe class="ml-2">
+                                            <a start show href='#' class='font-weight-normal text-sm'>
+                                                <i class='fa fa-circle'></i>&nbsp;<span>Mark as HCP</span>
+                                            </a>
+                                            <form url="/api/pro/setIsHcpToTrue" class="width-200px">
+                                                <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+                                                <p>Set Is Hcp To True?</p>
+                                                <div class="">
+                                                    <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
+                                                    <button class="btn btn-sm btn-default border px-3" cancel>No</button>
+                                                </div>
+                                            </form>
+                                        </div>
+                                        @endif
+                                    </div>
+                                    <div class="d-flex align-items align-self-stretch my-0 pl-4 mcp-theme-1">
+                                        Enrolled as MCP:&nbsp;<b><?= $patient->shadowOfPro->is_enrolled_as_mcp ? 'Yes' : 'No' ?></b>
+                                        @if( $patient->shadowOfPro->is_enrolled_as_mcp)
+                                        <div moe class="ml-2">
+                                            <a start show href='#' class='font-weight-normal text-sm'>
+                                                <i class='fa fa-circle'></i>&nbsp;<span>Toggle</span>
+                                            </a>
+                                            <form url="/api/pro/setIsEnrolledAsMcpToFalse" class="width-200px">
+                                                <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+                                                <p>Set Enrolled as MCP To False?</p>
+                                                <div class="">
+                                                    <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
+                                                    <button class="btn btn-sm btn-default border px-3" cancel>No</button>
+                                                </div>
+                                            </form>
+                                        </div>
+                                        @else
+                                        <div moe class="ml-2">
+                                            <a start show href='#' class='font-weight-normal text-sm'>
+                                                <i class='fa fa-circle'></i>&nbsp;<span>Toggle</span>
+                                            </a>
+                                            <form url="/api/pro/setIsEnrolledAsMcpToTrue" class="width-200px">
+                                                <input type="hidden" name="uid" value="{{$patient->shadowOfPro->uid}}">
+                                                <p>Set Enrolled as MCP To True?</p>
+                                                <div class="">
+                                                    <button class="btn btn-sm btn-primary px-3 mr-2" submit>Yes</button>
+                                                    <button class="btn btn-sm btn-default border px-3" cancel>No</button>
+                                                </div>
+                                            </form>
+                                        </div>
+                                        @endif
+                                    </div>
+                                    @if($map)
+                                    <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
+                                        <span>HR Profile > HCP:</span>
+                                        <span class="ml-1 font-weight-bold {{$hcpMismatchClass}}">{{ @$map->is_hcp ? 'Yes' : 'No' }}</span>
+                                    </div>
+                                    <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
+                                        <span>HR Profile > NPI:</span>
+                                        <span class="ml-1 font-weight-bold text-secondary" npi-lookup>
+                                            <span>{{@$map->individual_npi ? $map->individual_npi : '-'}}</span>
+                                        </span>
+                                    </div>
+                                    <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
+                                        <span>HR Profile > Cred:</span>
+                                        <span class="ml-1 font-weight-bold text-secondary">
+                                            <span>{{@$patient->shadowOfPro->hrp_primary_credential ? $patient->shadowOfPro->hrp_primary_credential : '-'}}</span>
+                                        </span>
+                                    </div>
+                                    @else
+                                    <div class="d-inline-flex align-self-center my-0 mcp-theme-1 pl-4 w-100">
+                                        <span>HR Profile > HCP:</span>
+                                        <span class="ml-1 font-weight-bold text-secondary">No</span>
+                                    </div>
+                                    @endif
+                                    @if($hcpMismatchClass !== '')
+                                    <div class="my-1 alert-danger ml-4 border border-danger rounded font-weight-bold p-2">
+                                        <i class="fa fa-exclamation-triangle"></i>
+                                        HCP status mismatch
+                                    </div>
+                                    @endif
+                                </section>                          
 
 									<section class="mr-4 align-self-start mt-2 ml-auto">
 										<div id="hr-stage-heading" class="hr-steps-container">
 											<span>HR Stage:</span> <b>{{ucwords(implode(' ', explode('_', $patient->shadowOfPro->new_hr_stage)))}}</b>
 										</div>
 										<div>
+                                        Video HR Rep:
+                                        @if($patient->shadowOfPro->videoHrRep)
+                                        {{$patient->shadowOfPro->videoHrRep->name_first}} {{$patient->shadowOfPro->videoHrRep->name_last}}
+                                        @include('app.patient.partials.ob_forms.undoAssignVideoHrRep')
+                                        @else
+                                        @include('app.patient.partials.ob_forms.assignVideoHrRep')
+                                        @endif
+                                    </div>
+
+                                    <div>
+                                        Training Rep:
+                                        @if($patient->shadowOfPro->trainingRep)
+                                        {{$patient->shadowOfPro->trainingRep->name_first}} {{$patient->shadowOfPro->trainingRep->name_last}}
+                                        @include('app.patient.partials.ob_forms.undoAssignTrainingRep')
+                                        @else
+                                        @include('app.patient.partials.ob_forms.assignTrainingRep')
+                                        @endif
+                                    </div>
+
+                                    <div>
+                                        Success Rep:
+                                        @if($patient->shadowOfPro->successRep)
+                                        {{$patient->shadowOfPro->successRep->name_first}} {{$patient->shadowOfPro->successRep->name_last}}
+                                        @include('app.patient.partials.ob_forms.undoAssignSuccessRep')
+                                        @else
+                                        @include('app.patient.partials.ob_forms.assignSuccessRep')
+                                        @endif
+                                    </div>
+									<div>
+                                       <div moe relative>
+                                            <a href="#" start show>
+                                            <div class="d-flex align-items-center">
+                                                    <span class="mr-2 text-dark">Non Responsive:</span>
+                                                    <div class="custom-control custom-switch">
+                                                        <input type="checkbox" class="custom-control-input" id="is_non_responsive-switch" 
+                                                        {{$patient->shadowOfPro->is_non_responsive ? 'checked':'' }} />
+                                                        <label class="custom-control-label" for="is_non_responsive-switch">&nbsp;</label>
+                                                    </div>
+                                                </div>
+                                            </a>
+                                            <form url="/api/proHr/{{$patient->shadowOfPro->is_non_responsive ? 'setIsNonResponsiveToFalse':'setIsNonResponsiveToTrue' }}" right>
+                                                <input type="hidden" name="uid" value="{{ $patient->shadowOfPro->uid }}">
+                                                <div class="form-group">
+                                                    <label for="" class="control-label">Are you sure?</label>
+                                                </div>
+                                                <div class="">
+                                                    <button type="button" class="btn btn-sm btn-primary" submit>Submit</button>
+                                                    <button type="button" class="btn btn-sm btn-default border" cancel>Cancel</button>
+                                                </div>
+                                            </form>
+                                        </div> 
+                                    </div>
+									@if(!in_array($patient->shadowOfPro->new_hr_stage, $postHiringStages))    
+                                    <div>
+                                      <div moe relative>
+                                            <a href="#" start show>
+                                            <div class="d-flex align-items-center">
+                                                    <span class="mr-2 text-dark">Problem w/ Application:</span>
+                                                    <div class="custom-control custom-switch">
+                                                        <input type="checkbox" class="custom-control-input" id="is_problem_with_application-switch" 
+                                                        {{$patient->shadowOfPro->is_problem_with_application ? 'checked':'' }} />
+                                                        <label class="custom-control-label" for="is_problem_with_application-switch">&nbsp;</label>
+                                                    </div>
+                                                </div>
+                                            </a>
+                                            <form url="/api/proHr/{{$patient->shadowOfPro->is_problem_with_application ? 'setIsProblemWithApplicationToFalse':'setIsProblemWithApplicationToTrue' }}" right>
+                                                <input type="hidden" name="uid" value="{{ $patient->shadowOfPro->uid }}">
+                                                <div class="form-group">
+                                                    <label for="" class="control-label">Are you sure?</label>
+                                                </div>
+                                                <div class="">
+                                                    <button type="button" class="btn btn-sm btn-primary" submit>Submit</button>
+                                                    <button type="button" class="btn btn-sm btn-default border" cancel>Cancel</button>
+                                                </div>
+                                            </form>
+                                        </div>  
+                                    </div>
+                                    @endif
+										<div>
 											<label>Sticky Note:</label> <span class="text-secondary">{{$patient->sticky_note ?? '-' }}</span>
 											<div moe relative wide class="ml-2 hide-inside-popup">
 												<a start show><i class="fa fa-edit"></i></a>