Explorar o código

문진내역보기

junekeunsong %!s(int64=4) %!d(string=hai) anos
pai
achega
011b14000b

+ 141 - 1
src/main/java/com/lemon/lifecenter/controller/MobileHistoryController.java

@@ -1,16 +1,22 @@
 package com.lemon.lifecenter.controller;
 
+import java.util.ArrayList;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.lemon.lifecenter.common.LifeCenterController;
 import com.lemon.lifecenter.common.LifeCenterSessionController;
+import com.lemon.lifecenter.dto.PatientDTO;
+import com.lemon.lifecenter.service.MobilePatientService;
+import com.lemon.lifecenter.service.PatientService;
 
 @Controller
 @RequestMapping("/mobile")
@@ -18,6 +24,9 @@ public class MobileHistoryController  extends LifeCenterController {
     
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
     
+    @Autowired
+    private MobilePatientService patientService;
+    
     @RequestMapping("/history")
     public ModelAndView history(
             HttpServletRequest request, HttpServletResponse response) {
@@ -33,8 +42,139 @@ public class MobileHistoryController  extends LifeCenterController {
     }
     
     @RequestMapping("/serveyhistory")
-    public ModelAndView serveyhistory() {
+    public ModelAndView serveyhistory(
+            HttpServletRequest request, HttpServletResponse response) {
+        String sesMpIdx  = LifeCenterSessionController.getSession(request, "sesMpIdx");
+        PatientDTO dto = patientService.selectMunjinHistoryOne(sesMpIdx);
+        
+        String hDate = dto.getHospitalizationDate();
+        String cDate = dto.getConfirmationDate();
+        String sDate = dto.getSymptomStartDate();
+        String jumin = dto.getJumin();
+        hDate = hDate.split("-")[0] + "년 " + hDate.split("-")[1] + "월 " + hDate.split("-")[2] + "일";
+        cDate = cDate.split("-")[0] + "년 " + cDate.split("-")[1] + "월 " + cDate.split("-")[2] + "일";
+        sDate = sDate.split("-")[0] + "년 " + sDate.split("-")[1] + "월 " + sDate.split("-")[2] + "일";
+        jumin = jumin.split("-")[0] + "년 " + jumin.split("-")[1] + "월 " + jumin.split("-")[2] + "일";
+        
+        dto.setHospitalizationDate(hDate);
+        dto.setConfirmationDate(cDate);
+        dto.setSymptomStartDate(sDate);
+        dto.setJumin(jumin);
+        
+        String bloodPress = dto.getBloodPressureLevel();
+        if (!bloodPress.equals("")) {
+            String[] bloodPressureLevel = dto.getBloodPressureLevel().split("[|]");
+            dto.setBloodPressureLevelCon(bloodPressureLevel[0]);
+            dto.setBloodPressureLevelRel(bloodPressureLevel[1]);
+        }
+        
+        String strDisease = "";
+        String strSymptom = getSymptom(dto);
+        if (dto.getBasalDiseaseYn().equals("Y")) {
+            strDisease = getDisease(dto);
+        }
+        
         ModelAndView mv = setMobileMV("history/serveyhistory");
+        mv.addObject("info", dto);
+        mv.addObject("disease", strDisease);
+        mv.addObject("symptom", strSymptom);
         return mv;
     }
+    
+    private String getDisease(PatientDTO dto) {
+        String highBloodPressureCheck = dto.getHighBloodPressureCheck().equals("Y") ? "고혈압" : "";
+        String lowBloodPressureCheck = dto.getLowBloodPressureCheck().equals("Y") ? "저혈압" : "";
+        String organTransplantCheck = dto.getOrganTransplantCheck().equals("Y") ? "장기이식(신장, 간 등)" : "";
+        String diabetesCheck = dto.getDiabetesCheck().equals("Y") ? "당뇨" : "";
+        String respiratoryDiseaseCheck = dto.getRespiratoryDiseaseCheck().equals("Y") ? "호흡기질환" : "";
+        String immunologicalDiseaseCheck = dto.getImmunologicalDiseaseCheck().equals("Y") ? "면역질환(류마티스 등)" : "";
+        String heartDisease = dto.getHeartDisease().equals("Y") ? "심장질환" : "";
+        String liverDisease = dto.getLiverDisease().equals("Y") ? "간질환" : "";
+        String operation = dto.getOperation().equals("Y") ? "수술" : "";
+        String allergyCheck = dto.getAllergyCheck().equals("Y") ? "알레르기" : "";
+        String kidneyDisease = dto.getKidneyDisease().equals("Y") ? "신장질환" : "";
+        String cancerCheck = dto.getCancerCheck().equals("Y") ? "암" : "";
+        String etcContent = dto.getEtcContentDisease() == null ? "" : dto.getEtcContentDisease();
+        String ectCheckDisease = dto.getEtcCheckDisease().equals("Y") ? "기타(" + etcContent + ")" : "";
+        
+        ArrayList<String> disease = new ArrayList<String>();
+        disease.add(highBloodPressureCheck);
+        disease.add(lowBloodPressureCheck);
+        disease.add(organTransplantCheck);
+        disease.add(diabetesCheck);
+        disease.add(respiratoryDiseaseCheck);
+        disease.add(immunologicalDiseaseCheck);
+        disease.add(heartDisease);
+        disease.add(liverDisease);
+        disease.add(operation);
+        disease.add(allergyCheck);
+        disease.add(kidneyDisease);
+        disease.add(cancerCheck);
+        disease.add(ectCheckDisease);
+        
+        String strDisease = "";
+        for (int i = 0; i < disease.size(); i++) {
+            String str = disease.get(i);
+            if (!str.equals("")) {
+                strDisease += str;
+                strDisease += ", ";
+            }
+        }
+        
+        strDisease = strDisease.trim();
+        strDisease = strDisease.substring(0, strDisease.length()-1);
+        return strDisease;
+    }
+    
+    private String getSymptom(PatientDTO dto) {
+        String feverCheck = dto.getFeverCheck().equals("Y") ? "열감(열나는 느낌)" : "";
+        String coughCheck = dto.getCoughCheck().equals("Y") ? "기침" : "";
+        String colic = dto.getColic().equals("Y") ? "복통(배아픔)" : "";
+        String coldFitCheck = dto.getColdFitCheck().equals("Y") ? "오한(추운 느낌)" : "";
+        String sputumCheck = dto.getSputumCheck().equals("Y") ? "가래" : "";
+        String ocinCheck = dto.getOcinCheck().equals("Y") ? "오심(구역질)" : "";
+        String chestPain = dto.getChestPain().equals("Y") ? "흉통" : "";
+        String noseCheck = dto.getNoseCheck().equals("Y") ? "콧물 또는 코 막힘" : "";
+        String vomitingCheck = dto.getVomitingCheck().equals("Y") ? "구토" : "";
+        String musclePainCheck = dto.getMusclePainCheck().equals("Y") ? "근육통(몸살)" : "";
+        String soreThroatCheck = dto.getSoreThroatCheck().equals("Y") ? "인후통(목 아픔)" : "";
+        String diarrheaCheck = dto.getDiarrheaCheck().equals("Y") ? "설사" : "";
+        String headacheCheck = dto.getHeadacheCheck().equals("Y") ? "두통(머리아픔)" : "";
+        String dyspneaCheck = dto.getDyspneaCheck().equals("Y") ? "호흡곤란(숨가쁨)" : "";
+        String fatigueCheck = dto.getFatigueCheck().equals("Y") ? "권태감(피로감)" : "";
+        String etcContent = dto.getEtcContentSymptom() == null ? "" : dto.getEtcContentSymptom();
+        String ectCheckSymptom = dto.getEtcCheckSymptom().equals("Y") ? "기타(" + etcContent + ")" : "";
+        
+        String strSymptom = "";
+        ArrayList<String> symptom = new ArrayList<String>();
+        symptom.add(feverCheck);
+        symptom.add(coughCheck);
+        symptom.add(colic);
+        symptom.add(coldFitCheck);
+        symptom.add(sputumCheck);
+        symptom.add(ocinCheck);
+        symptom.add(chestPain);
+        symptom.add(noseCheck);
+        symptom.add(vomitingCheck);
+        symptom.add(musclePainCheck);
+        symptom.add(soreThroatCheck);
+        symptom.add(diarrheaCheck);
+        symptom.add(headacheCheck);
+        symptom.add(dyspneaCheck);
+        symptom.add(fatigueCheck);
+        symptom.add(ectCheckSymptom);
+        
+        for (int i = 0; i < symptom.size(); i++) {
+            String str = symptom.get(i);
+            if (!str.equals("")) {
+                strSymptom += str;
+                strSymptom += ", ";
+            }
+        }
+        
+        strSymptom = strSymptom.trim();
+        strSymptom = strSymptom.substring(0, strSymptom.length() - 1);
+        
+        return strSymptom;
+    }
 }

+ 7 - 7
src/main/java/com/lemon/lifecenter/controller/MobileLoginController.java

@@ -70,13 +70,13 @@ public class MobileLoginController extends LifeCenterController {
             
             LifeCenterSessionController.sessionInvalidate( request );
             
-            LifeCenterSessionController.setSession(request, "sesMpIdx",String.valueOf(dto.getPatientIdx()));
-            LifeCenterSessionController.setSession(request, "sesMId", dto.getId());
-            LifeCenterSessionController.setSession(request, "sesMName", dto.getPatientName());
-            LifeCenterSessionController.setSession(request, "sesMGender", dto.getGender());
-            LifeCenterSessionController.setSession(request, "sesMWardNum", dto.getWardNumber());
-            LifeCenterSessionController.setSession(request, "sesMRoomNum", dto.getRoomNumber());
-            LifeCenterSessionController.setSession(request, "sesMCenterCode", String.valueOf(dto.getCenterCode()));
+            LifeCenterSessionController.setSessionMobile(request, "sesMpIdx",String.valueOf(dto.getPatientIdx()));
+            LifeCenterSessionController.setSessionMobile(request, "sesMId", dto.getId());
+            LifeCenterSessionController.setSessionMobile(request, "sesMName", dto.getPatientName());
+            LifeCenterSessionController.setSessionMobile(request, "sesMGender", dto.getGender());
+            LifeCenterSessionController.setSessionMobile(request, "sesMWardNum", dto.getWardNumber());
+            LifeCenterSessionController.setSessionMobile(request, "sesMRoomNum", dto.getRoomNumber());
+            LifeCenterSessionController.setSessionMobile(request, "sesMCenterCode", String.valueOf(dto.getCenterCode()));
 
             logger.error("dto.getPw()dto.getPw() -- > " + dto.getPw());
             object.put("id", dto.getId());

+ 1 - 1
src/main/java/com/lemon/lifecenter/controller/PatientController.java

@@ -187,7 +187,7 @@ public class PatientController extends LifeCenterController {
         if (!bloodPress.equals("")) {
             String[] bloodPressureLevel = dto.getBloodPressureLevel().split("[|]");
             dto.setBloodPressureLevelCon(bloodPressureLevel[0]);
-            dto.setBloodPressureLevelRel(bloodPressureLevel[0]);
+            dto.setBloodPressureLevelRel(bloodPressureLevel[1]);
         }
         
         String strDisease = "";

+ 1 - 0
src/main/java/com/lemon/lifecenter/mapper/MobilePatientMapper.java

@@ -12,4 +12,5 @@ public interface MobilePatientMapper {
     public PatientDTO selectMPatientInfo(PatientDTO dto);
     public void mobileInsertPatientMunjin(PatientDTO dto);
     public int selectMunJinCount(PatientDTO dto);
+    public PatientDTO selectMunjinHistoryOne(String patientIdx);
 }

+ 4 - 0
src/main/java/com/lemon/lifecenter/service/MobilePatientService.java

@@ -27,4 +27,8 @@ public class MobilePatientService {
     public int selectMunJinCount(PatientDTO dto) {
         return mapper.selectMunJinCount(dto);
     }
+    
+    public PatientDTO selectMunjinHistoryOne(String patientIdx) {
+        return mapper.selectMunjinHistoryOne(patientIdx);
+    }
 }

+ 57 - 1
src/main/resources/mybatis/mapper/mobile/munjin.xml

@@ -24,7 +24,7 @@
                          respiration_rate,   blood_pressure_level,       oxygen_saturation,            pregnancy_status,         pregnancy_week,
                          create_date)
                   VALUE (#{patientIdx},      #{hospitalizationDate},     #{confirmationDate},          #{symptomStartDate},      #{gender},
-                         #{jumin},           #{basalDiseaseYn},          #{highBloodPressureCheck},    #{lowBloodPressureCheck}, #{lowBloodPressureCheck},
+                         #{jumin},           #{basalDiseaseYn},          #{highBloodPressureCheck},    #{lowBloodPressureCheck}, #{organTransplantCheck},
                          #{diabetesCheck},   #{respiratoryDiseaseCheck}, #{immunologicalDiseaseCheck}, #{heartDisease},          #{liverDisease},
                          #{operation},       #{allergyCheck},            #{cancerCheck},               #{etcCheckDisease},       #{etcContentDisease},
                          #{feverCheck},      #{coughCheck},              #{colic},                     #{coldFitCheck},          #{sputumCheck},
@@ -35,4 +35,60 @@
                          NOW())
         ]]>
     </insert>
+    
+    <select id="selectMunjinHistoryOne" parameterType="string" resultType="PatientDTO">
+        <![CDATA[
+            SELECT PATIENT_IDX                                   AS patientIdx,
+                   DATE_FORMAT(HOSPITALIZATION_DATE, '%Y-%m-%d') AS hospitalizationDate,
+                   DATE_FORMAT(CV_CONFIRMATION_DATE, '%Y-%m-%d') AS confirmationDate,
+                   DATE_FORMAT(SYMPTOM_START_DATE, '%Y-%m-%d')   AS symptomStartDate,
+                   GENDER                                        AS gender,
+                   DATE_FORMAT(BIRTHDAY, '%Y-%m-%d')             AS jumin,
+                   BASAL_DISEASE_YN                              AS basalDiseaseYn,
+                   HIGH_BLOOD_PRESSURE_CHECK                     AS highBloodPressureCheck,
+                   LOW_BLOOD_PRESSURE_CHECK                      AS lowBloodPressureCheck,
+                   ORGAN_TRANSPLANT_CHECK                        AS organTransplantCheck,
+                   DIABETES_CHECK                                AS diabetesCheck,
+                   RESPIRATORY_DISEASE_CHECK                     AS respiratoryDiseaseCheck,
+                   IMMUNOLOGICAL_DISEASE_CHECK                   AS immunologicalDiseaseCheck,
+                   HEART_DISEASE                                 AS heartDisease,
+                   LIVER_DISEASE                                 AS liverDisease,
+                   `OPERATION`                                   AS operation,
+                   ALLERGY_CHECK                                 AS allergyCheck,
+                   CANCER_CHECK                                  AS cancerCheck,
+                   DISEASE_ETC                                   AS etcCheckDisease,
+                   DISEASE_ETC_CONTENT                           AS etcContentDisease,
+                   FEVER_CHECK                                   AS feverCheck,
+                   COUGH_CHECK                                   AS coughCheck,
+                   COLIC                                         AS colic,
+                   COLD_FIT_CHECK                                AS coldFitCheck,
+                   SPUTUM_CHECK                                  AS sputumCheck,
+                   OCIN_CHECK                                    AS ocinCheck,
+                   CHEST_PAIN                                    AS chestPain,
+                   NOSE_CHECK                                    AS noseCheck,
+                   VOMITING_CHECK                                AS vomitingCheck,
+                   MUSCLE_PAIN_CHECK                             AS musclePainCheck,
+                   SORE_THROAT_CHECK                             AS soreThroatCheck,
+                   DIARRHEA_CHECK                                AS diarrheaCheck,
+                   HEADACHE_CHECK                                AS headacheCheck,
+                   DYSPNEA_CHECK                                 AS dyspneaCheck,
+                   FATIGUE_CHECK                                 AS fatigueCheck,
+                   SYMPTOM_ETC                                   AS etcCheckSymptom,
+                   SYMPTOM_ETC_CONTENT                           AS etcContentSymptom,
+                   FEVER_RIGHT                                   AS feverRight,
+                   FEVER_LEFT                                    AS feverLeft,
+                   PULSE_RATE                                    AS pulseRate,
+                   RESPIRATION_RATE                              AS respirationRate,
+                   BLOOD_PRESSURE_LEVEL                          AS bloodPressureLevel,
+                   OXYGEN_SATURATION                             AS oxygenSaturation,
+                   DRUG_YN                                       AS drugYn,
+                   DRUG_CONTENT                                  AS drugContent,
+                   PREGNANCY_STATUS                              AS pregnancyStatus,
+                   PREGNANCY_WEEK                                AS pregnancyWeek,
+                   CREATE_DATE                                   AS createDate
+            FROM MUNJIN
+            WHERE 1 = 1
+              AND patient_idx = #{patientIdx}
+        ]]>
+    </select>
 </mapper>

+ 23 - 18
src/main/webapp/WEB-INF/jsp/mobile/history/serveyhistory.jsp

@@ -20,7 +20,7 @@
                         1. 입원일을 입력 하세요.
                     </div>
                     <div class="date">
-                        2020년 11월 11일
+                        <c:out value="${info.hospitalizationDate}" />
                     </div>
                 </div>
                 <div class="part">
@@ -28,7 +28,7 @@
                         2. 코로나 19 확진일을 입력 하세요
                     </div>
                     <div class="date">
-                        2020년 11월 11일
+                        <c:out value="${info.confirmationDate}" />
                     </div>
                 </div>
                 <div class="part">
@@ -36,7 +36,7 @@
                         3. 증상 시작일을 입력 하세요.
                     </div>
                     <div class="date">
-                        2020년 11월 11일
+                        <c:out value="${info.symptomStartDate}" />
                     </div>
                 </div>
                 <div class="part">
@@ -44,7 +44,8 @@
                         4. 성별을 입력하세요.
                     </div>
                     <div class="list">
-                        남자
+                        <c:if test="${info.gender eq 'M'}">남</c:if>
+                        <c:if test="${info.gender eq 'F'}">여</c:if>
                     </div>
                 </div>
                 <div class="part">
@@ -52,7 +53,7 @@
                         5. 생년월일을 입력 하세요
                     </div>
                     <div class="date">
-                        1978년 11월 11일
+                        <c:out value="${info.jumin}" />
                     </div>
                 </div>
                 <div class="part">
@@ -60,7 +61,8 @@
                         6. 기저질환 여부를 체크하세요.
                     </div>
                     <div class="list">
-                        예
+                        <c:if test="${info.basalDiseaseYn eq 'Y'}">예</c:if>
+                        <c:if test="${info.basalDiseaseYn ne 'Y'}">아니오</c:if>
                     </div>
                 </div>
                 <div class="part">
@@ -68,7 +70,7 @@
                         7. 6번의 ”예“인 경우 해당되는 기저질환을 모두 체크해주세요
                     </div>
                     <div class="list">
-                        고혈압, 호흡기질환
+                        <c:out value="${disease}" />
                     </div>
                 </div>
                 <div class="part">
@@ -76,7 +78,7 @@
                         8. 현재 증상을 체크하세요 
                     </div>
                     <div class="list">
-                        기침, 가래
+                        <c:out value="${symptom}" />
                     </div>
                 </div>
                 <div class="part">
@@ -85,10 +87,10 @@
                     </div>
                     <div class="data">
                         <label class="inline">
-                            우측 37.1 ℃
+                            <c:out value="우측 ${info.feverRight} ℃"></c:out>
                         </label>
                         <label class="inline">
-                            좌측 36.5 ℃
+                            <c:out value="좌측 ${info.feverLeft} ℃"></c:out>
                         </label>
                     </div>
                 </div>
@@ -97,7 +99,7 @@
                         10. 맥박수를 입력하세요.
                     </div>
                     <div class="data">
-                        78 회/분
+                        <c:out value="${info.pulseRate} 회/분"></c:out>
                     </div>
                 </div>
                 <div class="part">
@@ -105,7 +107,7 @@
                         11. 호흡수를 입력하세요.
                     </div>
                     <div class="data">
-                        67 회/분
+                        <c:out value="${info.respirationRate} 회/분"></c:out>
                     </div>
                 </div>
                 <div class="part">
@@ -113,7 +115,8 @@
                         12. 혈압을 입력하세요.
                     </div>
                     <div class="data">
-                        수축기 124mmHg / 이완기 13mmHg
+                        <c:out value="수축기 ${info.bloodPressureLevelCon} mmHg  /  이완기 ${info.bloodPressureLevelRel} mmHg" />
+                        
                     </div>
                 </div>
                 <div class="part">
@@ -121,7 +124,7 @@
                         13. 산소포화도를 입력하세요.
                     </div>
                     <div class="data">
-                        78%
+                        <c:out value="${info.oxygenSaturation} %"></c:out>
                     </div>
                 </div>
                 <div class="part">
@@ -129,7 +132,8 @@
                         14. 최근 24시간 이내 약 복용 여부를 체크하세요.
                     </div>
                     <div class="list">
-                        예
+                        <c:if test="${info.drugYn eq 'Y'}">예</c:if>
+                        <c:if test="${info.drugYn ne 'Y'}">아니오</c:if>
                     </div>
                 </div>
                 <div class="part">
@@ -137,7 +141,7 @@
                         15. 14번의 ”예“인 경우 약명을 입력 하세요
                     </div>
                     <div class="data">
-                        후시딘
+                        <c:out value="${info.drugContent}"></c:out>
                     </div>
                 </div>
                 <div class="part">
@@ -145,7 +149,8 @@
                         16. 임신 여부를 체크하세요.
                     </div>
                     <div class="list">
-                        예
+                        <c:if test="${info.pregnancyStatus eq 'Y'}">예</c:if>
+                        <c:if test="${info.pregnancyStatus ne 'Y'}">아니오</c:if>
                     </div>
                 </div>
                 <div class="part">
@@ -154,7 +159,7 @@
                         <span class="mini">(만일 ”아니오“ 경우에는 입력하지 마세요)</span>
                     </div>
                     <div class="data">
-                        임신 주차 : 4주차
+                        <c:out value="임신주차 : ${info.pregnancyWeek}주차"></c:out>
                     </div>
                 </div>
             </div>