Browse Source

Merge branch 'dev' into dev-vj

Vijayakrishnan 3 years ago
parent
commit
b9847ba0cf

+ 7 - 0
app/Http/Controllers/AdminController.php

@@ -74,6 +74,13 @@ class AdminController extends Controller
             }
         }
 
+        if ($request->input('mcp')) {
+            $mcp = Pro::where('uid', trim($request->input('mcp')))->first();
+            if ($mcp) {
+                $patients = $patients->where('mcp_pro_id', $mcp->id);
+            }
+        }
+
         $this->filterMultiQuery($request, $patients, 'age_in_years', 'age_category', 'age_value_1', 'age_value_2');
         $this->filterSimpleQuery($request, $patients, 'sex', 'sex');
         $this->filterMultiQuery($request, $patients, 'usual_bmi_max', 'bmi_category', 'bmi_value_1', 'bmi_value_2');

+ 1 - 0
config/app.php

@@ -253,6 +253,7 @@ return [
 
     'note_lhs_segments' => [
         'covid_intake',
+	'covid_follow-up',
         'informed_consent',
         'vitals',
         'chief_complaint',

+ 7 - 11
resources/views/app/admin/patients-table-extended.blade.php

@@ -10,6 +10,7 @@
         <tr>
             <th class="border-0 width-90px">#</th>
             <th class="border-0">Name</th>
+            <th class="border-0">Created</th>
             <th class="border-0">DOB</th>
             <th class="border-0">Age</th>
             <th class="border-0">Sex</th>
@@ -46,23 +47,18 @@
                     <a native target="_blank" href="{{route('patients.view.dashboard', $patient)}}">
                         {{$patient->chart_number}}
                     </a>
-                    <span class="on-hover-show left d-inline-block on-hover-opaque">
-						<i class="fa fa-info-circle ml-1"></i>
-						<div class="on-hover-content py-2 pl-3">
-							Created: <b class="m-0">{{friendly_date_time($patient->created_at)}}</b>
-                            @if($pro->pro_type === 'ADMIN')
-                                <div class="mt-1">
-                                    Created by <b>{{$patient->creator ? $patient->creator->displayName() : '-'}}</b>
-                                </div>
-                            @endif
-						</div>
-					</span>
                 </td>
                 <td>
                     <div class="d-flex align-items-center flex-nowrap">
                         <span>{{$patient->displayName()}}</span>
                     </div>
                 </td>
+                <td>
+                    <div title="{{friendly_date_time($patient->created_at)}}">{{friendly_date_time($patient->created_at, false)}}</div>
+                    <div class="mt-1" if-details-view>
+                        By <span>{{$patient->creator ? $patient->creator->displayName() : '-'}}</span>
+                    </div>
+                </td>
                 <td>{{ friendly_date_time($patient->dob, false) }}</td>
                 <td>{{ $patient->age_in_years ?  $patient->age_in_years : '-' }}</td>
                 <td>{{ $patient->sex }}</td>

+ 14 - 0
resources/views/app/admin/patients_filters.blade.php

@@ -28,6 +28,20 @@
 			<input name="name" class="form-control input-sm" v-model="filters.name">
 		</div>
 	</div>
+
+	<div class="sm-section">
+		<div class="">
+			<label>MCP:</label>
+			<select name="mcp" class="form-control min-width-unset" v-model="filters.mcp">
+				<option value="">--select--</option>
+				<?php $mcpPros = \App\Models\Pro::where('is_active', true)->where('is_enrolled_as_mcp', true)->orderBy('name_display')->get(); ?>
+				@foreach($mcpPros as $mcpPro)
+					<option value="{{$mcpPro->uid}}">{{$mcpPro->name_display}}</option>
+				@endforeach
+			</select>
+		</div>
+	</div>
+
 	<!-- AGE	 -->
 	<div class="sm-section">
 		<div class="">

+ 76 - 57
resources/views/app/patient/create-patient/demographics-form.blade.php

@@ -12,67 +12,79 @@
 			<input autocomplete="_blank" type="text" name="patientNameSuffix" placeholder="Suffix" class="ml-2 mb-md-0 mb-2 form-control input-sm w-md-50">
 		</div>
 	</div>
-	<div class="col-md-12 p-0">
-		<div class="col-md-6 form-group">
-			<div class="d-flex align-items-center">
-				<label class="font-weight-bold m-0">Email:</label>
-				<input class='form-control ml-2' type='email' placeholder="Email Address" name='emailAddress'>
+	<div class="col-md-12">
+		<div class="row form-group align-items-center">			
+				<label class="col-md-3 font-weight-bold m-0">Email:</label>
+			<div class="col-md-9">	
+				<input class='form-control' type='email' placeholder="Email Address" name='emailAddress'>
 			</div>
 		</div>
 	</div>
-	<div class="col-md-12 p-0">
-		<div class="col-md-4 form-group">
-			<div class="d-flex align-items-center">
-				<label class="font-weight-bold m-0 w-25">Gender:</label>
-				<select class="form-control input-sm ml-2" name="patientSex" select2>
-					<option value="">--</option>
-					<option value="M">Male</option>
-					<option value="F">Female</option>
-					<option value="UNKNOWN">Unknown</option>
-				</select>
-			</div>
+	<div class="col-md-12">
+		<div class="row form-group align-items-center">			
+				<label class="col-md-3 font-weight-bold m-0">Gender:</label>
+				<div class="col-md-9">
+					<select class="form-control input-sm" name="patientSex" select2>
+						<option value="">--</option>
+						<option value="M">Male</option>
+						<option value="F">Female</option>
+						<option value="UNKNOWN">Unknown</option>
+					</select>
+				</div>
 		</div>
 	</div>
 </div>
 <div class="row">
-	<div class="col-md-5 form-group">
-		<div class="d-flex align-items-center">
-			<label class="font-weight-bold m-0 w-25">DOB: <span class="text-danger">*</span></label>
-			<input type="date" required name="patientDob" value="" class="form-control input-sm">
+	<div class="col-12">
+		<div class="row form-group">
+			<label class="col-md-3 font-weight-bold m-0">DOB: <span class="text-danger">*</span></label>
+			<div class="col-md-9">	
+				<input type="date" required name="patientDob" value="" class="form-control input-sm">
+			</div>
 		</div>
 	</div>
-	<div class="col-md-5 form-group">
-		<div class="d-flex align-items-center">
-			<label class="font-weight-bold m-0 w-25">Service:</label>
-			<input type="date" name="dateOfService" value="{{date('Y-m-d')}}" class="form-control input-sm">
+
+	<div class="col-12">
+		<div class="row form-group">			
+			<label class="col-md-3 font-weight-bold m-0">Service:</label>
+			<div class="col-md-9">	
+				<input type="date" name="dateOfService" value="{{date('Y-m-d')}}" class="form-control input-sm">
+			</div>
 		</div>
 	</div>
+
+	
+	
 </div>
 @if($pro->pro_type === 'ADMIN')
 <div class="row">
-	<div class="col-md-5 form-group">
-		<div class="d-flex align-items-center">
-			<label class="font-weight-bold m-0 w-25">HCP Pro:</label>
-			<select name="hcpProUid" class="form-control input-sm" provider-search provider-type="hcp">
-				<option value="">--select--</option>
-			</select>
+	<div class="col-12">
+		<div class="row form-group">			
+			<label class="col-md-3 font-weight-bold m-0">HCP Pro:</label>
+			<div class="col-md-9">	
+				<select name="hcpProUid" class="form-control input-sm" provider-search provider-type="hcp">
+					<option value="">--select--</option>
+				</select>
+			</div>
 		</div>
 	</div>
-	<div class="col-md-7 form-group">
-		<div class="d-flex align-items-center">
-			<label class='font-weight-bold m-0 w-25'>Coordinator:</label>
-			<select name="assistantProUid" class="form-control input-sm ml-2" provider-search provider-type="default-na">
-				<option value="">--select--</option>
-			</select>
+	<div class="col-12">
+		<div class="row form-group">		
+			<label class='col-md-3 font-weight-bold m-0'>Coordinator:</label>
+			<div class="col-md-9">
+				<select name="assistantProUid" class="form-control input-sm" provider-search provider-type="default-na">
+					<option value="">--select--</option>
+				</select>
+			</div>
 		</div>
-	</div>
+	</div>	
 </div>
 @elseif($pro->is_hcp === true)
 <div class="row">
 	<div class="col-md-12">
-		<div class='form-group'>
-			<div class="d-flex align-items-center">
-				<label class="font-weight-bold m-0 w-25">HCP Pro:</label>
+		<div class='row form-group'>			
+				<label class="col-md-3 font-weight-bold m-0">HCP Pro:</label>
+			<div class="col-md-9">	
 				<input type="text" class="form-control" readonly value="{{$pro->displayName()}}">
 				<input type="hidden" name="hcpProUid" value="{{$pro->uid}}">
 			</div>
@@ -81,27 +93,34 @@
 </div>
 @elseif($pro->isDefaultNA())
 <div class="row">
-	<div class="col-md-5 form-group">
-		<div class="d-flex align-items-center">
-			<label class="font-weight-bold m-0 w-25">HCP Pro:</label>
-			<?php $teams = $pro->teamsWhereAssistant; ?>
-			<select name="hcpProUid" class="form-control">
-				@if(count($teams) > 1)
-				<option value="">--select--</option>
-				@endif
-				@foreach($teams as $team)
-				<option value="{{$team->mcp->uid}}">{{$team->mcp->displayName()}}</option>
-				@endforeach
-			</select>
+	<div class="col-12">
+		<div class="row form-group">			
+				<label class="col-md-3 font-weight-bold m-0">HCP Pro:</label>
+				<div class="col-md-9">
+				<?php $teams = $pro->teamsWhereAssistant; ?>
+				<select name="hcpProUid" class="form-control">
+					@if(count($teams) > 1)
+					<option value="">--select--</option>
+					@endif
+					@foreach($teams as $team)
+					<option value="{{$team->mcp->uid}}">{{$team->mcp->displayName()}}</option>
+					@endforeach
+				</select>
+			</div>
 		</div>
 	</div>
-	<div class="col-md-7 form-group">
-		<div class="d-flex align-items-center">
-			<label class='font-weight-bold m-0 w-25'>Coordinator:</label>
-			<input type="text" class="form-control" readonly value="{{$pro->displayName()}}">
-			<input type="hidden" name="assistantProUid" value="{{$pro->uid}}">
+
+	<div class="col-12">
+		<div class="row form-group">			
+			<label class='col-md-3 font-weight-bold m-0'>Coordinator:</label>
+			<div class="col-md-9">	
+				<input type="text" class="form-control" readonly value="{{$pro->displayName()}}">
+				<input type="hidden" name="assistantProUid" value="{{$pro->uid}}">
+			</div>
 		</div>
 	</div>
+	
+	
 </div>
 @endif
 <div class="row">

+ 18 - 58
resources/views/app/patient/create-patient/scripts/dialmd-covid-kit.blade.php

@@ -1,60 +1,20 @@
 <div>
-	<p><b>Introduction:</b></p>
-	<p>Hello, thank you for calling DialMD, this is Jason. How may I help you?</p>
 
-	<p>Absolutely, we'll get you set up for that.</p>
-
-	<p>First I'm required to tell you a few things:</p>
-
-	<p>DialMD is a Maryland-based telemedicine practice.</p>
-
-	<p>We accept Medicare Part B. Do you have Medicare Part B?</p>
-
-	<p>We are under the same HIPAA and physician licensing laws as any brick and mortar doctor's office, but due to
-		COVID, telemedicine is now fully covered for beneficiaries.</p>
-
-	<p>Our doctors are available 24/7 by phone for any non-emergency medical advice, prescription, or lab order -
-		basically anything you might need a doctor for, but not something that you need in-person or emergency
-		treatment.</p>
-
-	<p>During this public health emergency, all co-pays for telemedicine services are being waived.</p>
-
-	<p>Therefore, if you have Medicare Part B, using DialMD is 100% free of charge for you, the patient. You will never
-		receive a bill.</p>
-
-	<p>If it is a medical emergency - please do not call DialMD, please call 911 or go to your nearest emergency room.
-		<b>Do you understand?</b>
-	</p>
-
-	<p>>> GRAB INFORMATION</p>
-	<p>How do I spell your first name? Last name? DOB? Medicare Number… it starts with a number followed by a letter and
-		has 11 alphanumeric characters.</p>
-
-	<p>>> IF PART B…</p>
-
-	<p>>> And if we send a FedEx package to that address: << READ THE ADDRESS >> will it reach you safely? Any special
-			instructions?</p>
-
-	<p>Last week, on January 4th, Governor Hogan declared a state of emergency here in Maryland. More individuals are
-		hospitalized in Maryland right now due to COVID-19 than at any previous point in the entire pandemic.</p>
-
-	<p>So we’ve urgently put this program together to educate the public on how to detect COVID-19 early using
-		self-monitoring devices. Because early detection truly saves lives and prevents hospitalization. These
-		FDA-Approved self-monitoring devices can detect small changes in blood oxygen concentration and temperature
-		which you sometimes may not even feel, and are therefore highly effective in the early detection of COVID-19.
-	</p>
-
-	<p>So what I am going to do now is transfer the call over to one of our medical professionals who will be able to
-		educate you on proper use of self-monitoring devices, and send you a kit out for overnight delivery.</p>
-
-	<p>Like any doctor’s office, I need to create a chart for you so we know who we’re talking to.</p>
-
-	<p>Before I transfer you over, if you could help me answer a few questions:</p>
-
-	<p>Are you currently experiencing any flu-like symptoms such as fever or chills, or a loss of sense of smell?</p>
-	<p>Preferred language?</p>
-	<p>Would you like an interpreter?</p>
-	<p>Family history of heart disease, or any other chronic medical condition?</p>
-	<p>Ethnicity?</p>
-	<p>Marital status?</p>
-</div>
+<ol>
+	<li>Thank you for calling DialMD, this is Shawn, how may I help you?</li>
+	<li>Sure, I will need to check your eligibility and connect you with one of our Nurse Practitioners 
+		who will guide you on how to use the Oximeter appropriately and stay safe during this pandemic.</li>
+	<li>
+		<div>What is your:</div>
+		<ol>
+			<li>First name</li>
+			<li>Last name</li>
+			<li>DOB</li>
+			<li>Phone number (The number I see on the caller ID is ___, is that the best # to reach you? Home or cell?)</li>
+			<li>Medicare number? (IF THEY DO NOT KNOW::: This is an 11 alphanumeric number starting with a number followed by a letter.)</li>		
+		</ol>
+	</li>
+	<li>
+		How did you hear about the program?
+	</li>
+</ol>

+ 60 - 0
resources/views/app/patient/create-patient/scripts/dialmd-covid-kit.blade.php_OLD

@@ -0,0 +1,60 @@
+<div>
+	<p><b>Introduction:</b></p>
+	<p>Hello, thank you for calling DialMD, this is Jason. How may I help you?</p>
+
+	<p>Absolutely, we'll get you set up for that.</p>
+
+	<p>First I'm required to tell you a few things:</p>
+
+	<p>DialMD is a Maryland-based telemedicine practice.</p>
+
+	<p>We accept Medicare Part B. Do you have Medicare Part B?</p>
+
+	<p>We are under the same HIPAA and physician licensing laws as any brick and mortar doctor's office, but due to
+		COVID, telemedicine is now fully covered for beneficiaries.</p>
+
+	<p>Our doctors are available 24/7 by phone for any non-emergency medical advice, prescription, or lab order -
+		basically anything you might need a doctor for, but not something that you need in-person or emergency
+		treatment.</p>
+
+	<p>During this public health emergency, all co-pays for telemedicine services are being waived.</p>
+
+	<p>Therefore, if you have Medicare Part B, using DialMD is 100% free of charge for you, the patient. You will never
+		receive a bill.</p>
+
+	<p>If it is a medical emergency - please do not call DialMD, please call 911 or go to your nearest emergency room.
+		<b>Do you understand?</b>
+	</p>
+
+	<p>>> GRAB INFORMATION</p>
+	<p>How do I spell your first name? Last name? DOB? Medicare Number… it starts with a number followed by a letter and
+		has 11 alphanumeric characters.</p>
+
+	<p>>> IF PART B…</p>
+
+	<p>>> And if we send a FedEx package to that address: << READ THE ADDRESS >> will it reach you safely? Any special
+			instructions?</p>
+
+	<p>Last week, on January 4th, Governor Hogan declared a state of emergency here in Maryland. More individuals are
+		hospitalized in Maryland right now due to COVID-19 than at any previous point in the entire pandemic.</p>
+
+	<p>So we’ve urgently put this program together to educate the public on how to detect COVID-19 early using
+		self-monitoring devices. Because early detection truly saves lives and prevents hospitalization. These
+		FDA-Approved self-monitoring devices can detect small changes in blood oxygen concentration and temperature
+		which you sometimes may not even feel, and are therefore highly effective in the early detection of COVID-19.
+	</p>
+
+	<p>So what I am going to do now is transfer the call over to one of our medical professionals who will be able to
+		educate you on proper use of self-monitoring devices, and send you a kit out for overnight delivery.</p>
+
+	<p>Like any doctor’s office, I need to create a chart for you so we know who we’re talking to.</p>
+
+	<p>Before I transfer you over, if you could help me answer a few questions:</p>
+
+	<p>Are you currently experiencing any flu-like symptoms such as fever or chills, or a loss of sense of smell?</p>
+	<p>Preferred language?</p>
+	<p>Would you like an interpreter?</p>
+	<p>Family history of heart disease, or any other chronic medical condition?</p>
+	<p>Ethnicity?</p>
+	<p>Marital status?</p>
+</div>

+ 7 - 2
resources/views/app/patient/dashboard.blade.php

@@ -500,14 +500,14 @@
         </div> */ ?>
 
         <div class="row my-3">
-            <div class="col-12">
+            <div class="col-md-9">
                 {{-- memos --}}
                 <div  class="mb-2 pt-3 pb-2 border-top">
                     <div class="">
                         <div class="d-flex align-items-start pb-2">
                             <h6 class="my-0 font-weight-bold text-secondary">Client Memos</h6>
                         </div>
-                        <div moe class="w-50 p-2 border mb-3">
+                        <div moe class="w-100 p-2 border mb-3">
                             <form url="/api/clientMemo/create" show>
                                 <input type="hidden" name="clientUid" value="{{ $patient->uid }}">
                                 <label class="text-secondary font-weight-bold">+ New Memo</label>
@@ -659,6 +659,11 @@
                     </div>
                 </div>
             </div>
+            <div class="col-md-3">
+            <div  class="mb-2 pt-3 pb-2 border-top">
+                        @include('app.patient.intake-data.intake-data')
+            </div>    
+            </div>
         </div>
 
     </div>

+ 13 - 0
resources/views/app/patient/intake-data/grid-patient-intake-data-display.blade.php

@@ -0,0 +1,13 @@
+<div id="gridPatientIntakeDataDisplay" class="table-responsive">
+	<table class="table table-sm table-striped table-bordered">
+		<tr>
+		<th colspan="2">Patient Intake Data</th>
+		</tr>
+		@foreach($intakeDataFields as $key=>$label)
+		<tr>
+			<td>{{ $label }}</td>
+			<td>{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}</td>
+		</tr>
+		@endforeach
+	</table>
+</div>

+ 102 - 0
resources/views/app/patient/intake-data/grid-patient-intake-data-form.blade.php

@@ -0,0 +1,102 @@
+<?php
+	$intakeDataFields = [
+		'height' => 'Height',
+		'weight' => 'Weight',
+		'last_vitamin_d' => 'Last Vitamin D',
+		'ethnicity' => 'Ethnicity',
+		'hypertension' => 'Hypertension',
+		'diabetes' => 'Diabetes',
+		'copd' => 'COPD',
+		'arthritis' => 'Arthritis',
+	];
+	$patientCanvasData = json_decode($patient->canvas_data ?? null);
+	$patientIntakeData = null;
+	if($patientCanvasData && @$patientCanvasData->INTAKE_DATA){
+		$patientIntakeData = @$patientCanvasData->INTAKE_DATA;
+	}
+?>
+
+<div id="grid-patient-intake-data-form" visit-moe moe relative wide class="ml-2 hide-inside-popup">
+	<a start show>
+		<i class="fa fa-edit"></i>
+	</a>
+	<form id="gridPatientIntakeDataForm" url="/api/client/updateCanvasData" class="mcp-theme-1" right>
+		<div id="gridPatientIntakeFormSection">
+			<div class="bg-light p-2 font-weight-bold mb-2">Update Patient Intake Data</div>
+			<input type="hidden" name="uid" value="{{$patient->uid}}">
+			<input type="hidden" name="key" value="INTAKE_DATA">
+			<input type="hidden" name="data">
+			<div class="row">
+				@foreach($intakeDataFields as $key=>$label)
+				<div class="col-md-6 mb-2">
+					<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
+					<input name="{{$key}}" class="form-control" value="{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}" />
+				</div>
+				@endforeach
+			</div>
+
+			<div class="mb-2">
+				<button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+				<button cancel class="btn btn-sm btn-default border">
+					Cancel
+				</button>
+			</div>
+		</div>
+	</form>
+</div>
+
+<script>
+	(function() {
+		function init() {
+			(function($){
+				var patientDataIntake = {
+					form: null,
+					data:{},
+					showForm: false,
+					patientIntakeData: <?= json_encode($patientIntakeData) ?>,
+					initOnInputChange: function(){
+						var self = this;
+						self.form.find('input').change(function(evt){
+							var input = evt.target;
+							var name = input.name;
+							var value = input.value;
+							self.data[name] = value;
+							self.updateJsonStringValue();
+						});
+					},
+					updateJsonStringValue: function(){
+						var self = this;
+						self.form.find('input[name=data]').val(JSON.stringify(self.data));
+					},
+					toggleForm: function(){
+						var target = $('#gridPatientIntakeFormSection');
+						var table = $('#gridPatientIntakeDataDisplay');
+						if(this.showForm){
+							target.removeClass('d-none');
+							table.addClass('d-none');
+						}else{
+							target.addClass('d-none');
+							table.removeClass('d-none');
+						}
+					},
+					setDefaultData: function(){
+						var self = this;
+						if(!this.patientIntakeData) return;
+						for(var f in this.patientIntakeData){
+							var value = this.patientIntakeData[f];
+							self.data[f] = value;
+						}
+						self.updateJsonStringValue();
+					},
+					init: function(){
+						this.form = $('#gridPatientIntakeDataForm');
+						this.initOnInputChange();
+						this.setDefaultData();
+					}
+				};
+				patientDataIntake.init();
+			})(jQuery);
+		}
+		addMCInitializer('grid-patient-intake-data-form', init, '#grid-patient-intake-data-form');
+	})();
+</script>

+ 24 - 0
resources/views/app/patient/intake-data/intake-data.blade.php

@@ -0,0 +1,24 @@
+<?php
+	$intakeDataFields = [
+		'height' => 'Height',
+		'weight' => 'Weight',
+		'last_vitamin_d' => 'Last Vitamin D',
+		'ethnicity' => 'Ethnicity',
+		'hypertension' => 'Hypertension',
+		'diabetes' => 'Diabetes',
+		'copd' => 'COPD',
+		'arthritis' => 'Arthritis',
+	];
+	$patientCanvasData = json_decode($patient->canvas_data ?? null);
+	$patientIntakeData = null;
+	if($patientCanvasData && @$patientCanvasData->INTAKE_DATA){
+		$patientIntakeData = @$patientCanvasData->INTAKE_DATA;
+	}
+?>
+<div class="d-flex align-items-center pb-2">
+	<h6 class="my-0 font-weight-bold text-secondary mr-2">Intake Data</h6>
+	@include('app.patient.intake-data.grid-patient-intake-data-form')
+</div>
+<div>
+	@include('app.patient.intake-data.grid-patient-intake-data-display')
+</div>

+ 13 - 0
resources/views/app/patient/intake-data/patient-intake-data-display.blade.php

@@ -0,0 +1,13 @@
+<div id="patientIntakeDataDisplay" class="table-responsive">
+	<table class="table table-sm table-striped table-bordered">
+		<tr>
+		<th colspan="2">Patient Intake Data</th>
+		</tr>
+		@foreach($intakeDataFields as $key=>$label)
+		<tr>
+			<td>{{ $label }}</td>
+			<td>{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}</td>
+		</tr>
+		@endforeach
+	</table>
+</div>

+ 129 - 0
resources/views/app/patient/intake-data/patient-intake-data-form.blade.php

@@ -0,0 +1,129 @@
+<?php
+	$intakeDataFields = [
+		'height' => 'Height',
+		'weight' => 'Weight',
+		'last_vitamin_d' => 'Last Vitamin D',
+		'ethnicity' => 'Ethnicity',
+		'hypertension' => 'Hypertension',
+		'diabetes' => 'Diabetes',
+		'copd' => 'COPD',
+		'arthritis' => 'Arthritis',
+	];
+	$patientCanvasData = json_decode($patient->canvas_data ?? null);
+	$patientIntakeData = null;
+	if($patientCanvasData && @$patientCanvasData->INTAKE_DATA){
+		$patientIntakeData = @$patientCanvasData->INTAKE_DATA;
+	}
+?>
+
+<div id="patient-intake-data-form" visit-moe moe relative wide class="ml-2 hide-inside-popup">
+	<a start show>
+		@if($patientIntakeData)
+			<i class="fas fa-eye"></i>
+		@else
+			<i class="fa fa-edit"></i>
+		@endif
+		</a>
+	<form id="patientIntakeDataForm" url="/api/client/updateCanvasData" class="mcp-theme-1" right>
+		@if($patientIntakeData)
+			@include('app.patient.intake-data.patient-intake-data-display')
+			<div class="text-center">
+				<button type="button" class="btn btn-sm btn-primary mb-2 hide-form" id="patientIntakeToggleForm">Update Data</button>
+			</div>
+		@endif
+		<div id="patientIntakeFormSection" class="{{ $patientIntakeData ? 'd-none':'' }}">
+			<div class="bg-light p-2 font-weight-bold mb-2">Update Patient Intake Data</div>
+			<input type="hidden" name="uid" value="{{$patient->uid}}">
+			<input type="hidden" name="key" value="INTAKE_DATA">
+			<input type="hidden" name="data">
+			<div class="row">
+				@foreach($intakeDataFields as $key=>$label)
+				<div class="col-md-6 mb-2">
+					<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
+					<input name="{{$key}}" class="form-control" value="{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}" />
+				</div>
+				@endforeach
+			</div>
+
+			<div class="mb-2">
+				<button submit class="btn btn-sm btn-primary mr-1">Submit</button>
+				<button cancel class="btn btn-sm btn-default border">
+					Cancel
+				</button>
+			</div>
+		</div>
+	</form>
+</div>
+
+<script>
+	(function() {
+		function init() {
+			(function($){
+				var patientDataIntake = {
+					form: null,
+					data:{},
+					showForm: false,
+					patientIntakeData: <?= json_encode($patientIntakeData) ?>,
+					initOnInputChange: function(){
+						var self = this;
+						self.form.find('input').change(function(evt){
+							var input = evt.target;
+							var name = input.name;
+							var value = input.value;
+							self.data[name] = value;
+							self.updateJsonStringValue();
+						});
+					},
+					updateJsonStringValue: function(){
+						var self = this;
+						self.form.find('input[name=data]').val(JSON.stringify(self.data));
+					},
+					initDisplay: function(){
+						var self = this;
+						$('#patientIntakeToggleForm').click(function(){
+							var isFormHidden = $(this).hasClass('hide-form');
+							self.showForm = isFormHidden ? true:false;
+							if(self.showForm){
+								$(this).removeClass('hide-form');
+								$(this).text('Show Data');
+							}else{
+								$(this).addClass('hide-form');
+								$(this).text('Update Data');
+							}
+							self.toggleForm();
+						});
+					},
+					toggleForm: function(){
+						var target = $('#patientIntakeFormSection');
+						var table = $('#patientIntakeDataDisplay');
+						if(this.showForm){
+							target.removeClass('d-none');
+							table.addClass('d-none');
+						}else{
+							target.addClass('d-none');
+							table.removeClass('d-none');
+						}
+					},
+					setDefaultData: function(){
+						var self = this;
+						if(!this.patientIntakeData) return;
+						for(var f in this.patientIntakeData){
+							var value = this.patientIntakeData[f];
+							self.data[f] = value;
+							console.log({f});
+						}
+						self.updateJsonStringValue();
+					},
+					init: function(){
+						this.form = $('#patientIntakeDataForm');
+						this.initOnInputChange();
+						this.initDisplay();
+						this.setDefaultData();
+					}
+				};
+				patientDataIntake.init();
+			})(jQuery);
+		}
+		addMCInitializer('patient-intake-data-form', init, '#patient-intake-data-form');
+	})();
+</script>

+ 6 - 0
resources/views/app/patient/partials/latest-vitals.blade.php

@@ -8,6 +8,12 @@ $endPoint = 'upsertNoteSingleton';
 $vitalLabels = [
     "heightInInches" => "Ht. (in.)",
     "weightPounds" => "Wt. (lbs.)",
+    "lastVitaminDCheck" => "Last Vit. D Check",
+    "ethnicity" => "Eth.",
+    "has_htn" => "HTN?",
+    "has_diabetes" => "DM?",
+    "has_copd" => "COPD?",
+    "has_arthritis" => "Arthritis?",
     "temperatureF" => "Temp. (F)",
     "systolicBP" => "SBP",
     "diastolicBP" => "DBP",

+ 13 - 0
resources/views/app/patient/segment-templates/covid_follow-up/edit.blade.php

@@ -0,0 +1,13 @@
+<div class="p-3 mb-0">
+        <ul class="mb-0">
+                <li><strong>Note to HCP:</strong> Every patient is so unique. Please complete a standard SOAP note. Key points to consider:</strong></li>
+                <li>How are you?</li>
+                <li>Did you receive the meters? Any issues?</li>
+                <li>Reiterate education about asymptomatic hypoxia and guidelines to check regularly.</li>
+                <li>If SpO2 drops slightly, call us or your PCP.</li>
+                <li>If SpO2 drops to 94, go straight to the ER, even if you feel fine.</li>
+                <li>How are you doing with your other conditions?</li>
+                <li>How are you doing with stress? Stress really affects your blood pressure and even your blood sugar. COVID-19 has created so much stress in our lives, 7 in 10 adults now report anxiety or feelings of depression and isolation.</li>
+                <li><a href="https://press.aarp.org/AARP-Survey-7-in-10-Older-Adults-Report-Increased-Feelings-of-Anxiety-Sadness-and-Depression-Due-to-Coronavirus">AARP Link</a></li>
+        </ul>
+</div>

+ 13 - 0
resources/views/app/patient/segment-templates/covid_follow-up/summary.blade.php

@@ -0,0 +1,13 @@
+<div class="p-3 mb-0">
+        <ul class="mb-0">
+                <li><strong>Note to HCP:</strong> Every patient is so unique. Please complete a standard SOAP note. Key points to consider:</strong></li>
+                <li>How are you?</li>
+                <li>Did you receive the meters? Any issues?</li>
+                <li>Reiterate education about asymptomatic hypoxia and guidelines to check regularly.</li>
+                <li>If SpO2 drops slightly, call us or your PCP.</li>
+                <li>If SpO2 drops to 94, go straight to the ER, even if you feel fine.</li>
+                <li>How are you doing with your other conditions?</li>
+                <li>How are you doing with stress? Stress really affects your blood pressure and even your blood sugar. COVID-19 has created so much stress in our lives, 7 in 10 adults now report anxiety or feelings of depression and isolation.</li>
+                <li><a href="https://press.aarp.org/AARP-Survey-7-in-10-Older-Adults-Report-Increased-Feelings-of-Anxiety-Sadness-and-Depression-Due-to-Coronavirus">AARP Link</a></li>
+        </ul>
+</div>

+ 29 - 15
resources/views/app/patient/segment-templates/covid_intake/edit.blade.php

@@ -133,12 +133,12 @@ if (!!@$point->data) {
 }
 
 ?>
+
 <div visit-moe close-on-save close-on-cancel class="d-block p-3">
     <form show url="/api/visitPoint/<?= $endPoint ?>" class="mcp-theme-1">
         <input type="hidden" name="segmentUid" value="<?= $segment->uid ?>">
         <input type="hidden" name="category" value="<?= $category ?>">
         <input type="hidden" name="data" value="{{json_encode($contentData)}}">
-
         <p class="mb-2">Hi {{strtolower($patient->sex) === 'M' ? 'Mr.' : 'Mrs.'}} {{$patient->displayName()}}, My name is {{$pro->displayName()}}. I'm a board-certified nurse practitioner.</p>
 
         <div class="mb-2">
@@ -152,7 +152,7 @@ if (!!@$point->data) {
             <?php
             $mailingAddress = implode(' ', [$patient->mailing_address_line1, $patient->mailing_address_line2, $patient->mailing_address_city, $patient->mailing_address_state, $patient->mailing_address_zip]);
             ?>
-            <label class="mb-1">Let me confirm your mailing address for delivery of the self-monitoring kit: {{$mailingAddress}}</label>
+            <label class="mb-1">Let me confirm your mailing address: {{$mailingAddress}}</label>
             <div class="d-inline-flex ml-2 align-items-baseline pt-1">
                 <label class="my-0 mr-3 d-flex align-items-center">
                     <input type="radio" data-name="ans_is_address_correct" name="ans_is_address_correct" {{@$contentData['ans_is_address_correct'] && @$contentData['ans_is_address_correct'] === 'yes' ? 'checked' : ''}} value="yes">
@@ -172,10 +172,14 @@ if (!!@$point->data) {
 
         <hr class="my-3">
 
-        <div class="mb-2">
+        <div class="mb-2 d-none">
             So it'll be my responsibility to ensure that you know exactly how to use the kit once you get it.
         </div>
 
+	<div class="mb-2>
+	    DialMD
+	</div>
+
         <div class="mb-2">
             <label class="mb-1">Have you ever worked with a nurse practitioner before?</label>
             <div class="d-inline-flex ml-2 align-items-baseline pt-1">
@@ -192,6 +196,8 @@ if (!!@$point->data) {
 
         <div class="mb-2 ml-3">
             <ul>
+                <li><strong>I'M NOT HERE TO REPLACE YOUR CURRENT DOCTORS.</strong></li>
+		<li>This is a telehealth service that you can rely on in addition to your existing care team if you ever need support after hours or have a question about one of your vital signs.</li>
                 <li>Like medical doctors, we have the authority to write prescriptions and order labs.</li>
                 <li>So if you ever need anything (medical advice, prescriptions, labs, etc.), you can always call me via phone.</li>
                 <li>Or we can do video calls over Zoom if that's ever helpful.</li>
@@ -725,41 +731,49 @@ if (!!@$point->data) {
 
         <hr class="my-3">
 
-        <p><b>Vaccine Status:</b></p>
-
-        <div class="ml-3 mb-3">
+	<div class="ml-3 mb-3">
             <label class="mb-2 d-flex align-items-center">
-                <input type="checkbox" data-name="ans_vaccine_status_not_enough_rapport" {{@$contentData['ans_vaccine_status_not_enough_rapport'] ? 'checked' : ''}} class="mr-2">
-                <span class="ml-2">Not enough rapport right now to ask</span>
+                <input type="checkbox" data-name="ans_cdc_push" {{@$contentData['ans_vaccine_push'] ? 'checked' : ''}} class="mr-2">
+                <span class="ml-2">Educated patient that self-monitoring is not a replacement for following CDC guidelines re: vaccines, mask-wearing, and social distancing; <strong>CDC guidelines re: vaccines, masks, and social distancing are the most effective strategy to reduce COVID-19 risk.</strong>.</span>
             </label>
+        </div>
+        
+	<p><b>Vaccine Status:</b></p>
+
+        <div class="ml-3 mb-3">
             <label class="mb-2 d-flex align-items-center">
                 <input type="checkbox" data-name="ans_vaccine_status_declined_to_answer" {{@$contentData['ans_vaccine_status_declined_to_answer'] ? 'checked' : ''}} class="mr-2">
                 <span class="ml-2">Declined to answer</span>
             </label>
             <div>
-                <input type="text" data-name="ans_vaccine_status" value="{{@$contentData['ans_vaccine_status']}}" class="form-control form-control-sm d-inline-block w-auto">
+                Status: <input type="text" data-name="ans_vaccine_status" value="{{@$contentData['ans_vaccine_status']}}" class="form-control form-control-sm d-inline-block w-auto">
+            </div>
+            <div class="mt-2">
+                Support needed? <input type="text" data-name="ans_vaccine_status" value="{{@$contentData['ans_vaccine_status']}}" class="form-control form-control-sm d-inline-block w-auto">
             </div>
         </div>
 
         <p><b>Booster Status:</b></p>
 
         <div class="ml-3 mb-3">
-            <label class="mb-2 d-flex align-items-center">
-                <input type="checkbox" data-name="ans_booster_status_not_enough_rapport" {{@$contentData['ans_booster_status_not_enough_rapport'] ? 'checked' : ''}} class="mr-2">
-                <span class="ml-2">Not enough rapport right now to ask</span>
-            </label>
             <label class="mb-2 d-flex align-items-center">
                 <input type="checkbox" data-name="ans_booster_status_declined_to_answer" {{@$contentData['ans_booster_status_declined_to_answer'] ? 'checked' : ''}} class="mr-2">
                 <span class="ml-2">Declined to answer</span>
             </label>
             <div>
-                <input type="text" data-name="ans_booster_status" value="{{@$contentData['ans_booster_status']}}" class="form-control form-control-sm d-inline-block w-auto">
+                Status: <input type="text" data-name="ans_booster_status" value="{{@$contentData['ans_booster_status']}}" class="form-control form-control-sm d-inline-block w-auto">
+            </div>
+            <div class="mt-2">
+                Support needed? <input type="text" data-name="ans_vaccine_status" value="{{@$contentData['ans_vaccine_status']}}" class="form-control form-control-sm d-inline-block w-auto">
             </div>
         </div>
 
         <div class="mb-3">
-            <label class="mb-1">Current Behaviors to Stay Safe:</label>
+            <label class="mb-1"><strong>Current Behaviors to Stay Safe:</strong></label>
             <input type="text" data-name="ans_current_behaviors_to_stay_safe" value="{{@$contentData['ans_current_behaviors_to_stay_safe']}}" class="form-control form-control-sm">
+            <div class="mt-2">
+                Support needed? <input type="text" data-name="ans_vaccine_status" value="{{@$contentData['ans_vaccine_status']}}" class="form-control form-control-sm d-inline-block w-auto">
+            </div>
         </div>
 
         <p><b>Education Provided:</b></p>

+ 21 - 28
resources/views/app/patient/segment-templates/covid_intake/summary.blade.php

@@ -119,24 +119,40 @@ if (!!@$point->data) {
 }
 
 ?>
-<div class="events-none form-read-mode">
 
-    <p class="mb-2">Hi {{strtolower($patient->sex) === 'M' ? 'Mr.' : 'Mrs.'}} {{$patient->displayName()}}, My name is {{$pro->displayName()}}. I'm a board-certified nurse practitioner.</p>
+<div class="p-3 mb-0">
+	<ul class="mb-0">
+		<li><strong>For the second visit</strong>, every patient is so unique. Please complete a standard SOAP note. Here are key points:</strong></li>
+		<li>How are you?</li>
+		<li>Did you receive the meters? Any issues?</li>
+		<li>Reiterate education about asymptomatic hypoxia and guidelines to check regularly.</li>
+		<li>If SpO2 drops slightly, call us or your PCP.</li>
+		<li>If SpO2 drops to 94, go straight to the ER, even if you feel fine.</li>
+		<li>How are you doing with your other conditions?</li>
+		<li>How are you doing with stress? Stress really affects your blood pressure and even your blood sugar. COVID-19 has created so much stress in our lives, 7 in 10 adults now report anxiety or feelings of depression and isolation.</li>
+		<li><a href="https://press.aarp.org/AARP-Survey-7-in-10-Older-Adults-Report-Increased-Feelings-of-Anxiety-Sadness-and-Depression-Due-to-Coronavirus">AARP Link</a></li>
+	</ul>
+</div>
+
+<hr class="m-1">
+
+<div class="events-none form-read-mode">
 
     <div class="mb-2">
         <label>How are you?</label> 
         <?= segment_template_summary_value_display(@$contentData['ans_how_are_you']) ?>
     </div>
 
-    <hr class="my-3">
+    <hr class="my-3 d-none">
 
-    <div class="mb-2">
+    <div class="mb-2 d-none">
         <?php
         $mailingAddress = implode(' ', [$patient->mailing_address_line1, $patient->mailing_address_line2, $patient->mailing_address_city, $patient->mailing_address_state, $patient->mailing_address_zip]);
         ?>
-        <label>Let me confirm your mailing address for delivery of the self-monitoring kit: {{$mailingAddress}}</label>
+        <label>Let me confirm your mailing address: {{$mailingAddress}}</label>
         <?= segment_template_summary_value_display(ucwords(@$contentData['ans_is_address_correct'])) ?>
     </div>
+    
     @if(strlen(@$contentData['ans_corrected_address']))
     <div class="mb-2">
         <label>If different from above:</label>
@@ -146,29 +162,6 @@ if (!!@$point->data) {
 
     <hr class="my-3">
 
-    <div class="mb-2">
-        So it'll be my responsibility to ensure that you know exactly how to use the kit once you get it.
-    </div>
-
-    <div class="mb-2">
-        <label>Have you ever worked with a nurse practitioner before?</label>
-        <?= segment_template_summary_value_display(ucwords(@$contentData['ans_has_worked_with_an_np_before'])) ?>
-    </div>
-
-    <div class="mb-2 ml-3">
-        <ul>
-            <li>Like medical doctors, we have the authority to write prescriptions and order labs.</li>
-            <li>So if you ever need anything (medical advice, prescriptions, labs, etc.), you can always call me via phone.</li>
-            <li>Or we can do video calls over Zoom if that's ever helpful.</li>
-            <li>And because telemedicine is now covered by Medicare and we're allowed to waive co-pays, it's free of charge for patients.</li>
-            <li>You'll never get a bill or anything.</li>
-            <li>
-                <label><b>Ok?</b></label>
-                <?= segment_template_summary_value_display(ucwords(@$contentData['ans_has_worked_with_an_np_before_expl_feedback'])) ?>
-            </li>
-        </ul>
-    </div>
-
     <div class="mb-2">
         Our goal right now is to help you stay healthy and monitor your most important vital signs at home during this pandemic.
     </div>

+ 9 - 1
resources/views/layouts/patient.blade.php

@@ -652,7 +652,8 @@ $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_creat
 									@endif
 
 									<section class="mr-4 align-self-start mt-2 ml-auto">
-										<label>Sticky Note:</label> <span class="text-secondary">{{$patient->sticky_note ?? '-' }}</span>
+										<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>
 												<form url="/api/client/updateStickyNote" class="mcp-theme-1" right>
@@ -670,6 +671,13 @@ $isOldClient = (date_diff(date_create(config('app.point_impl_date')), date_creat
 													</div>
 												</form>
 											</div>
+										</div>
+										@if($pro->pro_type === 'ADMIN')
+											<div>
+												<label>Intake Data: - </label> <span class="text-secondary"></span>
+												@include('app.patient.intake-data.patient-intake-data-form')
+											</div>
+										@endif
 									</section>
 									<ul class="vbox mt-2 align-self-start patient-header-address ">
 										<li class="d-flex align-items-start">