소스 검색

台州:规则合并

wangsy 4 년 전
부모
커밋
dc2f323bca
100개의 변경된 파일19개의 추가작업 그리고 5028개의 파일을 삭제
  1. 2 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0024.java
  2. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0440.java
  3. 14 3
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/dutyshiftsystem/DUT0599.java
  4. 2 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP02992.java
  5. 0 125
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0002.java
  6. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0003.java
  7. 0 46
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0004.java
  8. 0 89
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0006.java
  9. 0 62
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0007.java
  10. 0 38
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0008.java
  11. 0 67
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0009.java
  12. 0 57
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0013.java
  13. 0 45
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0015.java
  14. 0 37
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0016.java
  15. 0 42
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0019.java
  16. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0020.java
  17. 0 44
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0021.java
  18. 0 44
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0022.java
  19. 0 55
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0024.java
  20. 0 57
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0029.java
  21. 0 62
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0031.java
  22. 0 47
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0032.java
  23. 0 54
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0034.java
  24. 0 59
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0039.java
  25. 0 69
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0043.java
  26. 0 50
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0044.java
  27. 0 51
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0046.java
  28. 0 51
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0050.java
  29. 0 51
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0051.java
  30. 0 34
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0052.java
  31. 0 60
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0053.java
  32. 0 102
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0058.java
  33. 0 70
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0070.java
  34. 0 59
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0072.java
  35. 0 31
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH02855.java
  36. 0 109
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH02887.java
  37. 0 34
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH02956.java
  38. 0 60
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH02966.java
  39. 0 35
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH02978.java
  40. 0 43
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH03002.java
  41. 0 40
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH03005.java
  42. 0 96
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0375.java
  43. 0 105
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0376.java
  44. 0 47
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0400.java
  45. 0 35
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0401.java
  46. 0 34
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0411.java
  47. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0412.java
  48. 0 38
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0417.java
  49. 0 21
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0420.java
  50. 0 45
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0422.java
  51. 0 35
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0440.java
  52. 0 77
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0441.java
  53. 0 36
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0448.java
  54. 0 102
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0449.java
  55. 0 35
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0450.java
  56. 0 36
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0458.java
  57. 0 37
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0473.java
  58. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0474.java
  59. 0 38
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0492.java
  60. 0 41
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0493.java
  61. 0 40
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0299.java
  62. 0 58
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0305.java
  63. 0 49
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0306.java
  64. 0 96
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI03063.java
  65. 0 48
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0563.java
  66. 0 48
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0564.java
  67. 0 48
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0565.java
  68. 0 73
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0281.java
  69. 0 51
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0382.java
  70. 0 107
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0526.java
  71. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0528.java
  72. 0 65
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0097.java
  73. 0 33
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0103.java
  74. 0 48
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0108.java
  75. 0 28
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0112.java
  76. 0 38
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0114.java
  77. 0 29
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0115.java
  78. 0 32
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0556.java
  79. 0 22
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/difficultcasediscuss/DIF0116.java
  80. 0 39
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/difficultcasediscuss/DIF0117.java
  81. 0 22
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/doctorsadvice/ADVI0589.java
  82. 0 218
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/dutyshiftsystem/DUT0296.java
  83. 0 104
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/dutyshiftsystem/DUT0599.java
  84. 0 31
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0083.java
  85. 0 93
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0087.java
  86. 0 43
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0088.java
  87. 0 41
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0089.java
  88. 0 36
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0090.java
  89. 0 72
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0096.java
  90. 0 38
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC02970.java
  91. 0 64
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0500.java
  92. 0 38
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0501.java
  93. 0 36
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0502.java
  94. 0 34
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0503.java
  95. 0 33
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0504.java
  96. 0 30
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0707.java
  97. 0 31
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0157.java
  98. 0 37
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0158.java
  99. 0 36
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0162.java
  100. 0 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0170.java

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

@@ -48,7 +48,8 @@ public class BEH0024 extends QCCatalogue {
         }
         //硬规则匹配
         String pastLabelText = pastLabel.getText();
-        if (pastLabelText.contains("外伤") || pastLabelText.contains("详见原病历") || pastLabelText.contains("骨折")) {
+        if (pastLabelText.contains("外伤") || pastLabelText.contains("详见原病历") || pastLabelText.contains("骨折")
+                || pastLabelText.contains("右根骨手术")) {
             status.set("0");
         }
     }

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

@@ -26,7 +26,7 @@ public class BEH0440 extends QCCatalogue {
             return;
         }
         Map<String, String> bhMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtil.isNotBlank(bhMap.get("户口地址"))) {
+        if (StringUtil.isNotBlank(bhMap.get("户口地址")) || StringUtil.isNotBlank(bhMap.get("联系地址"))) {
             status.set("0");
         }
     }

+ 14 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/dutyshiftsystem/DUT0599.java

@@ -47,9 +47,20 @@ public class DUT0599 extends QCCatalogue {
                 continue;
             }
             Date rollInRecordDate = StringUtil.parseDateTime(rollInRecordDateStr);
-            if (inputInfo.getLeaveHospitalDoc() != null) {
-                Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
-                String dischargeTime = leaveHospitalStructureMap.get(Content.dischargeTime);
+            if (rollInRecordDate != null) {
+                Date dateZeroClear = DateUtil.dateZeroClear(rollInRecordDate);
+                if (!CatalogueUtil.compareTime(dateZeroClear, new Date(), 3 * 24 * 60L)) {
+                    continue;
+                }
+            }
+            if (inputInfo.getLeaveHospitalDoc() != null && inputInfo.getMedicalRecordInfoDoc() != null) {
+//                Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
+//                String dischargeTime = leaveHospitalStructureMap.get(Content.dischargeTime);
+                Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
+                String dischargeTime = medicalRecordInfoStructureMap.get("leaveHospitalDate");
+                if (StringUtil.isBlank(dischargeTime)) {
+                    dischargeTime = DateUtil.nowString();
+                }
                 //如果住院天数小于3天则不判断该条规则
                 if ( rollInRecordDate != null && StringUtil.isNotBlank(dischargeTime)) {
                     if (!CatalogueUtil.compareTime(rollInRecordDate, StringUtil.parseDateTime(dischargeTime), 3 * 24 * 60L)) {

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

@@ -36,8 +36,8 @@ public class FIRP02992 extends QCCatalogue {
             beDrugAllergy = StringUtil.isBlank(beDrugAllergy) ? "" : beDrugAllergy;
             beDrugAllergy = RegularUtil.ClearBracket(beDrugAllergy); // 括号内容不匹配
 
-            if (StringUtil.isBlank(fpAllergyDrug) || StringUtil.isBlank(beDrugAllergy)) {
-                return ;
+            if (StringUtil.isBlank(fpAllergyDrug) || "-".equals(fpAllergyDrug) || StringUtil.isBlank(beDrugAllergy)) {
+                return;
             }
             // “未发现” == “否认”`
             if (("未发现".equals(fpAllergyDrug) && "否认".equals(beDrugAllergy))

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

@@ -1,125 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 39
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0003.java

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.Clinical;
-import com.lantone.qc.pub.model.entity.PD;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0003
- * @Description : 主诉字数超过20个字
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0003 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null || inputInfo.getBeHospitalizedDoc().getChiefLabel() == null) {
-            status.set("0");
-            return;
-        }
-        String chiefText = inputInfo.getBeHospitalizedDoc().getChiefLabel().getText();
-        if (StringUtil.isNotBlank(chiefText)) {
-            int chiefTextLength = chiefText.replaceAll("[\\p{Punct}\\pP]", "").length();
-            if (chiefTextLength <= 20) {
-                status.set("0");
-            }
-        } else {
-            status.set("0");
-        }
-    }
-}

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

@@ -1,46 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 89
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0006.java

@@ -1,89 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.PD;
-import com.lantone.qc.pub.model.label.ChiefLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0006
- * @Description :主诉症状缺少近期时间描述
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0006 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        // status.set("0");
-        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) && chiefText.contains("半年")) {
-            status.set("0");
-            return;
-        } else {
-            List<PD> pds = chiefLabel.getPds();
-            if (pds != null && pds.size() > 0) {
-                if (pds.size() == 2) {
-                    status.set("0");
-                    return;
-                }
-                for (PD pd : pds) {
-                    String pdName = pd.getName();
-                    if (!CatalogueUtil.isEmpty(pdName)) {
-                        if (pdName.contains("天") || pdName.contains("周") || pdName.contains("月")
-                                || pdName.contains("时") || pdName.contains("半年") || pdName.contains("秒")
-                                || pdName.contains("分") || pdName.contains("日") || pdName.contains("今")
-                                || pdName.contains("1年") || pdName.contains("一年")) {
-                            status.set("0");
-                            break;
-                        }
-                    }
-                }
-            } else {
-                status.set("0");
-            }
-            /*List<Clinical> clinicals = chiefLabel.getClinicals();
-            if(clinicals.size()>0){
-                for (Clinical clinical:clinicals) {
-                    List<PD> timestamp = clinical.getTimestamp();
-                    if(timestamp != null){
-                        for (PD pd:timestamp) {
-                            if(!CatalogueUtil.isEmpty(pd.getName())){
-                                if(pd.getName().contains("天") || pd.getName().contains("周")|| pd.getName().contains("月")
-                                        || pd.getName().contains("时") || pd.getName().contains("半年") || pd.getName().contains("秒")
-                                        || pd.getName().contains("日")|| pd.getName().contains("今")){
-                                    status.set("0");
-                                    break;
-                                }
-                            }
-                        }
-                        if(status.get().equals("0")){
-                            break;
-                        }
-                    }
-                }
-            }else {
-                status.set("0");
-            }*/
-        }
-    }
-}

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

