Преглед изворни кода

최신데이터 업데이트 쿼리 수정

maengje пре 4 година
родитељ
комит
523d8aac3b

+ 0 - 2
src/main/java/com/lemon/lifecenter/mapper/PatientPHRLatestMapper.java

@@ -16,8 +16,6 @@ public interface PatientPHRLatestMapper {
 	public PatientPHRLatestDTO selectPHRLatest(PatientPHRLatestDTO dto);
 	
 	public void updatePHRLatest(PatientPHRLatestDTO dto);
-	public void updatePHRLatestPulseRate(PatientPHRLatestDTO dto);
-	public void updatePHRLatestBloodPressure(PatientPHRLatestDTO dto);
 	
 	public int selectPHRLatestCount(PatientPHRLatestDTO dto);
 	public List<PatientPHRLatestDTO> selectPHRLatestList(PatientPHRLatestDTO dto);

+ 3 - 13
src/main/java/com/lemon/lifecenter/service/PHRService.java

@@ -90,7 +90,7 @@ public class PHRService {
 				phrLatestDTO.setSystolicBloodPressure(dto.getPhrValue().intValue());
 				phrLatestDTO.setSystolicBloodPressureCreateDate(recoredDate);
 				phrLatestDTO.setDiastolicBloodPressure(dto.getPhrValue2().intValue());
-				phrLatestDTO.setDiastolicBloodPressureCreateDate(recoredDate);
+				phrLatestDTO.setDiastolicBloodPressureCreateDate(recoredDate);				
 				
 				String highBloodPressureAlarmYN = "N";
 				if (dto.getPhrValue().intValue() <= configurationDTO.getSystolicBloodPressureThresholdMax() || dto.getPhrValue2().intValue() >= configurationDTO.getDiastolicBloodPressureThresholdMax()) {
@@ -120,18 +120,8 @@ public class PHRService {
 		PatientPHRLatestDTO patient = mapperPHRLatest.selectPHRLatest(phrLatestDTO);
 		if (patient == null) {
 			mapperPHRLatest.insertPHRLatest(phrLatestDTO);		
-		} else {
-			if (phrLatestDTO.getPulseRate() == null && phrLatestDTO.getSystolicBloodPressure() == null && phrLatestDTO.getDiastolicBloodPressure() == null) {
-				mapperPHRLatest.updatePHRLatest(phrLatestDTO);
-			} else {
-				if (phrLatestDTO.getPulseRate() != null) {
-					mapperPHRLatest.updatePHRLatestPulseRate(phrLatestDTO);		
-				}
-				
-				if (phrLatestDTO.getSystolicBloodPressure() != null || phrLatestDTO.getDiastolicBloodPressure() != null) {
-					mapperPHRLatest.updatePHRLatestBloodPressure(phrLatestDTO);		
-				}
-			}						
+		} else {			
+			mapperPHRLatest.updatePHRLatest(phrLatestDTO);					
 		}
 	}
 	

+ 64 - 35
src/main/resources/mybatis/mapper/patient/patientPHRLatest.xml

@@ -103,30 +103,44 @@
 		SET	update_date = NOW()
     	]]>
 	    <if test='temperature != null and temperature != ""'>
-	    <![CDATA[
-   			, temperature = #{temperature}, temperature_create_date = NOW(), temperature_alarm_yn = #{temperatureAlarmYN}
-	    ]]>
-	    </if>
-	    <if test='oxygenSaturation != null and oxygenSaturation != ""'>
-	    <![CDATA[
-   			, oxygen_saturation = #{oxygenSaturation}, oxygen_saturation_create_date = NOW(), oxygen_saturation_alarm_yn = #{oxygenSaturationAlarmYN}
-	    ]]>
-	    </if>	   
-	    <if test='(systolicBloodPressure != null and systolicBloodPressure != "") or (diastolicBloodPressure != null and diastolicBloodPressure != "")'>
-	    <![CDATA[
-   			, high_blood_pressure_alarm_yn = #{highBloodPressureAlarmYN}, low_blood_pressure_alarm_yn = #{lowBloodPressureAlarmYN}
-	    ]]>
-	    </if>
-	    <if test='bloodSugar != null and bloodSugar != ""'>
-	    <![CDATA[
-   			, blood_sugar = #{bloodSugar}, blood_sugar_create_date = NOW(), blood_sugar_alarm_yn = #{bloodSugarAlarmYN}
-	    ]]>
-	    </if>
-	    <if test='symptomYN != null and symptomYN != ""'>
-	    <![CDATA[
-   			, symptom_create_date = NOW()
-	    ]]>
-	    </if>
+		<![CDATA[
+		, temperature = #{temperature}, temperature_create_date = #{temperatureCreateDate}, temperature_alarm_yn = #{temperatureAlarmYN}
+		]]>
+		</if>
+		<if test='oxygenSaturation != null and oxygenSaturation != ""'>
+		<![CDATA[
+		, oxygen_saturation = #{oxygenSaturation}, oxygen_saturation_create_date = #{oxygenSaturationCreateDate}, oxygen_saturation_alarm_yn = #{oxygenSaturationAlarmYN}
+		]]>
+		</if>
+		<if test='pulseRate != null and pulseRate != ""'>
+		<![CDATA[
+		, pulse_rate = #{pulseRate}, pulse_rate_create_date = #{pulseRateCreateDate}, pulse_rate_alarm_yn = #{pulseRateAlarmYN}
+		]]>
+		</if>
+		<if test='systolicBloodPressure != null and systolicBloodPressure != ""'>
+		<![CDATA[
+		, systolic_blood_pressure = #{systolicBloodPressure}, systolic_blood_pressure_create_date = #{systolicBloodPressureCreateDate}
+		]]>
+		</if>
+		<if test='diastolicBloodPressure != null'>
+		<![CDATA[
+		, diastolic_blood_pressure = #{diastolicBloodPressure}, diastolic_blood_pressure_create_date = #{diastolicBloodPressureCreateDate}
+		]]>
+		</if>
+		<if test='(systolicBloodPressure != null and systolicBloodPressure != "") or (diastolicBloodPressure != null and diastolicBloodPressure != "")'>
+		<![CDATA[
+		, high_blood_pressure_alarm_yn = #{highBloodPressureAlarmYN}, low_blood_pressure_alarm_yn = #{lowBloodPressureAlarmYN}
+		]]>
+		</if>
+		<if test='bloodSugar != null and bloodSugar != ""'>
+		<![CDATA[
+		, blood_sugar = #{bloodSugar}, blood_sugar_create_date = #{bloodSugarCreateDate}, blood_sugar_alarm_yn = #{bloodSugarAlarmYN}
+		]]>
+		</if>
+		<if test='symptomYN != null and symptomYN != ""'>
+		<![CDATA[ 
+		, symptom_create_date = NOW() ]]>
+		</if>
 	 	<![CDATA[
 	 	WHERE patient_idx = #{patientIdx}
 	 	]]>
@@ -145,17 +159,27 @@
 	   			AND (blood_sugar_create_date IS NULL OR blood_sugar_create_date < #{bloodSugarCreateDate})
 		    ]]>
 		    </if>		   
