瀏覽代碼

长兴、宁海、台州质控规则合并

songxinlu 4 年之前
父節點
當前提交
04c0e9653d
共有 100 個文件被更改,包括 523 次插入3412 次删除
  1. 4 4
      dbanaly/src/main/resources/application-test.yml
  2. 28 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0013.java
  3. 33 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0014.java
  4. 2 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0017.java
  5. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0043.java
  6. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0058.java
  7. 42 7
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02860.java
  8. 5 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02980.java
  9. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0372.java
  10. 2 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0378.java
  11. 24 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0400.java
  12. 15 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0411.java
  13. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0422.java
  14. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0441.java
  15. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0442.java
  16. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0443.java
  17. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0444.java
  18. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0445.java
  19. 4 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0446.java
  20. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0493.java
  21. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java
  22. 21 10
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI03063.java
  23. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0309.java
  24. 13 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0568.java
  25. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON0382.java
  26. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0098.java
  27. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0109.java
  28. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0112.java
  29. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0115.java
  30. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0337.java
  31. 12 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0338.java
  32. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0342.java
  33. 16 5
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0117.java
  34. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0118.java
  35. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0119.java
  36. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0120.java
  37. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0553.java
  38. 15 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/dutyshiftsystem/DUT0598.java
  39. 13 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0082.java
  40. 13 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0093.java
  41. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC02910.java
  42. 12 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0504.java
  43. 5 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0175.java
  44. 11 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0222.java
  45. 11 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0250.java
  46. 0 125
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0002.java
  47. 0 46
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0004.java
  48. 0 67
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0009.java
  49. 0 74
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0010.java
  50. 0 55
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0013.java
  51. 0 95
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0014.java
  52. 0 45
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0015.java
  53. 0 37
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0016.java
  54. 0 79
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0018.java
  55. 0 42
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0019.java
  56. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0020.java
  57. 0 44
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0021.java
  58. 0 44
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0022.java
  59. 0 62
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0031.java
  60. 0 59
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0039.java
  61. 0 69
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0043.java
  62. 0 50
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0044.java
  63. 0 51
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0046.java
  64. 0 51
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0051.java
  65. 0 34
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0052.java
  66. 0 60
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0053.java
  67. 0 102
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0058.java
  68. 0 54
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0068.java
  69. 0 70
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0070.java
  70. 0 59
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0072.java
  71. 0 31
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02855.java
  72. 0 70
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02860.java
  73. 0 109
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02887.java
  74. 0 65
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02902.java
  75. 0 43
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02903.java
  76. 0 35
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02978.java
  77. 0 189
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02980.java
  78. 0 43
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH03002.java
  79. 0 41
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH03003.java
  80. 0 40
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH03005.java
  81. 0 82
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0372.java
  82. 0 96
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0375.java
  83. 0 105
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0376.java
  84. 0 85
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0378.java
  85. 0 92
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0397.java
  86. 0 58
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0400.java
  87. 0 35
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0401.java
  88. 0 34
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0407.java
  89. 0 34
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0411.java
  90. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0412.java
  91. 0 71
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0414.java
  92. 0 21
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0420.java
  93. 0 49
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0422.java
  94. 0 77
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0441.java
  95. 0 70
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0442.java
  96. 0 36
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0448.java
  97. 0 102
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0449.java
  98. 0 35
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0450.java
  99. 0 36
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0458.java
  100. 0 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0473.java

+ 4 - 4
dbanaly/src/main/resources/application-test.yml

@@ -5,7 +5,7 @@ spring:
     druid:
       lantone:
         driver-class-name: com.mysql.jdbc.Driver
-        url: jdbc:mysql://192.168.2.241:3306/qc?useUnicode=true&characterEncoding=utf8&useSSL=false
+        url: jdbc:mysql://192.168.2.236:3306/stu?useUnicode=true&characterEncoding=utf8&useSSL=false
         username: root
         password: lantone
         initial-size: 8
@@ -26,9 +26,9 @@ spring:
         use-global-data-source-stat: true
   redis:
     database:
-      cache: 10 # cache索引
-      token: 10 # Token索引
-    host: 192.168.2.241  #Redis服务器地址
+      cache: 6 # cache索引
+      token: 6 # Token索引
+    host: 192.168.2.236  #Redis服务器地址
     port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
     password: lantone # Redis服务器连接密码(默认为空)
     lettuce:

+ 28 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0013.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.BeHospitalizedDoc;
@@ -30,10 +31,8 @@ public class BEH0013 extends QCCatalogue {
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         //现病史
         PresentLabel presentLabel = beHospitalizedDoc.getPresentLabel();
-        //既往史
-        PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
-        if ((presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText()))
-                && (StringUtil.isBlank(pastLabel.getText()) || "。".equals(pastLabel.getText()))) {
+        if(checkContent(beHospitalizedDoc))
+        {
             return;
         }
         String text = presentLabel.getText();
@@ -55,4 +54,29 @@ public class BEH0013 extends QCCatalogue {
             status.set("-1");
         }
     }
+
+    private boolean checkContent(BeHospitalizedDoc beHospitalizedDoc) {
+        boolean flag = false;
+        //现病史
+        PresentLabel presentLabel = beHospitalizedDoc.getPresentLabel();
+        //既往史
+        PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
+        switch (Content.hospital_Id)
+        {
+            case "1":                            //长兴需求不需要判断既往史
+                if ((presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText()))
+                ) {
+                    flag = true;
+                }
+                break;
+            default:
+                if ((presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText()))
+                        && (StringUtil.isBlank(pastLabel.getText()) || "。".equals(pastLabel.getText()))) {
+                    flag = true;
+                }
+                break;
+        }
+
+        return flag;
+    }
 }

+ 33 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0014.java

@@ -1,8 +1,10 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.entity.Cause;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Diag;
@@ -45,13 +47,16 @@ public class BEH0014 extends QCCatalogue {
             }
         }*/
         PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        //既往史
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        if ((presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText()))
-                && (StringUtil.isBlank(pastLabel.getText()) || "。".equals(pastLabel.getText()))) {
+        if(checkContent(inputInfo.getBeHospitalizedDoc()))
+        {
             status.set("0");
             return;
         }
+//        if ((presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText()))
+//                && (StringUtil.isBlank(pastLabel.getText()) || "。".equals(pastLabel.getText()))) {
+//            status.set("0");
+//            return;
+//        }
         List<Clinical> clinicals = presentLabel.getClinicals();
         if (ListUtil.isNotEmpty(clinicals)) {
             for (Clinical clinical : clinicals) {
@@ -95,4 +100,28 @@ public class BEH0014 extends QCCatalogue {
             status.set("0");
         }
     }
+    private boolean checkContent(BeHospitalizedDoc beHospitalizedDoc) {
+        boolean flag = false;
+        //现病史
+        PresentLabel presentLabel = beHospitalizedDoc.getPresentLabel();
+        //既往史
+        PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
+        switch (Content.hospital_Id)
+        {
+            case "1":                            //长兴需求不需要判断既往史
+                if ((presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText()))
+                ) {
+                    flag = true;
+                }
+                break;
+            default:
+                if ((presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText()))
+                        && (StringUtil.isBlank(pastLabel.getText()) || "。".equals(pastLabel.getText()))) {
+                    flag = true;
+                }
+                break;
+        }
+
+        return flag;
+    }
 }

+ 2 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0017.java

@@ -32,7 +32,8 @@ public class BEH0017 extends QCCatalogue {
             return;
         }
         String presentText = presentLabel.getText();