@@ -1,62 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0007
- * @Description :主诉症状时间描述模糊
- * 主诉中不能出现数天,数月,数年等带“数”字这种描述,如果出现,均视为模糊不清
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0007 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 || StringUtil.isBlank(chiefLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        String chiefText = chiefLabel.getText();
-        if (StringUtil.isNotBlank(chiefText) && (chiefText.contains("检查") || chiefText.contains("术后") || chiefText.contains("药物"))) {
-            status.set("0");
-        } else {
-            List<Clinical> clinicals = chiefLabel.getClinicals();
-            if (clinicals.size() > 0) {
-                Clinical clinical = clinicals.get(0);
-                List<PD> timestamp = clinical.getTimestamp();
-                if (timestamp.size() > 0) {
-                    for (PD pd : timestamp) {
-                        String value = pd.getValue();
-                        String unit = pd.getUnit();
-                        if (StringUtils.isEmpty(unit) && value.contains("数")) {
-                            status.set("-1");
-                            break;
-                        } else {
-                            status.set("0");
-                        }
-                    }
-                } else {
-                    status.set("0");
-                }
-            } else {
-                status.set("0");
-            }
-        }
-    }
-}

+ 0 - 38
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0008.java

@@ -1,38 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.label.ChiefLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-/**
- * @ClassName : BEH0008
- * @Description :主诉症状超过3个
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0008 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 || StringUtil.isBlank(chiefLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        List<Clinical> clinicals = chiefLabel.getClinicals();
-        if (clinicals != null && clinicals.size() <= 3) {
-            status.set("0");
-        }
-
-    }
-}

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

@@ -1,67 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.HashMap;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * @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.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;
-                    }
-                }
-            }
-        } else {
-            status.set("0");
-        }
-    }
-}

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

@@ -1,57 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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();
-        //既往史
-        PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
-        if (presentLabel == null || StringUtil.isBlank(presentLabel.getText()) || "。".equals(presentLabel.getText())) {
-            return;
-        }
-        String text = presentLabel.getText();
-        if (StringUtil.isNotBlank(text)) {
-            if (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 - 45
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0015.java

@@ -1,45 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0016.java

@@ -1,37 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 42
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0019.java

@@ -1,42 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0020.java

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0021.java

@@ -1,44 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0022.java

@@ -1,44 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 55
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0024.java

@@ -1,55 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.Wound;
-import com.lantone.qc.pub.model.label.PastLabel;
-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;
-
-/**
- * @Description: 外伤史未填写
- * @author: rengb
- * @time: 2020/3/10 13:53
- */
-@Component
-public class BEH0024 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        //台州结构化
-        Map<String, String> behStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtils.isNotEmpty(behStructureMap.get("手术外伤史"))) {
-            status.set("0");
-            return;
-        }
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        /* 如果既往史为空或者既往史文本为空,则不报错 */
-        if (pastLabel == null || StringUtil.isBlank(pastLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        List<Wound> wounds = pastLabel.getWounds();
-        if (ListUtil.isNotEmpty(wounds)) {
-            if (wounds.stream().map(i -> i.getName()).filter(i -> StringUtil.isNotBlank(i)).count() > 0) {
-                status.set("0");
-                return;
-            }
-        }
-        //硬规则匹配
-        String pastLabelText = pastLabel.getText();
-        if (pastLabelText.contains("外伤") || pastLabelText.contains("详见原病历")) {
-            status.set("0");
-        }
-    }
-}

+ 0 - 57
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0029.java

@@ -1,57 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.Vaccinate;
-import com.lantone.qc.pub.model.label.PastLabel;
-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;
-
-/**
- * @Description: 预防接种史未填写
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0029 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;
-        }
-        PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
-        /* 如果既往史为空或者既往史文本为空,则不报错 */
-        if (pastLabel == null || StringUtil.isBlank(pastLabel.getText())) {
-            status.set("0");
-            return;
-        }
-        String pastText = pastLabel.getText();
-        if (pastText.contains("详见原病历") || pastText.contains("预防接种史")) {
-            status.set("0");
-            return;
-        }
-        List<Vaccinate> vaccinates = pastLabel.getVaccinates();
-        if (ListUtil.isNotEmpty(vaccinates)) {
-            if (vaccinates.stream().map(i -> i.getName()).filter(i -> StringUtil.isNotBlank(i)).count() > 0) {
-                status.set("0");
-            }
-        }
-    }
-
-}

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

@@ -1,62 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 47
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0032.java

@@ -1,47 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.PastLabel;
-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;
-
-/**
- * @Description: 疾病名未标引号
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0032 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            return;
-        }
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        List<Diag> diags = pastLabel.getDiags();
-        if (ListUtil.isEmpty(diags)) {
-            return;
-        }
-        List<String> wtDiagNames = CatalogueUtil.noInQuotes(
-                diags.stream().filter(diag -> diag.getNegative() == null).map(i -> i.getHospitalDiagName()).filter(i -> StringUtil.isNotEmpty(i)).distinct().collect(Collectors.toList()),
-                pastLabel.getText().replace("“","\"").replace("”","\"")
-        );
-        if (ListUtil.isNotEmpty(wtDiagNames)) {
-            status.set("-1");
-            for (String wtDiagName : wtDiagNames) {
-                info.set(info.get() + wtDiagName + " ");
-            }
-        }
-    }
-
-}

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

@@ -1,54 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.Operation;
-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;
-import java.util.stream.Collectors;
-
-/**
- * @Description: 手术名称未标引号
- * @author: rengb
- * @time: 2020/3/10 14:02
- */
-@Component
-public class BEH0034 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if(inputInfo.getBeHospitalizedDoc() == null){
-            return;
-        }
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        List<Operation> operations = pastLabel.getOperations();
-        if (ListUtil.isEmpty(operations)) {
-            return;
-        }
-        List<String> wtOperationNames = CatalogueUtil.noInQuotes(
-                operations.stream()
-                        .filter(i ->
-                                i != null && StringUtil.isNotBlank(i.getName()) && i.getNegative() == null
-                                        && !"手术史".equals(i.getName())  && !"手术".equals(i.getName()) && !"手术治疗".equals(i.getName())
-                        )
-                        .map(i -> i.getName())
-                        .distinct()
-                        .collect(Collectors.toList()),
-                pastLabel.getText().replace("“","\"").replace("”","\"")
-        );
-        if (ListUtil.isNotEmpty(wtOperationNames)) {
-            status.set("-1");
-            for (String wtOperationName : wtOperationNames) {
-                info.set(info.get() + wtOperationName + " ");
-            }
-        }
-    }
-
-}

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

@@ -1,59 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0043.java

@@ -1,69 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0044.java

@@ -1,50 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0046.java

@@ -1,51 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0050.java

@@ -1,51 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.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 BEH0050 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 personalText = personalLabel.getText();
-        if (StringUtil.isNotBlank(personalText) && personalText.contains("偶有")){
-            status.set("0");
-            return;
-        }
-        Smoking smoking = personalLabel.getSmoking();
-        if (smoking == null
-                || StringUtil.isBlank(smoking.getName())
-                || (smoking.getNegative() != null && StringUtil.isNotBlank(smoking.getNegative().getName()))
-                || (smoking.getPd() != null && StringUtil.isNotBlank(smoking.getPd().getName()))
-                || (smoking.getUsage() != null && StringUtil.isNotBlank(smoking.getUsage().getName()))) {
-            status.set("0");
-        }
-        //出现用量实体,即认为规范
-        Usage usage = inputInfo.getBeHospitalizedDoc().getPersonalLabel().getUsage();
-        if (usage != null && StringUtil.isNotEmpty(usage.getName())) {
-            status.set("0");
-        }
-    }
-
-}

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

@@ -1,51 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0052.java

@@ -1,34 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0053.java

@@ -1,60 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0058.java

@@ -1,102 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 70
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0070.java

@@ -1,70 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0072.java

@@ -1,59 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH02855.java

@@ -1,31 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 109
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH02887.java

@@ -1,109 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 34
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH02956.java

@@ -1,34 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 : BEH02956
- * @Description : 结婚年龄未填写(结构化数据)
- * @Author : 胡敬
- * @Date: 2020-06-16 13:15
- */
-@Component
-public class BEH02956 extends QCCatalogue {
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        String marry = beHospitalStructureMap.get("婚姻");
-        if (StringUtil.isBlank(marry) || "未婚".equals(marry)) {
-            return;
-        }
-        if (StringUtil.isBlank(beHospitalStructureMap.get("结婚年龄"))) {
-            status.set("-1");
-        }
-    }
-}

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

@@ -1,60 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : BEH02966
- * @Description :  患者病历书写与性别不符(入院记录)
- * @Author : 胡敬
- * @Date: 2020-06-13 15:51
- */
-@Component
-public class BEH02966 extends QCCatalogue {
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-
-        Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        String gender = beHospitalStructureMap.get("性别");
-        if (StringUtil.isBlank(gender)) {
-            return;
-        }
-        List<String> noMatchWords = null;
-        if (gender.contains("男")) {
-            /* 男性不合理词 */
-            noMatchWords = Lists.newArrayList("阴道", "子宫", "宫底", "胎位", "胎数", "胎心",
-                    "宫缩", "宫口", "输卵管", "卵巢", "输卵管", "阴唇", "阴蒂", "阴道前庭", "前庭大腺", "处女膜");
-        } else if (gender.contains("女")) {
-            /* 女性不合理词 */
-            noMatchWords = Lists.newArrayList("阴茎", "精索", "包皮", "输精管",
-                    "射精管", "尿道海绵体", "冠状沟", "精阜", "精囊腺");
-        }
-        if (noMatchWords == null || noMatchWords.size() == 0) {
-            return;
-        }
-
-        List<String> keys = Lists.newArrayList("主诉", "现病史", "既往史", "个人史", "体格检查", "一般情况"
-                , "初步诊断", "专科体格检查", "神经系统检查", "实验室检查", "影像学检查");
-        String text = CatalogueUtil.structureMapJoin(beHospitalStructureMap, keys);
-
-        for (String noMatchWord : noMatchWords) {
-            if (text.contains(noMatchWord)) {
-                status.set("-1");
-                info.set(noMatchWord);
-                return;
-            }
-        }
-    }
-}

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

