Browse Source

现场问题整改20250221

cb 3 months ago
parent
commit
0ed454fab7
16 changed files with 74 additions and 49 deletions
  1. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0003.java
  2. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0008.java
  3. 28 24
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0059.java
  4. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0727.java
  5. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0014.java
  6. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0048.java
  7. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0050.java
  8. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0053.java
  9. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0058.java
  10. 6 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0376.java
  11. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0397.java
  12. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0441.java
  13. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0445.java
  14. 16 15
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstcourserecord/FIRC0093.java
  15. 3 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0123.java
  16. 1 1
      kernel/src/main/resources/bootstrap.yml

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

@@ -26,6 +26,10 @@ public class BEH0003 extends QCCatalogue {
             return;
         }
         if (StringUtil.isNotBlank(chiefText)) {
+            if(chiefText.contains("建议")){ //临时处理,需修改解析代码 004490329刘恩泽
+                status.set("0");
+                return;
+            }
             int chiefTextLength = chiefText.replaceAll("[\\p{Punct}\\pP]", "").length();
             if (chiefTextLength <= 20) {
                 status.set("0");

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

@@ -34,6 +34,10 @@ public class BEH0008 extends QCCatalogue {
             status.set("0");
             return;
         }
+        if (chiefText.contains("伴")) {
+            status.set("0");
+            return;
+        }
         List<Clinical> clinicals = chiefLabel.getClinicals();
         if (clinicals != null && clinicals.size() <= 3) {
             status.set("0");

+ 28 - 24
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0059.java

@@ -21,32 +21,36 @@ public class BEH0059 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
         if (inputInfo.getBeHospitalizedDoc() != null) {
-            if (inputInfo.getBeHospitalizedDoc().getStructureMap() == null
-                    || inputInfo.getBeHospitalizedDoc().getStructureMap().get("性别") == null
-                    || inputInfo.getBeHospitalizedDoc().getStructureMap().get("性别").contains("男")
-                    //加入判断,如果年龄小于15就不报规则
-                    || Integer.parseInt(inputInfo.getBeHospitalizedDoc().getStructureMap().get("年龄")) < 15) {
+            Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+            String s = structureMap.get("性别");
+            if (StringUtil.isNotBlank(s) && s.contains("男")) {
                 status.set("0"); //如果性别是男,就不报错
-            } else {
-                String concatMenstrualText = concatMenstrualText(inputInfo);
-                if (StringUtil.isNotBlank(concatMenstrualText)) {
-                    status.set("0");
-                    return;
-                }
-                MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
-                if (menstrualLabel == null) {
-                    return;
-                }
-                String menstrualText = StringUtil.removeBlank(menstrualLabel.getText()).replaceAll("[月经史|:|:|null]", "");
-                if (StringUtil.isBlank(menstrualText)) {
-                    return;
-                }
-                boolean containChinese = CatalogueUtil.isContainChinese(menstrualText);
-                if (containChinese) {
-                    status.set("0"); //如果性别是女,不为空就不报错
-                }
+                return;
+            }
+            String menstrualStr = structureMap.get("月经史");
+            if (StringUtil.isNotBlank(menstrualStr)) {
+                status.set("0");
+                return;
+            }
+
+            String concatMenstrualText = concatMenstrualText(inputInfo);
+            if (StringUtil.isNotBlank(concatMenstrualText)) {
+                status.set("0");
+                return;
+            }
+            MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+            if (menstrualLabel == null) {
+                return;
+            }
+            String menstrualText = StringUtil.removeBlank(menstrualLabel.getText()).replaceAll("[月经史|:|:|null]", "");
+            if (StringUtil.isBlank(menstrualText)) {
+                return;
+            }
+            boolean containChinese = CatalogueUtil.isContainChinese(menstrualText);
+            if (containChinese) {
+                status.set("0"); //如果性别是女,不为空就不报错
             }
-        }else {
+        } else {
             status.set("0");
             return;
         }

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

@@ -35,7 +35,7 @@ public class BEH0727 extends QCCatalogue {
             return;
         }
 
-        String regex = "分娩方式:([^,。]+)";
+        String regex = "分娩方式:([^,。. ]+)";
         Pattern pattern = Pattern.compile(regex);
         Matcher matcher = pattern.matcher(birthHistory);
 

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0014.java

@@ -28,7 +28,7 @@ import java.util.Map;
 @Component
 public class BEH0014 extends QCCatalogue {
     private List<String> containList = Arrays.asList("体检", "发现", "检查", "因", "确诊", "诊断", "复查", "术后"
-            , "药物", "误服", "查", "撞", "伤", "月经", "暴力", "超", "术");
+            , "药物", "误服", "查", "撞", "伤", "月经", "暴力", "超", "术","接触");
 
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0048.java

@@ -42,6 +42,10 @@ public class BEH0048 extends QCCatalogue {
             status.set("0");
             return;
         }
+        if (personalLabel.getText().length() <=20){
+            status.set("0");
+            return;
+        }
         Contact contact = personalLabel.getContact();
         if (contact != null && StringUtil.isNotBlank(contact.getName())) {
             status.set("0");

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0050.java

@@ -34,7 +34,7 @@ public class BEH0050 extends QCCatalogue {
             return;
         }
         if (StringUtil.isNotBlank(personalText) && (personalText.contains("无吸烟史") || personalText.contains("否认吸烟史"))
-                || personalText.contains("不吸烟")) {
+                || personalText.contains("不吸烟")|| personalText.contains("根")) {
             status.set("0");
             return;
         }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0053.java

@@ -45,7 +45,7 @@ public class BEH0053 extends QCCatalogue {
             return;
         }
         String maritalText = maritalLabel.getText();
-        if ("未婚".equals(marry) || maritalText.contains("未婚") || maritalText.contains("详见原病历")
+        if ((StringUtil.isNotBlank(marry) && marry.contains("未婚")) || maritalText.contains("未婚")|| maritalText.contains("未结婚") || maritalText.contains("详见原病历")
                 || maritalText.contains("离婚") || maritalText.contains("离异") || maritalText.contains("适龄结婚")) {
             status.set("0");
             return;

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

@@ -64,7 +64,7 @@ public class BEH0058 extends QCCatalogue {
             return;
         }
         if (StringUtil.isNotBlank(maritalText)) {
-            List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女"
+            List<String> words = Lists.newArrayList("未婚", "未育", "未孕", "未婚育", "未生育", "未生", "0子0女"
                     , "0-0-0-0", "详见原病历", "0-0-0-0");
             for (String word : words) {
                 if (maritalText.contains(word)) {

+ 6 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0376.java

@@ -29,6 +29,7 @@ public class BEH0376 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+
         if (inputInfo.getBeHospitalizedDoc() == null) {
             status.set("0");
             return;
@@ -37,6 +38,10 @@ public class BEH0376 extends QCCatalogue {
         MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
         //台州市结构化的
         Map<String, String> structureMap_beh = beHospitalizedDoc.getStructureMap();
+        if ("未婚".equals(structureMap_beh.get("婚姻状况"))){
+            status.set("0");
+            return;
+        }
         if (StringUtils.isNotEmpty(structureMap_beh.get("子女健康状况"))) {
             status.set("0");
             return;
@@ -66,7 +71,7 @@ public class BEH0376 extends QCCatalogue {
                 }
             }
             if (!findChild) {
-                List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女", "详见原病历", "无子女");
+                List<String> words = Lists.newArrayList("未婚", "未育","未孕", "未婚育", "未生育", "未生", "0子0女", "详见原病历", "无子女");
                 for (String word : words) {
                     if (maritalText.contains(word)) {
                         status.set("0");

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0397.java

@@ -56,7 +56,7 @@ public class BEH0397 extends QCCatalogue {
         }
         if ((StringUtil.isNotBlank(familyText) && (familyText.contains("父母") ||
                 familyText.contains("详见原病历") || familyText.contains("双亲") ||
-                familyText.contains("已故")  || familyText.contains("父亲") ||familyText.contains("母亲")))
+                familyText.contains("已故")  || familyText.contains("父亲") ||familyText.contains("母亲")||familyText.contains("均")))
                 || (StringUtil.isNotBlank(maritalText) && (maritalText.contains("父母") ||
                 maritalText.contains("详见原病历") || familyText.contains("双亲") || familyText.contains("已故")
                 || familyText.contains("父亲") ||familyText.contains("母亲")))) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0441.java

@@ -33,7 +33,7 @@ public class BEH0441 extends QCCatalogue {
             return;
         }
         List<String> words = Lists.newArrayList("胃纳", "食纳", "食欲", "未纳", "纳眠", "饮食", "睡眠"
-                , "禁食", "未食", "鼻饲", "饮", "未进食", "未开奶", "吃奶","已开奶");
+                , "禁食", "未食", "鼻饲", "饮", "未进食", "未开奶", "吃奶","已开奶","配方奶","喂");
         String presentText = presentLabel.getText();
         if (StringUtil.isNotBlank(presentText)) {
             for (String word : words) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0445.java

@@ -36,7 +36,7 @@ public class BEH0445 extends QCCatalogue {
         }
         String presentText = presentLabel.getText();
         if (StringUtil.isNotBlank(presentText)) {
-            List<String> words = Lists.newArrayList("睡", "未眠", "未睡", "未入眠", "入睡", "纳眠", "夜眠", "镇静", "未开奶","吃奶","已开奶");
+            List<String> words = Lists.newArrayList("睡", "未眠", "未睡", "未入眠", "入睡", "纳眠", "夜眠", "镇静", "未开奶","吃奶","已开奶","肠套");
             for (String word : words) {
                 if (presentText.contains(word)) {
                     status.set("0");

+ 16 - 15
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstcourserecord/FIRC0093.java

@@ -4,9 +4,8 @@ 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.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
@@ -25,15 +24,16 @@ import java.util.Map;
 public class FIRC0093 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
-        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();//病案首页
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc(); //入院登记
         FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc != null && firstPageRecordDoc != null) {
+        if (firstCourseRecordDoc != null && medicalRecordInfoDoc != null) {
             Map<String, String> courseRecordDocStructureMap = firstCourseRecordDoc.getStructureMap();
-            Map<String, String> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureMap();
-            if (courseRecordDocStructureMap != null && firstPageRecordDocStructureMap != null) {
+            Map<String, String> medicalRecordInfoDocStructureMap = medicalRecordInfoDoc.getStructureMap();
+            if (courseRecordDocStructureMap != null && medicalRecordInfoDocStructureMap != null) {
                 String couDate = courseRecordDocStructureMap.get("病历日期");
                 String couBeDate = courseRecordDocStructureMap.get("入院日期");
-                String beDate = firstPageRecordDocStructureMap.get("入院时间");
+                //入院日期
+                String admisTime = medicalRecordInfoDocStructureMap.get("behospitalDate");
                 if (StringUtils.isNotEmpty(couDate)) {
                     Date date_out = StringUtil.parseDateTime(couDate);
                     Date date_in = null;
@@ -42,8 +42,8 @@ public class FIRC0093 extends QCCatalogue {
                     }
                     if (StringUtils.isNotEmpty(couBeDate)) {
                         date_in = StringUtil.parseDateTime(couBeDate);
-                    } else if (StringUtils.isNotEmpty(beDate)) {
-                        date_in = StringUtil.parseDateTime(beDate);
+                    } else if (StringUtils.isNotEmpty(admisTime)) {
+                        date_in = StringUtil.parseDateTime(admisTime);
                     }
                     if (date_in == null) {
                         return;
@@ -55,12 +55,13 @@ public class FIRC0093 extends QCCatalogue {
                 }
             }
         } else {
-            if (firstPageRecordDoc != null) {
-                Map<String, String> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureMap();
-                if (firstPageRecordDocStructureMap != null) {
-                    String beDate = firstPageRecordDocStructureMap.get("入院时间");
-                    if (StringUtils.isNotEmpty(beDate)) {
-                        Date date_in = StringUtil.parseDateTime(beDate);
+            if (medicalRecordInfoDoc != null) {
+                Map<String, String> medicalRecordInfoDocStructureMap = medicalRecordInfoDoc.getStructureMap();
+                if (medicalRecordInfoDocStructureMap != null) {
+                    //入院日期
+                    String admisTime = medicalRecordInfoDocStructureMap.get("behospitalDate");
+                    if (StringUtils.isNotEmpty(admisTime)) {
+                        Date date_in = StringUtil.parseDateTime(admisTime);
                         Date date_out = new Date();
                         if (date_in == null) {
                             return;

+ 3 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0123.java

@@ -25,6 +25,9 @@ public class THR0123 extends QCCatalogue {
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String admisDate = beHospitalStructureMap.get(Content.admisDate);
             String recordTime = beHospitalStructureMap.get("记录日期");
+            if(StringUtil.isBlank(recordTime)){
+                recordTime =  beHospitalStructureMap.get("记录时间");
+            }
             if (CatalogueUtil.isEmpty(admisDate) || CatalogueUtil.isEmpty(recordTime)) {
                 return;
             }

+ 1 - 1
kernel/src/main/resources/bootstrap.yml

@@ -12,7 +12,7 @@ spring:
       charset: UTF-8
       enabled: true
   profiles:
-    active: test
+    active: local
 
 qc:
   hospital_id: 1,2,3,4,5,6,7,8,10,13,15,20,34,36