Samson Mutunga hace 3 años
padre
commit
746665a198

+ 98 - 27
resources/views/app/patient/primary-coverage-manual-determination-medicare-modal.blade.php

@@ -32,10 +32,10 @@
 							<td>
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" :checked="cpc.auto_medicare_is_partbactive == 'YES'" name="manualMedicareIsMatched" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio"  name="manualMedicareIsMatched" value="YES" @click="onInputChange">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMatched" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMatched" value="NO" @click="onInputChange">No</label>
 									</div>
 								</div>
 							</td>
@@ -49,13 +49,13 @@
 							<td>
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" :checked="cpc.auto_medicare_is_partbprimary == 'YES'" name="manualMedicareIsPartBActive" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="YES">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="NO">No</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" value="UNKNOWN">Unknown</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBActive" @click="onInputChange" value="UNKNOWN">Unknown</label>
 									</div>
 								</div>
 							</td>
@@ -71,13 +71,13 @@
 							">
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" v-model="uiState.manualMedicareIsPartBPrimary" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="YES">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" v-model="uiState.manualMedicareIsPartBPrimary" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="NO">No</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" v-model="uiState.manualMedicareIsPartBPrimary" value="UNKNOWN">Unknown</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartBPrimary" @click="onInputChange" value="UNKNOWN">Unknown</label>
 									</div>
 								</div>
 							</td>
@@ -91,13 +91,13 @@
 								</div>
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" v-model="uiState.manualMedicareIsPartCActive" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="YES">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" v-model="uiState.manualMedicareIsPartCActive" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="NO">No</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" v-model="uiState.manualMedicareIsPartCActive" value="UNKNOWN">Unknown</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsPartCActive" @click="onInputChange" value="UNKNOWN">Unknown</label>
 									</div>
 								</div>
 							</td>
@@ -108,13 +108,13 @@
 							<td>
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="YES">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="NO">No</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" value="UNKNOWN">Unknown</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsInpatient" @click="onInputChange" value="UNKNOWN">Unknown</label>
 									</div>
 								</div>
 							</td>
@@ -125,13 +125,13 @@
 							<td>
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="YES">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="NO">No</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" value="UNKNOWN">Unknown</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHospice" @click="onInputChange" value="UNKNOWN">Unknown</label>
 									</div>
 								</div>
 							</td>
@@ -142,13 +142,13 @@
 							<td>
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="YES">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="NO">No</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" value="UNKNOWN">Unknown</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsHomeHealth" @click="onInputChange" value="UNKNOWN">Unknown</label>
 									</div>
 								</div>
 							</td>
@@ -159,13 +159,13 @@
 							<td>
 								<div class="form-group mb-0">
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" value="YES">Yes</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="YES">Yes</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" value="NO">No</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="NO">No</label>
 									</div>
 									<div class="form-check form-check-inline">
-										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" value="UNKNOWN">Unknown</label>
+										<label class="form-check-label"><input class="form-check-input" type="radio" name="manualMedicareIsMsp" @click="onInputChange" value="UNKNOWN">Unknown</label>
 									</div>
 								</div>
 							</td>
@@ -186,7 +186,7 @@
 			</div>
 
 			<div class="form-group text-nowrap mb-0">
-				<button v-if="!processing" class="btn btn-sm btn-primary" type="submit" :disabled="url == ''">Submt</button>
+				<button v-if="!processing" class="btn btn-sm btn-primary" type="submit" :disabled="url == '' || disabled === true">Submt</button>
 				<button v-else class="btn btn-sm btn-primary" type="button"><i class="fas fa-circle-notch fa-spin"></i> Processing...</button>
 			</div>
 		</form>