@@ -1,35 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 43
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH03002.java

@@ -1,43 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 40
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH03005.java

@@ -1,40 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 96
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0375.java

@@ -1,96 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0376.java

@@ -1,105 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 47
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0400.java

@@ -1,47 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.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) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
-        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/taizhou/behospitalized/BEH0401.java

@@ -1,35 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0411.java

@@ -1,34 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0412.java

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 38
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0417.java

@@ -1,38 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 : BEH0417
- * @Description : 入院记录出生地填写错误
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0417 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.birth_address);
-            if (!CatalogueUtil.isEmpty(contactAddress_bh) && !CatalogueUtil.isEmpty(contactAddress_first)) {
-                if (!contactAddress_first.equals(contactAddress_bh)) {
-                    status.set("-1");
-                }
-            }
-        }
-    }
-}

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

@@ -1,21 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 45
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0422.java

@@ -1,45 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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;
-        }
-        Date admissionDate = StringUtil.parseDateTime(admissionDateStr);
-        Date recordDate = StringUtil.parseDateTime(recordDateStr);
-        if (admissionDate == null || recordDate == null) {
-            return;
-        }
-        if (admissionDate.after(recordDate)) {
-            status.set("-1");
-        }
-    }
-}

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

@@ -1,35 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.Collection;
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0440
- * @Description : 入院记录户口地址未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class BEH0440 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        /**
-         * 台州只传一个 地址,在trans转成了联系地址,这里将联系地址认为就是户口地址
-         */
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        Map<String, String> bhMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtil.isNotBlank(bhMap.get("联系地址"))) {
-            status.set("0");
-        }
-    }
-}

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

@@ -1,77 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 36
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0448.java

@@ -1,36 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0449.java

@@ -1,102 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0450.java

@@ -1,35 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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/taizhou/behospitalized/BEH0458.java

@@ -1,36 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 - 37
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0473.java

@@ -1,37 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 : BEH0473
- * @Description :  生命体征未填写
- * @Author : 胡敬
- * @Date: 2020-03-26 19:30
- */
-@Component
-public class BEH0473 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (structureMap != null) {
-            if (StringUtil.isNotBlank(structureMap.get("体温"))
-                    || StringUtil.isNotBlank(structureMap.get("脉搏"))
-                    || StringUtil.isNotBlank(structureMap.get("呼吸"))
-                    || StringUtil.isNotBlank(structureMap.get("血压"))) {
-                status.set("0");
-            }
-        }
-
-    }
-}

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

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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 : BEH0474
- * @Description :  体格检查一般情况未填写
- * @Author : 胡敬
- * @Date: 2020-03-26 19:39
- */
-@Component
-public class BEH0474 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            return;
-        }
-        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        String mind = structureMap.get("神志水平");
-        String cooperation = structureMap.get("查体合作性");
-        String position = structureMap.get("体位");
-        String face = structureMap.get("面容");
-        String height = structureMap.get("身高");
-        String weight = structureMap.get("体重");
-        if (StringUtil.isBlank(mind) && StringUtil.isBlank(cooperation) && StringUtil.isBlank(position)
-                && StringUtil.isBlank(face) && StringUtil.isBlank(height) && StringUtil.isBlank(weight)) {
-            status.set("-1");
-        }
-
-    }
-}

+ 0 - 38
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/behospitalized/BEH0492.java

@@ -1,38 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.label.LisLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0492
- * @Description : 实验室检查未填写
- * @Author : 胡敬
- * @Date: 2020-03-26 19:54
- */
-@Component
-public class BEH0492 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
-            return;
-        }
-        if (inputInfo.getBeHospitalizedDoc() != null) {
-            LisLabel lisLabel = inputInfo.getBeHospitalizedDoc().getLisLabel();
-            if (lisLabel != null && StringUtil.isNotBlank(lisLabel.getText())) {
-                status.set("0");
-                return;
-            }
-            if (StringUtil.isNotBlank(inputInfo.getBeHospitalizedDoc().getStructureMap().get("实验室检查"))){
-                status.set("0");/* 台州市里医院结构化判断 */
-            }
-        }
-    }
-}

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

@@ -1,41 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.label.PacsLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-
-/**
- * @ClassName : BEH0493
- * @Description : 辅助检查未填写
- * @Author : 胡敬
- * @Date: 2020-03-26 19:54
- */
-@Component
-public class BEH0493 extends QCCatalogue {
-    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();
-        String pacs = structureMap.get("辅助检查结果");
-        String laboratory = structureMap.get("实验室检查");
-        String image = structureMap.get("影像学检查");
-        if (StringUtil.isNotBlank(pacs) || StringUtil.isNotBlank(laboratory) || StringUtil.isNotBlank(image)) {
-            status.set("0");
-            return;
-        }
-        PacsLabel pacsLabel = inputInfo.getBeHospitalizedDoc().getPacsLabel();
-        if (pacsLabel != null && StringUtil.isNotBlank(pacsLabel.getText())) {
-            status.set("0");
-        }
-    }
-}

+ 0 - 40
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0299.java

@@ -1,40 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.clinicalblood;
-
-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.ClinicalBloodDoc;
-import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
-import com.lantone.qc.pub.model.doc.RescueDoc;
-import com.lantone.qc.pub.util.ListUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : CLI0001
- * @Description : 无输血/血制品病程记录     和医嘱比较
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CLI0299 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
-        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(ListUtil.isNotEmpty(doctorAdviceDocs)){
-            st:
-            for (DoctorAdviceDoc doc:doctorAdviceDocs) {
-                Map<String, String> structureMap = doc.getStructureMap();
-                if(structureMap.get("医嘱项目名称").contains("输血")){
-                    if(ListUtil.isEmpty(clinicalBloodDocs)){
-                        status.set("-1");
-                        break st;
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 58
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0305.java

@@ -1,58 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.clinicalblood;
-
-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.ClinicalBloodDoc;
-import com.lantone.qc.pub.util.DateUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * @ClassName : CLI0305
- * @Description : 输血记录未在输注结束后24小时内完成
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CLI0305 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        Boolean flag = false;
-        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
-            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
-                Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                String infusionEnd = cliBStructureMap.get("输注结束");
-                String recordDateStr = cliBStructureMap.get("记录时间");
-                if (StringUtils.isNotEmpty(infusionEnd) && StringUtils.isNotEmpty(recordDateStr)) {
-                    Date infusionEndDate = StringUtil.parseDateTime(infusionEnd);
-                    Date recordDate = StringUtil.parseDateTime(recordDateStr);
-                    if (infusionEndDate != null && recordDate != null) {
-                        if (infusionEndDate.after(recordDate)) {
-                            continue;
-                        }
-                        if (CatalogueUtil.compareTime(infusionEndDate, recordDate, 24 * 60L)) {
-                            flag = true;
-                            info.set(infusionEnd + " -> " + recordDateStr);
-                        }
-                    }
-                }
-            }
-        }
-        if(flag){
-            status.set("-1");
-        }
-    }
-}

+ 0 - 49
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0306.java

@@ -1,49 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.clinicalblood;
-
-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.ClinicalBloodDoc;
-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;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * @ClassName : CLI0306
- * @Description : 输血记录中无输血指征
- * CRF缺少足够标注数据,使用规则判断输血原因是否有数字
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CLI0306 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if (ListUtil.isEmpty(clinicalBloodDocs)) {
-            status.set("0");
-            return;
-        }
-        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
-            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
-                Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                //台州
-                if (StringUtils.isNotEmpty(cliBStructureMap.get("输血检验指标"))) {
-                    status.set("0");
-                    break;
-                }
-                String infusionReason = cliBStructureMap.get("输注原因");
-                if (StringUtils.isNotEmpty(infusionReason)) {
-                    status.set("0");
-                }
-            }
-        } else {
-            status.set("0");
-        }
-
-    }
-}

+ 0 - 96
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI03063.java