-        if (StringUtil.isNotBlank(presentText) && presentText.contains("复查")) {
+        if (StringUtil.isBlank(presentText) ||
+                (StringUtil.isNotBlank(presentText) && presentText.contains("复查"))) {
             status.set("0");
             return;
         }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0043.java

@@ -31,7 +31,7 @@ public class BEH0043 extends QCCatalogue {
         //台州结构化
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         if (StringUtils.isNotEmpty(structureMap.get("联系地址")) || StringUtils.isNotEmpty(structureMap.get("现住址"))
-                || StringUtils.isNotEmpty(structureMap.get("家庭住址"))) {
+                || StringUtils.isNotEmpty(structureMap.get("家庭住址")) || StringUtils.isNotEmpty(structureMap.get("住址"))) {
             status.set("0");
             return;
         }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0058.java

@@ -53,7 +53,7 @@ public class BEH0058 extends QCCatalogue {
             boolean flag = maritalText.matches(regex);
             regex = ".*\\d+-\\d+-\\d+-[1-9].*";
             boolean matches = maritalText.matches(regex);
-            regex = ".*\\d+,\\d+,\\d+,[1-9].*|.*\\d个.*";
+            regex = ".*\\d+,\\d+,\\d+,[1-9].*|.*\\d个.*|.*\\d男.*|.*\\d女.*";
             boolean isComma = maritalText.matches(regex);
             if (flag || matches || isComma) {
                 status.set("0");

+ 42 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02860.java

@@ -6,8 +6,10 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.PD;
 import com.lantone.qc.pub.model.label.ChiefLabel;
 import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.regex.Pattern;
 
@@ -29,7 +31,32 @@ public class BEH02860 extends QCCatalogue {
         if (chiefLabel == null) {
             return;
         }
-        String regex = "[零一二三四五六七八九十百千]";
+        /*
+         String regex = "[零一二三四五六七八九十百千]";
+         List<PD> pds = chiefLabel.getPds();
+         if (ListUtil.isNotEmpty(pds)) {
+         String name = null, value = null;
+         for (PD pd : pds) {
+         name = pd.getName();
+         value = pd.getValue();
+         if(name.contains("半")){
+         continue;
+         }
+         if (value != null && Pattern.matches(regex, value)) {
+         status.set("-1");
+         return;
+         }
+         if (name != null && Pattern.matches(regex, name)) {
+         status.set("-1");
+         return;
+         }
+         }
+         }
+         */
+        List<String> arabicNumList = Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7"
+                , "8", "9");
+        List<String> containList = Arrays.asList("零", "一", "二", "三", "四", "五", "六", "七"
+                , "八", "九", "十", "百", "千");
         List<PD> pds = chiefLabel.getPds();
         if (ListUtil.isNotEmpty(pds)) {
             String name = null, value = null;
@@ -39,13 +66,21 @@ public class BEH02860 extends QCCatalogue {
                 if(name.contains("半")){
                     continue;
                 }
-                if (value != null && Pattern.matches(regex, value)) {
-                    status.set("-1");
-                    return;
+                for (String num : arabicNumList) {
+                    if (StringUtil.isNotBlank(name) && name.contains(num)) {
+                        status.set("0");
+                        return;
+                    }
                 }
-                if (name != null && Pattern.matches(regex, name)) {
-                    status.set("-1");
-                    return;
+                for (String word : containList) {
+                    if (StringUtil.isNotBlank(value) && value.contains(word)) {
+                        status.set("-1");
+                        return;
+                    }
+                    if (StringUtil.isNotBlank(name) && name.contains(word)) {
+                        status.set("-1");
+                        return;
+                    }
                 }
             }
         }

+ 5 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02980.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.client.ChiefPresentSimilarityServiceClient;
 import com.lantone.qc.kernel.structure.ai.ModelAI;
+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.model.entity.Allergy;
@@ -107,7 +108,10 @@ public class BEH02980 extends QCCatalogue {
                 }
             }
             //过敏史
-            extract_Allergy(pastLabel.getAllergies(), pos_diags, neg_diags, pastLabel.getText());
+            if(!"7".equals(Content.hospital_Id))
+            {
+                extract_Allergy(pastLabel.getAllergies(), pos_diags, neg_diags, pastLabel.getText());
+            }
         } else {
             //例如邵逸夫 台州这种结构化数据,判断高血压 和 糖尿病是否有冲突
             List<Diag> pastDiags = new ArrayList<>();

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0372.java

@@ -60,7 +60,7 @@ public class BEH0372 extends QCCatalogue {
             return;
         }
 
-        if (bhbasicInfoStatus.equals("已婚") && (basicInfoStatus.contains("结婚") || basicInfoStatus.contains("再婚"))) {
+        if (bhbasicInfoStatus.equals("已婚") && (basicInfoStatus.contains("结婚") || basicInfoStatus.contains("再婚") || basicInfoStatus.contains("已婚") )) {
             status.set("0");
             return;
         }

+ 2 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0378.java

@@ -30,7 +30,8 @@ public class BEH0378 extends QCCatalogue {
         FamilyLabel familyLabel = inputInfo.getBeHospitalizedDoc().getFamilyLabel();
         MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
 
-        if (familyLabel == null || maritalLabel == null) {
+        if (familyLabel == null || maritalLabel == null ||
+                StringUtil.isBlank(familyLabel.getText()) || StringUtil.isBlank(maritalLabel.getText())) {
             return;
         }
         List<Family> familiesFl = null;

+ 24 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0400.java

@@ -1,9 +1,12 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.label.ChiefLabel;
 import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.model.label.PresentLabel;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -18,13 +21,33 @@ import java.util.Map;
  */
 @Component
 public class BEH0400 extends QCCatalogue {
-
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         if (inputInfo.getBeHospitalizedDoc() == null) {
             status.set("0");
             return;
         }
+        //长兴新加 若既往史为空,现病史或主诉不为空则报错
+        //主诉
+        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
+        //现病史
+        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
+        //既往史
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        switch (Content.hospital_Id)
+        {
+            case "1":                            //长兴需求不需要判断既往史
+                if (StringUtil.isBlank(pastLabel.getText()) && (StringUtil.isNotBlank(chiefLabel.getText()) ||
+                        StringUtil.isNotBlank(presentLabel.getText()))) {
+                    return;
+                }
+                if (StringUtil.isBlank(pastLabel.getText())) {
+                    status.set("0");
+                    return;
+                }
+            default:
+                break;
+        }
         List<String>  Str =  Arrays.asList("咳嗽气喘史","胸闷心悸史","腹痛腹泻史","多饮多尿史","浮肿少尿史","尿频尿痛史","抽搐史","出血史","过敏史","药物过敏史","传染病史","外伤手术史","输血史","重大疾病史和治疗史");
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         for(String s : Str){
@@ -34,7 +57,6 @@ public class BEH0400 extends QCCatalogue {
             }
         }
 
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
         if (pastLabel != null && StringUtil.isNotBlank(pastLabel.getText())) {
             status.set("0");
         }

+ 15 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0411.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 
 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;
@@ -24,11 +25,24 @@ public class BEH0411 extends QCCatalogue {
         }
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         if(structureMap != null){
-            String name = structureMap.get("记录时间");
+           String nameKey = getKeyByHospital();
+            String name = structureMap.get(nameKey);
             if(CatalogueUtil.isEmpty(name)){
                 status.set("-1");
             }
         }
 
     }
+
+    private String getKeyByHospital() {
+        switch (Content.hospital_Id)
+        {
+            case "1":                            //长兴
+                return "记录日期";
+            case "7":                            //厦门
+                return "记录日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0422.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.BeHospitalizedDoc;
@@ -29,8 +30,9 @@ public class BEH0422 extends QCCatalogue {
             return;
         }
         Map<String, String> docStructureMap = beHospitalizedDoc.getStructureMap();
+        String nameKey = getKeyByHospital();
         String admissionDateStr = docStructureMap.get("入院日期");
-        String recordDateStr = docStructureMap.get("记录时间");
+        String recordDateStr = docStructureMap.get(nameKey);
         if (StringUtil.isBlank(admissionDateStr) || StringUtil.isBlank(recordDateStr)) {
             return;
         }
@@ -47,4 +49,13 @@ public class BEH0422 extends QCCatalogue {
             status.set("-1");
         }
     }
+    private String getKeyByHospital() {
+        switch (Content.hospital_Id)
+        {
+            case "1":                            //长兴
+                return "记录日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0441.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.google.common.collect.Lists;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.entity.General;
@@ -42,6 +43,9 @@ public class BEH0441 extends QCCatalogue {
                     return;
                 }
             }
+        } else if("7".equals(Content.hospital_Id)) {
+            status.set("0");
+            return;
         }
         List<GeneralDesc> generals = presentLabel.getGenerals();
         List<General> gens = presentLabel.getGens();

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0442.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.google.common.collect.Lists;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.entity.General;
@@ -42,6 +43,9 @@ public class BEH0442 extends QCCatalogue {
                     return;
                 }
             }
+        } else if("7".equals(Content.hospital_Id)) {
+            status.set("0");
+            return;
         }
 
         List<GeneralDesc> generals = presentLabel.getGenerals();

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0443.java

@@ -29,6 +29,10 @@ public class BEH0443 extends QCCatalogue {
             return;
         }
         PresentLabel presentLabel = beHospitalizedDoc.getPresentLabel();
+        if (presentLabel == null || StringUtil.isBlank(presentLabel.getText())) {
+            status.set("0");
+            return;
+        }
         if (presentLabel != null) {
             String presentLabelText = presentLabel.getText();
             if (StringUtil.isNotBlank(presentLabelText) && (presentLabelText.contains("体重") || presentLabelText.contains("体型"))) {

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0444.java

@@ -30,6 +30,10 @@ public class BEH0444 extends QCCatalogue {
             return;
         }
         PresentLabel presentLabel = beHospitalizedDoc.getPresentLabel();
+        if (presentLabel == null || StringUtil.isBlank(presentLabel.getText())) {
+            status.set("0");
+            return;
+        }
         if (presentLabel != null) {
             List<String> words = Lists.newArrayList("神志", "神清", "神不清", "意识清", "意识不清", "昏迷","精神","意识");
             String presentLabelText = presentLabel.getText();

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0445.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.google.common.collect.Lists;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.BeHospitalizedDoc;
@@ -43,6 +44,9 @@ public class BEH0445 extends QCCatalogue {
                     return;
                 }
             }
+        } else if("7".equals(Content.hospital_Id)) {
+            status.set("0");
+            return;
         }
         List<GeneralDesc> generals = presentLabel.getGenerals();
         List<General> gens = presentLabel.getGens();

+ 4 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0446.java

@@ -6,6 +6,7 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.entity.Clinical;
 import com.lantone.qc.pub.model.entity.Degree;
 import com.lantone.qc.pub.model.entity.Modification;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -24,7 +25,9 @@ public class BEH0446 extends QCCatalogue {
             status.set("0");
             return;
         }
-        if (inputInfo.getBeHospitalizedDoc().getPresentLabel() == null) {
+        if (inputInfo.getBeHospitalizedDoc().getPresentLabel() == null ||
+                StringUtil.isBlank(inputInfo.getBeHospitalizedDoc().getPresentLabel().getText())) {
+            status.set("0");
             return;
         }
         List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0493.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.behospitalized;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.BeHospitalizedDoc;
@@ -26,7 +27,8 @@ public class BEH0493 extends QCCatalogue {
         }
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         Map<String, String> structureMap = beHospitalizedDoc.getStructureMap();
-        String pacs = structureMap.get("辅助检查");
+        String key = getKeyByHopitalId();
+        String pacs = structureMap.get(key);
         String laboratory = structureMap.get("实验室检查");
         String image = structureMap.get("影像学检查");
         if (StringUtil.isNotBlank(pacs) || StringUtil.isNotBlank(laboratory) || StringUtil.isNotBlank(image)) {
@@ -38,4 +40,14 @@ public class BEH0493 extends QCCatalogue {
             status.set("0");
         }
     }
+
+    private String getKeyByHopitalId() {
+        switch (Content.hospital_Id){
+            case "1":
+                return "辅助检查结果";
+            default:
+                return "辅助检查";
+        }
+    }
+
 }

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.clinicalblood;
 
 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.model.doc.ClinicalBloodDoc;
@@ -29,8 +30,9 @@ public class CLI0305 extends QCCatalogue {
         if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
             for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                String key = getKeyByHospitalId();
                 String infusionEnd = cliBStructureMap.get("输注结束");
-                String recordDateStr = cliBStructureMap.get("记录时间");
+                String recordDateStr = cliBStructureMap.get(key);
                 if(StringUtil.isNotEmpty(infusionEnd)){
                     if (!CatalogueUtil.compareTime(
                             StringUtil.parseDateTime(infusionEnd),
@@ -59,4 +61,14 @@ public class CLI0305 extends QCCatalogue {
             status.set("-1");
         }
     }
+
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 21 - 10
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI03063.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.clinicalblood;
 
 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.model.doc.ClinicBloodEffectDoc;
@@ -33,9 +34,10 @@ public class CLI03063 extends QCCatalogue {
         }
         Iterator<ClinicalBloodDoc> clinicalBloodDocIterator = clinicalBloodDocs.iterator();
         Iterator<ClinicBloodEffectDoc> clinicBloodEffectDocIterator = clinicBloodEffectDocs.iterator();
+        String key = getKeyByHospitalId();
         while (clinicalBloodDocIterator.hasNext()) {
             if (!CatalogueUtil.compareTime(
-                    StringUtil.parseDateTime(clinicalBloodDocIterator.next().getStructureMap().get("记录时间")),
+                    StringUtil.parseDateTime(clinicalBloodDocIterator.next().getStructureMap().get(key)),
                     StringUtil.parseDateTime(DateUtil.nowString()),
                     Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
                 clinicalBloodDocIterator.remove();
@@ -43,7 +45,7 @@ public class CLI03063 extends QCCatalogue {
         }
         while (clinicBloodEffectDocIterator.hasNext()) {
             if (!CatalogueUtil.compareTime(
-                    StringUtil.parseDateTime(clinicBloodEffectDocIterator.next().getStructureMap().get("记录时间")),
+                    StringUtil.parseDateTime(clinicBloodEffectDocIterator.next().getStructureMap().get(key)),
                     StringUtil.parseDateTime(DateUtil.nowString()),
                     Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
                 clinicBloodEffectDocIterator.remove();
@@ -51,14 +53,14 @@ public class CLI03063 extends QCCatalogue {
         }
         Collections.sort(clinicalBloodDocs, new Comparator<ClinicalBloodDoc>() {
             public int compare(ClinicalBloodDoc o1, ClinicalBloodDoc o2) {
-                return o1.getStructureMap().get("记录时间")
-                        .compareTo(o2.getStructureMap().get("记录时间"));
+                return o1.getStructureMap().get(key)
+                        .compareTo(o2.getStructureMap().get(key));
             }
         });
         Collections.sort(clinicBloodEffectDocs, new Comparator<ClinicBloodEffectDoc>() {
             public int compare(ClinicBloodEffectDoc o1, ClinicBloodEffectDoc o2) {
-                return o1.getStructureMap().get("记录时间")
-                        .compareTo(o2.getStructureMap().get("记录时间"));
+                return o1.getStructureMap().get(key)
+                        .compareTo(o2.getStructureMap().get(key));
             }
         });
         if (clinicalBloodDocs.size() != clinicBloodEffectDocs.size()) {
@@ -68,12 +70,12 @@ public class CLI03063 extends QCCatalogue {
         for (ClinicalBloodDoc clinicalBloodDoc : clinicalBloodDocs) {
             for (ClinicBloodEffectDoc clinicBloodEffectDoc : clinicBloodEffectDocs) {
                 if (CatalogueUtil.compareTime(
-                        StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get("记录时间")),
-                        StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get("记录时间")),
+                        StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get(key)),
+                        StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get(key)),
                         Long.valueOf(1))) {//结果单时间要比申请单大的
                     if (CatalogueUtil.compareTime(
-                            StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get("记录时间")),
-                            StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get("记录时间")),
+                            StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get(key)),
+                            StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get(key)),
                             Long.valueOf(24 * 60))) {//未超过24小时
                         status.set("-1");
                         return ;
@@ -94,4 +96,13 @@ public class CLI03063 extends QCCatalogue {
 
          */
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0309.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.clinicalblood;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.ClinicBloodEffectDoc;
@@ -33,7 +34,8 @@ public class CLI0309 extends QCCatalogue {
         List<Date> clinicalBloodDate = new ArrayList<>();
         for (ClinicalBloodDoc clinicalBloodDoc : clinicalBloodDocs) {
             Map<String, String> structureMap = clinicalBloodDoc.getStructureMap();
-            if (StringUtil.isNotBlank(structureMap.get("记录时间"))) {
+            String key = getKeyByHospitalId();
+            if (StringUtil.isNotBlank(structureMap.get(key))) {
                 Date date = DateUtil.dateZeroClear(StringUtil.parseDateTime(structureMap.get("记录时间")));
                 if (!clinicalBloodDate.contains(date)) {
                     clinicalBloodDate.add(date);
@@ -58,4 +60,14 @@ public class CLI0309 extends QCCatalogue {
 
          */
     }
+
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 13 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0568.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.clinicalblood;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.ClinicalBloodDoc;
@@ -24,8 +25,9 @@ public class CLI0568 extends QCCatalogue {
         if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
             for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                if(cliBStructureMap.containsKey("记录时间")){
-                    if(StringUtils.isEmpty(cliBStructureMap.get("记录时间"))){
+                String key = getKeyByHospitalId();
+                if(cliBStructureMap.containsKey(key)){
+                    if(StringUtils.isEmpty(cliBStructureMap.get(key))){
                         status.set("-1");
                         break;
                     }
@@ -38,4 +40,13 @@ public class CLI0568 extends QCCatalogue {
         }
 
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON0382.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.consultation;
 
 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.model.doc.CrisisValueReportDoc;
@@ -29,7 +30,8 @@ public class CON0382 extends QCCatalogue {
         if (ListUtil.isNotEmpty(crisisValueReportDocs)) {
             crisisValueReportDocs.forEach(crisisValueReportDoc -> {
                 if (StringUtil.isBlank(crisisValueReportDoc.getStructureMap().get("危急值记录内容"))) {
-                    String record_time = crisisValueReportDoc.getStructureMap().get("记录时间");
+                    String key = getKeyByHospitalId();
+                    String record_time = crisisValueReportDoc.getStructureMap().get(key);
                     String receive_time = crisisValueReportDoc.getStructureMap().get("接收时间");
                     if (!CatalogueUtil.compareTime(
                             StringUtil.parseDateTime(receive_time),
@@ -53,4 +55,13 @@ public class CON0382 extends QCCatalogue {
         }
     }
 
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0098.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.deathcasediscuss;
 
 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.StringUtil;
@@ -23,7 +24,8 @@ public class DEAC0098 extends QCCatalogue {
         if (inputInfo.getDeathRecordDoc() != null && inputInfo.getDeathRecordDoc().getStructureMap() != null) {
             Map<String, String> deathRecordStructureMap = inputInfo.getDeathRecordDoc().getStructureMap();
             String deceaseTime = deathRecordStructureMap.get("死亡时间");
-            String recordTime = deathRecordStructureMap.get("记录时间");
+            String key = getKeyByHospitalId();
+            String recordTime = deathRecordStructureMap.get(key);
             if (CatalogueUtil.isEmpty(deceaseTime) || CatalogueUtil.isEmpty(recordTime)) {
                 return;
             }
@@ -34,4 +36,13 @@ public class DEAC0098 extends QCCatalogue {
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0109.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.deathcasediscuss;
 
 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.StringUtil;
@@ -23,7 +24,8 @@ public class DEAC0109 extends QCCatalogue {
         if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
             Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
             String deceaseTime = deathCaseDiscussStructureMap.get("死亡时间");
-            String recordTime = deathCaseDiscussStructureMap.get("记录时间");
+            String key = getKeyByHospitalId();
+            String recordTime = deathCaseDiscussStructureMap.get(key);
             if (CatalogueUtil.isEmpty(deceaseTime) || CatalogueUtil.isEmpty(recordTime)) {
                 return;
             }
@@ -34,4 +36,13 @@ public class DEAC0109 extends QCCatalogue {
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0112.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.deathcasediscuss;
 
 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;
@@ -20,9 +21,20 @@ public class DEAC0112 extends QCCatalogue {
         status.set("0");
         if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
             Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            if (CatalogueUtil.isEmpty(deathCaseDiscussStructureMap.get("主持人"))) {
+            String key = getKeyByHospitalId();
+            if (CatalogueUtil.isEmpty(deathCaseDiscussStructureMap.get(key))) {
                 status.set("-1");
             }
         }
     }
+
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "讨论主持人";
+            default:
+                return "主持人";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0115.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.deathcasediscuss;
 
 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;
@@ -20,10 +21,20 @@ public class DEAC0115 extends QCCatalogue {
         status.set("0");
         if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
             Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            String sign = deathCaseDiscussStructureMap.get("记录医生");
+            String key = getKeyByHospitalId();
+            String sign = deathCaseDiscussStructureMap.get(key);
             if (CatalogueUtil.isEmpty(sign)) {
                 status.set("-1");
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "记录医师";
+            default:
+                return "记录医生";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0337.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.deathrecord;
 
 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;
@@ -22,7 +23,8 @@ public class DEAR0337 extends QCCatalogue {
                 && inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null) {
             Map<String, String> deathRecordStructure = inputInfo.getDeathRecordDoc().getStructureMap();
             Map<String, String> leaveHospitalStructure = inputInfo.getLeaveHospitalDoc().getStructureMap();
-            String recordTime = deathRecordStructure.get("记录时间");
+            String key = getKeyByHospitalId();
+            String recordTime = deathRecordStructure.get(key);
             String signTime = leaveHospitalStructure.get("签名时间");
             //如果死亡记录时间比出院小结签名时间晚
             if(CatalogueUtil.compareDate(recordTime,signTime,-1)){
@@ -30,4 +32,13 @@ public class DEAR0337 extends QCCatalogue {
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 12 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0338.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.deathrecord;
 import com.lantone.qc.dbanaly.util.KernelConstants;
 import com.lantone.qc.dbanaly.util.SpecialStorageUtil;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.StringUtil;
@@ -28,14 +29,23 @@ public class DEAR0338 extends QCCatalogue {
             return;
         }
         Map<String, String> deathRecordStructure = inputInfo.getDeathRecordDoc().getStructureMap();
-        String recordDoctor = deathRecordStructure.get("医师签字");
+        String key = getKeyByHospitalId();
+        String recordDoctor = deathRecordStructure.get(key);
         if (StringUtil.isNotBlank(recordDoctor)) {
             if (findDirectorDoctor(recordDoctor)) {
                 status.set("0");
             }
         }
     }
-
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "记录医师";
+            default:
+                return "医师签字";
+        }
+    }
     private boolean findDirectorDoctor(String recordDoctor) {
         Map<String, Map<String, Object>> hospitalDoctorMap = specialStorageUtil.getJsonStringValue(KernelConstants.HOSPITAL_DOCTOR_MAP);
         if (hospitalDoctorMap == null) {

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0342.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.deathrecord;
 
 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;
@@ -20,9 +21,19 @@ public class DEAR0342 extends QCCatalogue {
         status.set("0");
         if (inputInfo.getDeathRecordDoc() != null && inputInfo.getDeathRecordDoc().getStructureMap() != null) {
             Map<String, String> deathRecordStructureMap = inputInfo.getDeathRecordDoc().getStructureMap();
-            if (CatalogueUtil.isEmpty(deathRecordStructureMap.get("诊疗经过(重点记录病情演变、抢救经过)"))) {
+            String key = getKeyByHospitalId();
+            if (CatalogueUtil.isEmpty(deathRecordStructureMap.get(key))) {
                 status.set("-1");
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "诊疗经过";
+            default:
+                return "诊疗经过(重点记录病情演变、抢救经过)";
+        }
+    }
 }

+ 16 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0117.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.difficultcasediscuss;
 
 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.model.doc.DifficultCaseDiscussDoc;
@@ -22,18 +23,28 @@ public class DIF0117 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         List<DifficultCaseDiscussDoc> difficultCaseDiscussDocs = inputInfo.getDifficultCaseDiscussDocs();
-        if (ListUtil.isEmpty(difficultCaseDiscussDocs)) {
+        if(ListUtil.isEmpty(difficultCaseDiscussDocs)){
             return;
         }
-        if (difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size() > 0) {
-            for (DifficultCaseDiscussDoc dcdd : difficultCaseDiscussDocs) {
+        if(difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size()>0){
+            for (DifficultCaseDiscussDoc dcdd:difficultCaseDiscussDocs) {
                 Map<String, String> dcddStructureMap = dcdd.getStructureMap();
-                String diisDate = dcddStructureMap.get("讨论日期");
-                if (CatalogueUtil.isEmpty(diisDate)) {
+                String key = getKeyByHospitalId();
+                String diisDate = dcddStructureMap.get(key);
+                if(CatalogueUtil.isEmpty(diisDate)){
                     status.set("-1");
                     break;
                 }
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "讨论日期";
+            default:
+                return "讨论时间";
+        }
+    }
 }

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0118.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.difficultcasediscuss;
 
 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.model.doc.DifficultCaseDiscussDoc;
@@ -28,7 +29,8 @@ public class DIF0118 extends QCCatalogue {
         if(difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size()>0){
             for (DifficultCaseDiscussDoc dcdd:difficultCaseDiscussDocs) {
                 Map<String, String> dcddStructureMap = dcdd.getStructureMap();
-                String diisDate = dcddStructureMap.get("主持人姓名及专业技术职务");
+                String key = getKeyByHospitalId();
+                String diisDate = dcddStructureMap.get(key);
                 if(CatalogueUtil.isEmpty(diisDate)){
                     status.set("-1");
                     break;
@@ -36,4 +38,14 @@ public class DIF0118 extends QCCatalogue {
             }
         }
     }
+
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "主持人";
+            default:
+                return "主持人姓名及专业技术职务";
+        }
+    }
 }

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0119.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.difficultcasediscuss;
 
 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.model.doc.DifficultCaseDiscussDoc;
@@ -28,7 +29,8 @@ public class DIF0119 extends QCCatalogue {
         if (difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size() > 0) {
             for (DifficultCaseDiscussDoc dcdd : difficultCaseDiscussDocs) {
                 Map<String, String> dcddStructureMap = dcdd.getStructureMap();
-                String diisDate = dcddStructureMap.get("参加人员的姓名及专业技术职务");
+                String key = getKeyByHospitalId();
+                String diisDate = dcddStructureMap.get(key);
                 if (CatalogueUtil.isEmpty(diisDate)) {
                     status.set("-1");
                     break;
@@ -36,4 +38,14 @@ public class DIF0119 extends QCCatalogue {
             }
         }
     }
+
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "参加讨论者";
+            default:
+                return "参加人员的姓名及专业技术职务";
+        }
+    }
 }

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0120.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.difficultcasediscuss;
 
 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.model.doc.DifficultCaseDiscussDoc;
@@ -28,7 +29,8 @@ public class DIF0120 extends QCCatalogue {
         if (difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size() > 0) {
             for (DifficultCaseDiscussDoc dcdd : difficultCaseDiscussDocs) {
                 Map<String, String> dcddStructureMap = dcdd.getStructureMap();
-                String diisDate = dcddStructureMap.get("具体讨论意见");
+                String key = getKeyByHospitalId();
+                String diisDate = dcddStructureMap.get(key);
                 if (CatalogueUtil.isEmpty(diisDate)) {
                     status.set("-1");
                     break;
@@ -36,4 +38,14 @@ public class DIF0120 extends QCCatalogue {
             }
         }
     }
+
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "讨论内容";
+            default:
+                return "具体讨论意见";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0553.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.difficultcasediscuss;
 
 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.model.doc.DifficultCaseDiscussDoc;
@@ -28,7 +29,8 @@ public class DIF0553 extends QCCatalogue {
         if(difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size()>0){
             for (DifficultCaseDiscussDoc dcdd:difficultCaseDiscussDocs) {
                 Map<String, String> dcddStructureMap = dcdd.getStructureMap();
-                String diisDate = dcddStructureMap.get("记录医生签名");
+                String key = getKeyByHospitalId();
+                String diisDate = dcddStructureMap.get(key);
                 if(CatalogueUtil.isEmpty(diisDate)){
                     status.set("-1");
                     break;
@@ -36,4 +38,13 @@ public class DIF0553 extends QCCatalogue {
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "记录者";
+            default:
+                return "记录医生签名";
+        }
+    }
 }

+ 15 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/dutyshiftsystem/DUT0598.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.dutyshiftsystem;
 import com.google.common.collect.Lists;
 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.model.doc.transferrecord.TransferIntoDoc;
@@ -49,6 +50,7 @@ public class DUT0598 extends QCCatalogue {
             dateLists.add(date);
         }
         dateLists = dateLists.stream().sorted().collect(Collectors.toList());
+        String key = getKeyByHospitalId();
         for (TransferIntoDoc transferIntoDoc : transferIntoDocs) {
             Map<String, Date> maps = new HashMap<>();
             Map<String, String> transferOutStructureMap = transferIntoDoc.getStructureMap();
@@ -66,9 +68,9 @@ public class DUT0598 extends QCCatalogue {
                     if (maps.size() == 0) {
                         removeDate = date;
                         maps.put("转入时间", rollOutRecordDate);
-                        maps.put("记录时间", recordDate);
+                        maps.put(key, recordDate);
                     } else {
-                        if (recordDate.getTime() - rollOutRecordDate.getTime() < maps.get("记录时间").getTime() - maps.get("转入时间").getTime()) {
+                        if (recordDate.getTime() - rollOutRecordDate.getTime() < maps.get(key).getTime() - maps.get("转入时间").getTime()) {
                             removeDate = date;
                             maps.put("转入时间", rollOutRecordDate);
                         }
@@ -77,8 +79,8 @@ public class DUT0598 extends QCCatalogue {
             }
 
             if (maps.size() != 0) {
-                boolean compareTime = CatalogueUtil.compareTime(maps.get("转入时间"), maps.get("记录时间"), (long) 24 * 60);
-                boolean sameDay = DateUtils.isSameDay(maps.get("转入时间"), maps.get("记录时间"));
+                boolean compareTime = CatalogueUtil.compareTime(maps.get("转入时间"), maps.get(key), (long) 24 * 60);
+                boolean sameDay = DateUtils.isSameDay(maps.get("转入时间"), maps.get(key));
                 dateLists.remove(removeDate);
                 if (compareTime && !sameDay) {
                     status.set("-1");
@@ -87,5 +89,14 @@ public class DUT0598 extends QCCatalogue {
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 
 }

+ 13 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0082.java

@@ -3,6 +3,7 @@ package com.lantone.qc.kernel.catalogue.firstcourserecord;
 import com.lantone.qc.dbanaly.util.KernelConstants;
 import com.lantone.qc.dbanaly.util.SpecialStorageUtil;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.SpringContextUtil;
@@ -29,8 +30,8 @@ public class FIRC0082 extends QCCatalogue {
             status.set("0");
             return;
         }
-
-        String doctorName = inputInfo.getFirstCourseRecordDoc().getStructureMap().get("医师签名");
+        String key = getKeyByHospitalId();
+        String doctorName = inputInfo.getFirstCourseRecordDoc().getStructureMap().get(key);
         if (StringUtil.isBlank(doctorName)) {
             status.set("0");
             return;
@@ -68,4 +69,14 @@ public class FIRC0082 extends QCCatalogue {
         return occup;
     }
 
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "记录医生";
+            default:
+                return "医师签名";
+        }
+    }
+
 }

+ 13 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0093.java

@@ -2,6 +2,7 @@ package com.lantone.qc.kernel.catalogue.firstcourserecord;
 
 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.model.doc.BeHospitalizedDoc;
@@ -30,7 +31,8 @@ public class FIRC0093 extends QCCatalogue {
             Map<String, String> courseRecordDocStructureMap = firstCourseRecordDoc.getStructureMap();
             Map<String, String> beHospitalizedDocStructureMap = beHospitalizedDoc.getStructureMap();
             if (courseRecordDocStructureMap != null && beHospitalizedDocStructureMap != null) {
-                String couDate = courseRecordDocStructureMap.get("病历日期");
+                String key = getKeyByHospitalId();
+                String couDate = courseRecordDocStructureMap.get(key);
                 String beDate = beHospitalizedDocStructureMap.get("入院日期");
                 if (StringUtils.isNotEmpty(couDate) && StringUtils.isNotEmpty(beDate)) {
                     Date date_in = StringUtil.parseDateTime(beDate);
@@ -64,4 +66,14 @@ public class FIRC0093 extends QCCatalogue {
             }
         }
     }
+
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "记录时间";
+            default:
+                return "病历日期";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC02910.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.firstcourserecord;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.BeHospitalizedDoc;
@@ -28,7 +29,8 @@ public class FIRC02910 extends QCCatalogue {
         }
         Map<String, String> firstRecordMap = firstCourseRecordDoc.getStructureMap();
         Map<String, String> beHospitalizedMap = beHospitalizedDoc.getStructureMap();
-        String createDateStr = firstRecordMap.get("记录时间");
+        String key = getKeyByHospitalId();
+        String createDateStr = firstRecordMap.get(key);
         String beHospitalDateStr = beHospitalizedMap.get("入院日期");
         if (StringUtil.isNotBlank(createDateStr) && StringUtil.isNotBlank(beHospitalDateStr)) {
             Date createDate = StringUtil.parseDateTime(createDateStr);
@@ -40,4 +42,13 @@ public class FIRC02910 extends QCCatalogue {
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "记录时间";
+        }
+    }
 }

+ 12 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0504.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.firstcourserecord;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.FirstCourseRecordDoc;
@@ -23,11 +24,21 @@ public class FIRC0504 extends QCCatalogue {
         if (firstCourseRecordDoc != null) {
             Map<String, String> firstRecordMap = firstCourseRecordDoc.getStructureMap();
             if (firstRecordMap != null) {
-                String treatPlan = firstRecordMap.get("诊疗计划");
+                String key = getKeyByHospitalId();
+                String treatPlan = firstRecordMap.get(key);
                 if (StringUtil.isBlank(treatPlan)) {
                     status.set("-1");
                 }
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "治疗计划";
+            default:
+                return "诊疗计划";
+        }
+    }
 }

+ 5 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0175.java

@@ -50,8 +50,11 @@ public class FIRP0175 extends QCCatalogue {
                 String diagCategory = diag.get("诊断类别");
                 if (StringUtil.isNotBlank(diagCategory) && "主要诊断".equals(diagCategory)) {
                     firstpageleaveDiag = diag.get(Content.diagnoseName);
-                    if (firstpageleaveDiag.contains("伴")) {
-                        firstpageleaveDiag = firstpageleaveDiag.substring(0, firstpageleaveDiag.indexOf("伴"));
+                    if(!"1".equals(Content.hospital_Id))
+                    {
+                        if (firstpageleaveDiag.contains("伴")) {
+                            firstpageleaveDiag = firstpageleaveDiag.substring(0, firstpageleaveDiag.indexOf("伴"));
+                        }
                     }
                     break;
                 }

+ 11 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0222.java

@@ -35,9 +35,19 @@ public class FIRP0222 extends QCCatalogue {
         Map<String, String> firpStructureMap = firstPageRecordDoc.getStructureMap();
         Map<String, String> medStructureMap = medicalRecordInfoDoc.getStructureMap();
         String admitDept = firpStructureMap.get(Content.admitDept);
-        String behDeptId = medStructureMap.get("behDeptName");
+        String key = getKeyByHospitalId();
+        String behDeptId = medStructureMap.get(key);
         if (StringUtil.isNotBlank(admitDept) && StringUtil.isNotBlank(behDeptId) && !admitDept.equals(behDeptId)) {
             status.set("-1");
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "behDeptId";
+            default:
+                return "behDeptName";
+        }
+    }
 }

+ 11 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0250.java

@@ -71,11 +71,21 @@ public class FIRP0250 extends QCCatalogue {
         for (RescueDoc re : rescueDocs) {
             Map<String, String> structureMap = re.getStructureMap();
             // 跟医学部确认,从抢救措施中读取数据
-            String qjgc = structureMap.get("抢救内容");
+            String key = getKeyByHospitalId();
+            String qjgc = structureMap.get(key);
             if (StringUtil.isNotBlank(qjgc) && !qjgc.contains("死亡")) {
                 i++;
             }
         }
         return i;
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "1":               //长兴
+                return "抢救措施";
+            default:
+                return "抢救内容";
+        }
+    }
 }

+ 0 - 125
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0002.java

@@ -1,125 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.alibaba.fastjson.JSONArray;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.client.ChiefPresentSimilarityServiceClient;
-import com.lantone.qc.kernel.structure.ai.ModelAI;
-import com.lantone.qc.dbanaly.util.KernelConstants;
-import com.lantone.qc.dbanaly.util.SpecialStorageUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.model.label.DiagLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0002
- * @Description : 主诊断与主诉不符
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0002 extends QCCatalogue {
-    @Autowired
-    private SpecialStorageUtil specialStorageUtil;
-    @Autowired
-    ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        if (beHospitalizedDoc == null) {
-            status.set("0");
-            return;
-        }
-        boolean bool = false;
-        ChiefLabel chiefLabel = beHospitalizedDoc.getChiefLabel();
-        DiagLabel initialDiagLabel = beHospitalizedDoc.getInitialDiagLabel();
-        if (chiefLabel == null || initialDiagLabel == null) {
-            status.set("0");
-            return;
-        }
-        List<Diag> chiefDiags = chiefLabel.getDiags();
-        List<Diag> diags = initialDiagLabel.getDiags();
-        if (chiefDiags.size() > 0) {
-            for (Diag diag : chiefDiags) {
-                String hospitalDiagName = diag.getHospitalDiagName();
-                if (hospitalDiagName.contains("术后") || hospitalDiagName.contains("癌") ||
-                        hospitalDiagName.contains("瘤") || hospitalDiagName.contains("复诊")) {
-                    status.set("0");
-                    break;
-                }
-                {
-                    bool = true;
-                }
-            }
-        } else {
-            bool = true;
-        }
-        if (bool) {
-            String firstDiag = diags.get(0).getName();
-            String firstHDiag = diags.get(0).getHospitalDiagName();
-            String mainDiag = StringUtil.isBlank(firstHDiag) ? firstDiag : firstHDiag;
-            List<String> symptoms = null;
-            //Map<String, String> hostpital_standDiag = specialStorageUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
-            //if (!hostpital_standDiag.containsKey(mainDiag)) {
-            //    status.set("0");
-            //    return;
-            //}
-            Map<String, Map<String, Object>> diagMap = specialStorageUtil.getJsonStringValue(KernelConstants.CONCEPT_DIAG_PROPERTY_MAP);
-            Map<String, Object> map = (Map<String, Object>) diagMap.get(mainDiag);
-            if (map != null && map.size() > 0) {
-                symptoms = (List<String>) map.get("symptoms");
-            }
-            if (symptoms == null) {
-                status.set("0");
-                return;
-            }
-            List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getChiefLabel().getClinicals();
-            if (clinicals != null && clinicals.size() > 0) {
-                String firstClinical = clinicals.get(0).getName();
-                /* 主诉现病史相似度算法接口 */
-                ModelAI modelAI = new ModelAI();
-                JSONArray jsonArray = modelAI.loadChiefPresentSimilarAI(firstClinical, symptoms, false
-                        , "chief_present", chiefPresentSimilarityServiceClient);
-                if (jsonArray.size() == 2) {
-                    /* 相似度最高症状 */
-                    String symptom = jsonArray.getString(0);
-                    /* 相似度分数 */
-                    double likeRate = jsonArray.getDoubleValue(1);
-                    if (likeRate > 0.9) {
-                        status.set("0");
-                    } else {
-                        status.set("-1");
-                        info.set(symptom);
-                    }
-                }
-
-                //if (symptoms.contains(firstClinical)) {
-                //    status.set("0");
-                //}
-                //for (Clinical clinical : clinicals) {
-                //    String clinicalName = clinical.getName();
-                //    if (symptoms != null && !symptoms.contains(clinicalName)) {
-                //        if (StringUtils.isEmpty(info.get())) {
-                //            info.set(clinicalName);
-                //        } else {
-                //            info.set(info.get() + "," + clinicalName);
-                //        }
-                //    }
-                //}
-            }
-            //if (StringUtils.isEmpty(info.get())) {
-            //    status.set("0");
-            //}
-        }
-    }
-}

+ 0 - 46
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0004.java

@@ -1,46 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-
-/**
- * @ClassName : BEH0004
- * @Description : 入院记录个人基本信息缺项或信息错误
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0004 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-
-        status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if(structureMap != null){
-            String basePassage = structureMap.get("个人基本信息");
-            if(StringUtils.isNotEmpty(basePassage)){
-                String[] baseFilds = basePassage.split(",");
-                for (String fild:baseFilds) {
-                    if(StringUtils.isBlank(structureMap.get(fild))){
-                        status.set("-1");
-                        break;
-                    }
-                }
-            }
-        }
-
-    }
-}

+ 0 - 67
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0009.java

@@ -1,67 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Arrays;
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0009
- * @Description :主诉缺少主症状
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0009 extends QCCatalogue {
-    private List<String> containList = Arrays.asList("检查", "术后", "药物", "发现", "误服", "确诊", "经", "异常", "诊断"
-            , "示", "超", "伤", "术");
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
-        if (chiefLabel == null) {
-            status.set("0");
-            return;
-        }
-        String chiefText = chiefLabel.getText();
-        if (StringUtil.isBlank(chiefText)) {
-            status.set("0");
-            return;
-        }
-        if (StringUtil.isNotBlank(chiefText)) {
-            for (String word : containList) {
-                if (chiefText.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-            List<Clinical> clinicals = chiefLabel.getClinicals();
-            if (clinicals != null && clinicals.size() > 0) {
-                status.set("0");
-                return;
-            }
-            List<Diag> diags = chiefLabel.getDiags();
-            if (diags != null && diags.size() > 0) {
-                for (Diag diag : diags) {
-                    String hospitalDiagName = diag.getHospitalDiagName();
-                    if (hospitalDiagName.contains("术后") || hospitalDiagName.contains("癌") ||
-                            hospitalDiagName.contains("瘤") || hospitalDiagName.contains("复诊")) {
-                        status.set("0");
-                        break;
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 74
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0010.java

@@ -1,74 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0010
- * @Description : 主诉中出现诊断名称(病理确诊:如肿瘤疾病、再入院除外)
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0010 extends QCCatalogue {
-    private List<String> containList = Arrays.asList("癌", "瘤", "复诊", "术后", "化疗后", "发现", "体检", "检查", "确诊"
-            , "诊断", "复查", "复发", "示", "超", "CT", "血透", "血液透析");
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
-        if (chiefLabel == null) {
-            status.set("0");
-            return;
-        }
-        String chiefText = chiefLabel.getText();
-        if (StringUtil.isNotBlank(chiefText)) {
-            for (String word : containList) {
-                if (chiefText.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-        }
-        List<Diag> diags = chiefLabel.getDiags();
-        /*
-        if (diags != null && diags.size() > 0) {
-            Iterator<Diag> diagIterator = diags.iterator();
-            while (diagIterator.hasNext()) {
-                Diag diag = diagIterator.next();
-                String diagName = diag.getHospitalDiagName();
-                for (String word: containList) {
-                    if (diagName.contains(word)){
-                        diagIterator.remove();
-                        break;
-                    }
-                }
-            }
-        }
-         */
-        if (diags != null && diags.size() > 0) {
-            status.set("-1");
-            for (Diag diag : diags) {
-                if (StringUtil.isEmpty(info.get())) {
-                    info.set(diag.getHospitalDiagName());
-                } else {
-                    info.set(info.get() + "," + diag.getHospitalDiagName());
-                }
-            }
-        }
-
-    }
-}

+ 0 - 55
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0013.java

@@ -1,55 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.label.PastLabel;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0013
- * @Description :  现病史缺少有鉴别意义的阴性症状
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0013 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        //现病史
-        PresentLabel presentLabel = beHospitalizedDoc.getPresentLabel();
-        if (presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText())) {
-            return;
-        }
-        String text = presentLabel.getText();
-        if (StringUtil.isNotBlank(text)) {
-            if ((text.contains("无") || text.contains("否认") || text.contains("内固定")) && !text.contains("诱因")) {
-                return;
-            }
-        }
-        List<Clinical> clinicalNegative = new ArrayList<>();
-        List<Clinical> clinicals = presentLabel.getClinicals();
-        if (clinicals.size() > 0) {
-            for (Clinical clinical : clinicals) {
-                if (clinical.getNegative() != null) {
-                    clinicalNegative.add(clinical);
-                }
-            }
-        }
-        if (clinicalNegative.size() == 0) {
-            status.set("-1");
-        }
-    }
-}

+ 0 - 95
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0014.java

@@ -1,95 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Cause;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.PastLabel;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.Arrays;
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0014
- * @Description :  现病史症状缺少诱因
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0014 extends QCCatalogue {
-    private List<String> containList = Arrays.asList("体检", "发现", "检查", "因", "确诊", "诊断", "复查", "术后"
-            , "药物", "误服", "查", "撞", "伤", "月经", "暴力", "超", "术");
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        /*List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
-        if(clinicals.size()>0){
-            Clinical clinical = clinicals.get(0);
-            String clinicalName = clinical.getName();
-            Cause cause = clinical.getCause();
-            if(cause == null){
-                info.set(clinicalName);
-            }else {
-                status.set("0");
-            }
-        }*/
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        if (presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        List<Clinical> clinicals = presentLabel.getClinicals();
-        if (ListUtil.isNotEmpty(clinicals)) {
-            for (Clinical clinical : clinicals) {
-                if (clinical.getCause() != null) {
-                    status.set("0");
-                    return;
-                }
-            }
-        }
-        //硬规则匹配 前30个字有"体检"或"发现"或"检查"(containList)字样
-        String present = presentLabel.getText();
-        if (StringUtils.isNotEmpty(present)) {
-            if (present.length() > 30) {
-                present = present.substring(0, 30);
-            }
-            present = present.replaceAll("[\"“”]", "");
-            for (String word : containList) {
-                if (present.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-            //模型在现病史前30个字里能提出来疾病,那也可以算有诱因
-            List<Diag> presentDiags = presentLabel.getDiags();
-            if (presentDiags.size() > 0) {
-                for (Diag diag : presentDiags) {
-                    String hospitalDiagName = diag.getHospitalDiagName();
-                    if (StringUtil.isBlank(hospitalDiagName)) {
-                        continue;
-                    }
-                    if (present.contains(hospitalDiagName)) {
-                        status.set("0");
-                        return;
-                    }
-                }
-            }
-        }
-
-        List<Cause> causes = presentLabel.getCauses();
-        if (causes != null && causes.size() > 0) {
-            status.set("0");
-        }
-    }
-}

+ 0 - 45
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0015.java

@@ -1,45 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.dbanaly.util.KernelConstants;
-import com.lantone.qc.dbanaly.util.SpecialStorageUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.BodyPart;
-import com.lantone.qc.pub.model.entity.Clinical;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0015
- * @Description :  现病史症状缺少部位,只判断现病史中的第一个症状
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0015 extends QCCatalogue {
-    @Autowired
-    private SpecialStorageUtil specialStorageUtil;
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            return;
-        }
-        List<String> clinicalList = (List<String>) specialStorageUtil.getJsonStringValue(KernelConstants.CONCEPT_CLINIC_BODYPART_PROPERTIES_LIST);
-        List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
-        if(clinicals.size()>0){
-            Clinical clinical = clinicals.get(0);
-            if(clinicalList.contains(clinical.getName())){
-                BodyPart bodyPart = clinical.getBodyPart();
-                if(bodyPart == null){
-                    status.set("-1");
-                    info.set(clinical.getName());
-                }
-            }
-
-        }
-    }
-}

+ 0 - 37
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0016.java

@@ -1,37 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.*;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0016
- * @Description :  现病史症状缺少性质
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0016 extends QCCatalogue {
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            status.set("0");
-            return;
-        }
-        List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
-        if(clinicals.size()>0){
-            Clinical clinical = clinicals.get(0);
-            Property property = clinical.getProperty();
-            if(property == null){
-                info.set(clinical.getName());
-                status.set("-1");
-            }
-        }
-
-        }
-    }

+ 0 - 79
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0018.java

@@ -1,79 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.PD;
-import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0018
- * @Description :现病史症状缺少近期时间描述
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0018 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
-        if (chiefLabel != null && ListUtil.isNotEmpty(chiefLabel.getClinicals())) {
-            List<Clinical> clinicalList = chiefLabel.getClinicals();
-            boolean flag = true;
-            // 主诉症状不超过1年就不报错,单位不包含“年”
-            for (Clinical c : clinicalList) {
-                List<PD> pds = c.getTimestamp();
-                if (ListUtil.isNotEmpty(pds)) {
-                    for (PD pd : pds) {
-                        if (StringUtil.isNotBlank(pd.getName()) &&
-                                pd.getName().contains("年") && !"半年".equals(pd.getName())) {
-                            flag = false;
-                            break;
-                        }
-                    }
-                }
-            }
-            if (flag) {
-                status.set("0");
-                return;
-            }
-        }
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        List<PD> pds = presentLabel.getPds();
-        if (pds != null && pds.size() > 0) {
-            for (PD pd : pds) {
-                String pdName = pd.getName();
-                if (StringUtil.isNotBlank(pdName)) {
-                    if (pdName.contains("天") || pdName.contains("周") || pdName.contains("月")
-                            || pdName.contains("时") || pdName.contains("秒") || pdName.contains("半年")
-                            || pdName.contains("日") || pdName.contains("今") || pdName.contains("余年")
-                            || pdName.contains("年") || pdName.contains("分") || pdName.contains("点")
-                            || pdName.contains("早") || pdName.contains("午") || pdName.contains("晚")
-                            || pdName.contains("夜") || pdName.contains("晨")
-                            || isDate(pdName)) {
-                        status.set("0");
-                        break;
-                    }
-                }
-            }
-        }
-
-    }
-
-    private boolean isDate(String pdName) {
-        String regex = "[0-9]{4}.?[0-9]{2}.?[0-9]{2}";
-        return pdName.matches(regex);
-    }
-}
-

+ 0 - 42
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0019.java

@@ -1,42 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.dbanaly.util.SpecialStorageUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Degree;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0019
- * @Description :  现病史症状缺少程度
- * crf模型中只标注到修饰的程度,需要用词库去配出哪些是程度。
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0019 extends QCCatalogue {
-    @Autowired
-    private SpecialStorageUtil specialStorageUtil;
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            status.set("0");
-            return;
-        }
-        List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
-        if(clinicals.size()>0){
-            Clinical clinical = clinicals.get(0);
-            Degree degree = clinical.getDegree();
-            if(degree == null){
-                info.set(clinical.getName());
-            }else {
-                status.set("0");
-            }
-        }
-    }
-}

+ 0 - 39
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0020.java

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Modification;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0020
- * @Description :  现病史症状缺少缓解情况
- * crf模型中只标注趋势,需要用词库去配出哪些是缓解情况。
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0020 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            status.set("0");
-            return;
-        }
-        List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
-        if(clinicals.size()>0){
-            Clinical clinical = clinicals.get(0);
-            Modification modification = clinical.getModification();
-            if(modification == null || !modification.getName().contains("缓")){
-                info.set(clinical.getName());
-            }else {
-                status.set("0");
-            }
-        }
-    }
-}

+ 0 - 44
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0021.java

@@ -1,44 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.General;
-import com.lantone.qc.pub.model.entity.GeneralDesc;
-import com.lantone.qc.pub.model.entity.Modification;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0021
- * @Description :  现病史症状缺少加剧情况
- *  crf模型中只标注趋势,需要用词库去配出哪些是加剧情况。
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0021 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            status.set("0");
-            return;
-        }
-        List<General> gens = inputInfo.getBeHospitalizedDoc().getPresentLabel().getGens();
-        List<GeneralDesc> generals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getGenerals();
-        List<Clinical> clinicals = inputInfo.getBeHospitalizedDoc().getPresentLabel().getClinicals();
-        if(clinicals.size()>0){
-            Clinical clinical = clinicals.get(0);
-            Modification modification = clinical.getModification();
-            if(modification == null || (!modification.getName().contains("严重") && !modification.getName().contains("加剧")
-                    && !modification.getName().contains("加重"))){
-                info.set(clinical.getName());
-            }else {
-                status.set("0");
-            }
-        }
-    }
-}

+ 0 - 44
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0022.java

@@ -1,44 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.General;
-import com.lantone.qc.pub.model.entity.GeneralDesc;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0022
- * @Description :  现病史缺少发病以来一般情况描述
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0022 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        if (presentLabel == null) {
-            status.set("0");
-            return;
-        }
-        List<GeneralDesc> generals = presentLabel.getGenerals();
-        if (generals != null && generals.size() > 0) {
-            status.set("0");
-            return;
-        }
-        List<General> gens = inputInfo.getBeHospitalizedDoc().getPresentLabel().getGens();
-        if (gens != null && gens.size() > 0) {
-            status.set("0");
-            return;
-        }
-
-    }
-}

+ 0 - 62
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0031.java

@@ -1,62 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.ListUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 慢病史未填写
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0031 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtils.isNotEmpty(structureMap.get("高血压"))) {
-            status.set("0");
-            return;
-        }
-
-        if (ListUtil.isNotEmpty(
-                CatalogueUtil.filterDiagsByNature(
-                        inputInfo.getBeHospitalizedDoc().getPastLabel().getDiags(),
-                        "chronic",
-                        "1"
-                )
-        )) {
-            status.set("0");
-        }
-        //硬规则匹配
-        String text = inputInfo.getBeHospitalizedDoc().getPastLabel().getText();
-        if (StringUtils.isNotEmpty(text)) {
-            List<String> words = Lists.newArrayList("高血压", "糖尿病", "阿尔茨海默病", "帕金森", "冠心病心律失常型"
-                    , "冠状动脉性心脏病", "冠状动脉粥样硬化性心脏病", "慢性肾炎综合征", "肾病", "慢性肾衰竭", "肾功能异常", "哮喘"
-                    , "肺结核", "腹膜透析", "慢性阻塞性肺病", "精神分裂症", "分裂情感性精神病", "双相情感障碍,目前为缓解状态", "前列腺增生"
-                    , "高脂血症", "高低密度脂蛋白胆固醇血症", "高胆固醇血症", "高甘油三酯血症", "骨质疏松", "慢性乙型病毒性肝炎"
-                    , "慢性庚型肝炎", "慢性肝炎", "慢性丁型肝炎", "慢性病毒性肝炎", "慢性丙型病毒性肝炎", "酒精性肝病", "脂肪肝"
-                    , "肝硬化", "肝恶性肿瘤", "肝恶性细胞瘤", "肝病", "类风湿性关节炎", "心脑血管", "内分泌");
-            for (String word : words) {
-                if (text.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-        }
-    }
-
-}

+ 0 - 59
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0039.java

@@ -1,59 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Allergy;
-import com.lantone.qc.pub.model.label.PastLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @Description: 食物过敏史描述不完整
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0039 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        if (pastLabel == null) {
-            return;
-        }
-        String pastText = pastLabel.getText();
-        if (StringUtil.isNotBlank(pastText) && pastText.contains("食物过敏史")) {
-            return;
-        }
-        List<Allergy> allergies = pastLabel.getAllergies();
-        if (ListUtil.isEmpty(allergies)) {
-            return;
-        }
-        for (Allergy allergy : allergies) {
-            if (allergy == null
-                    || StringUtil.isBlank(allergy.getName())
-                    || allergy.getAllergyFood() == null
-                    || StringUtil.isBlank(allergy.getAllergyFood().getName())) {
-                continue;
-            }
-            if ((allergy.getNegative() == null || StringUtil.isBlank(allergy.getNegative().getName()))
-                    && (allergy.getAllergyFood().getPd() == null || StringUtil.isBlank(allergy.getAllergyFood().getPd().getName()))
-                    && (allergy.getAllergyFood().getDegree() == null || StringUtil.isBlank(allergy.getAllergyFood().getDegree().getName()))
-                    && (allergy.getAllergyFood().getAllergyDesc() == null || StringUtil.isBlank(allergy.getAllergyFood().getAllergyDesc().getName()))) {
-                info.set(info.get() + allergy.getAllergyFood().getName() + " ");
-            }
-        }
-        if (StringUtil.isNotBlank(info.get())) {
-            status.set("-1");
-        }
-    }
-
-}

+ 0 - 69
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0043.java

@@ -1,69 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Address;
-import com.lantone.qc.pub.model.label.PersonalLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-
-/**
- * @Description: 居住地未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0043 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        //台州结构化
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtils.isNotEmpty(structureMap.get("联系地址")) || StringUtils.isNotEmpty(structureMap.get("现住址"))) {
-            status.set("0");
-            return;
-        }
-
-        PersonalLabel personalLabel = inputInfo.getBeHospitalizedDoc().getPersonalLabel();
-        if (personalLabel == null) {
-            status.set("0");
-            return;
-        }
-        String text = personalLabel.getText();
-        if (StringUtil.isBlank(text) || text.contains("居住") || text.contains("生长") || text.contains("生活")
-                || text.contains("详见原病历")) {
-            status.set("0");
-            return;
-        }
-        List<Address> addresses = personalLabel.getAddresses();
-        if (ListUtil.isNotEmpty(addresses)) {
-            long count = addresses.stream().filter(i -> {
-                boolean flag = false;
-                if (i != null && StringUtil.isNotBlank(i.getName())) {
-                    if (i.getName().indexOf("居住") > -1) {
-                        flag = true;
-                    } else {
-                        Pattern pattern = Pattern.compile("[\\s\\S]*(居住|生长)[\\s\\S]{0,5}" + i.getName() + "[\\s\\S]*");
-                        flag = pattern.matcher(text).matches();
-                    }
-                }
-                return flag;
-            }).count();
-            if (count > 0) {
-                status.set("0");
-            }
-        }
-    }
-
-}

+ 0 - 50
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0044.java

@@ -1,50 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.EpidemicArea;
-import com.lantone.qc.pub.model.label.PersonalLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @Description: 疫区接触史未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0044 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            status.set("0");
-            return;
-        }
-        //台州结构化
-        Map<String, String> structureMap_beh = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if(StringUtils.isNotEmpty(structureMap_beh.get("疫区居留史"))){
-            status.set("0");
-            return;
-        }
-        PersonalLabel personalLabel = inputInfo.getBeHospitalizedDoc().getPersonalLabel();
-        if (personalLabel == null || StringUtil.isBlank(personalLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        String personalText = personalLabel.getText();
-        if (personalText.contains("详见原病历")) {
-            status.set("0");
-            return;
-        }
-        EpidemicArea epidemicArea = personalLabel.getEpidemicArea();
-        if (epidemicArea != null && StringUtil.isNotBlank(epidemicArea.getName())) {
-            status.set("0");
-        }
-    }
-
-}

+ 0 - 51
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0046.java

@@ -1,51 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Smoking;
-import com.lantone.qc.pub.model.label.PersonalLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @Description: 吸烟史未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0046 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        //台州结构化
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtils.isNotEmpty(structureMap.get("吸烟"))) {
-            status.set("0");
-            return;
-        }
-        PersonalLabel personalLabel = inputInfo.getBeHospitalizedDoc().getPersonalLabel();
-        if (personalLabel == null) {
-            status.set("0");
-            return;
-        }
-        String personalText = personalLabel.getText();
-        if (StringUtil.isNotBlank(personalText) && (personalText.contains("偶有") || personalText.contains("烟")
-                || personalText.contains("详见原病历"))) {
-            status.set("0");
-            return;
-        }
-        Smoking smoking = personalLabel.getSmoking();
-        if (smoking != null && StringUtil.isNotBlank(smoking.getName())) {
-            status.set("0");
-        }
-    }
-
-}

+ 0 - 51
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0051.java

@@ -1,51 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Drinking;
-import com.lantone.qc.pub.model.entity.Usage;
-import com.lantone.qc.pub.model.label.PersonalLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description: 饮酒史患者描述不规范
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0051 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        PersonalLabel personalLabel = inputInfo.getBeHospitalizedDoc().getPersonalLabel();
-        if (personalLabel == null) {
-            status.set("0");
-            return;
-        }
-        String pastText = personalLabel.getText();
-        if (StringUtil.isNotBlank(pastText) && pastText.contains("饮酒")) {
-            status.set("0");
-            return;
-        }
-        Drinking drinking = personalLabel.getDrinking();
-        if (drinking == null
-                || StringUtil.isBlank(drinking.getName())
-                || (drinking.getNegative() != null && StringUtil.isNotBlank(drinking.getNegative().getName()))
-                || (drinking.getPd() != null && StringUtil.isNotBlank(drinking.getPd().getName()))
-                || (drinking.getUsage() != null && StringUtil.isNotBlank(drinking.getUsage().getName()))) {
-            status.set("0");
-        }
-        //出现用量实体,即认为规范
-        Usage usage = inputInfo.getBeHospitalizedDoc().getPersonalLabel().getUsage();
-        if (usage != null && StringUtil.isNotEmpty(usage.getName())) {
-            status.set("0");
-        }
-    }
-
-}

+ 0 - 34
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0052.java

@@ -1,34 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description: 婚育史未填写
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0052 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            status.set("0");
-            return;
-        }
-        if(inputInfo.getBeHospitalizedDoc().getStructureMap().get("婚姻") != null
-                && inputInfo.getBeHospitalizedDoc().getStructureMap().get("婚姻").contains("未婚")){
-            status.set("0");
-            return;
-        }
-        if (inputInfo.getBeHospitalizedDoc().getMaritalLabel() == null
-                || StringUtil.isNotBlank(inputInfo.getBeHospitalizedDoc().getMaritalLabel().getText())) {
-            status.set("0");
-        }
-    }
-
-}

+ 0 - 60
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0053.java

@@ -1,60 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-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.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Marryiage;
-import com.lantone.qc.pub.model.label.MaritalLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @Description: 结婚年龄未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0053 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        if (beHospitalizedDoc == null) {
-            status.set("0");
-            return;
-        }
-        //先取一次结构化数据
-        Map<String, String> beHospitalizedStructureMap = beHospitalizedDoc.getStructureMap();
-        String marryiAgeStr = beHospitalizedStructureMap.get("结婚年龄");
-        if (StringUtil.isNotBlank(marryiAgeStr)) {
-            status.set("0");
-            return;
-        }
-        //硬规则 匹配未婚
-        String marry = beHospitalizedDoc.getStructureMap().get(Content.marry);
-        MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
-        if (maritalLabel == null || StringUtil.isBlank(maritalLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        String maritalText = maritalLabel.getText();
-        if ("未婚".equals(marry) || maritalText.contains("未婚") || maritalText.contains("详见原病历")) {
-            status.set("0");
-            return;
-        }
-        if (beHospitalizedDoc.getMaritalLabel() == null
-                || StringUtil.isBlank(beHospitalizedDoc.getMaritalLabel().getText())) {
-            status.set("0");
-        }
-
-        Marryiage marryiage = beHospitalizedDoc.getMaritalLabel().getMarryiage();
-        if (marryiage != null && StringUtil.isNotBlank(marryiage.getName())) {
-            status.set("0");
-        }
-    }
-
-}

+ 0 - 102
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0058.java

@@ -1,102 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-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.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Family;
-import com.lantone.qc.pub.model.label.MaritalLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-
-/**
- * @Description: 子女数量情况未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0058 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        //硬规则 匹配未育
-        String marry = beHospitalizedDoc.getStructureMap().get(Content.marry);
-        MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
-        if (maritalLabel == null) {
-            status.set("0");
-            return;
-        }
-        String maritalText = maritalLabel.getText();
-        if (StringUtil.isBlank(maritalText)) {
-            status.set("0");
-            return;
-        } else {
-            String regex = ".*\\d?子\\d?女.*";
-            boolean flag = maritalText.matches(regex);
-            regex = ".*\\d+-\\d+-\\d+-0.*";
-            boolean matches = maritalText.matches(regex);
-            if (flag || matches) {
-                status.set("0");
-                return;
-            }
-        }
-        //硬规则 匹配未育
-        if ("未婚".equals(marry)) {
-            status.set("0");
-            return;
-        }
-        if (StringUtil.isNotBlank(maritalText)) {
-            List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女"
-                    , "0-0-0-0", "详见原病历");
-            for (String word : words) {
-                if (maritalText.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-        }
-        Map<String, String> structureMap = beHospitalizedDoc.getStructureMap();
-        String familyMembersHealth = structureMap.get("家庭成员健康情况");
-        List<Family> familyList = Lists.newArrayList();
-        List<Family> familiesFl = inputInfo.getBeHospitalizedDoc().getFamilyLabel().getFamilies();
-        List<Family> familiesMl = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getFamily();
-        if (ListUtil.isNotEmpty(familiesFl)) {
-            familyList.addAll(familiesFl);
-        }
-        if (ListUtil.isNotEmpty(familiesMl)) {
-            familyList.addAll(familiesMl);
-        }
-        Pattern p = Pattern.compile("[儿子女]");
-        if (StringUtil.isNotBlank(familyMembersHealth)) {
-            if (p.matcher(familyMembersHealth).find()) {
-                status.set("0");
-                return;
-            }
-        }
-        long count = familyList
-                .stream()
-                .filter(
-                        i -> i != null
-                                && StringUtil.isNotBlank(i.getName())
-                                && StringUtil.isContainNumber(i.getName())
-                                && p.matcher(i.getName()).find()
-                )
-                .count();
-        if (count > 0) {
-            status.set("0");
-        }
-    }
-
-}

+ 0 - 54
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0068.java

@@ -1,54 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.label.MenstrualLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : BEH0068
- * @Description : 月经史未描述白带情况
- * @Author : 胡敬
- * @Date: 2020-03-11 14:49
- */
-@Component
-public class BEH0068 extends QCCatalogue {
-    @Override
-    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        if (inputInfo.getBeHospitalizedDoc().getStructureMap().get("性别") == null
-                || inputInfo.getBeHospitalizedDoc().getStructureMap().get("性别").contains("男")) {
-            status.set("0"); //如果性别是男,就不报错
-        } else if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() == null
-                || inputInfo.getBeHospitalizedDoc().getMenstrualLabel().getText().contains("null")) {
-            status.set("0");
-        } else {
-            Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-            if (StringUtil.isNotBlank(structureMap.get("白带"))) {
-                status.set("0");
-                return;
-            }
-            if (inputInfo.getBeHospitalizedDoc().getMenstrualLabel() != null) {
-                MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
-                String text = menstrualLabel.getText();
-                if (StringUtil.isNotBlank(text) && (text.contains("未行经") || text.contains("未来潮") || text.contains("绝经"))) {
-                    status.set("0");
-                    return;
-                }
-                if (menstrualLabel.getLeukorrheas() == null) {
-                    return;
-                }
-                if (menstrualLabel.getLeukorrheas().size() > 0) {
-                    status.set("0");
-                }
-            }
-        }
-    }
-}

+ 0 - 70
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0070.java

@@ -1,70 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.entity.Family;
-import com.lantone.qc.pub.model.label.FamilyLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * @ClassName : BEH0070
- * @Description : 家族史未描述是否有家族性遗传病史及传染病史
- * @Author : 胡敬
- * @Date: 2020-03-11 15:09
- */
-@Component
-public class BEH0070 extends QCCatalogue {
-    @Override
-    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        String familyText = structureMap.get("家族史");
-        if (StringUtil.isNotBlank(familyText)) {
-            familyText = StringUtil.removeBlank(familyText);
-            if (familyText.contains("家族遗传病") || familyText.contains("结核")) {
-                status.set("0");
-                return;
-            }
-        }
-        if (inputInfo.getBeHospitalizedDoc().getFamilyLabel() != null) {
-            FamilyLabel familyLabel = inputInfo.getBeHospitalizedDoc().getFamilyLabel();
-            List<Family> families = familyLabel.getFamilies();
-            if (ListUtil.isEmpty(families)) {
-                status.set("0");
-                return;
-            }
-            boolean isFindGeneticDiseaseKeyword = false, isFindDiagInfectious = false;
-            for (Family family : families) {
-                if (family.getGeneticDiseaseKeyword() != null && StringUtil.isNotBlank(family.getGeneticDiseaseKeyword().getName())) {
-                    isFindGeneticDiseaseKeyword = true;
-                }
-                if (family.getDiagInfectious() != null && StringUtil.isNotBlank(family.getDiagInfectious().getName())) {
-                    isFindDiagInfectious = true;
-                }
-                if (family.getDiags() != null) {
-                    List<Diag> diags = family.getDiags().stream().filter(diag ->
-                            (diag.getHospitalDiagName() != null && diag.getHospitalDiagName().contains("炎"))
-                                    || (diag.getHospitalDiagName() != null && diag.getHospitalDiagName().contains("核"))).collect(Collectors.toList());
-                    if (diags.size() > 0) {
-                        isFindDiagInfectious = true;
-                    }
-                }
-                if (isFindGeneticDiseaseKeyword || isFindDiagInfectious) {
-                    status.set("0");
-                    return;
-                }
-            }
-        }
-    }
-}

+ 0 - 59
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0072.java

@@ -1,59 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Dead;
-import com.lantone.qc.pub.model.entity.Family;
-import com.lantone.qc.pub.model.label.FamilyLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @ClassName : BEH0072
- * @Description : 家属有死亡者,未记录死亡原因
- * @Author : 胡敬
- * @Date: 2020-03-11 16:44
- */
-@Component
-public class BEH0072 extends QCCatalogue {
-    @Override
-    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getFamilyLabel() != null) {
-            FamilyLabel familyLabel = inputInfo.getBeHospitalizedDoc().getFamilyLabel();
-            if (familyLabel == null) {
-                return;
-            }
-            String familyText = familyLabel.getText();
-            if (StringUtil.isNotBlank(familyText)) {
-                familyText = familyText.substring(0, Math.min(10, familyText.length()));
-                if (familyText.contains("死因") || familyText.contains("原因") || familyText.contains("详")
-                || familyText.contains("因")) {
-                    return;
-                }
-            }
-            List<Family> families = familyLabel.getFamilies();
-            if (ListUtil.isEmpty(families)) {
-                return;
-            }
-            for (Family family : families) {
-                if (family.getDead() != null) {
-                    Dead dead = family.getDead();
-                    if (family.getName().contains("年迈") || dead.getNegative() != null) {
-                        continue;
-                    }
-                    if (dead.getDeadReason() != null || dead.getUnknow() != null) {
-                        return;
-                    } else {
-                        status.set("-1");
-                        return;
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 31
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02855.java

@@ -1,31 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH02855
- * @Description : 过敏史未填写
- * @Author : 胡敬
- * @Date: 2020-06-15 16:09
- */
-@Component
-public class BEH02855 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        Map<String, String> bhMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtil.isNotEmpty(bhMap.get("过敏史"))) {
-            status.set("0");
-        }
-    }
-}

+ 0 - 70
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02860.java

@@ -1,70 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.PD;
-import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.regex.Pattern;
-
-
-/**
- * @ClassName : BEH02860
- * @Description :主诉时间应该为阿拉伯数字
- * @Author : 胡敬
- * @Date: 2020-04-29 09:57
- */
-@Component
-public class BEH02860 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
-        if (chiefLabel == null) {
-            status.set("0");
-            return;
-        }
-        if (StringUtil.isBlank(chiefLabel.getText())) {
-            status.set("0");
-            return;
-        }
-//        String regex = "[零一二三四五六七八九十百千]";
-        List<String> arabicNumList = Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7"
-                , "8", "9");
-        List<String> containList = Arrays.asList("零", "一", "二", "三", "四", "五", "六", "七"
-                , "八", "九", "十", "百", "千");
-        List<PD> pds = chiefLabel.getPds();
-        if (ListUtil.isNotEmpty(pds)) {
-            String name = null, value = null;
-            for (PD pd : pds) {
-                name = pd.getName();
-                value = pd.getValue();
-                if(name.contains("半")){
-                    continue;
-                }
-                for (String num : arabicNumList) {
-                    if (StringUtil.isNotBlank(name) && name.contains(num)) {
-                        status.set("0");
-                        return;
-                    }
-                }
-                for (String word : containList) {
-                    if (StringUtil.isNotBlank(value) && value.contains(word)) {
-                        return;
-                    }
-                    if (StringUtil.isNotBlank(name) && name.contains(word)) {
-                        return;
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 109
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02887.java

@@ -1,109 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.DiagLabel;
-import com.lantone.qc.pub.model.label.PastLabel;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @ClassName : BEH0738
- * @Description: 患者病情前后描述不一致
- * @author: 胡敬
- * @time: 2020-05-08 16:45
- */
-@Component
-public class BEH02887 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        List<Diag> presentDiags = null;
-        List<Diag> pastDiags = null;
-        List<Diag> initialDiags = null;
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        DiagLabel initialDiagLabel = inputInfo.getBeHospitalizedDoc().getInitialDiagLabel();
-        if (presentLabel != null) {
-            presentDiags = presentLabel.getDiags();
-        }
-        if (pastLabel != null) {
-            pastDiags = pastLabel.getDiags();
-        }
-        if (initialDiagLabel != null) {
-            initialDiags = initialDiagLabel.getDiags();
-        }
-
-        if (presentDiags != null && pastDiags != null){
-            if (checkDiagDiff(presentDiags,pastDiags)){
-                status.set("-1");
-                return;
-            }
-        }
-
-        if (presentDiags != null && initialDiags != null){
-            if (checkDiagDiff(presentDiags,initialDiags)){
-                status.set("-1");
-                return;
-            }
-        }
-
-        if (pastDiags != null && initialDiags != null){
-            if (checkDiagDiff(pastDiags,initialDiags)){
-                status.set("-1");
-            }
-        }
-    }
-
-    /**
-     * 检查两个Diag列表是否前后描述不一致
-     * @param firstDiags
-     * @param secondDiags
-     * @return
-     */
-    private boolean checkDiagDiff(List<Diag> firstDiags, List<Diag> secondDiags) {
-        String firstDiagName = null, secondDiagName = null;
-        for (Diag firstDiag : firstDiags) {
-            firstDiagName = firstDiag.getHospitalDiagName();
-            if (StringUtil.isBlank(firstDiagName)) {
-                continue;
-            }
-            for (Diag secondDiag : secondDiags) {
-                secondDiagName = secondDiag.getHospitalDiagName();
-                if (StringUtil.isBlank(secondDiagName)) {
-                    continue;
-                }
-                if (firstDiagName.equals(secondDiagName)) {
-                    boolean checkNeg = checkNeg(firstDiag, secondDiag);
-                    if (!checkNeg) {
-                        //如果两个Diag一个为否定,一个不为否定,返回true
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    private boolean checkNeg(Diag firstDiag, Diag secondDiag) {
-        if (firstDiag.getNegative() == null && secondDiag.getNegative() == null) {
-            return true;
-        } else {
-            return firstDiag.getNegative() != null && secondDiag.getNegative() != null;
-        }
-    }
-
-
-}

+ 0 - 65
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02902.java

@@ -1,65 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.PD;
-import com.lantone.qc.pub.model.entity.Pacs;
-import com.lantone.qc.pub.model.label.PacsLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @ClassName : BEH02902
- * @Description : 辅助检查未注明地点
- * @Author : 胡敬
- * @Date: 2020-05-28 09:56
- */
-@Component
-public class BEH02902 extends QCCatalogue {
-    @Override
-    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-
-        PacsLabel pacsLabel = inputInfo.getBeHospitalizedDoc().getPacsLabel();
-        if (pacsLabel == null || StringUtil.isBlank(pacsLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        boolean findPlace = false;
-        String pacsText = pacsLabel.getText();
-        List<Pacs> pacses = pacsLabel.getPacses();
-        for (Pacs pacs : pacses) {
-            /* 时间为入院检查的时间,模型输出处理后结构为 name为空,pd不为空 */
-            if (pacs.getName() == null && pacs.getPd() != null) {
-                /* 模型先找到时间实体,找到后再从这个时间实体开始,往前往后找 */
-                PD pd = pacs.getPd();
-                String name = pd.getName();
-                int timeIndex = pacsText.indexOf(name);
-                String beforeTimeText = pacsText.substring(Math.max(timeIndex - 5, 0), timeIndex);
-                String afterTimeText = pacsText.substring(timeIndex + name.length(), timeIndex + name.length() + 10);
-                if (beforeTimeText.contains("院") || afterTimeText.contains("院")) {
-                    findPlace = true;
-                    break;
-                }
-            }
-        }
-
-        /* 如果模型没找到时间实体,则直接取辅助检查前20个字,判断有没有院字 */
-        if (!findPlace) {
-            String prefixText = pacsText.substring(0, Math.min(20, pacsText.length()));
-            if (prefixText.contains("院")) {
-                findPlace = true;
-            }
-        }
-
-        if (findPlace) {
-            status.set("0");
-        }
-    }
-}

+ 0 - 43
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02903.java

@@ -1,43 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Pacs;
-import com.lantone.qc.pub.model.label.PacsLabel;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @ClassName : BEH02903
- * @Description : 辅助检查未注明时间
- * @Author : 胡敬
- * @Date: 2020-05-28 09:56
- */
-@Component
-public class BEH02903 extends QCCatalogue {
-    @Override
-    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-
-        PacsLabel pacsLabel = inputInfo.getBeHospitalizedDoc().getPacsLabel();
-        if (pacsLabel == null) {
-            status.set("0");
-            return;
-        }
-
-        List<Pacs> pacses = pacsLabel.getPacses();
-        if (pacses != null && pacses.size() > 0) {
-            for (Pacs pacs : pacses) {
-                if (pacs.getName() == null && pacs.getPd() == null) {
-                    status.set("-1");
-                    return;
-                }
-            }
-        }
-    }
-}

+ 0 - 35
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02978.java

@@ -1,35 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : BEH02978
- * @Description : 药物过敏史描述与病案首页不一致(结构化数据)
- * @Author : 楼辉荣
- * @Date: 2020-06-20 15:00
- */
-@Component
-public class BEH02978 extends QCCatalogue {
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null || inputInfo.getFirstPageRecordDoc() == null) {
-            return;
-        }
-        String bhAllergy = inputInfo.getBeHospitalizedDoc().getStructureMap().get("过敏史");
-        String fipAllergy = inputInfo.getFirstPageRecordDoc().getStructureMap().get("过敏药物");
-        if (StringUtil.isBlank(bhAllergy) || StringUtil.isBlank(fipAllergy)){
-            return;
-        }
-
-        if (!bhAllergy.equals(fipAllergy)){
-            status.set("-1");
-        }
-    }
-}

+ 0 - 189
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH02980.java

@@ -1,189 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.alibaba.fastjson.JSONArray;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.client.ChiefPresentSimilarityServiceClient;
-import com.lantone.qc.kernel.structure.ai.ModelAI;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.entity.GeneralDesc;
-import com.lantone.qc.pub.model.entity.Negative;
-import com.lantone.qc.pub.model.label.DiagLabel;
-import com.lantone.qc.pub.model.label.PastLabel;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH02980
- * @Description : 病历前后描述不一致
- * @Author : Mark
- * @Date: 2020-06-23 11:02
- */
-@Component
-public class BEH02980 extends QCCatalogue {
-    @Autowired
-    ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
-
-    private List<String> containList = Arrays.asList("脑萎缩", "慢性", "纤颤", "高血压", "糖尿", "冠状", "冠心病", "支架", "起搏器", "房颤", "风湿");
-    private List<String> filterList = Arrays.asList("心脏病", "低血糖", "急性", ";");
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        DiagLabel initialDiagLabel = inputInfo.getBeHospitalizedDoc().getInitialDiagLabel();
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-
-        List<String> pos_diags = new ArrayList<>();
-        List<String> neg_diags = new ArrayList<>();
-        //现病史需要取一般情况之后疾病
-        if (presentLabel != null) {
-            List<GeneralDesc> generals = presentLabel.getGenerals();
-            if (generals.size() > 0) {
-                String presentText = presentLabel.getText();
-                List<Diag> presentDiags = presentLabel.getDiags();
-                /* 取现病史中一般情况之后的疾病名称 */
-                if (StringUtil.isNotBlank(presentText) && presentDiags.size() > 0) {
-                    String lastGeneral = generals.get(generals.size() - 1).getName();
-                    int lastGeneralIndex = presentText.indexOf(lastGeneral);
-                    for (Diag presentDiag : presentDiags) {
-                        if (presentDiag.getNegative() != null || presentDiag.getHospitalDiagName().contains("否认")) {
-                            continue;
-                        }
-                        /* 现病史中一般情况之后的疾病名称 */
-                        if (presentText.indexOf(presentDiag.getHospitalDiagName()) > lastGeneralIndex) {
-                            if (isContains(presentDiag.getHospitalDiagName()) && !isFilter(presentDiag.getHospitalDiagName())) {
-                                String dgname = presentDiag.getHospitalDiagName();
-                                if (presentDiag.getNegative()==null) {
-                                    if (!pos_diags.contains(dgname)) {
-                                        pos_diags.add(dgname);
-                                    }
-                                }
-                                else {
-                                    if (!neg_diags.contains(dgname)) {
-                                        neg_diags.add(dgname);
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-
-        if (pastLabel != null && StringUtils.isNotEmpty(pastLabel.getText())) {
-            extract_diags(pastLabel.getDiags(), pos_diags, neg_diags);
-        } else {
-            //例如邵逸夫 台州这种结构化数据,判断高血压 和 糖尿病是否有冲突
-            List<Diag> pastDiags = new ArrayList<>();
-            Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-            String a1 = structureMap.get("高血压");
-            Diag diag = new Diag();
-            diag.setName("高血压");
-            diag.setHospitalDiagName("高血压");
-            if (StringUtils.isNotEmpty(a1) && "否认".equals(a1)) {
-                Negative negative = new Negative();
-                negative.setName("否认");
-                pastDiags.add(diag);
-            } else if (StringUtils.isNotEmpty(a1) && !"否认".equals(a1)) {
-                pastDiags.add(diag);
-            }
-
-            a1 = structureMap.get("糖尿病");
-            diag = new Diag();
-            diag.setName("糖尿病");
-            diag.setHospitalDiagName("糖尿病");
-            if  (StringUtils.isNotEmpty(a1) && "否认".equals(a1)) {
-                Negative negative = new Negative();
-                negative.setName("否认");
-                pastDiags.add(diag);
-            } else if (StringUtils.isNotEmpty(a1) && !"否认".equals(a1)) {
-                pastDiags.add(diag);
-            }
-
-            extract_diags(pastDiags, pos_diags, neg_diags);
-        }
-        if (initialDiagLabel != null) {
-            extract_diags(initialDiagLabel.getDiags(), pos_diags, neg_diags);
-        }
-
-        String infoStr = "";
-        int matchSum = 0;
-        ModelAI modelAI = new ModelAI();
-
-        for (String negdiag : neg_diags) {
-            JSONArray jsonArray = modelAI.loadChiefPresentSimilarAI(negdiag, pos_diags, false
-                    , "diagnose", chiefPresentSimilarityServiceClient);
-            if (jsonArray.size() == 2) {
-                /* 相似度最高症状 */
-                String dgname = jsonArray.getString(0);
-                /* 相似度分数 */
-                double likeRate = jsonArray.getDoubleValue(1);
-                if (likeRate > 0.99) {
-                    matchSum++;
-                    if (StringUtils.isEmpty(infoStr)) {
-                        infoStr = negdiag;
-                    } else {
-                        infoStr = infoStr + "," + negdiag;
-                    }
-                    break;
-                }
-            }
-        }
-        if (matchSum > 0) {
-            status.set("-1");
-            info.set(infoStr);
-        }
-
-    }
-
-
-    private List<String> extract_diags(List<Diag> diags, List<String> pos_diags, List<String> neg_diags ) {
-        List<String> dgs = new ArrayList<>();
-        for (Diag dg:diags) {
-            String dgname = dg.getHospitalDiagName();
-            if (dg.getNegative()==null) {
-                if (!pos_diags.contains(dgname)) {
-                    pos_diags.add(dgname);
-                }
-            }
-            else {
-                if (!neg_diags.contains(dgname)) {
-                    neg_diags.add(dgname);
-                    dgs.add(dgname);
-                }
-            }
-        }
-
-        return dgs;
-    }
-
-    private boolean isContains(String diagName) {
-        for (String c : containList) {
-            if (diagName.contains(c)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private boolean isFilter(String diagName) {
-        for (String c : filterList) {
-            if (diagName.contains(c)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-}

+ 0 - 43
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH03002.java

@@ -1,43 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-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.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-
-/**
- * @author wangfeng
- * @Description: 入院时间错误(具体到分)
- * @date 2020-06-29 11:44
- */
-@Component
-public class BEH03002 extends QCCatalogue {
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (structureMap != null) {
-            String dateStr = structureMap.get(Content.admisDate);
-            if (dateStr!=null&&!dateStr.isEmpty()) {
-                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-                try {
-                    String replace = dateStr.replace('/', '-');
-                    Date d = formatter.parse(replace);
-                    status.set("0");
-                } catch (Exception e) {
-                    status.set("-1");
-                    return;
-                }
-            }
-        }
-    }
-}

+ 0 - 41
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH03003.java

@@ -1,41 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-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.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-
-/**
- * @author wangfeng
- * @Description:
- * @date 2020-06-29 15:19
- */
-@Component
-public class BEH03003 extends QCCatalogue {
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (structureMap != null) {
-            String dateStr = structureMap.get("记录日期");
-            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-            try {
-                String replace = dateStr.replace('/', '-');
-                Date d = formatter.parse(replace);
-                status.set("0");
-            } catch (Exception e) {
-                status.set("-1");
-                return;
-            }
-        }
-
-    }
-}

+ 0 - 40
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH03005.java

@@ -1,40 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author wangfeng
- * @Description:缺重要脏器疾病史
- * @date 2020-06-29 15:46
- */
-@Component
-public class BEH03005 extends QCCatalogue {
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (structureMap != null) {
-            String[] strs = {"高血压","心脏病","糖尿病","脑血管疾病","呼吸系统疾病","肾脏疾病","肝脏疾病","内科疾病史其它"};
-            for(String s :strs){
-                String s1 = structureMap.get(s).trim();
-                if(s1!=null&&StringUtil.isEmpty(s1)){
-                    status.set("-1");
-                }
-            }
-
-        }
-
-    }
-}

+ 0 - 82
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0372.java

@@ -1,82 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.MaritalStatus;
-import com.lantone.qc.pub.model.label.MaritalLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.regex.Pattern;
-
-/**
- * @Description: 婚姻状况前后不一致
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0372 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-
-        String basicInfoStatus = inputInfo.getBeHospitalizedDoc().getStructureMap().get("婚姻");
-        String bhbasicInfoStatus = inputInfo.getBeHospitalizedDoc().getStructureMap().get("婚姻状况");
-        if (StringUtil.isBlank(basicInfoStatus) || StringUtil.isBlank(bhbasicInfoStatus)) {
-            status.set("0");
-            return;
-        }
-
-        if (basicInfoStatus.equals(bhbasicInfoStatus)) {
-            status.set("0");
-            return;
-        }
-        String maritalStatus = "";
-        MaritalStatus mts = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getMaritalStatus();
-        if (mts != null && StringUtil.isNotBlank(mts.getName())) {
-            maritalStatus = mts.getName();
-        }
-
-        if (chcekMaritalStatus(basicInfoStatus, maritalStatus)) {
-            status.set("0");
-            return;
-        }
-
-        //无婚育史
-        MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
-        if (maritalLabel == null || maritalLabel.getText() == null) {
-            status.set("0");
-        }
-    }
-
-    private boolean chcekMaritalStatus(String basicInfoStatus, String maritalStatus) {
-        if (basicInfoStatus.equals(maritalStatus)) {
-            return true;
-        }
-        boolean flag = false;
-        List<String> regxs = Lists.newArrayList(
-                "([\\s\\S]*离[\\s\\S]*婚[\\s\\S]*)|([\\s\\S]*离[\\s\\S]*异[\\s\\S]*)",
-                "([\\s\\S]*已[\\s\\S]*婚[\\s\\S]*)|([\\s\\S]*结[\\s\\S]*婚[\\s\\S]*)|([\\s\\S]*丧[\\s\\S]*偶[\\s\\S]*)",
-                "[\\s\\S]*未[\\s\\S]*婚[\\s\\S]*",
-                "[\\s\\S]*丧[\\s\\S]*偶[\\s\\S]*",
-                "[\\s\\S]*其[\\s\\S]*他[\\s\\S]*"
-        );
-        Pattern pt = null;
-        for (String regx : regxs) {
-            pt = Pattern.compile(regx);
-            if (pt.matcher(basicInfoStatus).find() && pt.matcher(maritalStatus).find()) {
-                flag = true;
-                break;
-            }
-        }
-        return flag;
-    }
-
-}

+ 0 - 96
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0375.java

@@ -1,96 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-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.model.entity.Family;
-import com.lantone.qc.pub.model.label.MaritalLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-/**
- * @Description: 配偶健康状况未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0375 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        //硬规则 匹配未婚
-        String marry = inputInfo.getBeHospitalizedDoc().getStructureMap().get(Content.marry);
-        MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
-        if ("未婚".equals(marry) ||
-                (maritalLabel != null &&
-                (StringUtil.isBlank(maritalLabel.getText())
-                        || maritalLabel.getText().contains("未婚")
-                        || maritalLabel.getText().contains("离婚")
-                        || maritalLabel.getText().contains("离异")
-                        || maritalLabel.getText().contains("已故")
-                        || maritalLabel.getText().contains("丧偶")
-                        || maritalLabel.getText().contains("详见原病历")
-                )
-                )
-        ) {
-            status.set("0");
-            return;
-        }
-        //台州市结构化的
-        Map<String, String> structureMap_beh = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtils.isNotEmpty(structureMap_beh.get("配偶健康状况"))) {
-            status.set("0");
-            return;
-        }
-        List<Family> familyList = Lists.newArrayList();
-        if (inputInfo.getBeHospitalizedDoc().getFamilyLabel() != null){
-            List<Family> familiesFl = inputInfo.getBeHospitalizedDoc().getFamilyLabel().getFamilies();
-            if (ListUtil.isNotEmpty(familiesFl)) {
-                familyList.addAll(familiesFl);
-            }
-        }
-
-        if (inputInfo.getBeHospitalizedDoc().getMaritalLabel() != null){
-            List<Family> familiesMl = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getFamily();
-            if (ListUtil.isNotEmpty(familiesMl)) {
-                familyList.addAll(familiesMl);
-            }
-        }
-
-
-        Pattern p = Pattern.compile("[配偶]");
-        List<Family> filterFamilies = familyList
-                .stream()
-                .filter(
-                        i -> i != null
-                                && StringUtil.isNotBlank(i.getName())
-                                && p.matcher(i.getName()).find()).collect(Collectors.toList());
-
-        for (Family family : filterFamilies) {
-            if (family.getDead() != null) {
-                status.set("0");
-                return;
-            } else if (family.getHealthCondition() != null && StringUtil.isNotBlank(family.getHealthCondition().getName())) {
-                status.set("0");
-                return;
-            } else if (family.getDiags() != null && family.getDiags().size() > 0) {
-                status.set("0");
-                return;
-            }
-        }
-    }
-
-}

+ 0 - 105
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0376.java

@@ -1,105 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-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.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Family;
-import com.lantone.qc.pub.model.label.MaritalLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-/**
- * @Description: 子女健康状况未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0376 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
-        //台州市结构化的
-        Map<String, String> structureMap_beh = beHospitalizedDoc.getStructureMap();
-        if (StringUtils.isNotEmpty(structureMap_beh.get("子女健康状况"))) {
-            status.set("0");
-            return;
-        }
-        if (maritalLabel == null || StringUtils.isEmpty(maritalLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        //硬规则 匹配未育
-        String marry = structureMap_beh.get(Content.marry);
-        if ("未婚".equals(marry)) {
-            status.set("0");
-            return;
-        }
-        String maritalText = maritalLabel.getText();
-        if (StringUtil.isNotBlank(maritalText)) {
-            List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女", "详见原病历");
-            for (String word : words) {
-                if (maritalText.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-            String regex = ".*\\d+-\\d+-\\d+-0.*";
-            if (maritalText.matches(regex)){
-                status.set("0");
-                return;
-            }
-        }
-        //未婚 无子女
-        if (maritalLabel.getMaritalStatus() != null && maritalLabel.getMaritalStatus().getName().contains("未婚")) {
-            status.set("0");
-            return;
-        }
-        List<Family> familyList = Lists.newArrayList();
-        List<Family> familiesFl = inputInfo.getBeHospitalizedDoc().getFamilyLabel().getFamilies();
-        List<Family> familiesMl = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getFamily();
-        if (ListUtil.isNotEmpty(familiesFl)) {
-            familyList.addAll(familiesFl);
-        }
-        if (ListUtil.isNotEmpty(familiesMl)) {
-            familyList.addAll(familiesMl);
-        }
-
-        Pattern p = Pattern.compile("[儿子女]");
-        List<Family> filterFamilies = familyList
-                .stream()
-                .filter(
-                        i -> i != null
-                                && StringUtil.isNotBlank(i.getName())
-                                && p.matcher(i.getName()).find()).collect(Collectors.toList());
-
-        for (Family family : filterFamilies) {
-            if (family.getDead() != null) {
-                status.set("0");
-                return;
-            } else if (family.getHealthCondition() != null && StringUtil.isNotBlank(family.getHealthCondition().getName())) {
-                status.set("0");
-                return;
-            } else if (family.getDiags() != null && family.getDiags().size() > 0) {
-                status.set("0");
-                return;
-            }
-        }
-    }
-
-}

+ 0 - 85
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0378.java

@@ -1,85 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Family;
-import com.lantone.qc.pub.model.label.FamilyLabel;
-import com.lantone.qc.pub.model.label.MaritalLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @Description: 配偶死亡原因未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0378 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        FamilyLabel familyLabel = inputInfo.getBeHospitalizedDoc().getFamilyLabel();
-        MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
-
-        if (familyLabel == null && maritalLabel == null) {
-            return;
-        }
-        List<Family> familiesFl = null;
-        List<Family> familiesMl = null;
-
-        if (familyLabel != null) {
-            familiesFl = familyLabel.getFamilies();
-            //规则匹配
-            String familyText = familyLabel.getText();
-            if (StringUtil.isNotBlank(familyText) && familyText.contains("自然死亡")) {
-                status.set("0");
-                return;
-            }
-        }
-        if (maritalLabel != null) {
-            familiesMl = maritalLabel.getFamily();
-        }
-        List<Family> familyList = Lists.newArrayList();
-
-        if (familiesFl != null && familiesFl.size() > 0) {
-            familyList.addAll(familiesFl);
-        }
-        if (familiesMl != null && familiesMl.size() > 0) {
-            familyList.addAll(familiesMl);
-        }
-
-        familyList = familyList
-                .stream()
-                .filter(
-                        i -> i != null
-                                && StringUtil.isNotBlank(i.getName())
-                                && i.getName().contains("配偶")
-                                && i.getDead() != null
-                                && StringUtil.isNotBlank(i.getDead().getName())
-                )
-                .collect(Collectors.toList());
-
-        if (familyList.size() > 0) {
-            status.set("-1");
-            long count = familyList
-                    .stream()
-                    .filter(
-                            i -> (i.getDead().getDeadReason() != null && StringUtil.isNotBlank(i.getDead().getDeadReason().getName()))
-                                    || (i.getDead().getUnknow() != null && StringUtil.isNotBlank(i.getDead().getUnknow().getName()))
-                    )
-                    .count();
-            if (count > 0) {
-                status.set("0");
-            }
-        }
-    }
-}

+ 0 - 92
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0397.java

@@ -1,92 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Family;
-import com.lantone.qc.pub.model.label.FamilyLabel;
-import com.lantone.qc.pub.model.label.MaritalLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-/**
- * @Description: 父母健康状况未描述
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0397 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        Map<String, String> structureMap = beHospitalizedDoc.getStructureMap();
-        if (StringUtils.isNotEmpty(structureMap.get("家庭成员健康情况"))) {
-            status.set("0");
-            return;
-        }
-        FamilyLabel familyLabel = beHospitalizedDoc.getFamilyLabel();
-        MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
-
-        String familyText = "", maritalText = "";
-        List<Family> familiesFl = null;
-        List<Family> familiesMl = null;
-        if (familyLabel != null) {
-            familyText = familyLabel.getText();
-            familiesFl = familyLabel.getFamilies();
-        }
-        if (maritalLabel != null) {
-            maritalText = maritalLabel.getText();
-            familiesMl = maritalLabel.getFamily();
-        }
-        if (StringUtil.isNotBlank(familyText)){
-            familyText = StringUtil.removeBlank(familyText);
-        }
-        if ((StringUtil.isNotBlank(familyText) && (familyText.contains("父母") || familyText.contains("详见原病历")))
-                || (StringUtil.isNotBlank(maritalText) && (maritalText.contains("父母") || maritalText.contains("详见原病历")))) {
-            status.set("0");
-            return;
-        }
-        List<Family> familyList = Lists.newArrayList();
-        if (familiesFl != null && familiesFl.size() > 0) {
-            familyList.addAll(familiesFl);
-        }
-        if (familiesMl != null && familiesMl.size() > 0) {
-            familyList.addAll(familiesMl);
-        }
-
-        Pattern p = Pattern.compile("[父母爸妈]");
-        List<Family> filterFamilies = familyList
-                .stream()
-                .filter(
-                        i -> i != null
-                                && StringUtil.isNotBlank(i.getName())
-                                && p.matcher(i.getName()).find()).collect(Collectors.toList());
-        for (Family family : filterFamilies) {
-            if (family.getDead() != null) {
-                status.set("0");
-                return;
-            } else if (family.getHealthCondition() != null && StringUtil.isNotBlank(family.getHealthCondition().getName())) {
-                status.set("0");
-                return;
-            } else if (family.getDiags() != null && family.getDiags().size() > 0) {
-                status.set("0");
-                return;
-            }
-        }
-    }
-
-}

+ 0 - 58
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0400.java

@@ -1,58 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.label.PastLabel;
-import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description: 既往史未填写
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0400 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        //主诉
-        ChiefLabel chiefLabel = inputInfo.getBeHospitalizedDoc().getChiefLabel();
-        //现病史
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        //既往史
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        //若既往史为空,现病史或主诉不为空则报错
-        if (StringUtil.isBlank(pastLabel.getText()) && (StringUtil.isNotBlank(chiefLabel.getText()) ||
-                StringUtil.isNotBlank(presentLabel.getText()))) {
-            return;
-        }
-        if (StringUtil.isBlank(pastLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        List<String> Str = Arrays.asList("咳嗽气喘史", "胸闷心悸史", "腹痛腹泻史", "多饮多尿史", "浮肿少尿史", "尿频尿痛史", "抽搐史", "出血史", "过敏史", "药物过敏史", "传染病史", "外伤手术史", "输血史", "重大疾病史和治疗史");
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        for (String s : Str) {
-            if (structureMap != null && structureMap.containsKey(s)) {
-                status.set("0");
-                return;
-            }
-        }
-        if (pastLabel != null && StringUtil.isNotBlank(pastLabel.getText())) {
-            status.set("0");
-        }
-    }
-
-}

+ 0 - 35
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0401.java

@@ -1,35 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import org.springframework.stereotype.Component;
-
-import java.util.Collection;
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0401
- * @Description : 入院记录姓名未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0401 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if(structureMap != null){
-            String name = structureMap.get("姓名");
-            if(CatalogueUtil.isEmpty(name)){
-                status.set("-1");
-            }
-        }
-
-    }
-}

+ 0 - 34
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0407.java

@@ -1,34 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0407
- * @Description : 入院记录婚姻未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0407 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if(structureMap != null){
-            String name = structureMap.get("婚姻");
-            if(CatalogueUtil.isEmpty(name)){
-                status.set("-1");
-            }
-        }
-
-    }
-}

+ 0 - 34
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0411.java

@@ -1,34 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0411
- * @Description :  入院记录记录日期未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0411 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if(structureMap != null){
-            String name = structureMap.get("记录日期");
-            if(CatalogueUtil.isEmpty(name)){
-                status.set("-1");
-            }
-        }
-
-    }
-}

+ 0 - 39
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0412.java

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-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 : BEH0412
- * @Description :  入院记录姓名填写错误
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0412 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null || inputInfo.getFirstPageRecordDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        Map<String, String> firstStructMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
-        if (structureMap != null && firstStructMap != null) {
-            String contactAddress_bh = structureMap.get("姓名");
-            String contactAddress_first = firstStructMap.get(Content.name);
-            if (!CatalogueUtil.isEmpty(contactAddress_bh) && !CatalogueUtil.isEmpty(contactAddress_first)) {
-                if (!contactAddress_first.equals(contactAddress_bh)) {
-                    status.set("-1");
-                }
-            }
-        }
-
-    }
-}

+ 0 - 71
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0414.java

@@ -1,71 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-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.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0414
- * @Description :  入院记录年龄填写错误
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0414 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("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 newbornAgeMonths = firstpageStructureMap.get(Content.newbornAgeMonths);
-            String newbornAgeDays = firstpageStructureMap.get(Content.newbornAgeDays);
-            String newbornAgeStr = "";
-            int newbornAge = 0;
-            if (StringUtil.isNotBlank(newbornAgeMonths) && StringUtil.isNotBlank(newbornAgeDays)) {
-                newbornAgeStr = newbornAgeMonths + newbornAgeDays;
-            }
-            if (StringUtil.isNotBlank(newbornAgeStr)) {
-                newbornAge = removalUnit(newbornAgeStr);
-            }
-            String admissionAge = beHospitalStructureMap.get(Content.age);
-            if (StringUtil.isBlank(firstAdmissionAge) || StringUtil.isBlank(admissionAge)) {
-                status.set("0");
-                return;
-            }
-            admissionAge = admissionAge.replace("岁", "");
-            firstAdmissionAge = firstAdmissionAge.replace("岁", "");
-            // int firstAdmissionAgeNum = removalUnit(firstAdmissionAge);
-            // int admissionAgeNum = removalUnit(admissionAge);
-            // 只比较年龄前的数值
-            if (!admissionAge.equals(firstAdmissionAge)) {
-                status.set("-1");
-                return;
-            }
-            // if (firstAdmissionAgeNum != admissionAgeNum && newbornAge != admissionAgeNum) {
-            //     status.set("-1");
-            // }
-        }
-    }
-
-    private int removalUnit(String admissionAge) {
-        int age = 0;
-        if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("岁")) {
-            admissionAge = admissionAge.replaceAll("[岁天]", "");
-        }
-        admissionAge = admissionAge.replaceAll("[^0-9]", "");
-        if (CatalogueUtil.numbersOnly(admissionAge)) {
-            age = Integer.parseInt(admissionAge);
-        }
-        return age;
-    }
-}

+ 0 - 21
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0420.java

@@ -1,21 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-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;
-
-
-/**
- * @ClassName : BEH0420
- * @Description :  入院记录病史陈述者填写错误
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0420 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-
-    }
-}

+ 0 - 49
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0422.java

@@ -1,49 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0422
- * @Description :  入院记录记录日期填写错误
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0422 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        /**
-         * 记录日期比入院日期早就报错
-         */
-        status.set("0");
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        if (beHospitalizedDoc == null) {
-            return;
-        }
-        Map<String, String> docStructureMap = beHospitalizedDoc.getStructureMap();
-        String admissionDateStr = docStructureMap.get("入院日期");
-        String recordDateStr = docStructureMap.get("记录日期");
-        if (StringUtil.isBlank(admissionDateStr) || StringUtil.isBlank(recordDateStr)) {
-            return;
-        }
-        // 如果时间格式不一致,就不比较 “2020-05-06 14:06” 与 “2020-05-06”
-        if (admissionDateStr.length() != recordDateStr.length()) {
-            return ;
-        }
-        Date admissionDate = StringUtil.parseDateTime(admissionDateStr);
-        Date recordDate = StringUtil.parseDateTime(recordDateStr);
-        if (admissionDate == null || recordDate == null) {
-            return;
-        }
-        if (admissionDate.after(recordDate)) {
-            status.set("-1");
-        }
-    }
-}

+ 0 - 77
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0441.java

@@ -1,77 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.General;
-import com.lantone.qc.pub.model.entity.GeneralDesc;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0441
- * @Description :  现病史缺少发病以来食欲描述
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0441 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        if (presentLabel == null) {
-            status.set("0");
-            return;
-        }
-        List<String> words = Lists.newArrayList("胃纳", "食纳", "食欲", "未纳", "纳眠", "饮食", "睡眠"
-                , "禁食", "未食", "鼻饲", "饮");
-        String presentText = presentLabel.getText();
-        if (StringUtil.isNotBlank(presentText)) {
-            for (String word : words) {
-                if (presentText.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-        }
-        List<GeneralDesc> generals = presentLabel.getGenerals();
-        List<General> gens = presentLabel.getGens();
-
-        if (ListUtil.isEmpty(generals) && ListUtil.isEmpty(gens)) {
-            status.set("0");
-            return;
-        }
-
-        if (ListUtil.isNotEmpty(generals)) {
-            for (GeneralDesc general : generals) {
-                for (String word : words) {
-                    if (general.getName().contains(word)) {
-                        status.set("0");
-                        return;
-                    }
-                }
-            }
-        }
-
-        if (ListUtil.isNotEmpty(gens)) {
-            for (General general : gens) {
-                for (String word : words) {
-                    if (general.getName().contains(word)) {
-                        status.set("0");
-                        return;
-                    }
-                }
-            }
-        }
-
-    }
-}

+ 0 - 70
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0442.java

@@ -1,70 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.google.common.collect.Lists;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.General;
-import com.lantone.qc.pub.model.entity.GeneralDesc;
-import com.lantone.qc.pub.model.label.PresentLabel;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0442
- * @Description :  现病史缺少发病以来二便描述
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0442 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
-        if (presentLabel == null) {
-            status.set("0");
-            return;
-        }
-        String presentText = presentLabel.getText();
-        if (StringUtil.isNotBlank(presentText)) {
-            List<String> words = Lists.newArrayList("二便", "大小便", "小便", "大便", "尿","便秘","腹泻");
-            for (String word : words) {
-                if (presentText.contains(word)) {
-                    status.set("0");
-                    return;
-                }
-            }
-        }
-
-        List<GeneralDesc> generals = presentLabel.getGenerals();
-        List<General> gens = presentLabel.getGens();
-        if (ListUtil.isEmpty(generals) && ListUtil.isEmpty(gens)) {
-            status.set("0");
-            return;
-        }
-
-        if (ListUtil.isNotEmpty(generals)) {
-            for (GeneralDesc general : generals) {
-                if (general.getName().contains("便") || general.getName().contains("尿")) {
-                    status.set("0");
-                    break;
-                }
-            }
-        }
-        if (ListUtil.isNotEmpty(gens)) {
-            for (General general : gens) {
-                if (general.getName().contains("便") || general.getName().contains("尿")) {
-                    status.set("0");
-                    break;
-                }
-            }
-        }
-    }
-}

+ 0 - 36
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0448.java

@@ -1,36 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Clinical;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0448
- * @Description : 现病史症状缺少伴随症状
- * @Author : Mark
- * @Date: 2020-04-05 10:58
- */
-@Component
-public class BEH0448 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        if (beHospitalizedDoc != null) {
-            List<Clinical> clinicals = beHospitalizedDoc.getPresentLabel().getClinicals();
-            if (clinicals.size() < 2) {
-                status.set("-1");
-                return;
-            }
-        }
-    }
-}

+ 0 - 102
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0449.java

@@ -1,102 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.alibaba.fastjson.JSONArray;
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.client.ChiefPresentSimilarityServiceClient;
-import com.lantone.qc.kernel.structure.ai.ModelAI;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.entity.Clinical;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-
-/**
- * @ClassName : BEH0449
- * @Description : 现病史主症状与主诉症状不一致
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0449 extends QCCatalogue {
-    @Autowired
-    ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        String chief_text = beHospitalizedDoc.getChiefLabel().getText();
-        if (chief_text.contains("检查") || chief_text.contains("术后") || chief_text.contains("药物")
-                || chief_text.contains("发现") || chief_text.contains("体检") || chief_text.contains("确诊")
-                || chief_text.contains("复查") || chief_text.contains("诊断") || StringUtil.isBlank(chief_text)
-        ) {
-            status.set("0");
-            return;
-        } else {
-            List<Clinical> chiefClinicals = beHospitalizedDoc.getChiefLabel().getClinicals();
-            List<Clinical> presentClinicals = beHospitalizedDoc.getPresentLabel().getClinicals();
-            if (ListUtil.isNotEmpty(chiefClinicals) && ListUtil.isNotEmpty(presentClinicals)) {
-                Clinical chiefClinical = chiefClinicals.get(0);
-                String chiefClinic = chiefClinical.getName();
-                /* 去除阴性症状,只保留阳性症状 */
-                presentClinicals = presentClinicals.stream().filter(clinical -> clinical.getNegative() == null).collect(Collectors.toList());
-                for (Clinical cliPre : presentClinicals) {
-                    String presentClinical = cliPre.getName();
-                    if (chiefClinic.equals(presentClinical)) {
-                        status.set("0");
-                        return;
-                    } else if (presentClinical.contains(chiefClinic) || chiefClinic.contains(presentClinical)) {
-                        status.set("0");
-                        return;
-                    }
-                }
-                List<String> clinicName = getClinicName(presentClinicals);
-                /* 文本相似度模型 */
-                ModelAI modelAI = new ModelAI();
-                JSONArray jsonArray = modelAI.loadChiefPresentSimilarAI(chiefClinic, clinicName,
-                        false, "chief_present", chiefPresentSimilarityServiceClient);
-                if (jsonArray.size() == 2) {
-                    double likeRate = jsonArray.getDoubleValue(1);
-                    if (likeRate > 0.9) {
-                        status.set("0");
-                        return;
-                    }
-                }
-            }
-        }
-
-        String chiefDiag = "";
-        List<Diag> diags = beHospitalizedDoc.getChiefLabel().getDiags();
-        if (diags != null && diags.size() > 0) {
-            chiefDiag = diags.get(0).getHospitalDiagName();
-        }
-        String presentDiag = "";
-        diags = beHospitalizedDoc.getPresentLabel().getDiags();
-        if (diags != null && diags.size() > 0) {
-            presentDiag = diags.get(0).getHospitalDiagName();
-        }
-        if (StringUtils.isNotEmpty(chiefDiag) && StringUtils.isNotEmpty(presentDiag) && chiefDiag.equals(presentDiag)) {
-            status.set("0");
-        }
-    }
-
-    private List<String> getClinicName(List<Clinical> presentClinicals) {
-        List<String> clinicNames = new ArrayList<>();
-        for (Clinical clinical : presentClinicals) {
-            clinicNames.add(clinical.getName());
-        }
-        return clinicNames;
-    }
-}

+ 0 - 35
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0450.java

@@ -1,35 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0450
- * @Description :   现病史内容与首次病程内容雷同
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0450 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc == null || firstCourseRecordDoc.getCaseCharacteristicLabel() == null) {
-            return;
-        }
-        double likeRate = firstCourseRecordDoc.getCaseCharacteristicLabel().getLikeRate();
-        if (likeRate > 0.95d) {
-            status.set("-1");
-        }
-    }
-}

+ 0 - 36
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0458.java

@@ -1,36 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.changx.behospitalized;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0458
- * @Description :  既往史缺成瘾药物用药情况
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0458 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> bhMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (bhMap != null) {
-            String birthDate = bhMap.get("长期用药情况\\(包括可能成瘾的药物\\)");
-            String addictiveDrugs = bhMap.get("成瘾药物");
-            if (StringUtil.isBlank(birthDate) && StringUtil.isBlank(addictiveDrugs)) {
-                status.set("-1");
-            }
-        }
-
-    }
-}

+ 0 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changx/behospitalized/BEH0473.java


Some files were not shown because too many files changed in this diff