Преглед изворни кода

需要标准的门(急)诊诊断;完善手术时间和麻醉时间的检验

lighter пре 2 година
родитељ
комит
9515751cc5

+ 3 - 2
src/main/java/thyyxxk/webserver/dao/his/casefrontsheet/CaseFrontSheetDao.java

@@ -284,7 +284,8 @@ public interface CaseFrontSheetDao extends BaseMapper<CaseFrontsheetMain> {
 
     @Select("select no=rtrim(ssxh)," +
             "name=rtrim(ssmc)," +
-            "date=ssrq," +
+            "date=ssrq, " +
+            "op_end_date,anst_start_date,anst_end_date, " +
             "level=rtrim(ssjb)," +
             "code=rtrim(ssbm)," +
             "operator=rtrim(ssys)," +
@@ -296,7 +297,7 @@ public interface CaseFrontSheetDao extends BaseMapper<CaseFrontsheetMain> {
             "cut=rtrim(qkjb), " +
             "heal=rtrim(yhqk), " +
             "anaesthesia=rtrim(mzff)," +
-            "anaesthesiaor=rtrim(mzys), " +
+            "anaesthesiaor=rtrim(mzys)," +
             "anaesthesiaorName=(select rtrim(name) from a_employee_mi with(nolock) where code=mzys) " +
             "from batj_ba4 with(nolock) " +
             "where bah=#{bah} and zycs=#{times}")

+ 0 - 3
src/main/java/thyyxxk/webserver/entity/casefrontsheet/CaseFrontsheetSurgery.java

@@ -108,13 +108,10 @@ public class CaseFrontsheetSurgery implements Serializable {
 	 */
 	private String anaesthesiaorName;
 
-	@TableField(exist = false)
 	private Date opEndDate;
 
-	@TableField(exist = false)
 	private Date anstStartDate;
 
-	@TableField(exist = false)
 	private Date anstEndDate;
 
 	/**

+ 41 - 3
src/main/java/thyyxxk/webserver/service/casefrontsheet/VerifyCaseFrontSheet.java

@@ -184,6 +184,9 @@ public class VerifyCaseFrontSheet {
         if (StringUtil.invalidValue(info.getAdmissDays())) {
             array.add(new CodeName("admissDays","患者住院天数不能为空!"));
         }
+        if (StringUtil.isBlank(info.getClinicDiagCode()) || StringUtil.isBlank(info.getClinicDiagStr())) {
+            array.add(new CodeName("clinicDiag", "患者门(急)诊诊断需要填写标准诊断,请补充。"));
+        }
         if (StringUtil.isBlank(info.getDisdiagList().get(0).getName())) {
             array.add(new CodeName("disdiagMain","患者主要诊断不能为空!"));
         }
@@ -422,9 +425,6 @@ public class VerifyCaseFrontSheet {
             if (StringUtil.isBlank(surgery.getName())) {
                 array.add(new CodeName("surgeryTable","手术" + surgery.getNo() + ",三、四级手术名称、编码不能为空!"));
             }
-            if (null == surgery.getDate()) {
-                array.add(new CodeName("surgeryTable","手术" + surgery.getNo() + ",三、四级手术日期不能为空!"));
-            }
             if (StringUtil.isBlank(surgery.getOperator())) {
                 array.add(new CodeName("surgeryTable","手术" + surgery.getNo() + ",三、四级手术术者不能为空!"));
             }
@@ -444,6 +444,44 @@ public class VerifyCaseFrontSheet {
                 array.add(new CodeName("surgeryTable","手术" + surgery.getNo() + ",三、四级手术II助不能为空!"));
             }
         }
+        if (needAnstTimeButNotPresent(surgery)) {
+            array.add(new CodeName("surgeryTable","手术" + surgery.getNo() + ",麻醉开始时间和结束时间不能为空!"));
+        }
+        List<String> msgs = logicalSurgeryTime(surgery.getDate(), surgery.getOpEndDate(),
+                surgery.getAnstStartDate(), surgery.getAnstEndDate());
+        for (String msg : msgs) {
+            array.add(new CodeName("surgeryTable", "手术" + surgery.getNo() + "," + msg));
+        }
+    }
+
+    private boolean needAnstTimeButNotPresent(CaseFrontsheetSurgery surgery) {
+        return StringUtil.notBlank(surgery.getAnaesthesia()) && (null == surgery.getAnstStartDate() || null == surgery.getAnstEndDate());
+    }
+
+    public static List<String> logicalSurgeryTime(Date opStart, Date opEnd, Date anstStart, Date anstEnd) {
+        List<String> errors = new ArrayList<>();
+        if (null == opStart) {
+            errors.add("手术开始时间不能为空。");
+        }
+        if (null == opEnd) {
+            errors.add("手术结束时间不能为空。");
+        }
+        if (null != opStart && null != opEnd && opEnd.before(opStart)) {
+            errors.add("手术开始时间不能晚于手术结束时间。");
+        }
+        if (null != anstStart && null != opStart && anstStart.after(opStart)) {
+            errors.add("麻醉开始时间不能晚于手术开始时间。");
+        }
+        if (null != anstStart && null != opEnd && anstStart.after(opEnd)) {
+            errors.add("麻醉开始时间不能晚于手术结束时间。");
+        }
+        if (null != anstEnd && null != opEnd && anstEnd.before(opEnd)) {
+            errors.add("麻醉结束时间不能早于手术结束时间。");
+        }
+        if (null != anstEnd && null != opStart && anstEnd.before(opStart)) {
+            errors.add("麻醉结束时间不能早于手术开始时间。");
+        }
+        return errors;
     }
 
     private boolean needPathologicDiag(String diag) {