-	</update>
-	<update id="updatePHRLatestPulseRate" parameterType="PatientPHRLatestDTO">
-   		<![CDATA[
-		UPDATE patient_phr_latest 
-		SET	update_date = NOW()
-   			, pulse_rate = #{pulseRate}, pulse_rate_create_date = NOW(), pulse_rate_alarm_yn = #{pulseRateAlarmYN}   
-	 	WHERE patient_idx = #{patientIdx} 
- 		AND 
- 			(pulse_rate_create_date IS NULL OR pulse_rate_create_date < #{pulseRateCreateDate})
-	 	]]>
-	</update>
+		    <if test='pulseRate != null and pulseRate != ""'>
+		    <![CDATA[
+				AND (pulse_rate_create_date IS NULL OR pulse_rate_create_date < #{pulseRateCreateDate})
+		    ]]>
+		    </if>
+		    <if test='systolicBloodPressure != null and systolicBloodPressure != "" and diastolicBloodPressure == null and diastolicBloodPressure == ""'>
+		    <![CDATA[
+			AND (systolic_blood_pressure_create_date IS NULL OR systolic_blood_pressure_create_date < #{systolicBloodPressureCreateDate})
+		    ]]>
+		    </if>
+		    <if test='diastolicBloodPressure != null and diastolicBloodPressure != "" and systolicBloodPressure == null and systolicBloodPressure == ""'>
+		    <![CDATA[
+	   		AND (diastolic_blood_pressure_create_date IS NULL OR diastolic_blood_pressure_create_date < #{diastolicBloodPressureCreateDate})
+		    ]]>
+		    </if>
+		    <if test='systolicBloodPressure != null and systolicBloodPressure != "" and diastolicBloodPressure != null and diastolicBloodPressure != ""'>
+		    <![CDATA[
+	   		AND (systolic_blood_pressure_create_date IS NULL OR systolic_blood_pressure_create_date < #{systolicBloodPressureCreateDate} OR diastolic_blood_pressure_create_date IS NULL OR diastolic_blood_pressure_create_date < #{diastolicBloodPressureCreateDate})
+		    ]]>
+		    </if>
+	</update>	
 	<update id="updatePHRLatestBloodPressure" parameterType="PatientPHRLatestDTO">
    		<![CDATA[
 		UPDATE patient_phr_latest 
@@ -170,6 +194,11 @@
 	    <![CDATA[
 			, diastolic_blood_pressure = #{diastolicBloodPressure}, diastolic_blood_pressure_create_date = #{diastolicBloodPressureCreateDate}
 	    ]]>
+	    <if test='(systolicBloodPressure != null and systolicBloodPressure != "") or (diastolicBloodPressure != null and diastolicBloodPressure != "")'>
+	    <![CDATA[
+   			, high_blood_pressure_alarm_yn = #{highBloodPressureAlarmYN}, low_blood_pressure_alarm_yn = #{lowBloodPressureAlarmYN}
+	    ]]>
+	    </if>
 	    </if>
 	 	<![CDATA[
 	 	WHERE patient_idx = #{patientIdx}