浏览代码

解决门诊病历修改无法置空缺陷吗,优化年龄可以到天和月

hurugang 3 年之前
父节点
当前提交
afcd331e13

+ 4 - 24
src/main/java/cn/hnthyy/thmz/controller/mz/ClinicController.java

@@ -357,26 +357,12 @@ public class ClinicController {
                 resultMap.put("message", "查询就诊记录失败,参数为空");
                 return resultMap;
             }
-            String patientId = null;
-            //如果当前输入的id是可以查询到患者信息的话,就直接查询患者的所有记录,不需要加时间范围
-            String commonParams = clinic.getCommonParams();
-            if (StringUtils.isBlank(clinic.getPatientName())) {
-                clinic.setPatientName(null);
-            }
-            else {
-                clinic.setPatientName(clinic.getPatientName() + "%");
-            }
-            if (StringUtils.isBlank(clinic.getPatientId())) {
-                clinic.setPatientId(null);
-            } else {
-                patientId = clinic.getPatientId();
-                //clinic.setPatientId("%" + clinic.getPatientId() + "%");
-            }
+            //保存还没有模糊查询前的参数
+            String patientId = clinic.getCommonParams();
             if (StringUtils.isBlank(clinic.getCommonParams())) {
                 clinic.setCommonParams(null);
-            }
-            else {
-                //如果在病人表查不到的话,就代入模糊查询
+            }else {
+                //不加前模糊,因为数据库索引会不生效
                 clinic.setCommonParams(clinic.getCommonParams() + "%");
             }
             if (StringUtils.isBlank(clinic.getBeginDate())) {
@@ -407,12 +393,6 @@ public class ClinicController {
                 //前端传的-1需要清空 //如果医生字段是-1,说明是查询就诊轨迹,就诊轨迹不限制科室和医生
                 clinic.setDoctorCode(null);
             }
-            //如果当前输入的id是可以查询到患者信息的话,就直接查询患者的所有记录,不需要加时间范围
-            MzPatientMi dbMzPatientMi = mzPatientMiService.queryByPatientId(commonParams);
-            if (dbMzPatientMi != null) {
-                clinic.setBeginDate(null);
-                clinic.setEndDate(null);
-            }
             resultMap.put("code", 0);
             resultMap.put("message", "查询就诊记录成功");
             Integer total = clinicService.queryCountClinic(clinic);

+ 20 - 60
src/main/java/cn/hnthyy/thmz/controller/mz/MzBlRecordController.java

@@ -225,66 +225,26 @@ public class MzBlRecordController {
                 resultMap.put("message", "修改门诊病历的处理意见失败,您无法修改非您本人接诊的病历!");
                 return resultMap;
             }
-            if (StringUtils.isNotBlank(mzBlRecord.getEmrChiefComplaint())) {
-                dbMzBlRecord.setEmrChiefComplaint(mzBlRecord.getEmrChiefComplaint());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getEmrHpi())) {
-                dbMzBlRecord.setEmrHpi(mzBlRecord.getEmrHpi());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getEmrPs())) {
-                dbMzBlRecord.setEmrPs(mzBlRecord.getEmrPs());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getPersonalHistory())) {
-                dbMzBlRecord.setPersonalHistory(mzBlRecord.getPersonalHistory());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getFamilyHistory())) {
-                dbMzBlRecord.setFamilyHistory(mzBlRecord.getFamilyHistory());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getObstericalHistory())) {
-                dbMzBlRecord.setObstericalHistory(mzBlRecord.getObstericalHistory());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getEmrPe())) {
-                dbMzBlRecord.setEmrPe(mzBlRecord.getEmrPe());
-            }
-            if(mzBlRecord.getWeight()!=null && Double.valueOf(0).compareTo(mzBlRecord.getWeight())<0){
-                dbMzBlRecord.setWeight(mzBlRecord.getWeight());
-            }
-            if(mzBlRecord.getTemperature()!=null && Double.valueOf(0).compareTo(mzBlRecord.getTemperature())<0){
-                dbMzBlRecord.setTemperature(mzBlRecord.getTemperature());
-            }
-            if(mzBlRecord.getSphygmus()!=null && Integer.valueOf(0).compareTo(mzBlRecord.getSphygmus())<0){
-                dbMzBlRecord.setSphygmus(mzBlRecord.getSphygmus());
-            }
-            if(mzBlRecord.getBreathe()!=null && Integer.valueOf(0).compareTo(mzBlRecord.getBreathe())<0){
-                dbMzBlRecord.setBreathe(mzBlRecord.getBreathe());
-            }
-            if(mzBlRecord.getPressureHigh()!=null && Integer.valueOf(0).compareTo(mzBlRecord.getPressureHigh())<0){
-                dbMzBlRecord.setPressureHigh(mzBlRecord.getPressureHigh());
-            }
-            if(mzBlRecord.getPressureFloor()!=null && Integer.valueOf(0).compareTo(mzBlRecord.getPressureFloor())<0){
-                dbMzBlRecord.setPressureFloor(mzBlRecord.getPressureFloor());
-            }
-            if(mzBlRecord.getPressureHighLeft()!=null && Integer.valueOf(0).compareTo(mzBlRecord.getPressureHighLeft())<0){
-                dbMzBlRecord.setPressureHighLeft(mzBlRecord.getPressureHighLeft());
-            }
-            if(mzBlRecord.getPressureFloorLeft()!=null && Integer.valueOf(0).compareTo(mzBlRecord.getPressureFloorLeft())<0){
-                dbMzBlRecord.setPressureFloorLeft(mzBlRecord.getPressureFloorLeft());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getTentativeDiagnosis())) {
-                dbMzBlRecord.setTentativeDiagnosis(mzBlRecord.getTentativeDiagnosis());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getIcdCode())) {
-                dbMzBlRecord.setIcdCode(mzBlRecord.getIcdCode());
-                if (StringUtils.isNotBlank(mzBlRecord.getIcdText())) {
-                    dbMzBlRecord.setIcdText(mzBlRecord.getIcdText());
-                }
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getEmrJkjy())) {
-                dbMzBlRecord.setEmrJkjy(mzBlRecord.getEmrJkjy());
-            }
-            if (StringUtils.isNotBlank(mzBlRecord.getEmrProcess())) {
-                dbMzBlRecord.setEmrProcess(mzBlRecord.getEmrProcess());
-            }
+            dbMzBlRecord.setEmrChiefComplaint(mzBlRecord.getEmrChiefComplaint());
+            dbMzBlRecord.setEmrHpi(mzBlRecord.getEmrHpi());
+            dbMzBlRecord.setEmrPs(mzBlRecord.getEmrPs());
+            dbMzBlRecord.setPersonalHistory(mzBlRecord.getPersonalHistory());
+            dbMzBlRecord.setFamilyHistory(mzBlRecord.getFamilyHistory());
+            dbMzBlRecord.setObstericalHistory(mzBlRecord.getObstericalHistory());
+            dbMzBlRecord.setEmrPe(mzBlRecord.getEmrPe());
+            dbMzBlRecord.setWeight(mzBlRecord.getWeight());
+            dbMzBlRecord.setTemperature(mzBlRecord.getTemperature());
+            dbMzBlRecord.setSphygmus(mzBlRecord.getSphygmus());
+            dbMzBlRecord.setBreathe(mzBlRecord.getBreathe());
+            dbMzBlRecord.setPressureHigh(mzBlRecord.getPressureHigh());
+            dbMzBlRecord.setPressureFloor(mzBlRecord.getPressureFloor());
+            dbMzBlRecord.setPressureHighLeft(mzBlRecord.getPressureHighLeft());
+            dbMzBlRecord.setPressureFloorLeft(mzBlRecord.getPressureFloorLeft());
+            dbMzBlRecord.setTentativeDiagnosis(mzBlRecord.getTentativeDiagnosis());
+            dbMzBlRecord.setIcdCode(mzBlRecord.getIcdCode());
+            dbMzBlRecord.setIcdText(mzBlRecord.getIcdText());
+            dbMzBlRecord.setEmrJkjy(mzBlRecord.getEmrJkjy());
+            dbMzBlRecord.setEmrProcess(mzBlRecord.getEmrProcess());
             mzBlRecordService.modifyMzBlRecordEmrProcess(dbMzBlRecord);
             resultMap.put("code", 0);
             resultMap.put("message", "修改门诊病历的处理意见成功");

