Samson Mutunga 3 years ago
parent
commit
e88d5113e2

+ 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>

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

@@ -17,8 +17,8 @@
 ?>
 <div class="d-flex align-items-center pb-2">
 	<h6 class="my-0 font-weight-bold text-secondary mr-2">Client Memos</h6>
-	@include('app.patient.intake-data.patient-intake-data-form',['tableGrid' => true])
+	@include('app.patient.intake-data.grid-patient-intake-data-form')
 </div>
 <div>
-	@include('app.patient.intake-data.patient-intake-data-display')
+	@include('app.patient.intake-data.grid-patient-intake-data-display')
 </div>

+ 8 - 9
resources/views/app/patient/intake-data/patient-intake-data-form.blade.php

@@ -18,22 +18,20 @@
 
 <div id="patient-intake-data-form" visit-moe moe relative wide class="ml-2 hide-inside-popup">
 	<a start show>
-		@if($patientIntakeData && !@$tableGrid)
+		@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(!@$tableGrid)
-			@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
+		@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 && !@$tableGrid ? 'd-none':'' }}">
+		<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">
@@ -112,6 +110,7 @@
 						for(var f in this.patientIntakeData){
 							var value = this.patientIntakeData[f];
 							self.data[f] = value;
+							console.log({f});
 						}
 						self.updateJsonStringValue();
 					},