Pārlūkot izejas kodu

签收首页时补充主要错误标志

lighter 5 mēneši atpakaļ
vecāks
revīzija
86a4c98d6c

+ 4 - 0
src/main/java/thyyxxk/webserver/dao/his/inpatient/casefrontsheet/BasSelectOverviewDao.java

@@ -133,4 +133,8 @@ public interface BasSelectOverviewDao extends BaseMapper<CaseFrontsheetSurgery>
             "from ba_op_log where inpatient_no=#{bah} and admiss_times=#{times} " +
             "order by op_time desc")
     List<BaOpLog> getBaOpLogs(String bah, Integer times);
+
+    @Select("select major_error from t_frontsheet_quality_verification " +
+            "where pat_no=#{bah} and times=#{times} and major_error is not null")
+    List<String> getMajorErrors(String bah, Integer times);
 }

+ 5 - 0
src/main/java/thyyxxk/webserver/entity/casefrontsheet/CaseFrontsheetMain.java

@@ -806,6 +806,11 @@ public class CaseFrontsheetMain implements Serializable {
      * */
     private Integer mainDisdiagStatus;
 
+    private Integer maindiagInputErr;
+    private Integer maindiagCodeErr;
+    private Integer mainsurgInputErr;
+    private Integer mainsurgCodeErr;
+
     /**
      * 诊断列表
      */

+ 22 - 0
src/main/java/thyyxxk/webserver/service/inpatient/casefrontsheet/CaseFrontSheetMainService.java

@@ -761,6 +761,7 @@ public class CaseFrontSheetMainService {
             if (null == sheet.getLateFlag()) {
                 sheet.setLateFlag(calculateLateState(sheet.getDismissDate()));
             }
+            fillMajorErrorFlags(sheet);
             insertSheetData(sheet);
             basDao.updateActFileStatus(bah, times, State.FileStatus.SIGNED);
             dao.writeBaOpLog(2, staffId, bah, times);
@@ -769,6 +770,27 @@ public class CaseFrontSheetMainService {
         return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请勿重复签收。");
     }
 
+    private void fillMajorErrorFlags(CaseFrontsheetMain sheet) {
+        List<String> majorErrors = basDao.getMajorErrors(sheet.getBah(), sheet.getAdmissTimes());
+        if (majorErrors.isEmpty()) {
+            return;
+        }
+        for (String majorError : majorErrors) {
+            if (majorError.contains("主要诊断填写错误")) {
+                sheet.setMaindiagInputErr(1);
+            }
+            if (majorError.contains("主要诊断编码错误")) {
+                sheet.setMaindiagCodeErr(1);
+            }
+            if (majorError.contains("主要手术填写错误")) {
+                sheet.setMainsurgInputErr(1);
+            }
+            if (majorError.contains("主要手术编码错误")) {
+                sheet.setMainsurgCodeErr(1);
+            }
+        }
+    }
+
     public void insertSheetData(CaseFrontsheetMain sheet) {
         if (null == sheet.getSignStaff()) {
             sheet.setSignStaff(dao.selectSignStaff(sheet.getBah(), sheet.getAdmissTimes()));