ソースを参照

최신데이터 업데이트 로직 수정

maengje 4 年 前
コミット
d0eec597a1

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

@@ -35,7 +35,7 @@ public class PatientPHRLatestDTO {
 	private String symptomYN;
 	
 	private int memoCount;
-	private Date symptomLastDate;	
+	private Date symptomLastDate;
 	private String searchText;	
 	private String sortType;
 	private String[] filterList;
@@ -110,6 +110,9 @@ public class PatientPHRLatestDTO {
 	public Date getTemperatureCreateDate() {
 		return temperatureCreateDate;
 	}
+	public void setTemperatureCreateDate(Date temperatureCreateDate) {
+		this.temperatureCreateDate = temperatureCreateDate;
+	}
 	public String getTemperatureAlarmYN() {
 		return temperatureAlarmYN;
 	}
@@ -125,6 +128,9 @@ public class PatientPHRLatestDTO {
 	public Date getOxygenSaturationCreateDate() {
 		return oxygenSaturationCreateDate;
 	}	
+	public void setOxygenSaturationCreateDate(Date oxygenSaturationCreateDate) {
+		this.oxygenSaturationCreateDate = oxygenSaturationCreateDate;
+	}
 	public String getOxygenSaturationAlarmYN() {
 		return oxygenSaturationAlarmYN;
 	}
@@ -140,6 +146,9 @@ public class PatientPHRLatestDTO {
 	public Date getPulseRateCreateDate() {
 		return pulseRateCreateDate;
 	}	
+	public void setPulseRateCreateDate(Date pulseRateCreateDate) {
+		this.pulseRateCreateDate = pulseRateCreateDate;
+	}
 	public String getPulseRateAlarmYN() {
 		return pulseRateAlarmYN;
 	}
@@ -155,6 +164,9 @@ public class PatientPHRLatestDTO {
 	public Date getSystolicBloodPressureCreateDate() {
 		return systolicBloodPressureCreateDate;
 	}		
+	public void setSystolicBloodPressureCreateDate(Date systolicBloodPressureCreateDate) {
+		this.systolicBloodPressureCreateDate = systolicBloodPressureCreateDate;
+	}
 	public Integer getDiastolicBloodPressure() {
 		return diastolicBloodPressure;
 	}
@@ -164,6 +176,9 @@ public class PatientPHRLatestDTO {
 	public Date getDiastolicBloodPressureCreateDate() {
 		return diastolicBloodPressureCreateDate;
 	}	
+	public void setDiastolicBloodPressureCreateDate(Date diastolicBloodPressureCreateDate) {
+		this.diastolicBloodPressureCreateDate = diastolicBloodPressureCreateDate;
+	}
 	public String getHighBloodPressureAlarmYN() {
 		return highBloodPressureAlarmYN;
 	}
@@ -185,6 +200,9 @@ public class PatientPHRLatestDTO {
 	public Date getBloodSugarCreateDate() {
 		return bloodSugarCreateDate;
 	}	
+	public void setBloodSugarCreateDate(Date bloodSugarCreateDate) {
+		this.bloodSugarCreateDate = bloodSugarCreateDate;
+	}
 	public String getBloodSugarAlarmYN() {
 		return bloodSugarAlarmYN;
 	}
@@ -322,5 +340,5 @@ public class PatientPHRLatestDTO {
 		}
 		
 		return ret;
-	}
+	}	
 }

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

@@ -13,6 +13,12 @@ public interface PatientPHRLatestMapper {
 
 	public void insertPHRLatest(PatientPHRLatestDTO dto);
 	
+	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);
 }

+ 8 - 0
src/main/java/com/lemon/lifecenter/service/ClinicService.java

@@ -28,6 +28,14 @@ public class ClinicService {
 		mapperPHRLatest.insertPHRLatest(dto);
 	}
 	
+	public void selectPHRLatest(PatientPHRLatestDTO dto) {
+		mapperPHRLatest.selectPHRLatest(dto);
+	}
+	
+	public void updatePHRLatest(PatientPHRLatestDTO dto) {
+		mapperPHRLatest.updatePHRLatest(dto);
+	}
+	
 	public int selectPHRLatestCount(PatientPHRLatestDTO dto) {
         return mapperPHRLatest.selectPHRLatestCount(dto);
     }

+ 41 - 12
src/main/java/com/lemon/lifecenter/service/PHRService.java

@@ -1,5 +1,6 @@
 package com.lemon.lifecenter.service;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -33,23 +34,30 @@ public class PHRService {
 	
 	public void insertPHR(PatientPHRHistoryDTO dto) {
 
-    SimpleDateFormat format = new SimpleDateFormat ( "yyyy-MM-dd HH:mm");
-    Date time = new Date();
-    String recordedDate = format.format(time);
-
-    if (dto.getRecordedDate() == null) {
-      dto.setRecordedDate(recordedDate);
-    }
+	    SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
+	    Date time = new Date();
+	    String recordedDateString = format.format(time);
+	
+	    if (dto.getRecordedDate() == null || dto.getRecordedDate().equals("")) {
+	      dto.setRecordedDate(recordedDateString);
+	    }
+	    
 		mapperHistory.insertPHRHistory(dto);
-		
-		// 해당 환자가 속해 있는 센터의 설정 정보 가져오기
+
 		ClinicConfigurationDTO configurationDTO = new ClinicConfigurationDTO();
 		configurationDTO.setPatientIdx(dto.getPatientIdx());
-		configurationDTO = mapperClinicConfiguration.selectConfigurationWithPatient(configurationDTO);
+		configurationDTO = mapperClinicConfiguration.selectConfigurationWithPatient(configurationDTO);		
 		
 		PatientPHRLatestDTO phrLatestDTO = new PatientPHRLatestDTO();
 		phrLatestDTO.setPatientIdx(dto.getPatientIdx());
 		
+		Date recoredDate = new Date();
+		try {			
+			recoredDate = format.parse(dto.getRecordedDate());
+		} catch (ParseException e) {			
+			e.printStackTrace();
+		}
+		
 		switch (dto.getPhrType()) {
 			case "temperature":
 				String temperatureAlarmYN = "N";
@@ -57,6 +65,7 @@ public class PHRService {
 					temperatureAlarmYN = "Y";
 				}
 				phrLatestDTO.setTemperature(dto.getPhrValue());
+				phrLatestDTO.setTemperatureCreateDate(recoredDate);
 				phrLatestDTO.setTemperatureAlarmYN(temperatureAlarmYN);
 				break;
 			case "oxygenSaturation":
@@ -65,6 +74,7 @@ public class PHRService {
 					oxygenSaturationAlarmYN = "Y";
 				}
 				phrLatestDTO.setOxygenSaturation(dto.getPhrValue().intValue());
+				phrLatestDTO.setOxygenSaturationCreateDate(recoredDate);
 				phrLatestDTO.setOxygenSaturationAlarmYN(oxygenSaturationAlarmYN);
 				break;
 			case "pulseRate":
@@ -73,11 +83,14 @@ public class PHRService {
 					pulseRateAlarmYN = "Y";
 				}
 				phrLatestDTO.setPulseRate(dto.getPhrValue().intValue());
+				phrLatestDTO.setPulseRateCreateDate(recoredDate);
 				phrLatestDTO.setPulseRateAlarmYN(pulseRateAlarmYN);
 				break;
 			case "bloodPressure":
 				phrLatestDTO.setSystolicBloodPressure(dto.getPhrValue().intValue());
+				phrLatestDTO.setSystolicBloodPressureCreateDate(recoredDate);
 				phrLatestDTO.setDiastolicBloodPressure(dto.getPhrValue2().intValue());
+				phrLatestDTO.setDiastolicBloodPressureCreateDate(recoredDate);
 				
 				String highBloodPressureAlarmYN = "N";
 				if (dto.getPhrValue().intValue() <= configurationDTO.getSystolicBloodPressureThresholdMax() || dto.getPhrValue2().intValue() >= configurationDTO.getDiastolicBloodPressureThresholdMax()) {
@@ -99,11 +112,27 @@ public class PHRService {
 					bloodSugarAlarmYN = "Y";
 				}
 				phrLatestDTO.setBloodSugar(dto.getPhrValue().intValue());
+				phrLatestDTO.setBloodSugarCreateDate(recoredDate);
 				phrLatestDTO.setBloodSugarAlarmYN(bloodSugarAlarmYN);
 				break;
-		}
+		}		
 		
-		mapperPHRLatest.insertPHRLatest(phrLatestDTO);		
+		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);		
+				}
+			}						
+		}
 	}
 	
 	public int selectPHRHistoryCount(PatientPHRHistoryDTO dto) {

+ 114 - 52
src/main/resources/mybatis/mapper/patient/patientPHRLatest.xml

@@ -3,10 +3,10 @@
 
 <mapper namespace="com.lemon.lifecenter.mapper.PatientPHRLatestMapper">
 	<insert id="insertPHRLatest" parameterType="PatientPHRLatestDTO" useGeneratedKeys="true">
-	<![CDATA[
+		<![CDATA[
 	    INSERT INTO patient_phr_latest (
 	    	patient_idx
-    ]]>
+	    ]]>
 	    <if test='temperature != null and temperature != ""'>
 	    <![CDATA[
    			, temperature, temperature_create_date, temperature_alarm_yn
@@ -47,34 +47,34 @@
    			, symptom_create_date
 	    ]]>
 	    </if>
-    <![CDATA[
+	    <![CDATA[
 		    , create_date
 	    ) VALUE (
 	    	#{patientIdx}
-   	]]>
+	   	]]>
    		<if test='temperature != null and temperature != ""'>
 	    <![CDATA[
-   			, #{temperature}, NOW(), #{temperatureAlarmYN}
+   			, #{temperature}, #{temperatureCreateDate}, #{temperatureAlarmYN}
 	    ]]>
 	    </if>
 	    <if test='oxygenSaturation != null and oxygenSaturation != ""'>
 	    <![CDATA[
-   			, #{oxygenSaturation}, NOW(), #{oxygenSaturationAlarmYN}
+   			, #{oxygenSaturation}, #{oxygenSaturationCreateDate}, #{oxygenSaturationAlarmYN}
 	    ]]>
 	    </if>
 	    <if test='pulseRate != null and pulseRate != ""'>
 	    <![CDATA[
-   			, #{pulseRate}, NOW(), #{pulseRateAlarmYN}
+   			, #{pulseRate}, #{pulseRateCreateDate}, #{pulseRateAlarmYN}
 	    ]]>
 	    </if>
 	    <if test='systolicBloodPressure != null and systolicBloodPressure != ""'>
 	    <![CDATA[
-   			, #{systolicBloodPressure}, NOW()
+   			, #{systolicBloodPressure}, #{systolicBloodPressureCreateDate}
 	    ]]>
 	    </if>
 	    <if test='diastolicBloodPressure != null and diastolicBloodPressure != ""'>
 	    <![CDATA[
-   			, #{diastolicBloodPressure}, NOW()
+   			, #{diastolicBloodPressure}, #{diastolicBloodPressureCreateDate}
 	    ]]>
 	    </if>
 	     <if test='(systolicBloodPressure != null and systolicBloodPressure != "") or (diastolicBloodPressure != null and diastolicBloodPressure != "")'>
@@ -84,7 +84,7 @@
 	    </if>
 	    <if test='bloodSugar != null and bloodSugar != ""'>
 	    <![CDATA[
-   			, #{bloodSugar}, NOW(), #{bloodSugarAlarmYN}
+   			, #{bloodSugar}, #{bloodSugarCreateDate}, #{bloodSugarAlarmYN}
 	    ]]>
 	    </if>
 	    <if test='symptomYN != null and symptomYN != ""'>
@@ -95,8 +95,13 @@
     <![CDATA[
     		, NOW()
 	    )
-	    ON DUPLICATE KEY UPDATE update_date = NOW()
     ]]>
+    </insert>
+    <update id="updatePHRLatest" parameterType="PatientPHRLatestDTO">
+   		<![CDATA[
+		UPDATE patient_phr_latest 
+		SET	update_date = NOW()
+    	]]>
 	    <if test='temperature != null and temperature != ""'>
 	    <![CDATA[
    			, temperature = #{temperature}, temperature_create_date = NOW(), temperature_alarm_yn = #{temperatureAlarmYN}
@@ -106,22 +111,7 @@
 	    <![CDATA[
    			, oxygen_saturation = #{oxygenSaturation}, oxygen_saturation_create_date = NOW(), oxygen_saturation_alarm_yn = #{oxygenSaturationAlarmYN}
 	    ]]>
-	    </if>
-	    <if test='pulseRate != null and pulseRate != ""'>
-	    <![CDATA[
-   			, pulse_rate = #{pulseRate}, pulse_rate_create_date = NOW(), pulse_rate_alarm_yn = #{pulseRateAlarmYN}
-	    ]]>
-	    </if>
-	    <if test='systolicBloodPressure != null and systolicBloodPressure != ""'>
-	    <![CDATA[
-   			, systolic_blood_pressure = #{systolicBloodPressure}, systolic_blood_pressure_create_date = NOW()
-	    ]]>
-	    </if>
-	    <if test='diastolicBloodPressure != null and diastolicBloodPressure != ""'>
-	    <![CDATA[
-   			, diastolic_blood_pressure = #{diastolicBloodPressure}, diastolic_blood_pressure_create_date = NOW()
-	    ]]>
-	    </if>
+	    </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}
@@ -137,7 +127,79 @@
    			, symptom_create_date = NOW()
 	    ]]>
 	    </if>
