Browse Source

添加、修改病案首页规则

hujing 5 năm trước cách đây
mục cha
commit
49a0f00843
16 tập tin đã thay đổi với 228 bổ sung18 xóa
  1. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0158.java
  2. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0160.java
  3. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0161.java
  4. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0162.java
  5. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0166.java
  6. 2 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0167.java
  7. 36 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0179.java
  8. 31 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0186.java
  9. 31 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0187.java
  10. 29 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0189.java
  11. 36 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0196.java
  12. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0200.java
  13. 3 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0202.java
  14. 35 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0239.java
  15. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java
  16. 6 2
      public/src/main/java/com/lantone/qc/pub/Content.java

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0158.java

@@ -18,14 +18,15 @@ import java.util.Map;
 @Component
 public class FIRP0158 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
                 && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionName = firstpageStructureMap.get(Content.name);
             String admissionName = beHospitalStructureMap.get(Content.name);
-            if (CatalogueUtil.compareToken(firstAdmissionName,admissionName)) {
-                status = "0";
+            if (!CatalogueUtil.compareToken(firstAdmissionName,admissionName)) {
+                status = "-1";
             }
         }
     }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0160.java

@@ -18,14 +18,15 @@ import java.util.Map;
 @Component
 public class FIRP0160 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
                 && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionGender = firstpageStructureMap.get(Content.gender);
             String admissionGender = beHospitalStructureMap.get(Content.gender);
-            if (CatalogueUtil.compareToken(firstAdmissionGender,admissionGender)) {
-                status = "0";
+            if (!CatalogueUtil.compareToken(firstAdmissionGender,admissionGender)) {
+                status = "-1";
             }
         }
     }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0161.java

@@ -18,14 +18,15 @@ import java.util.Map;
 @Component
 public class FIRP0161 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
                 && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionAge = firstpageStructureMap.get(Content.age);
             String admissionAge = beHospitalStructureMap.get(Content.age);
-            if (CatalogueUtil.compareToken(firstAdmissionAge,admissionAge)) {
-                status = "0";
+            if (!CatalogueUtil.compareToken(firstAdmissionAge,admissionAge)) {
+                status = "-1";
             }
         }
     }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0162.java

@@ -18,13 +18,14 @@ import java.util.Map;
 @Component
 public class FIRP0162 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String idcardInfo = firstpageStructureMap.get(Content.idcardInfo);
             if (!CatalogueUtil.isEmpty(idcardInfo)) {
                 String regex = "\\d{15}|\\d{17}[\\dxX]";
-                if (idcardInfo.matches(regex)) {
-                    status = "0";
+                if (!idcardInfo.matches(regex)) {
+                    status = "-1";
                 }
             }
         }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0166.java

@@ -18,14 +18,15 @@ import java.util.Map;
 @Component
 public class FIRP0166 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
                 && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionMarry = firstpageStructureMap.get(Content.marry);
             String admissionMarry = beHospitalStructureMap.get(Content.marry);
-            if (CatalogueUtil.compareToken(firstAdmissionMarry,admissionMarry)) {
-                status = "0";
+            if (!CatalogueUtil.compareToken(firstAdmissionMarry,admissionMarry)) {
+                status = "-1";
             }
         }
     }

+ 2 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0167.java

@@ -18,12 +18,13 @@ import java.util.Map;
 @Component
 public class FIRP0167 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String name = firstpageStructureMap.get(Content.name);
             String contactName = firstpageStructureMap.get(Content.contactName);
             if (CatalogueUtil.compareToken(name,contactName)) {
-                status = "0";
+                status = "-1";
             }
         }
     }

+ 36 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0179.java

@@ -0,0 +1,36 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.ListUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0179
+ * @Description :入院病情未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-17 15:53
+ */
+@Component
+public class FIRP0179 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            List<Map<String, String>> outpatientEmergencyDiags = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            if (ListUtil.isNotEmpty(outpatientEmergencyDiags)) {
+                for (Map<String, String> outpatientEmergencyDiag:outpatientEmergencyDiags) {
+                    if (!CatalogueUtil.isEmpty(outpatientEmergencyDiag.get(Content.inStatus))){
+                        status = "0";
+                        return;
+                    }
+                }
+            }
+        }
+    }
+}

+ 31 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0186.java

@@ -0,0 +1,31 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0186
+ * @Description :患者尸检未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-17 16:50
+ */
+@Component
+public class FIRP0186 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String outWay = firstpageStructureMap.get(Content.outWay).toString();
+            String deadAutopsy = firstpageStructureMap.get(Content.deadAutopsy).toString();
+            if (!CatalogueUtil.isEmpty(outWay) && outWay.contains("死亡") && CatalogueUtil.isEmpty(deadAutopsy)){
+                status = "-1";
+            }
+        }
+    }
+}

+ 31 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0187.java

