Samson Mutunga 3 лет назад
Родитель
Сommit
3efccb0062

+ 19 - 0
config/patient-intake-data.php

@@ -0,0 +1,19 @@
+<?php 
+
+return [
+    'height' => 'Height',
+    'weight' => 'Weight',
+    'last_vitamin_d' => 'Last Vitamin D',
+    'ethnicity' => 'Ethnicity',
+    'ethnicity_checkboxes' => [
+        'is_hispanic' => 'Hispanic',
+        'is_black_or_aa' => 'Black or African American',
+        'is_native_american' => 'Native American'
+    ],
+    'hypertension' => 'Hypertension',
+    'diabetes' => 'Diabetes',
+    'copd' => 'COPD',
+    'arthritis' => 'Arthritis',
+    'emailAddress' => 'Email Address',
+    'stickyNote' => 'Sticky Note'
+];

+ 6 - 0
resources/views/app/new-patient.blade.php

@@ -14,6 +14,12 @@ $medicaidStates = Config::get('constants.medicaid_states');
 	.form-control:focus {
 		color: rgb(0, 54, 175);
 	}
+	#newPatientContainer label {
+		font-size: 11px;
+	}
+	#newPatientContainer .w-30 {
+		width: 30% !important;
+	}
 </style>
 
 <div class="p-3 mcp-theme-1" id="newPatientContainer" v-cloak>

+ 58 - 77
resources/views/app/patient/create-patient/demographics-form.blade.php

@@ -12,79 +12,67 @@
 			<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">
-		<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 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>
 		</div>
 	</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 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-30">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>
 	</div>
 </div>
 <div class="row">
-	<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 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>
 	</div>
-
-	<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 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>
 	</div>
-
-	
-	
 </div>
 @if($pro->pro_type === 'ADMIN')
 <div class="row">
-	<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 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>
 	</div>
-	<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 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>
-	</div>	
+	</div>
 </div>
 @elseif($pro->is_hcp === true)
 <div class="row">
 	<div class="col-md-12">
-		<div class='row form-group'>			
-				<label class="col-md-3 font-weight-bold m-0">HCP Pro:</label>
-			<div class="col-md-9">	
+		<div class='form-group'>
+			<div class="d-flex align-items-center">
+				<label class="font-weight-bold m-0 w-25">HCP Pro:</label>
 				<input type="text" class="form-control" readonly value="{{$pro->displayName()}}">
 				<input type="hidden" name="hcpProUid" value="{{$pro->uid}}">
 			</div>
@@ -93,34 +81,27 @@
 </div>
 @elseif($pro->isDefaultNA())
 <div class="row">
-	<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 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>
 	</div>
-
-	<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 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>
 	</div>
-	
-	
 </div>
 @endif
 <div class="row">
@@ -164,4 +145,4 @@
 		<input type='checkbox' name='isTestRecord' />
 		This is a test record
 	</label>
-</div>
+</div>

+ 1 - 6
resources/views/app/patient/intake-data/grid-patient-intake-data-display.blade.php

@@ -3,11 +3,6 @@
 		<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
+		@include('app.patient.intake-data.intake-data-display')
 	</table>
 </div>

+ 29 - 51
resources/views/app/patient/intake-data/grid-patient-intake-data-form.blade.php

@@ -1,21 +1,10 @@
 <?php
-	$intakeDataFields = [
-		'height' => 'Height',
-		'weight' => 'Weight',
-		'last_vitamin_d' => 'Last Vitamin D',
-		'ethnicity' => 'Ethnicity',
-		'hypertension' => 'Hypertension',
-		'diabetes' => 'Diabetes',
-		'copd' => 'COPD',
-		'arthritis' => 'Arthritis',
-		'emailAddress' => 'Email Address',
-		'stickyNote' => 'Sticky Note'
-	];
-	$patientCanvasData = json_decode($patient->canvas_data ?? null);
-	$patientIntakeData = null;
-	if($patientCanvasData && @$patientCanvasData->INTAKE_DATA){
-		$patientIntakeData = @$patientCanvasData->INTAKE_DATA;
-	}
+$intakeDataFields = config('patient-intake-data');
+$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">
@@ -28,27 +17,7 @@
 			<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)