+ 146 - 1
src/main/resources/static/js/common/date-util.js

@@ -397,4 +397,149 @@ function formatDate(dateStr) {
     var mf = date.getMinutes();
     var ss = date.getSeconds();
     return yy+"-"+mm+"-"+dd+" "+hh+":"+mf+":"+ss;
-}
+}
+
+/**
+ * 返回两个日期相差的月数
+ * @param date1
+ * @param date2
+ * @returns {number}
+ * @constructor
+ */
+function MonthsBetw(date1, date2) { //date1和date2是2019-3-12格式
+    //用-分成数组
+    date1 = date1.split("-");
+    date2 = date2.split("-");
+    //获取年,月数
+    var year1 = parseInt(date1[0]),
+        month1 = parseInt(date1[1]),
+        year2 = parseInt(date2[0]),
+        month2 = parseInt(date2[1]),
+        //通过年,月差计算月份差
+        months = (year2 - year1) * 12 + (month2 - month1) + 1;
+    return months;
+}
+
+/**
+ * 计算天数差的函数,通用
+ * @param sDate1
+ * @param sDate2
+ * @returns {number | *}
+ * @constructor
+ */
+function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2019-3-12格式
+    var aDate, oDate1, oDate2, iDays
+    aDate = sDate1.split("-")
+    oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为9-25-2017格式
+    aDate = sDate2.split("-")
+    oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
+    iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
+    return iDays
+}
+
+
+
+
+/**
+ * @desc 计算年龄
+ * 计算年份->计算月份->计算天数
+ *
+ * @date 2015-09-22
+ * @author WadeYu
+ */
+
+var getDiffYmdBetweenDate = function(sDate1,sDate2){
+    var fixDate = function(sDate){
+        var aD = sDate.split('-');
+        for(var i = 0; i < aD.length; i++){
+            aD[i] = fixZero(parseInt(aD[i]));
+        }
+        return aD.join('-');
+    };
+    var fixZero = function(n){
+        return n < 10 ? '0'+n : n;
+    };
+    var fixInt = function(a){
+        for(var i = 0; i < a.length; i++){
+            a[i] = parseInt(a[i]);
+        }
+        return a;
+    };
+    var getMonthDays = function(y,m){
+        var aMonthDays = [0,31,28,31,30,31,30,31,31,30,31,30,31];
+        if((y%400 == 0) || (y%4==0 && y%100!=0)){
+            aMonthDays[2] = 29;
+        }
+        return aMonthDays[m];
+    };
+    var checkDate = function(sDate){
+    };
+    var y = 0;
+    var m = 0;
+    var d = 0;
+    var sTmp;
+    var aTmp;
+    sDate1 = fixDate(sDate1);
+    sDate2 = fixDate(sDate2);
+    if(sDate1 > sDate2){
+        sTmp = sDate2;
+        sDate2 = sDate1;
+        sDate1 = sTmp;
+    }
+    var aDate1 = sDate1.split('-');
+    aDate1 = fixInt(aDate1);
+    var aDate2 = sDate2.split('-');
+    aDate2 = fixInt(aDate2);
+    //计算相差的年份
+    /*aTmp = [aDate1[0]+1,fixZero(aDate1[1]),fixZero(aDate1[2])];
+    while(aTmp.join('-') <= sDate2){
+        y++;
+        aTmp[0]++;
+    }*/
+    y = aDate2[0] - aDate1[0];
+    if( sDate2.replace(aDate2[0],'') < sDate1.replace(aDate1[0],'')){
+        y = y - 1;
+    }
+    //计算月份
+    aTmp = [aDate1[0]+y,aDate1[1],fixZero(aDate1[2])];
+    while(true){
+        if(aTmp[1] == 12){
+            aTmp[0]++;
+            aTmp[1] = 1;
+        }else{
+            aTmp[1]++;
+        }
+        if(([aTmp[0],fixZero(aTmp[1]),aTmp[2]]).join('-') <= sDate2){
+            m++;
+        } else {
+            break;
+        }
+    }
+    //计算天数
+    aTmp = [aDate1[0]+y,aDate1[1]+m,aDate1[2]];
+    if(aTmp[1] > 12){
+        aTmp[0]++;
+        aTmp[1] -= 12;
+    }
+    while(true){
+        if(aTmp[2] == getMonthDays(aTmp[0], aTmp[1])){
+            if(aTmp[1] == 12){
+                aTmp[0]++;
+                aTmp[1]=1;
+                aTmp[2]=1;
+            }else{
+                aTmp[1]++;
+                aTmp[2] = 1;
+            }
+        }else {
+            aTmp[2]++;
+        }
+        sTmp = ([aTmp[0],fixZero(aTmp[1]),fixZero(aTmp[2])]).join('-');
+        if(sTmp <= sDate2){
+            d++;
+        } else {
+            break;
+        }
+    }
+    return {y:y,m:m,d:d};
+};