@@ -1,96 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.clinicalblood;
-
-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.ClinicBloodEffectDoc;
-import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationApplicationDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationResultsDoc;
-import com.lantone.qc.pub.util.DateUtil;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.*;
-
-/**
- * @ClassName : CLI0309
- * @Description : 输血后效果评价未在24小时完成
- * @Author : 王宇
- * @Date: 2020-08-14 10:18
- */
-@Component
-public class CLI03063 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();//输血记录
-        List<ClinicBloodEffectDoc> clinicBloodEffectDocs = inputInfo.getClinicBloodEffectDocs();//输血效果评价
-        if (ListUtil.isEmpty(clinicalBloodDocs)) {
-            return;
-        }
-        Iterator<ClinicalBloodDoc> clinicalBloodDocIterator = clinicalBloodDocs.iterator();
-        Iterator<ClinicBloodEffectDoc> clinicBloodEffectDocIterator = clinicBloodEffectDocs.iterator();
-        while (clinicalBloodDocIterator.hasNext()) {
-            if (!CatalogueUtil.compareTime(
-                    StringUtil.parseDateTime(clinicalBloodDocIterator.next().getStructureMap().get("记录时间")),
-                    StringUtil.parseDateTime(DateUtil.nowString()),
-                    Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
-                clinicalBloodDocIterator.remove();
-            }
-        }
-        while (clinicBloodEffectDocIterator.hasNext()) {
-            if (!CatalogueUtil.compareTime(
-                    StringUtil.parseDateTime(clinicBloodEffectDocIterator.next().getStructureMap().get("记录时间")),
-                    StringUtil.parseDateTime(DateUtil.nowString()),
-                    Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
-                clinicBloodEffectDocIterator.remove();
-            }
-        }
-        Collections.sort(clinicalBloodDocs, new Comparator<ClinicalBloodDoc>() {
-            public int compare(ClinicalBloodDoc o1, ClinicalBloodDoc o2) {
-                return o1.getStructureMap().get("记录时间")
-                        .compareTo(o2.getStructureMap().get("记录时间"));
-            }
-        });
-        Collections.sort(clinicBloodEffectDocs, new Comparator<ClinicBloodEffectDoc>() {
-            public int compare(ClinicBloodEffectDoc o1, ClinicBloodEffectDoc o2) {
-                return o1.getStructureMap().get("记录时间")
-                        .compareTo(o2.getStructureMap().get("记录时间"));
-            }
-        });
-        if (clinicalBloodDocs.size() != clinicBloodEffectDocs.size()) {
-            status.set("-1");
-            return;
-        }
-        for (ClinicalBloodDoc clinicalBloodDoc : clinicalBloodDocs) {
-            for (ClinicBloodEffectDoc clinicBloodEffectDoc : clinicBloodEffectDocs) {
-                if (CatalogueUtil.compareTime(
-                        StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get("记录时间")),
-                        StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get("记录时间")),
-                        Long.valueOf(1))) {//结果单时间要比申请单大的
-                    if (CatalogueUtil.compareTime(
-                            StringUtil.parseDateTime(clinicalBloodDoc.getStructureMap().get("记录时间")),
-                            StringUtil.parseDateTime(clinicBloodEffectDoc.getStructureMap().get("记录时间")),
-                            Long.valueOf(24 * 60))) {//未超过24小时
-                        status.set("-1");
-                        return ;
-                    }
-                }
-            }
-        }
-        /*
-        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
-            for (ClinicBloodEffectDoc cliB : clinicBloodEffectDocs) {
-                Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                if (StringUtils.isEmpty(cliBStructureMap.get("输注后效果评价"))) {
-                    status.set("-1");
-                    break;
-                }
-            }
-        }
-
-         */
-    }
-}

+ 0 - 48
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0563.java

@@ -1,48 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.clinicalblood;
-
-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.ClinicalBloodDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : CLI0563
- * @Description : 输血记录开始输血时间填写不规范
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CLI0563 extends QCCatalogue {
-    public static String FORMAT_LONC_CN_MI = "yyyy/MM/dd HH:mm";
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
-            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
-                Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                if(cliBStructureMap.containsKey("输注开始")){
-                    if(!StringUtils.isEmpty(cliBStructureMap.get("输注开始"))){
-                        try {
-                            //Date date_in = new SimpleDateFormat(FORMAT_LONC_CN_MI).parse(cliBStructureMap.get("输注开始"));
-                            Date date_in = StringUtil.parseDateTime(cliBStructureMap.get("输注开始"));
-                        } catch (Exception e) {
-                            status.set("-1");
-                            break;
-                        }
-                    }
-                }
-
-            }
-        }
-
-    }
-}

+ 0 - 48
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0564.java

@@ -1,48 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.clinicalblood;
-
-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.ClinicalBloodDoc;
-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;
-import java.util.stream.Collectors;
-
-/**
- * @ClassName : CLI0564
- * @Description : 输血记录输血结束时间未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CLI0564 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(ListUtil.isEmpty(clinicalBloodDocs)){
-            return;
-        }
-
-        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
-//            List<ClinicalBloodDoc> bloodDocs = clinicalBloodDocs.stream().filter(bloodDoc -> bloodDoc.getStructureMap().get("输血后效果评价") == null).collect(Collectors.toList());
-            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
-                Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                if (cliBStructureMap.containsKey("输注结束")) {
-                    if (StringUtils.isEmpty(cliBStructureMap.get("输注结束"))) {
-                        status.set("-1");
-                        break;
-                    }
-                } else {
-                    status.set("-1");
-                    break;
-                }
-
-            }
-        }
-
-    }
-}

+ 0 - 48
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/clinicalblood/CLI0565.java

@@ -1,48 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.clinicalblood;
-
-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.ClinicalBloodDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : CLI0565
- * @Description : 输血记录输血结束时间填写不规范
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CLI0565 extends QCCatalogue {
-    public static String FORMAT_LONC_CN_MI = "yyyy/MM/dd HH:mm";
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
-        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
-            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
-                Map<String, String> cliBStructureMap = cliB.getStructureMap();
-                if(cliBStructureMap.containsKey("输注结束")){
-                    if(!StringUtils.isEmpty(cliBStructureMap.get("输注结束"))){
-                        try {
-                            //Date date_in = new SimpleDateFormat(FORMAT_LONC_CN_MI).parse(cliBStructureMap.get("输注结束"));
-                            Date date_in = StringUtil.parseDateTime(cliBStructureMap.get("输注结束"));
-                        } catch (Exception e) {
-                            status.set("-1");
-                            break;
-                        }
-                    }
-                }
-
-            }
-        }
-
-    }
-}

+ 0 - 73
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0281.java

@@ -1,73 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.consultation;
-
-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.DoctorAdviceDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationRecordDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationResultsDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : CON0281
- * @Description : 急会诊未在十分钟内到达
- * @Author : 王宇
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CON0281 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getConsultationDocs() == null) {
-            return;
-        }
-        //会诊单按日会诊申请日期排序
-        List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
-        //医嘱按照医嘱开始时间排序
-        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
-        Collections.sort(doctorAdviceDocs, new Comparator<DoctorAdviceDoc>() {
-            public int compare(DoctorAdviceDoc o1, DoctorAdviceDoc o2) {
-                return o1.getStructureMap().get("医嘱开始时间")
-                        .compareTo(o2.getStructureMap().get("医嘱开始时间"));
-            }
-        });
-        for (ConsultationDoc consultationDoc : consultationDocs) {
-            ConsultationResultsDoc consultationResultsDoc = consultationDoc.getConsultationResultsDoc();
-            if (consultationResultsDoc == null) {
-                continue;
-            }
-            Map<String, String> conStructureMap = consultationResultsDoc.getStructureMap();
-            if (conStructureMap.get("会诊类别") == null || !conStructureMap.get("会诊类别").contains("急会诊")) {
-                continue;
-            }
-            for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {//循环取最近一条医嘱和会诊申请单中的急会诊比较
-                Map<String, String> docStructureMap = doctorAdviceDoc.getStructureMap();
-                if (docStructureMap.get("医嘱项目名称") != null && docStructureMap.get("医嘱项目名称").contains("会诊")) {
-                    String applicationDateStr = docStructureMap.get("医嘱开始时间");
-                    String arrivalDateStr = conStructureMap.get("会诊时间");
-                    if (StringUtil.isBlank(applicationDateStr) || StringUtil.isBlank(arrivalDateStr)) {
-                        continue;
-                    }
-                    Date applicationDate = StringUtil.parseDateTime(applicationDateStr);//医嘱开始时间
-                    Date arrivalDate = StringUtil.parseDateTime(arrivalDateStr);//会诊时间
-                    if (applicationDate == null || arrivalDate == null) {
-                        continue;
-                    }
-                    if (CatalogueUtil.compareTime(applicationDate, arrivalDate, 10L)) {
-                        status.set("-1");
-                        return;
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 51
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0382.java

@@ -1,51 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.consultation;
-
-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.CrisisValueReportDoc;
-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.Date;
-import java.util.List;
-
-/**
- * @Description: 化验结果为危急值的,6小时内危急值记录中没有体现危急值记录
- * 在没有化验报告单之前,以记录时间和接收时间的比较为准
- * @author: Mark
- * @time: 2020/6/19 13:34
- */
-@Component
-public class CON0382 extends QCCatalogue {
-
-    @Override
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        List<CrisisValueReportDoc> crisisValueReportDocs = inputInfo.getCrisisValueReportDocs();
-        if (ListUtil.isNotEmpty(crisisValueReportDocs)) {
-            crisisValueReportDocs.forEach(crisisValueReportDoc -> {
-                if (StringUtil.isBlank(crisisValueReportDoc.getStructureMap().get("危急值记录内容"))) {
-                    String record_time = crisisValueReportDoc.getStructureMap().get("记录时间");
-                    String receive_time = crisisValueReportDoc.getStructureMap().get("接收时间");
-                    String crisisVal =null;
-                    if(crisisValueReportDoc.getStructureMap().get("危急值记录内容") != null){
-                        crisisVal = crisisValueReportDoc.getStructureMap().get("危急值记录内容").trim();
-                    }
-                    if(record_time != null && receive_time != null && crisisVal != null){
-                        Date record = StringUtil.parseDateTime(record_time);
-                        Date receive = StringUtil.parseDateTime(receive_time);
-                        if (crisisVal.length()==0 || CatalogueUtil.compareTime(receive, record, 6*60L) ) {
-                            status.set("-1");
-                        }
-                    }
-
-                }
-            });
-        }
-    }
-
-}

+ 0 - 107
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0526.java

