Forráskód Böngészése

Merge remote-tracking branch 'origin/databank'

huiwon.seo 4 éve
szülő
commit
9e27163e03

+ 2 - 2
src/main/resources/application.properties

@@ -6,8 +6,8 @@ spring.mvc.view.suffix=.jsp
 #spring.datasource.driver-class-name=cubrid.jdbc.driver.CUBRIDDriver
 #spring.datasource.url=jdbc:cubrid:localhost:30000:LIFE_CENTER:::?charset=UTF-8
 spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-#spring.datasource.url=jdbc:log4jdbc:cubrid:61.97.184.187:30000:LIFE_CENTER:::?charset=UTF-8
-spring.datasource.url=jdbc:log4jdbc:cubrid:localhost:30000:LIFE_CENTER:::?charset=UTF-8
+spring.datasource.url=jdbc:log4jdbc:cubrid:61.97.184.187:30000:LIFE_CENTER:::?charset=UTF-8
+#spring.datasource.url=jdbc:log4jdbc:cubrid:localhost:30000:LIFE_CENTER:::?charset=UTF-8
 
 spring.datasource.username=dba
 spring.datasource.password=#zo240s!

+ 7 - 7
src/main/resources/mybatis/mapper/patient/patient.xml

@@ -58,9 +58,9 @@
                    (SELECT TRUNC((SYSDATE-TO_DATE(JUMIN, 'YYYYMMDD'))/365) + 1) AS age,
                    ward_number                                                        AS wardNumber,
                    room_number                                                        AS roomNumber,
-                   DATE_FORMAT(FINAL_CLINIC_DATE, '%Y-%m-%d %H:%i')                   AS finamClinicDate,
-                   DATE_FORMAT(HOSPITALIZATION_DATE, '%Y-%m-%d %H:%i')                AS hospitalizationDate,
-                   DATE_FORMAT(DISISOLATION_DATE, '%Y-%m-%d %H:%i')                   AS disisolationDate,
+                   DATE_FORMAT(FINAL_CLINIC_DATE, '%Y-%m-%d')                          AS finamClinicDate,
+                   DATE_FORMAT(HOSPITALIZATION_DATE, '%Y-%m-%d')                       AS hospitalizationDate,
+                   DATE_FORMAT(DISISOLATION_DATE, '%Y-%m-%d')                          AS disisolationDate,
                    CASE WHEN STATE = 'H' THEN '입소'
                         WHEN STATE = 'D' THEN '퇴소'
                         WHEN STATE = 'T' THEN '지정병원 이송'
@@ -187,15 +187,15 @@
                    PC.WARD_NUMBER AS wardNumber,
                    PC.ROOM_NUMBER AS roomNumber,
                    PC.FINAL_CLINIC_DATE AS finalClinicDate,
-                   DATE_FORMAT(PC.HOSPITALIZATION_DATE, '%Y-%m-%d %H:%i') AS hospitalizationDate,
+                   DATE_FORMAT(PC.HOSPITALIZATION_DATE, '%Y-%m-%d') AS hospitalizationDate,
                    PC.STATE AS state,
                    PC.CENTER_CODE AS centerCode,
                    PC.JUMIN AS jumin,
                    PC.PATIENT_PHONE AS patientPhone,
                    PC.GUARDIAN_PHONE AS guardianPhone,
-                   DATE_FORMAT(PC.SYMPTOM_START_DATE, '%Y-%m-%d %H:%i') AS symptomStartDate,
-                   DATE_FORMAT(PC.CONFIRMATION_DATE, '%Y-%m-%d %H:%i') AS confirmationDate,
-                   DATE_FORMAT(PC.DISISOLATION_DATE, '%Y-%m-%d %H:%i') AS disisolationDate,
+                   DATE_FORMAT(PC.SYMPTOM_START_DATE, '%Y-%m-%d') AS symptomStartDate,
+                   DATE_FORMAT(PC.CONFIRMATION_DATE, '%Y-%m-%d') AS confirmationDate,
+                   DATE_FORMAT(PC.DISISOLATION_DATE, '%Y-%m-%d') AS disisolationDate,
                    PC.BASAL_DISEASE_YN AS basalDiseaseYn,
                    PC.DRUG_YN AS drugYn,
                    PC.DRUG_CONTENT AS drugContent,