+ 34 - 5
src/main/resources/static/js/mz/clinic.js

@@ -971,7 +971,7 @@ function fitPatientHisData() {
         contentType: "application/json;charset=UTF-8",
         dataType: "json",
         data: JSON.stringify({
-            "patientId": patientId,
+            "commonParams": patientId,
             //"clinicStatuses": [5, 6],
             "clinicStatuses": [6],
             "pageSize": 10000,
@@ -1013,8 +1013,13 @@ function fitPatientHisData() {
                     }
                 }
                 var patientName = $("#patientName").text();
-                if ((patientName == null || patientName == "") && res.mzPatientMi != null) {
-                    patientName = res.mzPatientMi.name;
+                if (patientName == null || patientName == "") {
+                    if (res.mzPatientMi != null) {
+                        patientName = res.mzPatientMi.name;
+                    } else {
+                        patientName = patientId;
+                    }
+
                 }
                 $("#patientHisData").text(patientName + "的");
                 if (($("#patientId").text() == null || $("#patientId").text() == "") && ($("#userName").val() == null || $("#userName").val() == "")) {
@@ -1253,6 +1258,7 @@ function cardNoChange() {
 function refreshClinic() {
     loadInClinicTableList();
     loadClinicTableList();
+    fitPatientHisData();
 }
 
 
@@ -1676,7 +1682,30 @@ function cancelClinic(patientId, times) {
  */
 function setMzPatientInfo(mzPatientMi) {
     $("#patientName").html(mzPatientMi.name);
-    $("#patientAge").html(mzPatientMi.age);
+    var age = mzPatientMi.age;
+    if (age == null || age == 0) {
+        var birthDay = mzPatientMi.birthDay;
+        var socialNo = mzPatientMi.socialNo;
+        if (birthDay != null && birthDay != "") {
+            birthDay= format(birthDay, "yyyy-MM-dd")
+        } else if (socialNo != null && socialNo != "") {
+            birthDay = socialNo.substring(6, 14);
+            birthDay = birthDay.substring(0, 4) + "-" + birthDay.substring(4, 6) + "-" + birthDay.substring(6);
+        }
+        if (birthDay != null && birthDay != "") {
+            var diffResult = getDiffYmdBetweenDate(birthDay, format(new Date(), "yyyy-MM-dd"));
+            if(diffResult.y!=null && diffResult.y>0){
+                age = diffResult.y + "岁";
+            }else  if(diffResult.m!=null && diffResult.m>0){
+                age = diffResult.m + "个月";
+            }else  if(diffResult.d!=null && diffResult.d>0){
+                age = diffResult.d + "天";
+            }
+        }
+    } else {
+        age = age + "岁";
+    }
+    $("#patientAge").html(age);
     $("#patientGender").html(mzPatientMi.gender);
     $("#patientId").text(mzPatientMi.patientId);
     $("#editUser").css("display", "inline-block");
@@ -1937,7 +1966,7 @@ function fitxyContent(pyPrescription, contentId, titleId, checkBox) {
                 xypyHtml += "天 ";
                 if (pyDetail.tryFlag != undefined && pyDetail.tryFlag != null && pyDetail.tryFlag != "null" && pyDetail.tryFlag != "") {
                     xypyHtml += pyDetail.tryFlag;
-                }else if (pyDetail.tryResult != undefined && pyDetail.tryResult != null && pyDetail.tryResult != "null" && pyDetail.tryResult != "") {
+                } else if (pyDetail.tryResult != undefined && pyDetail.tryResult != null && pyDetail.tryResult != "null" && pyDetail.tryResult != "") {
                     xypyHtml += pyDetail.tryResult;
                 }
                 if (checkBox) {

+ 5 - 1
src/main/resources/static/js/mz/registration.js

@@ -1889,7 +1889,11 @@ function queryUserInfoByName() {
  */
 function setAge() {
     var birthDay = $("#birthDay").val();
-    if (birthDay.length == 8 && birthDay.indexOf("-") <= 0) {
+    var socialNo = $("#idCard").val();
+    if((birthDay==null || birthDay=="") && idCard!=null && idCard!=""){
+        birthDay = socialNo.substring(6, 14);
+        birthDay = birthDay.substring(0, 4) + "-" + birthDay.substring(4, 6) + "-" + birthDay.substring(6);
+    }else if (birthDay.length == 8 && birthDay.indexOf("-") <= 0) {
         birthDay = birthDay.substring(0, 4) + "-" + birthDay.substring(4, 6) + "-" + birthDay.substring(6);
         $("#birthDay").val(birthDay);
     }