-	</insert>
+	 	<![CDATA[
+	 	WHERE 1=1
+	 	]]>
+	 		<if test='temperature != null and temperature != ""'>
+		    <![CDATA[
+	   			AND temperature_create_date < #{temperatureCreateDate}
+		    ]]>
+		    </if>
+		    <if test='oxygenSaturation != null and oxygenSaturation != ""'>
+		    <![CDATA[
+	   			AND oxygen_saturation_create_date < #{oxygenSaturationCreateDate}
+		    ]]>
+		    </if>		   
+		    <if test='bloodSugar != null and bloodSugar != ""'>
+		    <![CDATA[
+	   			AND blood_sugar_create_date < #{bloodSugarCreateDate}
+		    ]]>
+		    </if>
+		    <if test='symptomYN != null and symptomYN != ""'>
+		    <![CDATA[
+	   			AND symptom_create_date = NOW()
+	    	]]>
+	    	</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 pulse_rate_create_date < #{pulseRateCreateDate}
+	 	]]>
+	</update>
+	<update id="updatePHRLatestBloodPressure" parameterType="PatientPHRLatestDTO">
+   		<![CDATA[
+		UPDATE patient_phr_latest 
+		SET	update_date = NOW()
+    	]]>
+		<if test='systolicBloodPressure != null and systolicBloodPressure != ""'>
+	    <![CDATA[
+ 			, systolic_blood_pressure = #{systolicBloodPressure}, systolic_blood_pressure_create_date = #{systolicBloodPressureCreateDate}
+	    ]]>
+	    </if>
+	    <if test='diastolicBloodPressure != null and diastolicBloodPressure != ""'>
+	    <![CDATA[
+			, diastolic_blood_pressure = #{diastolicBloodPressure}, diastolic_blood_pressure_create_date = #{diastolicBloodPressureCreateDate}
+	    ]]>
+	    </if>
+	 	<![CDATA[
+	 	WHERE 1=1
+	 	]]>
+	 		<if test='systolicBloodPressure != null and systolicBloodPressure != "" and diastolicBloodPressure = null and diastolicBloodPressure = ""'>
+		    <![CDATA[
+	   			AND 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 < #{diastolicBloodPressureCreateDate}
+		    ]]>
+		    </if>
+		    <if test='systolicBloodPressure != null and systolicBloodPressure != "" and diastolicBloodPressure != null and diastolicBloodPressure != ""'>
+		    <![CDATA[
+	   			AND (systolic_blood_pressure_create_date < #{systolicBloodPressureCreateDate} OR diastolic_blood_pressure_create_date < #{diastolicBloodPressureCreateDate})
+		    ]]>
+		    </if>
+	</update>
+	 <select id="selectPHRLatest" parameterType="PatientPHRLatestDTO" resultType="PatientPHRLatestDTO">
+    <![CDATA[
+   		SELECT patient_idx AS patientIdx
+		FROM patient_phr_latest
+		WHERE patient_idx = #{patientIdx}
+	]]>
+	</select>
     <select id="selectPHRLatestCount" parameterType="PatientPHRLatestDTO" resultType="int">
 	<![CDATA[
 	    SELECT count(*) AS total
@@ -162,62 +224,62 @@
 	                </when>
 	                <when test="filter == 'temperatureBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0)
+	                	((p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'temperatureBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0 OR HOUR(p.temperature_create_date) < 12)
+	                	((p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0 OR HOUR(p.temperature_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodPressureBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0)
+	                	((p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodPressureBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.systolic_blood_pressure_create_date) < 12 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.diastolic_blood_pressure_create_date) < 12)
+	                	((p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.systolic_blood_pressure_create_date) < 12 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.diastolic_blood_pressure_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'pulseRateBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0)
+	                	((p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'pulseRateBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0 OR HOUR(p.pulse_rate_create_date) < 12)
+	                	((p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0 OR HOUR(p.pulse_rate_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'oxygenSaturationBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0)
+	                	((p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'oxygenSaturationBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0 OR HOUR(p.oxygen_saturation_create_date) < 12)
+	                	((p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0 OR HOUR(p.oxygen_saturation_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodSugarBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0)
+	                	((p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodSugarBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0 OR HOUR(p.blood_sugar_create_date) < 12)
+	                	((p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0 OR HOUR(p.blood_sugar_create_date) < 12))
 	                ]]>
 	                </when> 
 	                <when test="filter == 'symptomBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0)
+	                	((p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'symptomBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0 OR HOUR(p.symptom_create_date) < 12)
+	                	((p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0 OR HOUR(p.symptom_create_date) < 12))
 	                ]]>
 	                </when>              
 	        	</choose>     
@@ -283,62 +345,62 @@
 	                </when>
 	                <when test="filter == 'temperatureBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0)
+	                	((p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'temperatureBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0 OR HOUR(p.temperature_create_date) < 12)
+	                	((p.temperature IS NULL) OR (DATEDIFF(p.temperature_create_date, CURDATE()) != 0 OR HOUR(p.temperature_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodPressureBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0)
+	                	((p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodPressureBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.systolic_blood_pressure_create_date) < 12 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.diastolic_blood_pressure_create_date) < 12)
+	                	((p.systolic_blood_pressure IS NULL OR diastolic_blood_pressure IS NULL) OR (DATEDIFF(p.systolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.systolic_blood_pressure_create_date) < 12 OR DATEDIFF(p.diastolic_blood_pressure_create_date, CURDATE()) != 0 OR HOUR(p.diastolic_blood_pressure_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'pulseRateBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0)
+	                	((p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'pulseRateBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0 OR HOUR(p.pulse_rate_create_date) < 12)
+	                	((p.pulse_rate IS NULL) OR (DATEDIFF(p.pulse_rate_create_date, CURDATE()) != 0 OR HOUR(p.pulse_rate_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'oxygenSaturationBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0)
+	                	((p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'oxygenSaturationBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0 OR HOUR(p.oxygen_saturation_create_date) < 12)
+	                	((p.oxygen_saturation IS NULL) OR (DATEDIFF(p.oxygen_saturation_create_date, CURDATE()) != 0 OR HOUR(p.oxygen_saturation_create_date) < 12))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodSugarBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0)
+	                	((p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'bloodSugarBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0 OR HOUR(p.blood_sugar_create_date) < 12)
+	                	((p.blood_sugar IS NULL) OR (DATEDIFF(p.blood_sugar_create_date, CURDATE()) != 0 OR HOUR(p.blood_sugar_create_date) < 12))
 	                ]]>
 	                </when> 
 	                <when test="filter == 'symptomBlank' and timeCriterion == 'AM'" >
 	                <![CDATA[
-	                	(p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0)
+	                	((p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0))
 	                ]]>
 	                </when>
 	                <when test="filter == 'symptomBlank' and timeCriterion == 'PM'" >
 	                <![CDATA[
-	                	(p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0 OR HOUR(p.symptom_create_date) < 12)
+	                	((p.symptom_create_date IS NULL) OR (DATEDIFF(p.symptom_create_date, CURDATE()) != 0 OR HOUR(p.symptom_create_date) < 12))
 	                ]]>
 	                </when>              
 	        	</choose>