huiwon.seo пре 4 година
родитељ
комит
52e2f42bc5

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

@@ -10,6 +10,7 @@ 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.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.servlet.ModelAndView;
@@ -97,21 +98,23 @@ public class PatientController extends LifeCenterController {
     @RequestMapping("/new")
     public ModelAndView patientNew( HttpServletRequest request,HttpServletResponse response ) {
         ModelAndView mv = setMV("patient/new");
-        
+        System.out.println( "dasdsadasdasd : " + request.getParameter( "deviceType" ) );
         String sesCenterCode  = LifeCenterSessionController.getSession( request, "sesCenterCode" );
+        String sesId  = LifeCenterSessionController.getSession( request, "sesId" );
         
         System.out.println( "sesCenterCode: " + sesCenterCode );
         
         // 세션의 센터코드 들고와서 치료센터명 조회후 view 전달
         CenterInfoDTO dto = new CenterInfoDTO();
         dto.setCenterCode( Integer.valueOf( sesCenterCode ) );
+        dto.setStaffId( sesId );
         
         int centerCount   = centerService.selectCenterCount( dto );
         
         String centerName = "";
         
         if( centerCount > 0 ) {
-            centerName = centerService.selectCenterInfo( dto ).getCenterName();
+            centerName = centerService.selectCenterInfoOne( dto ).getCenterName();
         }
         
         System.out.println("centerCount : " + centerCount );
@@ -122,15 +125,43 @@ public class PatientController extends LifeCenterController {
     }
     
     @RequestMapping("/new/insert")
-    public String patientNewInsert() {
-        ModelAndView mv = setMV("patient/info");
+    public String patientNewInsert(
+            @ModelAttribute("dto") final PatientDTO dto,
+            HttpServletRequest request,HttpServletResponse response ) throws Exception {
+        int sesCenterCode = Integer.valueOf( LifeCenterSessionController.getSession( request, "sesCenterCode" ) ) ;
+        String sesId  = LifeCenterSessionController.getSession( request, "sesId" );
+        
+        //patientCare Insert
+        System.out.println( "dto.getJumin().substring(2) : " + dto.getJumin().replace( "-" , "" ).substring(2) );
+        String jumin = dto.getJumin().replace( "-" , "" ).substring(2);
+        
+        dto.setId( dto.getWardNumber().trim() + dto.getRoomNumber().trim() );
+        dto.setPw( LifeCenterFunction.aesEncrypt( config.aesKey, config.IV, jumin ) );
+        dto.setJumin( jumin );
+        dto.setCenterCode( sesCenterCode );
+        dto.setState( "H" ); // H : 입소
+        dto.setCreateBy( sesId );
+        
+        patientService.insertPatientCare( dto );  // 환지 기본정보 insert
+        
+        int patientIdx = dto.getPatientIdx();
+        dto.setPatientIdx( patientIdx );
+        
+        //patientDisease Insert
+        dto.setEtcCheck( dto.getEctCheckDisease() );
+        dto.setEtcContent( dto.getEtcContentDisease() );
+        
+        patientService.insertPatientDisease( dto );
+        
+        
+        //patientSymptom Insert
+        dto.setEtcCheck( dto.getEctCheckSymptom() );
+        dto.setEtcContent( dto.getEtcContentSymptom() );
+        dto.setBloodPressureLevel( dto.getBloodPressureLevelCon() + "|" + dto.getBloodPressureLevelRel() );
         
-        // 트랜잭션
-        // 환자기본정보 insert
-        // 환자 기저질환 여부 insert (예 선택인경우)
-        // 현재증상 insert
+        patientService.insertPatientSymptom( dto );
         
-        return "redirect:/patient/info";
+        return "redirect:/patient/info?patientIdx=" + patientIdx;
     }
 
     @RequestMapping("/info")

+ 70 - 27
src/main/java/com/lemon/lifecenter/dto/PatientDTO.java

@@ -13,7 +13,7 @@ public class PatientDTO {
     private String finamClinicDate;
     private String hospitalizationDate;
     private String state;
-    private String centerCode;
+    private int centerCode;
     private String jumin;
     private String patientPhone;
     private String guardianPhone;
@@ -37,29 +37,33 @@ public class PatientDTO {
     private String pw;
     
     // patient_disease
-    private String highBloodPressureCheck;
-    private String lowBloodPressureCheck;
-    private String organTransplantCheck;
-    private String diabetesCheck;
-    private String respiratoryDiseaseCheck;
-    private String immunologicalDiseaseCheck;
-    private String dyspneaCheck;
-    private String coldFitCheck;
-    private String musclePainCheck;
-    private String headacheCheck;
-    private String soreThroatCheck;
-    private String smellPalateCheck;
-    private String fatigueCheck;
-    private String heartDisease;
-    private String liverDisease;
-    private String operation;
+    private String highBloodPressureCheck="N";
+    private String lowBloodPressureCheck="N";
+    private String organTransplantCheck="N";
+    private String diabetesCheck="N";
+    private String respiratoryDiseaseCheck="N";
+    private String immunologicalDiseaseCheck="N";
+    private String dyspneaCheck="N";
+    private String coldFitCheck="N";
+    private String musclePainCheck="N";
+    private String headacheCheck="N";
+    private String soreThroatCheck="N";
+    private String smellPalateCheck="N";
+    private String fatigueCheck="N";
+    private String heartDisease="N";
+    private String liverDisease="N";
+    private String operation="N";
     private String operationContent;
-    private String allergyCheck;
-    private String kidneyDisease;
-    private String cancerCheck;
+    private String allergyCheck="N";
+    private String kidneyDisease="N";
+    private String cancerCheck="N";
     private String cancerName;
-    private String etcCheck;
+    private String etcCheck="N";
     private String etcContent;
+    private String ectCheckDisease="N";
+    private String ectCheckSymptom="N";
+    private String etcContentDisease;
+    private String etcContentSymptom;
     
     //patient_symptom
     private String feverCheck;
@@ -73,12 +77,12 @@ public class PatientDTO {
     //private String fatigueCheck;
     //private String etcCheck;
     //private String etcContent;
-    private String chestPain;
-    private String noseCheck;
-    private String vomitingCheck;
+    private String chestPain="N";
+    private String noseCheck="N";
+    private String vomitingCheck="N";
     //private String musclePainCheck;
     //private String soreThroatCheck;
-    private String diarrheaCheck;
+    private String diarrheaCheck="N";
     //private String headacheCheck;
     //private String dyspneaCheck;
     private String pulseRate;
@@ -86,10 +90,49 @@ public class PatientDTO {
     private String bloodPressureLevel;
     private String oxygenSaturation;
     
+    private String bloodPressureLevelCon;
+    private String bloodPressureLevelRel;
+    
     private int limit;
     private int limitMax;
     
     
+    public String getBloodPressureLevelCon() {
+        return bloodPressureLevelCon;
+    }
+    public void setBloodPressureLevelCon(String bloodPressureLevelCon) {
+        this.bloodPressureLevelCon = bloodPressureLevelCon;
+    }
+    public String getBloodPressureLevelRel() {
+        return bloodPressureLevelRel;
+    }
+    public void setBloodPressureLevelRel(String bloodPressureLevelRel) {
+        this.bloodPressureLevelRel = bloodPressureLevelRel;
+    }
+    public String getEctCheckDisease() {
+        return ectCheckDisease;
+    }
+    public void setEctCheckDisease(String ectCheckDisease) {
+        this.ectCheckDisease = ectCheckDisease;
+    }
+    public String getEtcContentDisease() {
+        return etcContentDisease;
+    }
+    public void setEtcContentDisease(String etcContentDisease) {
+        this.etcContentDisease = etcContentDisease;
+    }
+    public String getEctCheckSymptom() {
+        return ectCheckSymptom;
+    }
+    public void setEctCheckSymptom(String ectCheckSymptom) {
+        this.ectCheckSymptom = ectCheckSymptom;
+    }
+    public String getEtcContentSymptom() {
+        return etcContentSymptom;
+    }
+    public void setEtcContentSymptom(String etcContentSymptom) {
+        this.etcContentSymptom = etcContentSymptom;
+    }
     public String getFeverCheck() {
         return feverCheck;
     }
@@ -366,10 +409,10 @@ public class PatientDTO {
     public void setState(String state) {
         this.state = state;
     }
-    public String getCenterCode() {
+    public int getCenterCode() {
         return centerCode;
     }
-    public void setCenterCode(String centerCode) {
+    public void setCenterCode(int centerCode) {
         this.centerCode = centerCode;
     }
     public String getJumin() {

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

@@ -18,4 +18,5 @@ public interface CenterMapper {
     public int selectCenterCount(CenterInfoDTO dto);
     public List<CenterInfoDTO> selectCenterList(CenterInfoDTO dto);
     public Integer updateCenterInfo(CenterInfoDTO dto);
+    public CenterInfoDTO selectCenterInfoOne( CenterInfoDTO dto );
 }

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

@@ -39,4 +39,8 @@ public class CenterService {
     public Integer updateCenterInfo(CenterInfoDTO dto) {
         return mapper.updateCenterInfo(dto);
     }
+    
+    public CenterInfoDTO selectCenterInfoOne( CenterInfoDTO dto ) {
+        return mapper.selectCenterInfoOne(dto);
+    }
 }

+ 13 - 0
src/main/resources/mybatis/mapper/center/center.xml

@@ -138,4 +138,17 @@
         ]]>
     </update>
     
+    
+    <select id="selectCenterInfoOne" parameterType="CenterInfoDTO" resultType="CenterInfoDTO">
+        <![CDATA[
+            SELECT CI.CENTER_CODE                                AS centerCode,
+                   CI.CENTER_NAME                                AS centerName,
+                   M.ID                                          AS staffId
+              FROM CENTER_INFO CI
+              LEFT OUTER JOIN MEMBER M
+                ON CI.CENTER_CODE = M.CENTER_CODE
+             WHERE CI.CENTER_CODE = #{centerCode}
+               AND M.ID           = #{staffId}
+        ]]>
+    </select>
 </mapper>

+ 37 - 26
src/main/resources/mybatis/mapper/patient/patient.xml

@@ -71,37 +71,47 @@
     
     
     <insert id="insertPatientCare" parameterType="PatientDTO" useGeneratedKeys="true">
-        INSERT 
-          INTO patient_care
-               ( patient_name,      gender,      ward_number,     room_number,        final_clinic_date,   hospitalization_date, state, 
-                 center_code,       jumin,       patient_phone,   guardian_phone,     symptom_start_date,  confirmation_date,    disisolation_date, 
-                 basal_disease_yn,  drug_yn,     drug_content,    pregnancy_status,   pregnancy_week,      id,                   pw, 
-                 create_date,       update_date, create_by,       update_by)
-                  
-        VALUES ( #{patientName},    #{gender},   #{wardNumber},   #{roomNumber},      NOW(),               NOW(),               #{state}, 
-                 #{centerCode},     #{jumin},    #{patientPhone}, #{guardianPhone},   #{symptomStartDate}, #{confirmationDate}, #{disisolationDate}, 
-                 #{basalDiseaseYn}, #{drugYn},   #{drugContent},  #{pregnancyStatus}, #{pregnancyWeek},    #{id},               #{pw}, 
-                 NOW(),             '',          #{staffId},      '')
+        <selectKey keyProperty="patientIdx" resultType="int" order="AFTER">
+            <![CDATA[
+                SELECT CURRENT_VAL AS patientIdx FROM db_serial WHERE NAME = 'patient_care_ai_patient_idx';
+            ]]>
+        </selectKey>
+        <![CDATA[
+            INSERT 
+              INTO patient_care
+                   ( patient_name,      gender,      ward_number,     room_number,        final_clinic_date,   hospitalization_date, state, 
+                     center_code,       jumin,       patient_phone,   guardian_phone,     symptom_start_date,  confirmation_date,    disisolation_date, 
+                     basal_disease_yn,  drug_yn,     drug_content,    pregnancy_status,   pregnancy_week,      id,                   pw, 
+                     create_date,       create_by,       update_by)
+                      
+            VALUES ( #{patientName},    #{gender},   #{wardNumber},   #{roomNumber},      NOW(),               NOW(),               #{state}, 
+                     #{centerCode},     #{jumin},    #{patientPhone}, #{guardianPhone},   #{symptomStartDate}, #{confirmationDate}, #{disisolationDate}, 
+                     #{basalDiseaseYn}, #{drugYn},   #{drugContent},  #{pregnancyStatus}, #{pregnancyWeek},    #{id},               #{pw}, 
+                     NOW(),             #{createBy},      '')
+        ]]>
     </insert>
     
-    <insert id="insertPatientDiseases" parameterType="PatientDTO" useGeneratedKeys="true">
-        INSERT
-          INTO patient_disease
-               ( patient_idx,                high_blood_pressure_check,    low_blood_pressure_check, organ_transplant_check,  diabetes_check, 
-                 respiratory_disease_check,  immunological_disease_check,  dyspnea_check,            cold_fit_check,          muscle_pain_check,
-                 headache_check,             sore_throat_check,            smell_palate_check,       fatigue_check,           heart_disease,
-                 liver_disease,              [operation],                  operation_content,        allergy_check,           kidney_disease,
-                 cancer_check,               cancer_name,                  etc_check,                etc_content )
-        VALUES ( #{patientIdx},              #{highBloodPressureCheck},    #{lowBloodPressureCheck}, #{organTransplantCheck}, #{diabetesCheck}, 
-                 #{respiratoryDiseaseCheck}, #{immunologicalDiseaseCheck}, #{dyspneaCheck},          #{coldFitCheck},         #{musclePainCheck}, 
-                 #{headacheCheck},           #{soreThroatCheck},           #{smellPalateCheck},      #{fatigueCheck},         #{heartDisease},
-                 #{liverDisease},            #{operation},                 #{operationContent},      #{allergyCheck},         #{kidneyDisease}, 
-                 #{cancerCheck},             #{cancerName},                #{etcCheck},              #{etcContent} )
+    <insert id="insertPatientDisease" parameterType="PatientDTO" useGeneratedKeys="true">
+        <![CDATA[
+            INSERT
+              INTO patient_disease
+                   ( patient_idx,                high_blood_pressure_check,    low_blood_pressure_check, organ_transplant_check,  diabetes_check, 
+                     respiratory_disease_check,  immunological_disease_check,  dyspnea_check,            cold_fit_check,          muscle_pain_check,
+                     headache_check,             sore_throat_check,            smell_palate_check,       fatigue_check,           heart_disease,
+                     liver_disease,              `operation`,                  operation_content,        allergy_check,           kidney_disease,
+                     cancer_check,               cancer_name,                  etc_check,                etc_content )
+            VALUES ( #{patientIdx},              #{highBloodPressureCheck},    #{lowBloodPressureCheck}, #{organTransplantCheck}, #{diabetesCheck}, 
+                     #{respiratoryDiseaseCheck}, #{immunologicalDiseaseCheck}, #{dyspneaCheck},          #{coldFitCheck},         #{musclePainCheck}, 
+                     #{headacheCheck},           #{soreThroatCheck},           #{smellPalateCheck},      #{fatigueCheck},         #{heartDisease},
+                     #{liverDisease},            #{operation},                 #{operationContent},      #{allergyCheck},         #{kidneyDisease}, 
+                     #{cancerCheck},             #{cancerName},                #{etcCheck},              #{etcContent} )
+        ]]>
     </insert>
     
     <insert id="insertPatientSymptom" parameterType="PatientDTO" useGeneratedKeys="true">
+        <![CDATA[
             INSERT 
-              INTO patient_symptom 
+              INTO patient_symptom
                    ( patient_idx,      fever_check,     cough_check,      colic,              cold_fit_check,        sputum_check, 
                      ocin_check,       fever_right,     fever_left,       fatigue_check,      etc_check,             etc_content, 
                      chest_pain,       nose_check,      vomiting_check,   muscle_pain_check,  sore_throat_check,     diarrhea_check, 
@@ -110,6 +120,7 @@
             VALUES ( #{patientIdx},    #{feverCheck},   #{coughCheck},    #{colic},           #{coldFitCheck},       #{sputumCheck}, 
                      #{ocinCheck},     #{feverRight},   #{feverLeft},     #{fatigueCheck},    #{etcCheck},           #{etcContent}, 
                      #{chestPain},     #{noseCheck},    #{vomitingCheck}, #{musclePainCheck}, #{soreThroatCheck},    #{diarrheaCheck}, 
-                     #{headacheCheck}, #{dyspneaCheck}, #{pulseRate},     #{respirationRate}, #{bloodPressureLevel}, #{oxygenSaturation )
+                     #{headacheCheck}, #{dyspneaCheck}, #{pulseRate},     #{respirationRate}, #{bloodPressureLevel}, #{oxygenSaturation} )
+        ]]>
     </insert>
 </mapper>

+ 6 - 5
src/main/webapp/WEB-INF/jsp/patient/new.jsp

@@ -91,6 +91,9 @@ $( function(){
             },
             guardianPhone : {
                 phoneValid : true
+            },
+            jumin : {
+                date : true
             }
         },
         messages : {
@@ -117,7 +120,7 @@ $( function(){
             }
         },
         submitHandler: function(form) {
-//             form.submit();
+            form.submit();
         }
     });
 });
@@ -333,7 +336,7 @@ $( function(){
                                                         </label>
                                                         <label class="form-check form-check-inline">
                                                                 <select class="custom-select" name="pregnancyWeek" id="pregnancyWeek">
-                                                                      <option selected="">임신 주차</option>
+                                                                      <option value="" selected="">임신 주차</option>
                                                                       <c:forEach var="p" begin="1" end="40" step="1">
                                                                           <option value="${p}">${p} 주</option>
                                                                       </c:forEach>
@@ -412,7 +415,7 @@ $( function(){
                                                     <td colspan="3" class="basalDisease">
                                                         <label class="form-check form-check-inline label-readonly-check">
                                                             <input class="form-check-input" name="cancerCheck" type="checkbox" value="Y">
-                                                            <span class="form-check-label">암 ( <input type="text" name="cancerCheck" class="form-control form-control-sm w150"> )</span>
+                                                            <span class="form-check-label">암 ( <input type="text" name="cancerContent" class="form-control form-control-sm w150"> )</span>
                                                         </label>
                                                         <label class="form-check form-check-inline label-readonly-check">
                                                             <input class="form-check-input" name="etcCheckBasal" type="checkbox" value="Y">
@@ -519,8 +522,6 @@ $( function(){
                                                         <input type="text" class="form-control form-control-sm w50" name="bloodPressureLevelCon">)mmHg  
                                                         /  이완기 (
                                                         <input type="text" class="form-control form-control-sm w50" name="bloodPressureLevelRel">)mmHg
-                                                        
-                                                        <input type="text" name="bloodPressureLevel">
                                                     </td>
                                                 </tr>
                                                 <tr>