@@ -1,107 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.consultation;
-
-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.DoctorAdviceDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationApplicationDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationDoc;
-import com.lantone.qc.pub.model.doc.consultation.ConsultationResultsDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.text.ParseException;
-import java.util.*;
-
-/**
- * @ClassName : CON0526
- * @Description : 急会诊未在10分钟内到达
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CON0526 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
-        status.set("0");
-        if (inputInfo.getConsultationDocs().size() == 0) {
-            return;
-        }
-        //会诊单按日会诊申请日期排序
-        List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
-        //医嘱按照医嘱开始时间排序
-        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
-        Collections.sort(doctorAdviceDocs, new Comparator<DoctorAdviceDoc>() {
-            public int compare(DoctorAdviceDoc o1, DoctorAdviceDoc o2) {
-                return o1.getStructureMap().get("医嘱开始时间")
-                        .compareTo(o2.getStructureMap().get("医嘱开始时间"));
-            }
-        });
-        for (ConsultationDoc consultationDoc : consultationDocs) {
-            ConsultationResultsDoc consultationResultsDoc = consultationDoc.getConsultationResultsDoc();
-            if (consultationResultsDoc == null) {
-                continue;
-            }
-            Map<String, String> conStructureMap = consultationResultsDoc.getStructureMap();
-            if (conStructureMap.get("会诊类别") == null || !conStructureMap.get("会诊类别").contains("急会诊")) {
-                continue;
-            }
-            for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {//循环取最近一条医嘱和会诊申请单中的急会诊比较
-                Map<String, String> docStructureMap = doctorAdviceDoc.getStructureMap();
-                if (docStructureMap.get("医嘱项目名称") != null && docStructureMap.get("医嘱项目名称").contains("会诊")) {
-                    String applicationDateStr = docStructureMap.get("医嘱开始时间");
-                    String arrivalDateStr = conStructureMap.get("会诊时间");
-                    if (StringUtil.isBlank(applicationDateStr) || StringUtil.isBlank(arrivalDateStr)) {
-                        continue;
-                    }
-                    Date applicationDate = StringUtil.parseDateTime(applicationDateStr);//医嘱开始时间
-                    Date arrivalDate = StringUtil.parseDateTime(arrivalDateStr);//会诊时间
-                    if (applicationDate == null || arrivalDate == null) {
-                        continue;
-                    }
-                    if (CatalogueUtil.compareTime(applicationDate, arrivalDate, 10L)) {
-                        status.set("-1");
-                        return;
-                    }
-                }
-            }
-        }
-
-
-
-
-        
-
-        /*status.set("0");
-        List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
-        if (consultationDocs.size() > 0) {
-            for (ConsultationDoc consulation : consultationDocs) {
-                ConsultationApplicationDoc consultationApplicationDoc = consulation.getConsultationApplicationDoc();
-                ConsultationResultsDoc consultationResultsDoc = consulation.getConsultationResultsDoc();
-                Map<String, String> applicationMap = consultationApplicationDoc.getStructureMap();
-                Map<String, String> resultMap = consultationResultsDoc.getStructureMap();
-                if (applicationMap != null && resultMap != null) {
-                    String applicationDate = applicationMap.get("申请日期");
-                    String resultDate = resultMap.get("会诊到达时间");
-                    if (applicationDate != null && resultDate != null) {
-                        Date date_in = StringUtil.parseDateTime(applicationDate);
-                        Date date_out = StringUtil.parseDateTime(resultDate);
-                        if (date_in == null || date_out == null) {
-                            return;
-                        }
-                        long times = date_out.getTime() - date_in.getTime();
-                        long day = times / (24 * 60 * 60 * 1000);
-                        long hour = (times / (60 * 60 * 1000) - day * 24);
-                        long min = ((times / (60 * 1000)) - day * 24 * 60 - hour * 60);
-                        long min1 = ((times / (60 * 1000)) - day * 24 * 60 - hour * 60);
-                        if (min1 > 10) {
-                            status.set("-1");
-                        }
-
-                    }
-                }
-            }
-        }*/
-
-    }
-}

+ 0 - 39
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/consultation/CON0528.java

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.consultation;
-
-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.consultation.ConsultationDoc;
-import org.springframework.stereotype.Component;
-
-import java.text.ParseException;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @ClassName : CON0528
- * @Description : 无会诊记录病程
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class CON0528 extends QCCatalogue {
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
-        status.set("0");
-        List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
-        if (consultationDocs.size() == 0) {
-            return;
-        }
-        long consultationRecordCount = consultationDocs
-                .stream().map(ConsultationDoc::getConsultationRecordDoc).filter(Objects::nonNull).count();
-
-        long consultationResultsCount = consultationDocs
-                .stream().map(ConsultationDoc::getConsultationResultsDoc).filter(Objects::nonNull).count();
-
-        if (consultationRecordCount < consultationResultsCount) {
-            status.set("-1");
-            info.set("会诊记录病程数:" + consultationRecordCount + ",会诊结果数:" + consultationResultsCount);
-        }
-    }
-}

+ 0 - 65
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0097.java

@@ -1,65 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.model.doc.DoctorAdviceDoc;
-import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : DEAC0097
- * @Description : 死亡患者无死亡记录
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class DEAC0097 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-
-        String outWay ="";
-        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
-        if(firstPageRecordDoc != null){
-            outWay = firstPageRecordDoc.getStructureMap().get(Content.outWay);
-            outWay = StringUtil.isBlank(outWay) ? "" : outWay;
-        }
-
-        List<String> deathRecords = new ArrayList<>();
-        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
-        if (doctorAdviceDocs.size() == 0) {
-            return;
-        }
-
-        for (DoctorAdviceDoc dad : doctorAdviceDocs) {
-            String deviceName = dad.getStructureMap().get("医嘱项目名称");
-            if(StringUtils.isNotBlank(deviceName)){
-                if(deviceName.contains("死亡")){
-                    deathRecords.add(deviceName);
-                }
-            }
-        }
-        if ((deathRecords.size() > 0 || outWay.contains("死亡")) && inputInfo.getDeathRecordDoc() == null) {
-            status.set("-1");
-        }
-        /*if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> FirstPageStructure = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            String outWay = FirstPageStructure.get(Content.outWay);
-            //判断患者是否死亡
-            if (CatalogueUtil.isEmpty(outWay) || !outWay.contains("死亡")) {
-                return;
-            }
-            if (inputInfo.getDeathRecordDoc() == null || inputInfo.getDeathRecordDoc().getStructureMap().size() == 0){
-                status.set("-1");
-            }
-        }*/
-    }
-}

+ 0 - 33
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0103.java

@@ -1,33 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.deathcasediscuss;
-
-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 : DEAC0103
- * @Description : 死亡病例讨论记录中无病情演变
- * @Author : 胡敬
- * @Date: 2020-03-19 10:20
- */
-@Component
-public class DEAC0103 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
-            Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            String discussionContent = deathCaseDiscussStructureMap.get("讨论内容");
-            if (CatalogueUtil.isEmpty(discussionContent)) {
-                return;
-            }
-            if (!discussionContent.contains("加重") && !discussionContent.contains("恶化")
-                    && !discussionContent.contains("好转") && !discussionContent.contains("效果不佳")) {
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 48
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0108.java

@@ -1,48 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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.model.doc.DeathRecordDoc;
-import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : DEAC0108
- * @Description : 死亡患者无死亡病例讨论记录
- * @Author : 胡敬
- * @Date: 2020-03-19 11:24
- */
-@Component
-public class DEAC0108 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> FirstPageStructure = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            String outWay = FirstPageStructure.get(Content.outWay);
-            //判断患者是否死亡
-            if (CatalogueUtil.isEmpty(outWay) || !outWay.contains("死亡")) {
-                return;
-            }
-            List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
-            if (doctorAdviceDocs.size() == 0 ) {
-                return;
-            }
-            long count = doctorAdviceDocs.stream().filter(x -> x.getStructureMap().get("医嘱项目名称").contains("死亡")).count();
-            if((count>0 || outWay.contains("死亡")) && (inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0)){
-                status.set("-1");
-            }
-            /*if (((inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0)
-            && outWay.contains("死亡")) || ((inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0)
-            && deathRecordDoc != null)){
-                status.set("-1");
-            }*/
-        }
-    }
-}

+ 0 - 28
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0112.java

@@ -1,28 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.deathcasediscuss;
-
-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 : DEAC0112
- * @Description : 死亡病例讨论记录无主持人姓名
- * @Author : 胡敬
- * @Date: 2020-03-19 11:26
- */
-@Component
-public class DEAC0112 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
-            Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            if (CatalogueUtil.isEmpty(deathCaseDiscussStructureMap.get("讨论主持人"))) {
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 38
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0114.java

@@ -1,38 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.deathcasediscuss;
-
-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 : DEAC0114
- * @Description : 死亡病例讨论记录无死亡原因
- * @Author : 胡敬
- * @Date: 2020-03-19 10:20
- */
-@Component
-public class DEAC0114 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
-            Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            String deathCause = deathCaseDiscussStructureMap.get("死亡原因");
-            boolean findDeathCause = false;
-            if (StringUtil.isNotBlank(deathCause)) {
-                findDeathCause = true;
-            }
-            String discussionContent = deathCaseDiscussStructureMap.get("讨论内容");
-            if (StringUtil.isNotEmpty(discussionContent) && discussionContent.contains("因")) {
-                findDeathCause = true;
-            }
-            if (!findDeathCause) {
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 29
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0115.java

@@ -1,29 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.deathcasediscuss;
-
-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 : DEAC0115
- * @Description : 死亡病例讨论记录无签名
- * @Author : 胡敬
- * @Date: 2020-03-19 11:26
- */
-@Component
-public class DEAC0115 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
-            Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            String sign = deathCaseDiscussStructureMap.get("记录医师");
-            if (CatalogueUtil.isEmpty(sign)) {
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 32
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/deathcasediscuss/DEAC0556.java

@@ -1,32 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.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;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.Map;
-
-/**
- * @ClassName : DEAC0556
- * @Description :  死亡病例讨论参加人员姓名及职称未填写
- * @Author :kwz
- * @Date: 2020-03-18 18:38
- */
-@Component
-public class DEAC0556 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getDeathCaseDiscussDoc() != null) {
-            Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            String deathTime = deathCaseDiscussStructureMap.get("参加讨论人员");
-            if (CatalogueUtil.isEmpty(deathTime)) {
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 22
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/difficultcasediscuss/DIF0116.java

@@ -1,22 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.difficultcasediscuss;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : DIF0116
- * @Description : 	疑难病例无疑难病例讨论记录
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- * 什么样的病历是疑难病例
- */
-@Component
-public class DIF0116 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-    }
-}

+ 0 - 39
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/difficultcasediscuss/DIF0117.java

@@ -1,39 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.difficultcasediscuss;
-
-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.DifficultCaseDiscussDoc;
-import com.lantone.qc.pub.util.ListUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : DIF0117
- * @Description : 	疑难病例讨论记录未填写讨论时间
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class DIF0117 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        List<DifficultCaseDiscussDoc> difficultCaseDiscussDocs = inputInfo.getDifficultCaseDiscussDocs();
-        if(ListUtil.isEmpty(difficultCaseDiscussDocs)){
-            return;
-        }
-        if(difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size()>0){
-            for (DifficultCaseDiscussDoc dcdd:difficultCaseDiscussDocs) {
-                Map<String, String> dcddStructureMap = dcdd.getStructureMap();
-                String diisDate = dcddStructureMap.get("讨论时间");
-                if(CatalogueUtil.isEmpty(diisDate)){
-                    status.set("-1");
-                    break;
-                }
-            }
-        }
-    }
-}

