Browse Source

[진료관리] 임계치 설정에 따른 알람 처리 수정.

sjpark 4 years ago
parent
commit
635fae56b3

+ 11 - 2
src/main/java/com/lemon/lifecenter/controller/ClinicController.java

@@ -166,13 +166,15 @@ public class ClinicController extends LifeCenterController {
 	}
 
 	@RequestMapping("/info")
-	public ModelAndView patientInfo(
+	public ModelAndView patientInfo(HttpServletRequest request,
 			@RequestParam(value = "patientIdx", required = true, defaultValue = "") int patientIdx,
 			@RequestParam(value = "refererSearch", required = false, defaultValue = "") String refererSearch,
 			@RequestParam(value = "refererPage", required = false, defaultValue = "") String refererPage,
       @RequestParam(value = "refererFilter", required = false, defaultValue = "") String refererFilter) {
 
-		// 환자정보
+    String centerCode = LifeCenterSessionController.getSession( request, "sesCenterCode" );
+		
+    // 환자정보
 		PatientDTO patientDto = new PatientDTO();
 		patientDto.setPatientIdx(patientIdx);
 		patientDto = patientService.selectPatientOne(patientDto);
@@ -232,6 +234,12 @@ public class ClinicController extends LifeCenterController {
     // response
     List<PatientPHRHistoryDTO> bloodPressureUnionResult = getBloodPressureUnionResult(patientIdx, bloodPressureResult, pulseRateResult);
 
+
+    // 알람 임계치 정보
+    ClinicConfigurationDTO configDto = new ClinicConfigurationDTO();
+		configDto.setCenterCode(Integer.parseInt(centerCode));
+		configDto = clinicService.selectConfiguration(configDto);
+
 		ModelAndView mv = setMV("clinic/info");
 
 		mv.addObject("patientIdx", patientIdx);
@@ -249,6 +257,7 @@ public class ClinicController extends LifeCenterController {
     mv.addObject("refererSearch", refererSearch);
 		mv.addObject("refererPage", refererPage);
     mv.addObject("refererFilter", refererFilter);
+    mv.addObject("config", configDto);
 
 		return mv;
 	}

+ 22 - 22
src/main/java/com/lemon/lifecenter/dto/PatientPHRLatestDTO.java

@@ -268,38 +268,38 @@ public class PatientPHRLatestDTO {
   public boolean getNeedBloodSugarCheck() {
 		return needCheckValue(this.bloodSugarCreateDate);
 	}
+  private boolean isAlarm(String alarmYn, boolean defaultValue) {
+    boolean useDefaultValue = (alarmYn != "Y") && (alarmYn != "N");
+    return useDefaultValue ? defaultValue : (alarmYn == "Y");
+  }
+
 	public boolean getIsTemperatureWarning() {
-		// if (this.temperature == null) return false;
-		
-		// return this.temperature >= 37.5;
-    return this.temperatureAlarmYN == "Y";
+		if (this.temperature == null) return false;
+
+    return isAlarm(this.temperatureAlarmYN, (this.temperature >= 37.5));
 	}
 	public boolean getIsBloodPressureWarning() {
-		// if (this.systolicBloodPressure == null || this.diastolicBloodPressure == null) return false;
-		
-		// boolean highBP = this.systolicBloodPressure >= 149 || this.diastolicBloodPressure >= 99;
-		// boolean lowBP = this.systolicBloodPressure <= 90 || this.diastolicBloodPressure <= 60;
+
+		if (this.systolicBloodPressure == null || this.diastolicBloodPressure == null) return false;
 		
-		// return highBP || lowBP;
-    return this.systolicBloodPressureAlarmYN == "Y" || this.diastolicBloodPressureAlarmYN == "Y";
+    boolean systolicWarning = isAlarm(this.systolicBloodPressureAlarmYN, (this.systolicBloodPressure <= 90 || this.systolicBloodPressure >= 149));
+    boolean diastolicWarning = isAlarm(this.diastolicBloodPressureAlarmYN, (this.diastolicBloodPressure <= 60 || this.diastolicBloodPressure >= 99));
+    return systolicWarning || diastolicWarning;
 	}
   public boolean getIsPulseRateWarning() {
-		// if (this.pulseRate == null) return false;
-		
-		// return this.pulseRate <= 55 || this.pulseRate >= 110;
-    return this.pulseRateAlarmYN == "Y";
+		if (this.pulseRate == null) return false;
+
+    return isAlarm(this.pulseRateAlarmYN, (this.pulseRate <= 55 || this.pulseRate >= 110));
 	}
 	public boolean getIsOxygenSaturationeWarning() {
-		// if (this.oxygenSaturation == null) return false;
-		
-		// return this.oxygenSaturation <= 94;
-    return this.oxygenSaturationAlarmYN == "Y";
+		if (this.oxygenSaturation == null) return false;
+
+    return isAlarm(this.oxygenSaturationAlarmYN, (this.oxygenSaturation <= 94));
 	}
   public boolean getIsBloodSugarWarning() {
-		// if (this.bloodSugar == null) return false;
-		
-		// return this.bloodSugar <= 70 || this.bloodSugar >= 200;
-    return this.bloodSugarAlarmYN == "Y";
+		if (this.bloodSugar == null) return false;
+
+    return isAlarm(this.bloodSugarAlarmYN, (this.bloodSugar <= 70 || this.bloodSugar >= 200));
 	}
 	public boolean getHasTodaySymptom() {
 		boolean ret = false;

+ 16 - 6
src/main/webapp/WEB-INF/jsp/clinic/info.jsp

@@ -19,32 +19,42 @@ var PHR_VALUE_DEFAULT = {
 	TEMPERATURE: {
 		VALUE: "",
 		MIN: 20,
-		MAX: 50
+    MAX: 50,
+    THRESHOLD: <c:out value="${config.temperatureThreshold}" default="37.5" />
 	},
 	BLOOD_PRESSURE_SYSTOLIC: {
 		VALUE: "",
 		MIN: 50,
-		MAX: 250
+    MAX: 250,
+    THRESHOLDMIN: <c:out value="${config.temperatureThreshold}" default="37.5" />
+    THRESHOLDMAX: <c:out value="${config.temperatureThreshold}" default="37.5" />
 	},
 	BLOOD_PRESSURE_DIASTOLIC: {
 		VALUE: "",
 		MIN: 20,
-		MAX: 160
+    MAX: 160,
+    THRESHOLDMIN: <c:out value="${config.temperatureThreshold}" default="37.5" />
+    THRESHOLDMAX: <c:out value="${config.temperatureThreshold}" default="37.5" />
 	},
 	OXYGEN_SATURATION: {
 		VALUE: "",
 		MIN: 60,
-		MAX: 100
+    MAX: 100,
+    <c:out value="${config.temperatureThreshold}" default="37.5" />
 	},
 	PULSE_RATE: {
 		VALUE: "",
 		MIN: 30,
-		MAX: 200
+    MAX: 200,
+    THRESHOLDMIN: <c:out value="${config.temperatureThreshold}" default="37.5" />
+    THRESHOLDMAX: <c:out value="${config.temperatureThreshold}" default="37.5" />
 	},
 	BLOOD_SUGAR: {
 		VALUE: "",
 		MIN: 10,
-		MAX: 600
+    MAX: 600,
+    THRESHOLDMIN: <c:out value="${config.temperatureThreshold}" default="37.5" />
+    THRESHOLDMAX: <c:out value="${config.temperatureThreshold}" default="37.5" />
 	}
 }
 

+ 2 - 2
src/main/webapp/WEB-INF/jsp/clinic/state.jsp

@@ -164,7 +164,7 @@ function retrieveStateData(page, needInitPagination) {
 						if (result.items.length > 0) {
 							html = "";
 							result.items.forEach(function(d) {
-								var danger = (d.isTemperatureWarning || d.isBloodPressureWarning || d.isOxygenSaturationeWarning) ? "danger" : "";
+								var danger = (d.isTemperatureWarning || d.isBloodPressureWarning || d.isPulseRateWarning || d.isOxygenSaturationeWarning || d.isBloodSugarWarning) ? "danger" : "";
                 
                 var temperatureStep = d.isTemperatureWarning ? "step_two" : "step_one";
                 var bloodPressureStep = d.isBloodPressureWarning ? "step_two" : "step_one";
@@ -619,7 +619,7 @@ $(document).ready(function() {
 															</ul>
 														</div>
 													</div>
-													<div class="stats ${patient.isTemperatureWarning || patient.isBloodPressureWarning || patient.isOxygenSaturationeWarning ? 'danger' : '' }">
+													<div class="stats ${patient.isTemperatureWarning || patient.isBloodPressureWarning || patient.isPulseRateWarning || patient.isOxygenSaturationeWarning || patient.isBloodSugarWarning ? 'danger' : '' }">
 														<ul>
 															<li class="fever ${temperatureStep} ${temperatureCheck}"><c:out value="${patient.temperature != null ? patient.temperature : '--'} ℃ " /></li>
 															<li class="bloodPressure ${bloodPressureStep} ${bloodPressureCheck}"><c:out value='${patient.bloodPressureDisplay} ' /></li>