@@ -201,14 +201,66 @@
 				data: {
 					url: '/api/clientPrimaryCoverage/manualDeterminationForMedicare',
 					uiState: {
-						manualMedicareIsPartBPrimary: '',
-						manualMedicareIsPartCActive: ''
+						manualMedicareIsMatched: null,
+						manualMedicareIsPartBActive: null,
+						manualMedicareIsPartBPrimary: null,
+						manualMedicareIsPartCActive: null,
+						manualMedicareIsInpatient: null,
+						manualMedicareIsHospice: null,						
+						manualMedicareIsHomeHealth: null,
+						manualMedicareIsMsp: null,
+
 					},
 					cpc: <?= json_encode($cpc); ?>,
 					processing: false,
-					response: null
+					response: null,
+					disabled: false
 				},
 				methods: {
+					onInputChange: function(evt){
+						var input = evt.target;
+						var name = input.name;
+						var value = input.value;
+						this.uiState[name] = value;
+						if(value === 'YES') this.uiState.manualMedicareIsMatched = 'YES';
+
+						if(name === 'manualMedicareIsMatched'){
+							if(value === 'NO') this.setUiStateDefaultValue(value);
+						}
+
+						if(name === 'manualMedicareIsPartBActive'){
+							if(value === 'YES') {
+								this.uiState.manualMedicareIsMatched = 'YES';
+							}
+							if(value === 'NO') this.uiState.manualMedicareIsPartBPrimary = 'NO';
+							if(value === 'UNKNOWN') this.uiState.manualMedicareIsPartBPrimary = 'UNKNOWN';
+						}
+						if(name === 'manualMedicareIsPartBPrimary'){
+							if(value === 'YES') {
+								this.uiState.manualMedicareIsMatched = 'YES';
+								this.uiState.manualMedicareIsPartBActive = 'YES';
+							}
+						}
+
+						
+						if(name === 'manualMedicareIsPartCActive'){
+							if(value === 'YES') this.uiState.manualMedicareIsPartBActive = 'NO';
+						}
+
+						if(this.uiState.manualMedicareIsMatched === 'NO') {
+							this.setUiStateDefaultValue('NO');
+							return;
+						}
+
+						this.refreshUi();
+					},
+					setUiStateDefaultValue: function(value){
+						var self = this;
+						for(var fieldName in self.uiState){
+							self.uiState[fieldName] = value;	
+						}
+						self.refreshUi();
+					},
 					submitForm: function(evt) {
 						var self = this;
 						if (self.processing) return;
@@ -234,12 +286,31 @@
 							}
 						}, 'json');
 					},
+					setDefaultData: function(){
+						this.uiState.manualMedicareIsMatched = this.cpc.auto_medicare_is_partbactive;
+						this.uiState.manualMedicareIsPartBActive = this.cpc.auto_medicare_is_partbprimary;
+						this.refreshUi();
+					},
+					refreshUi: function(){
+						var self = this;
+						$("input[type=radio]").prop('checked', false);
+						for(var fieldName in self.uiState){
+							var value = self.uiState[fieldName];
+							if(value){								
+								$("input[name="+ fieldName +"][type=radio][value=" + value + "]").prop('checked', true);
+							}							
+						}
+
+						self.disabled = (self.cpc.auto_medicare_is_partcactive == 'YES' && self.cpc.auto_medicare_is_partbprimary == 'YES') || (self.uiState.manualMedicareIsPartBPrimary == 'YES' && self.uiState.manualMedicareIsPartCActive == 'YES');
+					},
 				},
 				mounted: function() {
+					this.setDefaultData();
 					if (this.cpc.auto_medicare_is_partbprimary == 'YES') {
 						this.uiState.manualMedicareIsPartBPrimary = 'YES';
 						this.uiState.manualMedicareIsPartCActive = 'NO';
 					};
+					this.refreshUi();
 					
 				}
 			});

+ 2 - 2
resources/views/app/patient/primary-coverage.blade.php

@@ -79,11 +79,11 @@
               @endif
             </div>
           </div>
-          {{--
+          
             @php
             dump(json_decode($cpc->toJson(JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)));
             @endphp
-             --}}
+           
         </div>
 
         <div>