Browse Source

Merge branch 'cleanup' of https://rav.triplestart.com/tigerphp/stagfe2 into optimization

Samson Mutunga 1 year ago
parent
commit
2984ad2e0c

+ 6 - 0
js-dev/icd-autocomplete.js

@@ -20,11 +20,17 @@
             window.Def.Autocompleter.Event.observeListSelections(dynID, function() {
             window.Def.Autocompleter.Event.observeListSelections(dynID, function() {
                 let autocomp = elem.autocomp, acData = autocomp.getSelectedItemData();
                 let autocomp = elem.autocomp, acData = autocomp.getSelectedItemData();
                 codeElem.val(acData[0].code).trigger('change');
                 codeElem.val(acData[0].code).trigger('change');
+                codeElem[0].dispatchEvent(new Event('input', { bubbles: true })); // trigger native input update
+
                 descElem.val(acData[0].data['name']).attr('title', acData[0].data['name']).trigger('change');
                 descElem.val(acData[0].data['name']).attr('title', acData[0].data['name']).trigger('change');
+                descElem[0].dispatchEvent(new Event('input', { bubbles: true })); // trigger native input update
                 return false;
                 return false;
             });
             });
             $(elem).attr('ac-initialized', 1);
             $(elem).attr('ac-initialized', 1);
         });
         });
+        $('.addICDBtn').on('click', function() { // init dynamic fields
+            return init();
+        });
     }
     }
 
 
     addMCInitializer('icd-autocomplete', init);
     addMCInitializer('icd-autocomplete', init);

+ 6 - 0
public/js/icd-autocomplete.js

@@ -20,11 +20,17 @@
             window.Def.Autocompleter.Event.observeListSelections(dynID, function() {
             window.Def.Autocompleter.Event.observeListSelections(dynID, function() {
                 let autocomp = elem.autocomp, acData = autocomp.getSelectedItemData();
                 let autocomp = elem.autocomp, acData = autocomp.getSelectedItemData();
                 codeElem.val(acData[0].code).trigger('change');
                 codeElem.val(acData[0].code).trigger('change');
+                codeElem[0].dispatchEvent(new Event('input', { bubbles: true })); // trigger native input update
+
                 descElem.val(acData[0].data['name']).attr('title', acData[0].data['name']).trigger('change');
                 descElem.val(acData[0].data['name']).attr('title', acData[0].data['name']).trigger('change');
+                descElem[0].dispatchEvent(new Event('input', { bubbles: true })); // trigger native input update
                 return false;
                 return false;
             });
             });
             $(elem).attr('ac-initialized', 1);
             $(elem).attr('ac-initialized', 1);
         });
         });
+        $('.addICDBtn').on('click', function() { // init dynamic fields
+            return init();
+        });
     }
     }
 
 
     addMCInitializer('icd-autocomplete', init);
     addMCInitializer('icd-autocomplete', init);

+ 1 - 1
resources/views/app/patient/documents.blade.php

@@ -17,7 +17,7 @@
                     </div>
                     </div>
                     <div class="mb-2">
                     <div class="mb-2">
                         <label for="" class="text-sm text-secondary mb-1">File *</label>
                         <label for="" class="text-sm text-secondary mb-1">File *</label>
-                        <input type="file" class="form-control form-control-sm" name="file"
+                        <input type="file" class="form-control form-control-sm" accept="application/pdf, image/*" name="file"
                                value="" placeholder="File" required>
                                value="" placeholder="File" required>
                     </div>
                     </div>
                     <div class="mb-2">
                     <div class="mb-2">

+ 50 - 27
resources/views/app/patient/partials/put-rm-reasons.blade.php