-					@if($key == 'stickyNote')
-					<div class="col-md-12 mb-2">
-						<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
-						<textarea name="{{$key}}" class="form-control">{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}</textarea>
-					</div>
-					@elseif($key == 'emailAddress')
-					<div class="col-md-12 mb-2">
-						<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
-						<input name="{{$key}}" class="form-control" value="{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}" />
-					</div>
-					@else
-					<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>
-					@endif
-				@endforeach
-			</div>
-
+			@include('app.patient.intake-data.intake-data-form-fields')
 			<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">
@@ -62,47 +31,56 @@
 <script>
 	(function() {
 		function init() {
-			(function($){
+			(function($) {
 				var patientDataIntake = {
 					form: null,
-					data:{},
+					data: {},
 					showForm: false,
 					patientIntakeData: <?= json_encode($patientIntakeData) ?>,
-					initOnInputChange: function(){
+					initOnInputChange: function() {
 						var self = this;
-						self.form.find('input').change(function(evt){
+						self.form.find('input, textarea').change(function(evt) {
 							var input = evt.target;
 							var name = input.name;
 							var value = input.value;
-							self.data[name] = value;
+							if($(input).is(':checkbox')){
+								var isChecked =input.checked ? true:false;
+								if(isChecked){
+									self.data[name] = value;
+								}else{
+									delete self.data[name];
+								}
+							}else{
+								self.data[name] = value;	
+							}
 							self.updateJsonStringValue();
 						});
 					},
-					updateJsonStringValue: function(){
+					updateJsonStringValue: function() {
 						var self = this;
 						self.form.find('input[name=data]').val(JSON.stringify(self.data));
 					},
-					toggleForm: function(){
+					toggleForm: function() {
 						var target = $('#gridPatientIntakeFormSection');
 						var table = $('#gridPatientIntakeDataDisplay');
-						if(this.showForm){
+						if (this.showForm) {
 							target.removeClass('d-none');
 							table.addClass('d-none');
-						}else{
+						} else {
 							target.addClass('d-none');
 							table.removeClass('d-none');
 						}
 					},
-					setDefaultData: function(){
+					setDefaultData: function() {
 						var self = this;
-						if(!this.patientIntakeData) return;
-						for(var f in this.patientIntakeData){
+						if (!this.patientIntakeData) return;
+						for (var f in this.patientIntakeData) {
 							var value = this.patientIntakeData[f];
 							self.data[f] = value;
 						}
 						self.updateJsonStringValue();
 					},
-					init: function(){
+					init: function() {
 						this.form = $('#gridPatientIntakeDataForm');
 						this.initOnInputChange();
 						this.setDefaultData();

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

@@ -0,0 +1,15 @@
+@foreach($intakeDataFields as $key=>$label)
+	@if($key == 'ethnicity_checkboxes')
+		@foreach($label as $eKey => $eLabel)
+		<tr>
+			<td>{{ $eLabel }}</td>
+			<td>{{ $patientIntakeData ? @$patientIntakeData->{$eKey}:'' }}</td>
+		</tr>
+		@endforeach
+	@else
+	<tr>
+		<td>{{ $label }}</td>
+		<td>{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}</td>
+	</tr>
+	@endif
+@endforeach

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

@@ -0,0 +1,31 @@
+<div class="row">
+	@foreach($intakeDataFields as $key=>$label)
+	@if($key == 'stickyNote')
+	<div class="col-md-12 mb-2">
+		<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
+		<textarea name="{{$key}}" class="form-control">{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}</textarea>
+	</div>
+	@elseif($key == 'emailAddress')
+	<div class="col-md-12 mb-2">
+		<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
+		<input name="{{$key}}" class="form-control" value="{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}" />
+	</div>
+	@elseif($key == 'ethnicity_checkboxes')
+	<div class="col-md-12 mt-2 mb-2">
+		@foreach($label as $eKey => $eLabel)
+		<div class="form-check form-check-inline">
+			<label class="form-check-label">
+				<input name="{{$eKey}}" class="form-check-input" type="checkbox" value="YES">
+				{{$eLabel}}
+			</label>
+		</div>
+		@endforeach
+	</div>
+	@else
+	<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>
+	@endif
+	@endforeach
+</div>

+ 1 - 10
resources/views/app/patient/intake-data/intake-data.blade.php

@@ -1,14 +1,5 @@
 <?php
-	$intakeDataFields = [
-		'height' => 'Height',
-		'weight' => 'Weight',
-		'last_vitamin_d' => 'Last Vitamin D',
-		'ethnicity' => 'Ethnicity',
-		'hypertension' => 'Hypertension',
-		'diabetes' => 'Diabetes',
-		'copd' => 'COPD',
-		'arthritis' => 'Arthritis',
-	];
+	$intakeDataFields = config('patient-intake-data');
 	$patientCanvasData = json_decode($patient->canvas_data ?? null);
 	$patientIntakeData = null;
 	if($patientCanvasData && @$patientCanvasData->INTAKE_DATA){

+ 1 - 6
resources/views/app/patient/intake-data/patient-intake-data-display.blade.php

@@ -3,11 +3,6 @@
 		<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
+		@include('app.patient.intake-data.intake-data-display')
 	</table>
 </div>

+ 14 - 36
resources/views/app/patient/intake-data/patient-intake-data-form.blade.php

@@ -1,16 +1,5 @@
 <?php
-	$intakeDataFields = [
-		'height' => 'Height',
-		'weight' => 'Weight',
-		'last_vitamin_d' => 'Last Vitamin D',
-		'ethnicity' => 'Ethnicity',
-		'hypertension' => 'Hypertension',
-		'diabetes' => 'Diabetes',
-		'copd' => 'COPD',
-		'arthritis' => 'Arthritis',
-		'emailAddress' => 'Email Address',
-		'stickyNote' => 'Sticky Note'
-	];
+	$intakeDataFields = config('patient-intake-data');
 	$patientCanvasData = json_decode($patient->canvas_data ?? null);
 	$patientIntakeData = null;
 	if($patientCanvasData && @$patientCanvasData->INTAKE_DATA){
@@ -38,27 +27,7 @@
 			<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)
-					@if($key == 'stickyNote')
-					<div class="col-md-12 mb-2">
-						<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
-						<textarea name="{{$key}}" class="form-control">{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}</textarea>
-					</div>
-					@elseif($key == 'emailAddress')
-					<div class="col-md-12 mb-2">
-						<label class="text-secondary text-sm font-weight-bold">{{ $label }}</label>
-						<input name="{{$key}}" class="form-control" value="{{ $patientIntakeData ? @$patientIntakeData->{$key}:'' }}" />
-					</div>
-					@else
-					<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>
-					@endif
-				@endforeach
-			</div>
-
+				@include('app.patient.intake-data.intake-data-form-fields')
 			<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">
@@ -80,11 +49,21 @@
 					patientIntakeData: <?= json_encode($patientIntakeData) ?>,
 					initOnInputChange: function(){
 						var self = this;
-						self.form.find('input').change(function(evt){
+						self.form.find('input, textarea').change(function(evt){
 							var input = evt.target;
 							var name = input.name;
 							var value = input.value;
-							self.data[name] = value;
+							if($(input).is(':checkbox')){
+								var isChecked =input.checked ? true:false;
+								if(isChecked){
+									self.data[name] = value;
+								}else{
+									delete self.data[name];
+								}
+							}else{
+								self.data[name] = value;	
+							}
+							
 							self.updateJsonStringValue();
 						});
 					},
@@ -124,7 +103,6 @@
 						for(var f in this.patientIntakeData){
 							var value = this.patientIntakeData[f];
 							self.data[f] = value;
-							console.log({f});
 						}
 						self.updateJsonStringValue();
 					},