+ 26 - 48
src/main/webapp/WEB-INF/jsp/patient/edit.jsp

@@ -59,19 +59,7 @@ function setEventHandler(){
         }
     });
     
-    //입소일시
-    $( ".hospitalizationDate" ).on( "change", function(){
-        var ymd  = $( "#hospitalizationDateYmd" ).val();
-        var hour = $( "#hospitalizationDateHour" ).val();
-        var min  = $( "#hospitalizationDateMin" ).val();
-        
-        hour = Number(hour) < 10 ? "0" + hour : hour;
-        min  = Number(min) < 10 ? "0" + min   : min;
-        
-        $( "#hospitalizationDate" ).val( ymd + " " + hour + ":" + min + ":00" );
-    });
-    
-  //성별 남선택시 임신유무 고정
+    //성별 남선택시 임신유무 고정
     $( "input[name='gender']" ).on( "click", function(){
         var gender = $( this ).val();
         console.log( gender );
@@ -85,29 +73,15 @@ function setEventHandler(){
             $( "input[name='pregnancyStatus']:input[value='Y']" ).prop( "disabled", false );
         }
     });
-  
-    //생년월일
-    $( ".select-date" ).on( "change", function(){
-        var $this = $( this );
-        var wrap  = $this.closest( "div.date" );
-        
-        var dateYear  = wrap.find( ".date-year" ).val();
-        var dateMonth = wrap.find( ".date-month" ).val();
-        var dateDay   = wrap.find( ".date-day" ).val();
-        
-        dateMonth = Number(dateMonth) < 10 ? "0" + dateMonth : dateMonth;
-        dateDay   = Number(dateDay) < 10   ? "0" + dateDay   : dateDay;
-        
-        wrap.find( "input.error-box" ).val( dateYear  + "-" + dateMonth  + "-" + dateDay );
-    });
-    
     
     $( "input.date" ).daterangepicker({
         singleDatePicker : true,
         showDropdowns : true,
         locale : {
             format : "YYYY-MM-DD"
-        }
+        },
+        maxDate : new Date(),
+        minDate : "1900-01-01"
     });
     
     $( "input.date-no-req" ).daterangepicker({
@@ -116,10 +90,10 @@ function setEventHandler(){
         locale : {
             format : "YYYY-MM-DD"
         },
-        autoUpdateInput: false
-    });
-    
-    $('input.date-no-req').on('apply.daterangepicker', function(ev, picker) {
+        autoUpdateInput: false,
+        maxDate : new Date(),
+        minDate : "1900-01-01"
+    }).on( "apply.daterangepicker", function( ev, picker ) {
         $(this).val(picker.startDate.format('YYYY-MM-DD'));
     });
     
@@ -143,12 +117,14 @@ $( function(){
     setEventHandler();
     stateCheck();
     $( ".hospitalizationDate" ).trigger( "change" );
-    $( ".select-date" ).trigger( "change" );
+//     $( ".select-date" ).trigger( "change" );
     
     $( "#patientForm" ).validate({
         rules: {
             hospitalizationDate : {
-                date : true
+                minDate : true,
+                date : true,
+                maxDate : true
             },
             patientPhone : {
                 phoneValid : true
@@ -157,13 +133,19 @@ $( function(){
                 phoneValid : true
             },
             jumin : {
-                date : true
+                minDate : true,
+                date : true,
+                maxDate : true
             },
             symptomStartDate : {
-            	date : true
+                minDate : true,
+                maxDate : true,
+                date : true
             },
             disisolationDate : {
-            	date : true
+                minDate : true,
+                date : true,
+                maxDate : true
             }
         },
         messages : {
@@ -250,12 +232,12 @@ $( function(){
                                                     <td><c:out value="${centerName}"/></td>
                                                     <th><span class="fix">*</span>입소일시</th>
                                                     <td colspan="2">
-                                                        <fmt:parseDate var="hospitalizationDate" value="${patientData.hospitalizationDate}" pattern="yyyy-MM-dd HH:mm" />
+                                                        <fmt:parseDate var="hospitalizationDate" value="${patientData.hospitalizationDate}" pattern="yyyy-MM-dd" />
                                                         <c:set var="sysYmd"><fmt:formatDate value="${hospitalizationDate}" pattern="yyyy-MM-dd" /></c:set>
                                                             
                                                         <!-- 입소일시 -->
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <input class="form-control date hospitalizationDate" type="text" value="${sysYmd}" name="hospitalizationDate" id="hospitalizationDateYmd">
+                                                            <input class="form-control date hospitalizationDate" type="text" value="${sysYmd}" name="hospitalizationDate" id="hospitalizationDateYmd" onKeyup="inputYMDNumber(this);">
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>
@@ -315,16 +297,14 @@ $( function(){
                                                     <th>증상시작일</th>
                                                     <td>
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <fmt:parseDate var="symptomStartDateTime" value="${patientData.symptomStartDate}" pattern="yyyy-MM-dd HH:mm" />
-                                                            <c:set var="symptomStartDate"><fmt:formatDate value="${symptomStartDateTime}" pattern="yyyy-MM-dd" /></c:set>
-                                                            <input class="form-control date-no-req" type="text" value="${symptomStartDate}" name="symptomStartDate" autocomplete="off">
+                                                            <input class="form-control date-no-req" type="text" value="${patientData.symptomStartDate}" name="symptomStartDate" onKeyup="inputYMDNumber(this);" autocomplete="off">
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>
                                                     <th><span class="fix">*</span>확진일</th>
                                                     <td>
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <input class="form-control date" type="text" value="${patientData.confirmationDate}" name="confirmationDate" autocomplete="off">
+                                                            <input class="form-control date" type="text" value="${patientData.confirmationDate}" name="confirmationDate" onKeyup="inputYMDNumber(this);" autocomplete="off">
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>
@@ -336,9 +316,7 @@ $( function(){
                                                         <div class="form-group calendar-bar mb-xl-0" style="position:relative;">
                                                             <div id="state-label" style="position:absolute;top:5px;left:90px;"></div>
                                                             
-                                                            <fmt:parseDate var="disisolationDateTime" value="${patientData.disisolationDate}" pattern="yyyy-MM-dd HH:mm" />
-                                                            <c:set var="disisolationDate"><fmt:formatDate value="${disisolationDateTime}" pattern="yyyy-MM-dd" /></c:set>
-                                                            <input class="form-control date-no-req" type="text" value="${disisolationDate}" name="disisolationDate" autocomplete="off">
+                                                            <input class="form-control date-no-req" type="text" value="${patientData.disisolationDate}" name="disisolationDate" onKeyup="inputYMDNumber(this);" autocomplete="off">
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>

+ 4 - 4
src/main/webapp/WEB-INF/jsp/patient/info.jsp

@@ -65,7 +65,7 @@ function deleteConfirm(){
                                                 <td><c:out value="${info.centerName}" /></td>
                                                 <th>입소일시</th>
                                                 <td colspan="2">
-                                                    <fmt:parseDate var="hDate" value="${info.hospitalizationDate}" pattern="yyyy-MM-dd HH:mm" />
+                                                    <fmt:parseDate var="hDate" value="${info.hospitalizationDate}" pattern="yyyy-MM-dd" />
                                                     <c:set var="hospitalizationDate"><fmt:formatDate value="${hDate}" pattern="yyyy년 MM월 dd일" /></c:set>
                                                     <c:out value="${hospitalizationDate}" />
     <%--                                                 <c:out value="${info.hospitalizationDate}" /> --%>
@@ -112,13 +112,13 @@ function deleteConfirm(){
                                             <tr>
                                                 <th>증상시작일</th>
                                                 <td>
-                                                    <fmt:parseDate var="symptomStartDateTime" value="${info.symptomStartDate}" pattern="yyyy-MM-dd HH:mm" />
+                                                    <fmt:parseDate var="symptomStartDateTime" value="${info.symptomStartDate}" pattern="yyyy-MM-dd" />
                                                     <c:set var="symptomStartDate"><fmt:formatDate value="${symptomStartDateTime}" pattern="yyyy년 MM월 dd일" /></c:set>
                                                     <c:out value="${symptomStartDate}" />
                                                 </td>
                                                 <th>확진일</th>
                                                 <td>
-                                                    <fmt:parseDate var="confirmationDateTime" value="${info.confirmationDate}" pattern="yyyy-MM-dd HH:mm" />
+                                                    <fmt:parseDate var="confirmationDateTime" value="${info.confirmationDate}" pattern="yyyy-MM-dd" />
                                                     <c:set var="confirmationDate"><fmt:formatDate value="${confirmationDateTime}" pattern="yyyy년 MM월 dd일" /></c:set>
                                                     <c:out value="${confirmationDate}" />
                                                 </td>
@@ -127,7 +127,7 @@ function deleteConfirm(){
     <!--                                             <th>격리해제 예정일</th> -->
                                                 <th>상태 변경일</br>(퇴소, 지정병원이송, 기타)</th>
                                                 <td>
-                                                    <fmt:parseDate var="disisolationDateTime" value="${info.disisolationDate}" pattern="yyyy-MM-dd HH:mm" />
+                                                    <fmt:parseDate var="disisolationDateTime" value="${info.disisolationDate}" pattern="yyyy-MM-dd" />
                                                     <c:set var="disisolationDate"><fmt:formatDate value="${disisolationDateTime}" pattern="yyyy년 MM월 dd일" /></c:set>
                                                     <c:out value="${disisolationDate}" />
                                                     <c:if test="${info.state eq 'D'}">(퇴소)</c:if>

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

@@ -75,10 +75,10 @@ $(function() {
     $( "#searchForm" ).validate({
         rules: {
             startDate : {
-                date : true
+                //date : true
             },
             endDate : {
-                date : true
+                //date : true
             }
         },
         onkeyup: function( element, event ) {
@@ -155,12 +155,12 @@ $(function() {
                                                 </td>
                                             </tr>
                                             <tr>
-                                                <th>입소일자</th>
+                                                <th>검색 일자</th>
                                                 <td>
                                                     <div class="row">
                                                         <div class="col-5">
                                                             <div class="form-group mb-xl-0">
-                                                                <input class="form-control date-no-req" type="text" name="startDate" value="" autocomplete="off"  placeholder="검색 시작일자">
+                                                                <input class="form-control date-no-req" type="text" name="startDate" value="" onKeyup="inputYMDNumber(this);" autocomplete="off"  placeholder="검색 시작일자">
                                                             </div>
                                                         </div>
                                                         <div
@@ -168,7 +168,7 @@ $(function() {
                                                             ~</div>
                                                         <div class="col-5">
                                                             <div class="form-group mb-xl-0">
-                                                                <input class="form-control date-no-req" type="text" name="endDate" value="" autocomplete="off" placeholder="검색 종료일자">
+                                                                <input class="form-control date-no-req" type="text" name="endDate" value="" onKeyup="inputYMDNumber(this);" autocomplete="off" placeholder="검색 종료일자">
                                                             </div>
                                                         </div>
                                                     </div>

+ 47 - 29
src/main/webapp/WEB-INF/jsp/patient/new.jsp

@@ -59,16 +59,18 @@ function setEventHandler(){
     });
     
     //입소일시
-    $( ".hospitalizationDate" ).on( "change", function(){
-        var ymd  = $( "#hospitalizationDateYmd" ).val();
-        var hour = $( "#hospitalizationDateHour" ).val();
-        var min  = $( "#hospitalizationDateMin" ).val();
+//     $( ".hospitalizationDate" ).on( "change", function(){
+//         console.log("asdfasdf");
+//         var ymd  = $( "#hospitalizationDateYmd" ).val();
+// //         var hour = $( "#hospitalizationDateHour" ).val();
+// //         var min  = $( "#hospitalizationDateMin" ).val();
         
-        hour = Number(hour) < 10 ? "0" + hour : hour;
-        min  = Number(min) < 10 ? "0" + min   : min;
+// //         hour = Number(hour) < 10 ? "0" + hour : hour;
+// //         min  = Number(min) < 10 ? "0" + min   : min;
         
-        $( "#hospitalizationDate" ).val( ymd + " " + hour + ":" + min + ":00" );
-    });
+// //         $( "#hospitalizationDate" ).val( ymd + " " + hour + ":" + min + ":00" );
+//         $( "#hospitalizationDate" ).val( ymd );
+//     });
     
     //성별 남선택시 임신유무 고정
     $( "input[name='gender']" ).on( "click", function(){
@@ -85,27 +87,29 @@ function setEventHandler(){
         }
     });
     
-    //생년월일
-    $( ".select-date" ).on( "change", function(){
-        var $this = $( this );
-        var wrap  = $this.closest( "div.date" );
+//     //생년월일
+//     $( ".select-date" ).on( "change", function(){
+//         var $this = $( this );
+//         var wrap  = $this.closest( "div.date" );
         
-        var dateYear  = wrap.find( ".date-year" ).val();
-        var dateMonth = wrap.find( ".date-month" ).val();
-        var dateDay   = wrap.find( ".date-day" ).val();
+//         var dateYear  = wrap.find( ".date-year" ).val();
+//         var dateMonth = wrap.find( ".date-month" ).val();
+//         var dateDay   = wrap.find( ".date-day" ).val();
         
-        dateMonth = Number(dateMonth) < 10 ? "0" + dateMonth : dateMonth;
-        dateDay   = Number(dateDay) < 10   ? "0" + dateDay   : dateDay;
+//         dateMonth = Number(dateMonth) < 10 ? "0" + dateMonth : dateMonth;
+//         dateDay   = Number(dateDay) < 10   ? "0" + dateDay   : dateDay;
         
-        wrap.find( "input.error-box" ).val( dateYear  + "-" + dateMonth  + "-" + dateDay );
-    });
+//         wrap.find( "input.error-box" ).val( dateYear  + "-" + dateMonth  + "-" + dateDay );
+//     });
     
     $( "input.date" ).daterangepicker({
         singleDatePicker : true,
         showDropdowns : true,
         locale : {
             format : "YYYY-MM-DD"
-        }
+        },
+        maxDate : new Date(),
+        minDate : "1900-01-01"
     });
     
     $( "input.date-no-req" ).daterangepicker({
@@ -114,10 +118,10 @@ function setEventHandler(){
         locale : {
             format : "YYYY-MM-DD"
         },
-        autoUpdateInput: false
-    });
-    
-    $('input.date-no-req').on('apply.daterangepicker', function(ev, picker) {
+        autoUpdateInput: false,
+        maxDate : new Date(),
+        minDate : "1900-01-01"
+    }).on( "apply.daterangepicker", function( ev, picker ) {
         $(this).val(picker.startDate.format('YYYY-MM-DD'));
     });
 }
@@ -128,7 +132,9 @@ $( function(){
     $( "#patientForm" ).validate({
         rules: {
             hospitalizationDate : {
-                date : true
+                minDate : true,
+                date : true,
+                maxDate : true
             },
             patientPhone : {
                 phoneValid : true
@@ -137,7 +143,19 @@ $( function(){
                 phoneValid : true
             },
             jumin : {
+                minDate : true,
+                date : true,
+                maxDate : true
+            },
+            symptomStartDate : {
+                minDate : true,
+                maxDate : true,
                 date : true
+            },
+            disisolationDate : {
+                minDate : true,
+                date : true,
+                maxDate : true
             }
         },
         messages : {
@@ -228,7 +246,7 @@ $( function(){
                                                         <c:set var="sysYmd"><fmt:formatDate value="${now}" pattern="yyyy-MM-dd" /></c:set>
                                                             
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <input class="form-control date hospitalizationDate" type="text" value="${sysYmd}" name="hospitalizationDate" id="hospitalizationDateYmd">
+                                                            <input class="form-control date hospitalizationDate" type="text" value="${sysYmd}" onKeyup="inputYMDNumber(this);" name="hospitalizationDate" id="hospitalizationDateYmd" required>
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>
@@ -266,7 +284,7 @@ $( function(){
                                                     <td>
                                                         <!-- 생년월일 -->
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <input type="text" class="form-control date-no-req jumin" onKeyup="inputYMDNumber(this);" id="jumin" name="jumin" autocomplete="off" placeholder="yyyy-mm-dd 형식으로 입력하세요" required>
+                                                            <input type="text" class="form-control date jumin" onKeyup="inputYMDNumber(this);" id="jumin" name="jumin" autocomplete="off" placeholder="yyyy-mm-dd 형식으로 입력하세요" required>
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>
@@ -285,7 +303,7 @@ $( function(){
                                                     <th>증상시작일</th>
                                                     <td>
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <input class="form-control date-no-req" type="text" name="symptomStartDate" autocomplete="off">
+                                                            <input class="form-control date-no-req" type="text" name="symptomStartDate" onKeyup="inputYMDNumber(this);" autocomplete="off">
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>
@@ -304,7 +322,7 @@ $( function(){
                                                     <th>상태 변경일</br>(퇴소, 지정병원이송, 기타)</th>
                                                     <td colspan="3">
                                                         <div class="form-group calendar-bar mb-xl-0">
-                                                            <input class="form-control date-no-req" type="text" name="disisolationDate" autocomplete="off">
+                                                            <input class="form-control date-no-req" type="text" name="disisolationDate" onKeyup="inputYMDNumber(this);" autocomplete="off">
                                                             <i class="align-middle mr-2 fas fa-fw fa-calendar-alt"></i>
                                                         </div>
                                                     </td>

+ 12 - 1
src/main/webapp/resources/js/common/common.js

@@ -24,9 +24,19 @@ $(function(){
     
     
     $.validator.addMethod( "date",  function( value, element ) {
-        return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
+        var date_pattern = /^(19|20)\d{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[0-1])$/ 
+        
+        return (this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString())) && ( this.optional(element) || date_pattern.test(value) );
     }, "날짜형식을 올바르게 입력해주세요  yyyy-mm-dd" );
     
+    $.validator.addMethod( "minDate",  function( value, element ) {
+        return (this.optional(element) || new Date(value) >= new Date("1900-01-01")) && ( this.optional(element) || /[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/.test(value) );
+    }, "1900-01-01 이전 날짜는 입력하실 수 없습니다." );
+    
+    $.validator.addMethod( "maxDate",  function( value, element ) {
+        return (this.optional(element) || new Date(value) <= new Date()) && ( this.optional(element) || /[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/.test(value) );
+    }, "현재보다 미래 날짜는 입력하실 수 없습니다." );
+    
     $("form input:text").keydown(function(evt) {
         if (evt.keyCode == 13) {
             return false;
@@ -223,6 +233,7 @@ function inputYMDNumber(obj) {
                 ymd += "-";
                 ymd += number.substr(6);
             }
+            
             obj.value = ymd;
         } else {
             //@see 숫자와 하이픈(-)기호 이외의 모든 값은 삭제한다.