@@ -41,45 +41,28 @@ if($recordType === 'NOTE'){
 	<a start show onclick="return refreshICDs()"><i class="fas fa-edit on-hover-opaque"></i></a>
 	<a start show onclick="return refreshICDs()"><i class="fas fa-edit on-hover-opaque"></i></a>
 	<form url="{{ $submitUrl }}" class="mcp-theme-1">
 	<form url="{{ $submitUrl }}" class="mcp-theme-1">
 		<input type="hidden" name="uid" value="{{$record->uid}}">
 		<input type="hidden" name="uid" value="{{$record->uid}}">
-		<div>
+		<div id="icd{{@$recordType}}Component">
 			<table class="table table-sm table-bordered">
 			<table class="table table-sm table-bordered">
 				<thead class="bg-light">
 				<thead class="bg-light">
 					<tr>
 					<tr>
 						<th class="border-bottom-0">ICD</th>
 						<th class="border-bottom-0">ICD</th>
 						<th class="border-bottom-0">Description</th>
 						<th class="border-bottom-0">Description</th>
+						<th class="border-bottom-0"></th>
 					</tr>
 					</tr>
 				</thead>
 				</thead>
 				<tbody>
 				<tbody>
-					<tr>
+					<tr v-for="(fl,ind) in fields">
 						<td>
 						<td>
-							<input type="text" class="icd-input" icd-autocomplete-code data-target="input[name=reasonIcd1Description]" name="reasonIcd1" value="{{ $rmDisplayData['icd_1']['reason'] }}" placeholder="ICD 1" />
+							<input type="text" required class="icd-input" @change="checkDescription(fl)" icd-autocomplete-code :name="'reasonIcd'+(ind+1)" :data-target="'input[name=reasonIcd'+(ind+1)+'Description]'" v-model="fl.reason" :placeholder="'ICD '+(ind+1)" />
 						</td>
 						</td>
 						<td>
 						<td>
-							<input id="" type="text" class="form-control form-control-sm" icd-autocomplete-description name="reasonIcd1Description" value="{{ $rmDisplayData['icd_1']['description'] }}">
+							<input type="text" class="form-control form-control-sm" icd-autocomplete-description :name="'reasonIcd'+(ind+1)+'Description'" v-model="fl.description">
 						</td>
 						</td>
+						<td><a href="javascript:;" @click.prevent="removeICDCode(fl)" class="text-danger"><i class="fas fa-times-circle"></i></a></td>
 					</tr>
 					</tr>
-					<tr>
-						<td>
-							<input type="text" class="icd-input" icd-autocomplete-code name="reasonIcd2" data-target="input[name=reasonIcd2Description]" value="{{ $rmDisplayData['icd_2']['reason'] }}" placeholder="ICD 2" />
-						</td>
-						<td>
-							<input type="text" class="form-control form-control-sm" icd-autocomplete-description name="reasonIcd2Description" value="{{ $rmDisplayData['icd_2']['description'] }}">
-						</td>
-					</tr>
-					<tr>
-						<td>
-							<input type="text" class="icd-input" icd-autocomplete-code name="reasonIcd3" data-target="input[name=reasonIcd3Description]" value="{{ $rmDisplayData['icd_3']['reason'] }}" placeholder="ICD 3" />
-						</td>
-						<td>
-							<input type="text" class="form-control form-control-sm" icd-autocomplete-description name="reasonIcd3Description" value="{{ $rmDisplayData['icd_3']['description'] }}">
-						</td>
-					</tr>
-					<tr>
-						<td>
-							<input type="text" class="icd-input" icd-autocomplete-code name="reasonIcd4" data-target="input[name=reasonIcd4Description]" value="{{ $rmDisplayData['icd_4']['reason'] }}" placeholder="ICD 4" />
-						</td>
-						<td>
-							<input type="text" class="form-control form-control-sm" icd-autocomplete-description name="reasonIcd4Description" value="{{ $rmDisplayData['icd_4']['description'] }}">
+					<tr v-if="fields.length < 4">
+						<td colspan="3">
+							<a href="javascript:;" @click.prevent="addICDCode" class="btn w-100 py-0 btn-sm addICDBtn">+ Add ICD Code</a>
 						</td>
 						</td>
 					</tr>
 					</tr>
 				</tbody>
 				</tbody>
@@ -97,7 +80,7 @@ if($recordType === 'NOTE'){
 </div>
 </div>
 <script type="text/javascript">
 <script type="text/javascript">
 	function refreshICDs() {
 	function refreshICDs() {
-		if (currentOrder) {
+		if (currentOrder.length) {
 			$('[name=reasonIcd1]').val(currentOrder['reasonIcd1']);
 			$('[name=reasonIcd1]').val(currentOrder['reasonIcd1']);
 			$('[name=reasonIcd1Description]').val(currentOrder['reasonIcd1Description']);
 			$('[name=reasonIcd1Description]').val(currentOrder['reasonIcd1Description']);
 			$('[name=reasonIcd2]').val(currentOrder['reasonIcd2']);
 			$('[name=reasonIcd2]').val(currentOrder['reasonIcd2']);
@@ -108,4 +91,44 @@ if($recordType === 'NOTE'){
 			$('[name=reasonIcd4Description]').val(currentOrder['reasonIcd4Description']);
 			$('[name=reasonIcd4Description]').val(currentOrder['reasonIcd4Description']);
 		}
 		}
 	}
 	}
+	var icdFieldsComponent = new Vue({
+		el: '#icd{{@$recordType}}Component',
+		delimiters: ["@{{","}}"],
+		data: {
+			fields: [{reason:'', description:''}],
+			params: <?= json_encode($rmDisplayData) ?>
+		},
+		methods: {
+			initFields: function() {
+				var self = this;
+				self.fields = [];
+				for (var x = 1; x <= 4; x++) {
+					if(self.params['icd_'+x].reason) {
+						self.fields.push(self.params['icd_'+x])
+					}
+				}
+				if (self.fields.length == 0) {
+					self.fields.push({reason:'', description:''});
+				}
+			},
+			removeICDCode: function(fl) {
+				var self = this;
+				var ind = self.fields.indexOf(fl);
+				self.fields.splice(ind, 1);
+			},
+			checkDescription: function(fl) {
+				if (fl.reason == '') {
+					fl.description = '';
+				}
+			},
+			addICDCode: function(){
+				var self = this;
+				self.fields.push({reason:'', description:''});
+			}
+		},
+		mounted: function() {
+			var self = this;
+			self.initFields();
+		}
+	})
 </script>
 </script>

+ 2 - 1
resources/views/app/pdf/viewer.blade.php

@@ -52,7 +52,8 @@
                             self.render();
                             self.render();
                         }, function (reason) {
                         }, function (reason) {
                             // self.pdfNotFound = reason.message;
                             // self.pdfNotFound = reason.message;
-                            alert(reason.message);
+                            self.preloader(false);
+                            self.parent.html('<img src="'+url+'" class="w-100" />');
                         });
                         });
                     },
                     },
                     preloader: function(show){
                     preloader: function(show){