+ 0 - 22
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/doctorsadvice/ADVI0589.java

@@ -1,22 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.doctorsadvice;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @ClassName : ADVI0589
- * @Description : 医嘱
- * 抗生素药和化验项目关联
- * @Author : 楼辉荣
- * @Date: 2020-03-28 17:35
- */
-@Component
-public class ADVI0589 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("-2");
-    }
-}

+ 0 - 218
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/dutyshiftsystem/DUT0296.java

@@ -1,218 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.dutyshiftsystem;
-
-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.LeaveHospitalDoc;
-import com.lantone.qc.pub.model.doc.StagesSummaryDoc;
-import com.lantone.qc.pub.model.doc.transferrecord.TransferRecordDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : DUT0296
- * @Description : 无阶段小结
- * 住院时间超过1个月需要阶段小结, 出院时间和入院时间做比较,超过一个月查找阶段小结
- * 住院30天患者需写“阶段小结”,但在住院期间转科的患者,时间应该是从转科那天算起。
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class DUT0296 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
-        if (leaveHospitalDoc == null) {
-            return;
-        }
-
-        List<StagesSummaryDoc> stagesSummaryDocs = inputInfo.getStagesSummaryDocs();
-        TransferRecordDoc transferRecordDoc = inputInfo.getTransferRecordDocs();//转科记录
-        Map<String, String> structureMap_leave = leaveHospitalDoc.getStructureMap();
-        int lengthOfStayNum = 0;
-        String beDate = null, leaveDate = null;
-        if (inputInfo.getMedicalRecordInfoDoc() != null) {
-            Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
-            beDate = medicalRecordInfoStructureMap.get("behospitalDate");
-            leaveDate = medicalRecordInfoStructureMap.get("leaveHospitalDate");
-            /* 住院天数小于30天不报错*/
-            if (StringUtil.isNotBlank(beDate) && StringUtil.isNotBlank(leaveDate)) {
-                lengthOfStayNum = dateDifference(beDate, leaveDate);
-                if (lengthOfStayNum < 30) {
-                    return;
-                }
-            }
-        }
-
-        lengthOfStayNum = getLengthOfStay(structureMap_leave);
-        if (lengthOfStayNum < 30) {
-            return;
-        }
-
-
-        if (transferRecordDoc != null) {
-            List<TransferRecordDoc> allTransferDocs = transferRecordDoc.getAllTransferDocs();
-            String firstOutRecordDate = getFirstOutRecordDate(allTransferDocs);
-            if (StringUtil.isNotBlank(firstOutRecordDate) && StringUtil.isNotBlank(beDate)) {
-                //入院时间到第一次转出时间,大于30天则报错
-                int dateDifference = dateDifference(beDate, firstOutRecordDate);
-                if (dateDifference > 30 && (stagesSummaryDocs == null || stagesSummaryDocs.size() == 0)) {
-                    status.set("-1");
-                    return;
-                }
-            }
-            String lastInrecordDate = getLastInrecordDate(allTransferDocs);
-            if (StringUtil.isNotBlank(lastInrecordDate) && StringUtil.isNotBlank(leaveDate)) {
-                //最后一次转入时间到出院时间,大于30天则报错
-                int dateDifference = dateDifference(lastInrecordDate, leaveDate);
-                if (dateDifference > 30 && (stagesSummaryDocs == null || stagesSummaryDocs.size() == 0)) {
-                    status.set("-1");
-                    return;
-                }
-            }
-            List<String> allRecordPairs = getAllRecordPairs(allTransferDocs);
-            for (String recordPair : allRecordPairs) {
-                String[] recordPairSplit = recordPair.split(",");
-                int dateDifference = dateDifference(recordPairSplit[0], recordPairSplit[1]);
-                if (dateDifference > 30 && (stagesSummaryDocs == null || stagesSummaryDocs.size() == 0)) {
-                    status.set("-1");
-                    return;
-                }
-            }
-        } else {
-            //没有转科记录,直接入院时间和出院时间比
-            if (StringUtil.isNotBlank(beDate) && StringUtil.isNotBlank(leaveDate)) {
-                int dateDifference = dateDifference(beDate, leaveDate);
-                if (dateDifference > 30 && (stagesSummaryDocs == null || stagesSummaryDocs.size() == 0)) {
-                    status.set("-1");
-                }
-                if (checkDays(stagesSummaryDocs, dateDifference)) {
-                    status.set("-1");
-                    return;
-                }
-            }
-
-            int lengthOfStay = getLengthOfStay(structureMap_leave);
-            if (checkDays(stagesSummaryDocs, lengthOfStay)) {
-                status.set("-1");
-            }
-        }
-
-    }
-
-    private int getLengthOfStay(Map<String, String> structureMap_leave) {
-        int lengthOfStayNum = 0;
-        String lengthOfStay = structureMap_leave.get("住院天数");
-        if (StringUtil.isNotBlank(lengthOfStay)) {
-            lengthOfStayNum = onlyNum(lengthOfStay);
-        }
-        return lengthOfStayNum;
-    }
-
-    private boolean checkDays(List<StagesSummaryDoc> stagesSummaryDocs, int dateDifference) {
-        if (stagesSummaryDocs != null && stagesSummaryDocs.size() > 0) {
-            double sum = Math.floor(dateDifference / 30);
-            return sum != stagesSummaryDocs.size();
-        }
-        return true;
-    }
-
-    /**
-     * 获取第一条转出记录时间
-     *
-     * @param allTransferDocs
-     * @return
-     */
-    private String getFirstOutRecordDate(List<TransferRecordDoc> allTransferDocs) {
-        for (TransferRecordDoc transferDoc : allTransferDocs) {
-            Map<String, String> structureMap = transferDoc.getStructureMap();
-            String outDepartment = structureMap.get("转出科室");
-            if (StringUtil.isBlank(outDepartment)) {
-                //如果转出科室为空,则为转出记录
-                return structureMap.get("转科日期");
-            }
-        }
-        return null;
-    }
-
-    /**
-     * 获取最后一条转入记录
-     *
-     * @param allTransferDocs
-     * @return
-     */
-    private String getLastInrecordDate(List<TransferRecordDoc> allTransferDocs) {
-        for (int i = allTransferDocs.size() - 1; i > 0; i--) {
-            Map<String, String> structureMap = allTransferDocs.get(i).getStructureMap();
-            String outDepartment = structureMap.get("转出科室");
-            if (StringUtil.isNotBlank(outDepartment)) {
-                //如果转出科室不为空,则为转入记录
-                return structureMap.get("转科日期");
-            }
-        }
-        return null;
-    }
-
-    /**
-     * 获取所有转入时间-转出时间 pair
-     *
-     * @param allTransferDocs
-     * @return
-     */
-    private List<String> getAllRecordPairs(List<TransferRecordDoc> allTransferDocs) {
-        List<String> allRecordPairs = new ArrayList<>();
-        for (int i = 0; i < allTransferDocs.size(); i++) {
-            Map<String, String> structureMap = allTransferDocs.get(i).getStructureMap();
-            String outDepartment = structureMap.get("转出科室");
-            if (StringUtil.isNotBlank(outDepartment)) {
-                //如果转出科室不为空,则为转入记录
-                String transferDateInStr = structureMap.get("转科日期");
-                if (i + 1 < allTransferDocs.size()) {
-                    //如果转入记录下一条是转出记录
-                    Map<String, String> nextStructureMap = allTransferDocs.get(i + 1).getStructureMap();
-                    if (StringUtil.isBlank(nextStructureMap.get("转出科室"))) {
-                        //如果转出科室为空,则为转出记录
-                        String transferDateOutStr = nextStructureMap.get("转科日期");
-                        allRecordPairs.add(transferDateInStr + "," + transferDateOutStr);
-                    }
-                }
-            }
-        }
-        return allRecordPairs;
-    }
-
-    private int dateDifference(String beDate, String leaveDate) {
-        int day = 0;
-        try {
-            Date dateIn = StringUtil.parseDateTime(beDate);
-            Date dateOut = StringUtil.parseDateTime(leaveDate);
-            Calendar from = Calendar.getInstance();
-            from.setTime(dateIn);
-            Calendar to = Calendar.getInstance();
-            to.setTime(dateOut);
-            long timeS, timeE, timeDiff = 0;
-            try {
-                timeS = from.getTimeInMillis();
-                timeE = to.getTimeInMillis();
-                timeDiff = (timeE - timeS) / (1000 * 60 * 60 * 24);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-            day = (int) timeDiff;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return day;
-    }
-
-    private int onlyNum(String str) {
-        return Integer.parseInt(str.replaceAll("[^0-9]", ""));
-    }
-}

+ 0 - 104
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/dutyshiftsystem/DUT0599.java

@@ -1,104 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.dutyshiftsystem;
-
-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.ThreeLevelWardDoc;
-import com.lantone.qc.pub.model.doc.transferrecord.TransferIntoDoc;
-import com.lantone.qc.pub.model.doc.transferrecord.TransferRecordDoc;
-import com.lantone.qc.pub.util.DateUtil;
-import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : DUT0599
- * @Description : 转科后病程录没有连续记录3天
- * @Author : 胡敬
- * @Date: 2020-03-30 15:06
- */
-@Component
-public class DUT0599 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        TransferRecordDoc transferRecordDoc = inputInfo.getTransferRecordDocs();
-        List<ThreeLevelWardDoc> threeLevelWardDocs = inputInfo.getThreeLevelWardDocs();
-        if (transferRecordDoc == null || ListUtil.isEmpty(threeLevelWardDocs)) {
-            return;
-        }
-        //所有查房记录的日期天
-        List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDocs.get(0).getAllDoctorWradDocs();
-        List<Date> wardRecordDayList = getWardRecordDay(allDoctorWradDocs);
-        String rollInRecordDateStr = "";
-        //转入日期后应该有的查房记录的日期天
-        List<Date> rollInDay = null;
-        List<TransferIntoDoc> transferIntoDocs = transferRecordDoc.getTransferIntoDocs();
-        for (TransferIntoDoc transferIntoDoc : transferIntoDocs) {
-            Map<String, String> transferOutStructureMap = transferIntoDoc.getStructureMap();
-            rollInRecordDateStr = transferOutStructureMap.get("转科日期");
-            if (CatalogueUtil.isEmpty(rollInRecordDateStr)) {
-                continue;
-            }
-            Date rollInRecordDate = StringUtil.parseDateTime(rollInRecordDateStr);
-            if (rollInRecordDate != null) {
-                Date dateZeroClear = DateUtil.dateZeroClear(rollInRecordDate);
-                if (!CatalogueUtil.compareTime(dateZeroClear, new Date(), 3 * 24 * 60L)) {
-                    continue;
-                }
-            }
-            if (inputInfo.getLeaveHospitalDoc() != null && inputInfo.getMedicalRecordInfoDoc() != null) {
-//                Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
-//                String dischargeTime = leaveHospitalStructureMap.get(Content.dischargeTime);
-                Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
-                String dischargeTime = medicalRecordInfoStructureMap.get("leaveHospitalDate");
-                if (StringUtil.isBlank(dischargeTime)) {
-                    dischargeTime = DateUtil.nowString();
-                }
-                //如果住院天数小于3天则不判断该条规则
-                if (rollInRecordDate != null && StringUtil.isNotBlank(dischargeTime)) {
-                    if (!CatalogueUtil.compareTime(rollInRecordDate, StringUtil.parseDateTime(dischargeTime), 3 * 24 * 60L)) {
-                        continue;
-                    }
-                }
-            }
-            for (int i = 1; i <= 3; i++) {
-                rollInDay = new ArrayList<>();
-                Date wardRecordDay = DateUtil.dateZeroClear(DateUtil.addDate(rollInRecordDate, i));
-                rollInDay.add(wardRecordDay);
-            }
-            if (!wardRecordDayList.containsAll(rollInDay)) {
-                status.set("-1");
-                return;
-            }
-        }
-    }
-
-    /**
-     * 所有查房记录的日期天
-     *
-     * @param threeLevelWardDocs
-     */
-    private List<Date> getWardRecordDay(List<ThreeLevelWardDoc> threeLevelWardDocs) {
-        List<Date> dateRecordDay = new ArrayList<>();
-        String recordTime = "";
-        for (ThreeLevelWardDoc threeLevelWardDoc : threeLevelWardDocs) {
-            Map<String, String> rescueStructureMap = threeLevelWardDoc.getStructureMap();
-            recordTime = rescueStructureMap.get("查房日期");
-            if (StringUtil.isBlank(recordTime)) {
-                continue;
-            }
-            Date recordDate = StringUtil.parseDateTime(recordTime);
-            if (recordDate == null) {
-                continue;
-            }
-            dateRecordDay.add(DateUtil.dateZeroClear(recordDate));
-        }
-        return dateRecordDay;
-    }
-}

