Kaynağa Gözat

中医病案首页质控

lighter 1 ay önce
ebeveyn
işleme
372c2cb722

+ 17 - 2
src/main/java/thyyxxk/webserver/controller/inpatient/casefrontsheet/TcmSheetController.java

@@ -9,17 +9,23 @@ import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.casefrontsheet.request.SheetOverview;
 import thyyxxk.webserver.entity.casefrontsheet.tcmsheet.TcmFrontSheetMain;
+import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.service.inpatient.casefrontsheet.tcm.TcmSheetMainService;
+import thyyxxk.webserver.service.inpatient.casefrontsheet.tcm.TcmSheetVerifyService;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
+import java.util.List;
+
 @RestController
 @RequestMapping("/tcmFrontSheet")
 public class TcmSheetController {
     private final TcmSheetMainService mainService;
+    private final TcmSheetVerifyService verifyService;
 
     @Autowired
-    public TcmSheetController(TcmSheetMainService mainService) {
+    public TcmSheetController(TcmSheetMainService mainService, TcmSheetVerifyService verifyService) {
         this.mainService = mainService;
+        this.verifyService = verifyService;
     }
 
     @PostMapping("/getSheetInfo")
@@ -35,4 +41,13 @@ public class TcmSheetController {
     public ResultVo<String> saveTcmSheet(@RequestBody TcmFrontSheetMain sheet) {
         return ResultVoUtil.success(mainService.saveTcmSheet(sheet));
     }
-}
+
+    @PostMapping("/verify")
+    public ResultVo<List<CodeName>> verify(@RequestBody TcmFrontSheetMain sheet) {
+        List<CodeName> array = verifyService.verify(sheet);
+        if (null == array || array.isEmpty()) {
+            return ResultVoUtil.success();
+        }
+        return ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR, "校验未通过。", array);
+    }
+}

+ 16 - 12
src/main/java/thyyxxk/webserver/service/inpatient/casefrontsheet/tcm/TcmSheetVerifyService.java

@@ -261,12 +261,15 @@ public class TcmSheetVerifyService {
             array.add(new CodeName("birthDate","出生时间不能晚于入院时间!"));
         }
 
-        Calendar dis =  Calendar.getInstance();
-        dis.set(Calendar.YEAR, info.getDismissYear());
-        dis.set(Calendar.MONTH, info.getDismissMonth());
-        dis.set(Calendar.DAY_OF_MONTH, info.getDismissDay());
-        if (adm.after(dis)) {
-            array.add(new CodeName("dismissDate","出院时间不能早于入院时间!"));
+        Calendar dis = null;
+        if (null != info.getDismissYear() && null != info.getDismissMonth() && null != info.getDismissDay()) {
+            dis =  Calendar.getInstance();
+            dis.set(Calendar.YEAR, info.getDismissYear());
+            dis.set(Calendar.MONTH, info.getDismissMonth());
+            dis.set(Calendar.DAY_OF_MONTH, info.getDismissDay());
+            if (adm.after(dis)) {
+                array.add(new CodeName("dismissDate","出院时间不能早于入院时间!"));
+            }
         }
 
         if (null != info.getNbAge() && info.getNbAge() <= 28) {
@@ -284,14 +287,15 @@ public class TcmSheetVerifyService {
                 array.add(new CodeName("newBornAdmissWeight","请填写合理的新生儿入院体重(不得少于1000g)!"));
             }
         }
-        return connectedVerify(array, info, adm.getTime(), dis.getTime());
+        return connectedVerify(array, info, adm, dis);
     }
 
-    private List<CodeName> connectedVerify(List<CodeName> array, TcmFrontSheetMain info, Date adm, Date dis) {
+    private List<CodeName> connectedVerify(List<CodeName> array, TcmFrontSheetMain info,
+                                           Calendar adm, Calendar dis) {
         boolean hasAnaesthesia = false;
         boolean hasAnaesthesiaor = false;
         for (TcmFrontSheetSurgery surgery : info.getSurgeryList()) {
-            checkSurgery(array, surgery, adm, dis);
+            checkSurgery(array, surgery);
             if (StringUtil.notBlank(surgery.getAnaesthesia())) {
                 hasAnaesthesia = true;
             }
@@ -337,7 +341,7 @@ public class TcmSheetVerifyService {
     }
 
 
-    private void checkSurgery(List<CodeName> array, TcmFrontSheetSurgery surgery, Date adm, Date dis) {
+    private void checkSurgery(List<CodeName> array, TcmFrontSheetSurgery surgery) {
         if (StringUtil.isBlank(surgery.getName())) {
             return;
         }
@@ -382,7 +386,7 @@ public class TcmSheetVerifyService {
         return StringUtil.notBlank(zipCode) && zipCode.length() != 6;
     }
 
-    private boolean surgeryDateWrong(List<TcmFrontSheetSurgery> surgeries, Date adm, Date dis) {
+    private boolean surgeryDateWrong(List<TcmFrontSheetSurgery> surgeries, Calendar adm, Calendar dis) {
         if (null == adm || null == dis) {
             return false;
         }
@@ -390,7 +394,7 @@ public class TcmSheetVerifyService {
             if (StringUtil.notBlank(item.getCode()) && null == item.getDate()) {
                 return true;
             }
-            if (item.getDate().before(adm) || item.getDate().after(dis)) {
+            if (item.getDate().before(adm.getTime()) || item.getDate().after(dis.getTime())) {
                 return true;
             }
         }