@@ -0,0 +1,31 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0187
+ * @Description :患者尸检填写错误
+ * @Author : 胡敬
+ * @Date: 2020-03-17 17:04
+ */
+@Component
+public class FIRP0187 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String outWay = firstpageStructureMap.get(Content.outWay).toString();
+            String deadAutopsy = firstpageStructureMap.get(Content.deadAutopsy).toString();
+            if (!CatalogueUtil.isEmpty(outWay) && !outWay.contains("死亡") && !CatalogueUtil.isEmpty(deadAutopsy)){
+                status = "-1";
+            }
+        }
+    }
+}

+ 29 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0189.java

@@ -0,0 +1,29 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0189
+ * @Description :Rh血型未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-17 15:38
+ */
+@Component
+public class FIRP0189 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String rhFactor = firstpageStructureMap.get(Content.rhFactor).toString();
+            if (!CatalogueUtil.isEmpty(rhFactor)){
+                status = "0";
+            }
+        }
+    }
+}

+ 36 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0196.java

@@ -0,0 +1,36 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : FIRP0196
+ * @Description :颅脑损伤患者昏迷时间未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-17 16:28
+ */
+@Component
+public class FIRP0196 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String brainInjuryComaTime = firstpageStructureMap.get(Content.brainInjuryComaTime).toString();
+            if (!CatalogueUtil.isEmpty(brainInjuryComaTime)) {
+                Pattern digit = Pattern.compile("[\\d|一二三四五六七八九十壹贰叁肆伍陆柒捌玖拾]+");
+                Matcher matcher = digit.matcher(brainInjuryComaTime);
+                if (!matcher.find()) {
+                    status = "-1";
+                }
+            }
+        }
+    }
+}

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0200.java

@@ -18,13 +18,14 @@ import java.util.Map;
 @Component
 public class FIRP0200 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String newbornWeightStr = firstpageStructureMap.get(Content.newbornWeight);
             if (!CatalogueUtil.isEmpty(newbornWeightStr)) {
                 int newbornWeight = Integer.parseInt(newbornWeightStr);
-                if (newbornWeight >= 1 && newbornWeight <= 10) {
-                    status = "0";
+                if (newbornWeight <= 1 || newbornWeight >= 10) {
+                    status = "-1";
                 }
             }
         }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0202.java

@@ -18,13 +18,14 @@ import java.util.Map;
 @Component
 public class FIRP0202 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String newbornAdmisWeightStr = firstpageStructureMap.get(Content.newbornAdmisWeight);
             if (!CatalogueUtil.isEmpty(newbornAdmisWeightStr)) {
                 int newbornAdmisWeight = Integer.parseInt(newbornAdmisWeightStr);
-                if (newbornAdmisWeight >= 1 && newbornAdmisWeight <= 10) {
-                    status = "0";
+                if (newbornAdmisWeight <= 1 || newbornAdmisWeight >= 10) {
+                    status = "-1";
                 }
             }
         }

+ 35 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0239.java

@@ -0,0 +1,35 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0239
+ * @Description :是否有在住院计划未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-17 17:04
+ */
+@Component
+public class FIRP0239 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String reHospitalization = firstpageStructureMap.get(Content.reHospitalization).toString();
+            if (CatalogueUtil.isEmpty(reHospitalization)) {
+                status = "-1";
+            } else {
+                if (reHospitalization.contains("有") &&
+                        CatalogueUtil.isEmpty(reHospitalization.substring(reHospitalization.indexOf("目的:")))) {
+                    status = "-1";
+                }
+            }
+        }
+    }
+}

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -36,7 +36,7 @@ public class CatalogueUtil {
         if (StringUtil.isEmpty(content)) {
             return "";
         }
-        return content.replaceAll("[\r\n|/r/n|\n|/n|/t|\t]", "").trim();
+        return content.replaceAll("[\r\n|/r/n|\n|/n|/t|\t|-]", "").trim();
     }
 
     public static String[] extractDigit(String value) {

+ 6 - 2
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -150,9 +150,12 @@ public class Content {
     public static final String clinical_pathology = "临床与病理";
     public static final String radiation_pathology = "放射与病理";
 
-    public static final String outpatientEmergencyDiag = "门急诊诊断";
+    public static final String outpatientEmergencyDiag = "门诊诊断";
     public static final String diagCode = "诊断编码";
     public static final String diagnose_name = "诊断名称";
+    public static final String inStatus = "入院情况";
+    public static final String outStatus = "出院情况";
+
     public static final String in_status = "入院情况";
     public static final String out_status = "出院情况";
     public static final String dischargeDiag = "出院诊断";
@@ -199,8 +202,9 @@ public class Content {
     public static final String anesthesia_mode="麻醉方式";
     public static final String anesthesia_doctor="麻醉医师";
     public static final String outWay="离院方式";
+    public static final String brainInjuryComaTime="颅脑损伤患者昏迷时间";
     public static final String daCode="医嘱转院机构名称";
-    public static final String re_hospitalization="31天内再住院计划";
+    public static final String reHospitalization="是否有出院31天内再住院计划";