+ 0 - 31
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0083.java

@@ -1,31 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0083
- * @Description : 病例特点与现病史内容雷同
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0083 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc == null || firstCourseRecordDoc.getCaseCharacteristicLabel() == null) {
-            return;
-        }
-        double likeRate = firstCourseRecordDoc.getCaseCharacteristicLabel().getLikeRate();
-        // 根据医学部要求将相似度阈值提高到85%
-        if (likeRate > 0.95) {
-            status.set("-1");
-        }
-    }
-}

+ 0 - 93
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0087.java

@@ -1,93 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.CaseCharacteristicLabel;
-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.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0087
- * @Description : 无鉴别诊断
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0087 extends QCCatalogue {
-    @Autowired
-    ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
-
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc != null) {
-            DiagLabel differentialDiagLabel = firstCourseRecordDoc.getDifferentialDiagLabel();
-            CaseCharacteristicLabel casecharLabel = firstCourseRecordDoc.getCaseCharacteristicLabel();
-            DiagLabel initDiagLabel = firstCourseRecordDoc.getInitialDiagLabel();
-
-            if (differentialDiagLabel != null) {
-                Map<String, String> structureMap = firstCourseRecordDoc.getStructureMap();
-                String diffDiagStruct = structureMap.get("鉴别诊断");
-                if(StringUtils.isNotEmpty(diffDiagStruct)){
-                    return;
-                }
-                /*if (StringUtil.isNotBlank(diffDiagStruct) && (diffDiagStruct.contains("诊断明确") || diffDiagStruct.contains("无需鉴别")
-                        || diffDiagStruct.contains("明确诊断"))) {
-                    return;
-                }*/
-
-                //List<Diag> diags = differentialDiagLabel.getDiags();
-                String diag = initDiagLabel.getDiags().get(0).getHospitalDiagName();
-                String casechar = casecharLabel.getText();
-                String chief = "";
-                String present = "";
-                if (casechar.contains("主诉") && casechar.contains("现病史")) {
-                    chief = casechar.substring(casechar.indexOf("主诉") + 2, casechar.indexOf("现病史"));
-                    present = casechar.substring(casechar.indexOf("现病史") + 3, casechar.indexOf("既往史"));
-                }
-
-                if (StringUtils.isNotEmpty(differentialDiagLabel.getText())) {
-                    if (differentialDiagLabel.getText().contains("诊断明确")
-                            || differentialDiagLabel.getText().contains("无需鉴别")) {
-                        if (chief.contains("术后") || chief.contains("孕") || chief.contains("化疗")
-                                || chief.contains("肿瘤") || chief.contains("癌") || chief.contains("确诊")
-                                || chief.contains("外伤") || chief.contains("摔伤")) {
-                            status.set("0");
-                        } else if (present.contains(diag)) {
-                            status.set("0");
-                        } else {
-                            status.set("-1");
-                        }
-                    }
-                } else if (StringUtils.isEmpty(differentialDiagLabel.getText())) {
-                    status.set("-1");
-                }
-                /*
-                if(diags == null || diags.size()<1){
-                    status.set("-1");
-                }
-
-                if (StringUtils.isNotEmpty(differentialDiagLabel.getText())
-                        && (differentialDiagLabel.getText().contains("暂缺")
-                            || differentialDiagLabel.getText().contains("无") || differentialDiagLabel.getText().contains("诊断"))) {
-                    status.set("0");
-                }
-                */
-            }
-        }
-    }
-
-}

+ 0 - 43
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0088.java

@@ -1,43 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.DiagLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0087
- * @Description : 鉴别诊断不全面
- * @Author : 胡敬
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0088 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc == null) {
-            return;
-        }
-        Map<String, String> firstCourseStructureMap = firstCourseRecordDoc.getStructureMap();
-        String diffDiag = firstCourseStructureMap.get("鉴别诊断");
-        if (StringUtil.isBlank(diffDiag) || diffDiag.contains("诊断明确") || diffDiag.contains("无需鉴别")
-                || diffDiag.contains("明确诊断")) {
-            return;
-        }
-        DiagLabel differentialDiagLabel = firstCourseRecordDoc.getDifferentialDiagLabel();
-        if (differentialDiagLabel != null) {
-            List<Diag> diags = differentialDiagLabel.getDiags();
-            if (diags == null || diags.size() < 1) {
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 41
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0089.java

@@ -1,41 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.DiagLabel;
-import com.lantone.qc.pub.model.label.TreatPlanLabel;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0089
- * @Description : 无诊疗计划
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0089 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if(firstCourseRecordDoc != null){
-            TreatPlanLabel treatPlanLabel = firstCourseRecordDoc.getTreatPlanLabel();
-            if(treatPlanLabel != null){
-                String text = treatPlanLabel.getText();
-                if(StringUtils.isBlank(text)){
-                    status.set("-1");
-                }
-            }
-            //硬规则匹配
-            if (StringUtils.isNotEmpty(firstCourseRecordDoc.getText()) && firstCourseRecordDoc.getText().contains("诊疗计划")) {
-                status.set("0");
-            }
-        }
-    }
-}

+ 0 - 36
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0090.java

@@ -1,36 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import com.lantone.qc.pub.model.label.TreatPlanLabel;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0090
- * @Description : 治疗措施不具体
- * @Author : 胡敬
- * @Date: 2020-07-10 14:41
- */
-@Component
-public class FIRC0090 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc == null) {
-            status.set("0");
-            return;
-        }
-        TreatPlanLabel treatPlanLabel = firstCourseRecordDoc.getTreatPlanLabel();
-        if (treatPlanLabel == null) {
-            return;
-        }
-        if (treatPlanLabel.getMedicine() != null || treatPlanLabel.getTreat().size() > 0
-                || treatPlanLabel.getPacs().size() > 0) {
-            status.set("0");
-        }
-    }
-}

+ 0 - 72
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0096.java

@@ -1,72 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.doc.FirstCourseRecordDoc;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.DiagLabel;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0096
- * @Description : 初步诊断不标准
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0096 extends QCCatalogue {
-    @Autowired
-    private SpecialStorageUtil specialStorageUtil;
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if(inputInfo.getFirstCourseRecordDoc() == null){
-            status.set("0");
-            return;
-        }
-        List<String> diags_out = new ArrayList<>();
-        Map<String, String> hostpital_standDiag = specialStorageUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
-        if (hostpital_standDiag == null){
-            status.set("0");
-            return;
-        }
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if(firstCourseRecordDoc != null){
-            DiagLabel initialDiagLabel = firstCourseRecordDoc.getInitialDiagLabel();
-            if(initialDiagLabel != null){
-                List<Diag> diags = initialDiagLabel.getDiags();
-                if(diags != null && diags.size()>0){
-                    for (Diag diag:diags) {
-                        String hospitalDiagName = diag.getHospitalDiagName().trim().replace("待查","").replace("?","").replace("?","");
-                        if ("ACT".equals(hospitalDiagName)){
-                            continue;
-                        }
-                        if (hospitalDiagName.contains("伴")){
-                            hospitalDiagName = hospitalDiagName.substring(0,hospitalDiagName.indexOf("伴"));
-                        }
-                        if (hospitalDiagName.length() > 15){
-                            continue;
-                        }
-                        if(!hostpital_standDiag.containsKey(hospitalDiagName)){
-                            diags_out.add(hospitalDiagName);
-                            break;
-                        }
-                    }
-                    if(diags_out.size()>0){
-                        info.set(diags_out.toString().replace("[","").replace("]",""));
-                    }else {
-                        status.set("0");
-                    }
-                }else {
-                    status.set("0");
-                }
-            }
-        }
-    }
-}

+ 0 - 38
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC02970.java

@@ -1,38 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-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 static com.lantone.qc.trans.comsis.ModelDocGenerate.structureMapJoin;
-
-/**
- * @ClassName : FIRC02970
- * @Description : 首次病程记录中监测生命体征书写不规范
- * @Author : 胡敬
- * @Date: 2020-06-16 17:36
- */
-@Component
-public class FIRC02970 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getFirstCourseRecordDoc() == null) {
-            return;
-        }
-        Map<String, String> firstCourseRecordStructureMap = inputInfo.getFirstCourseRecordDoc().getStructureMap();
-        List<String> keys = Lists.newArrayList("需求评估", "预期目标", "诊疗计划", "治疗监测计划", "治疗计划", "检查计划");
-        String text = structureMapJoin(firstCourseRecordStructureMap, keys);
-        if (StringUtil.isNotBlank(text) && text.contains("生命体征") && !text.contains("血压") && !text.contains("心率") && !text.contains("心电监护")) {
-            status.set("-1");
-            info.set("需具体描述测血压、心率等");
-        }
-    }
-}

+ 0 - 64
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0500.java

@@ -1,64 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0500
- * @Description : 首程主诉与入院记录主诉不一致
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0500 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        if (firstCourseRecordDoc == null || beHospitalizedDoc == null) {
-            status.set("0");
-            return;
-        }
-
-        String chief_text = beHospitalizedDoc.getChiefLabel().getText();//入院记录主诉
-        if (StringUtil.isBlank(chief_text)) {
-            status.set("0");
-            return;
-        }
-        chief_text = chief_text.replaceAll("[\\p{Punct}\\pP。]", "");
-
-        Map<String, String> structureMap = firstCourseRecordDoc.getStructureMap();
-        String firstCourseChief = structureMap.get("主诉");//首程结构化数据中取主诉
-
-        if (StringUtil.isNotBlank(firstCourseChief)) {
-            firstCourseChief = firstCourseChief.replaceAll("[\\p{Punct}\\pP。]", "");
-            if (firstCourseChief.contains(chief_text) || chief_text.contains(firstCourseChief)) { //首程主诉.equals(入院记录主诉)
-                status.set("0");
-                return;
-            }
-        }
-        //结构化再获取病历特点,判断是否包含主诉内容
-        firstCourseChief = structureMap.get("病例特点");
-        if (StringUtil.isNotBlank(firstCourseChief)) {
-            firstCourseChief = firstCourseChief.replaceAll("[\\p{Punct}\\pP。]", "");
-            if (firstCourseChief.contains(chief_text)) { //首程病历特点.contains(入院记录主诉)
-                status.set("0");
-                return;
-            }
-        }
-        if(StringUtils.isNotBlank(firstCourseRecordDoc.getText())){
-            if (firstCourseRecordDoc.getText().contains(chief_text)) {
-                status.set("0");
-            }
-        }
-
-    }
-}

+ 0 - 38
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0501.java

@@ -1,38 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.BeHospitalizedDoc;
-import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0501
- * @Description : 检查计划未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0501 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if(firstCourseRecordDoc != null){
-            Map<String, String> firstRecordMap = firstCourseRecordDoc.getStructureMap();
-            if(firstRecordMap != null){
-                String morbidity_after = firstRecordMap.get("检查计划");
-                if(morbidity_after != null){
-                    if(CatalogueUtil.isEmpty(morbidity_after)){
-                        status.set("-1");
-                    }
-                }else {
-                    status.set("-1");
-                }
-            }
-        }
-    }
-    }

+ 0 - 36
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0502.java

@@ -1,36 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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 com.lantone.qc.pub.model.entity.Lis;
-import com.lantone.qc.pub.model.entity.Pacs;
-import com.lantone.qc.pub.model.label.TreatPlanLabel;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0502
- * @Description : 诊疗计划无化验或辅检项目名称
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0502 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if(firstCourseRecordDoc != null){
-            TreatPlanLabel treatPlanLabel = firstCourseRecordDoc.getTreatPlanLabel();
-            List<Pacs> pacs = treatPlanLabel.getPacs();
-            if(pacs == null || pacs.size() == 0){
-                status.set("-1");
-            }
-
-        }
-    }
-    }

+ 0 - 34
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0503.java

@@ -1,34 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import com.lantone.qc.pub.model.entity.Lis;
-import com.lantone.qc.pub.model.entity.Pacs;
-import com.lantone.qc.pub.model.label.TreatPlanLabel;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @ClassName : FIRC0503
- * @Description : 检查计划无辅检项目名称
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0503 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if(firstCourseRecordDoc != null){
-            TreatPlanLabel treatPlanLabel = firstCourseRecordDoc.getTreatPlanLabel();
-            List<Pacs> pacs = treatPlanLabel.getPacs();
-            if(pacs == null || pacs.size() == 0){
-                status.set("-1");
-            }
-
-        }
-    }
-    }

+ 0 - 33
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0504.java

@@ -1,33 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : FIRC0504
- * @Description : 检查计划未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRC0504 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc != null) {
-            Map<String, String> firstRecordMap = firstCourseRecordDoc.getStructureMap();
-            if (firstRecordMap != null) {
-                String treatPlan = firstRecordMap.get("治疗计划");
-                if (StringUtil.isBlank(treatPlan)) {
-                    status.set("-1");
-                }
-            }
-        }
-    }
-}

+ 0 - 30
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstcourserecord/FIRC0707.java

@@ -1,30 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstcourserecord;
-
-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.FirstCourseRecordDoc;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-/**
- * @ClassName : FIRC0707
- * @Description : 鉴别诊断书写不规范
- * 首次病程录里的鉴别诊断病情分析,最后一句要分析鉴别诊断的原因,要多加一个规则“可能不考虑该诊断”
- * @Author : kwz
- * @Date: 2020-04-20 17:28
- */
-@Component
-public class FIRC0707 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc == null || firstCourseRecordDoc.getTreatPlanLabel() == null) {
-            return;
-        }
-        String differentTxt = firstCourseRecordDoc.getDifferentialDiagLabel().getText();
-        if(!differentTxt.endsWith("可能不考虑该诊断")){
-            status.set("-1");
-        }
-    }
-}

+ 0 - 31
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0157.java

@@ -1,31 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstpagerecord;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.Content;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : FIRP0157
- * @Description : 患者姓名未填写
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class FIRP0157 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            String name = firstpageStructureMap.get(Content.name);
-            if (CatalogueUtil.isEmpty(name)){
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 37
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0158.java

@@ -1,37 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstpagerecord;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.Content;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.util.StringUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : FIRP0158
- * @Description : 患者姓名与入院记录不一致
- * @Author : 胡敬
- * @Date: 2020-03-16 09:47
- */
-@Component
-public class FIRP0158 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 firstAdmissionName = firstpageStructureMap.get(Content.name);
-            String admissionName = beHospitalStructureMap.get(Content.name);
-            if (StringUtil.isBlank(firstAdmissionName) || StringUtil.isBlank(admissionName)){
-                return;
-            }
-            if (!CatalogueUtil.compareToken(firstAdmissionName, admissionName)) {
-                status.set("-1");
-            }
-        }
-    }
-}

+ 0 - 36
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0162.java

@@ -1,36 +0,0 @@
-package com.lantone.qc.kernel.catalogue.hospital.taizhou.firstpagerecord;
-
-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.util.Map;
-
-/**
- * @ClassName : FIRP0162
- * @Description : 身份证信息错误
- * @Author : 胡敬
- * @Date: 2020-03-16 10:01
- */
-@Component
-public class FIRP0162 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            String idNumber = firstpageStructureMap.get(Content.idNumber);
-            if (StringUtil.isNotBlank(idNumber)) {
-                if ("-".equals(idNumber) || "—".equals(idNumber)) {
-                    return;
-                }
-                String regex = "\\d{15}|\\d{17}[\\dxX]";
-                if (!idNumber.matches(regex)) {
-                    status.set("-1");
-                }
-            }
-        }
-    }
-}

+ 0 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/taizhou/firstpagerecord/FIRP0170.java


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.