瀏覽代碼

Merge remote-tracking branch 'origin/his/yiwufubao' into his/yiwufubao

SGTY 5 月之前
父節點
當前提交
a0fe763a44
共有 36 個文件被更改,包括 330 次插入115 次删除
  1. 3 3
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03330.java
  2. 9 8
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03335.java
  3. 9 8
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03336.java
  4. 2 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON03305.java
  5. 2 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03152.java
  6. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03331.java
  7. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0011.java
  8. 8 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0025.java
  9. 2 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0028.java
  10. 3 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0075.java
  11. 6 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH02903.java
  12. 3 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH02966.java
  13. 10 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0372.java
  14. 10 9
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstcourserecord/FIRC0093.java
  15. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstcourserecord/FIRC0095.java
  16. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP0192.java
  17. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP0205.java
  18. 9 7
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP02905.java
  19. 78 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP03110.java
  20. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/preoperativediscussion/PRE0330.java
  21. 5 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/threelevelward/THR0125.java
  22. 8 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/threelevelward/THR0126.java
  23. 6 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03290.java
  24. 6 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03293.java
  25. 25 3
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03323.java
  26. 14 16
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03328.java
  27. 11 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03313.java
  28. 6 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03315.java
  29. 11 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03316.java
  30. 8 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03319.java
  31. 8 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03321.java
  32. 8 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03322.java
  33. 28 21
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03325.java
  34. 9 9
      kernel/src/main/java/com/lantone/qc/kernel/structure/ai/BeHospitalizedAI.java
  35. 1 1
      public/src/main/java/com/lantone/qc/pub/Content.java
  36. 7 1
      trans/src/main/java/com/lantone/qc/trans/yiwu/YiWuBeHospitalizedDocTrans.java

+ 3 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03330.java

@@ -25,7 +25,7 @@ public class BEH03330 extends QCCatalogue {
         /**
          * 1.查证【入院记录】,是否有“预产期”和“末次月经”两个字段,任一不存在则直接返回。
          * 2.查证【入院记录】>>【末次月经】字段内容,加280天计算出数值为“预产期”。
-         * 3.查证【入院记录】>>【预产期】中的内容与计算出的“预产期”转换相同格式后时间一致或大于3天或小于1天则通过,否则提示。
+         * 3.查证【入院记录】>>【预产期】中的内容与计算出的“预产期”转换相同格式后时间一致或大或小于5天则于5天通过,否则提示。
          * */
         status.set("0");
         //获取入院记录
@@ -61,12 +61,12 @@ public class BEH03330 extends QCCatalogue {
 
             //添加末次月经时间
             c.setTime(lastMPDate);
-            c.add(Calendar.DATE, 277); //给末次月经时间加277
+            c.add(Calendar.DATE, 275); //给末次月经时间加275
             String after = sdf.format(c.getTime());
             Date afterDate = StringUtil.parseDateTime(after);//日期转成Date格式
 
             c.setTime(lastMPDate);
-            c.add(Calendar.DATE, 281);//给末次月经时间加281
+            c.add(Calendar.DATE, 285);//给末次月经时间加285
             String before = sdf.format(c.getTime());
             Date beforeDate = StringUtil.parseDateTime(before);
 

+ 9 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03335.java

@@ -54,7 +54,8 @@ public class BEH03335 extends QCCatalogue {
         //修正诊断
         DiagLabel revisedDiagLabel = beHospitalizedDoc.getRevisedDiagLabel();
         //补充诊断
-        DiagLabel suppleDiagLabel = beHospitalizedDoc.getSuppleDiagLabel();
+        //贾主任说补充诊断不用搞
+        //DiagLabel suppleDiagLabel = beHospitalizedDoc.getSuppleDiagLabel();
         if (initialDiagLabel != null) {
             List<Diag> diagLists = initialDiagLabel.getDiags();
             if (ListUtil.isNotEmpty(diagLists)) {
@@ -70,13 +71,13 @@ public class BEH03335 extends QCCatalogue {
                         diagList.add(diag.getHospitalDiagName()));
             }
         }
-        if (suppleDiagLabel != null) {
-            List<Diag> diagLists = suppleDiagLabel.getDiags();
-            if (ListUtil.isNotEmpty(diagLists)) {
-                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()) || diag.getHospitalDiagName().matches(rex))).forEach(diag ->
-                        diagList.add(diag.getHospitalDiagName()));
-            }
-        }
+//        if (suppleDiagLabel != null) {
+//            List<Diag> diagLists = suppleDiagLabel.getDiags();
+//            if (ListUtil.isNotEmpty(diagLists)) {
+//                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()) || diag.getHospitalDiagName().matches(rex))).forEach(diag ->
+//                        diagList.add(diag.getHospitalDiagName()));
+//            }
+//        }
 
         //如果疾病集合为空则直接返回
         if (ListUtil.isEmpty(diagList)) {

+ 9 - 8
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03336.java

@@ -56,7 +56,8 @@ public class BEH03336 extends QCCatalogue {
         //修正诊断
         DiagLabel revisedDiagLabel = beHospitalizedDoc.getRevisedDiagLabel();
         //补充诊断
-        DiagLabel suppleDiagLabel = beHospitalizedDoc.getSuppleDiagLabel();
+        //贾主任说补充诊断不用搞
+        //DiagLabel suppleDiagLabel = beHospitalizedDoc.getSuppleDiagLabel();
         if (initialDiagLabel != null) {
             List<Diag> diagLists = initialDiagLabel.getDiags();
             if (ListUtil.isNotEmpty(diagLists)) {
@@ -72,13 +73,13 @@ public class BEH03336 extends QCCatalogue {
                         diagList.add(diag.getHospitalDiagName()));
             }
         }
-        if (suppleDiagLabel != null) {
-            List<Diag> diagLists = suppleDiagLabel.getDiags();
-            if (ListUtil.isNotEmpty(diagLists)) {
-                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()) || diag.getHospitalDiagName().matches(rex))).forEach(diag ->
-                        diagList.add(diag.getHospitalDiagName()));
-            }
-        }
+//        if (suppleDiagLabel != null) {
+//            List<Diag> diagLists = suppleDiagLabel.getDiags();
+//            if (ListUtil.isNotEmpty(diagLists)) {
+//                diagLists.stream().filter(diag -> StringUtil.isNotEmpty(diag.getHospitalDiagName()) && (diagListWords.contains(diag.getHospitalDiagName()) || diag.getHospitalDiagName().matches(rex))).forEach(diag ->
+//                        diagList.add(diag.getHospitalDiagName()));
+//            }
+//        }
 
         //如果疾病集合为空则直接返回
         if (ListUtil.isEmpty(diagList)) {

+ 2 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON03305.java

@@ -85,6 +85,7 @@ public class CON03305 extends QCCatalogue {
             if(inputInfo.getBeHospitalizedDoc() != null) {
 
                 String b = inputInfo.getBeHospitalizedDoc().getStructureMap().get("初步诊断");
+                String c = inputInfo.getBeHospitalizedDoc().getStructureMap().get("补充诊断");
                 //遍历每个疾病并与入院记录中的各个字段相匹配
                 for (int i = 0; i < disease_name.size(); i++) {
                     String name = disease_name.get(i);
@@ -94,7 +95,7 @@ public class CON03305 extends QCCatalogue {
                     }
                 }
                 //匹配到胎膜早破正则,则提示,
-                if (getIsCompile(b)) {
+                if (getIsCompile(b)||getIsCompile(c)) {
                     status.set("-1");
                     return;
                 }

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

@@ -13,8 +13,8 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @ClassName : FIRC0085
- * @Description : 未归纳出病史特点
+ * @ClassName : FIRC03152
+ * @Description : 病例特点依据不充分
  * @Author : rengb
  * @Date: 2020-03-06 17:28
  */

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

@@ -68,7 +68,7 @@ public class FIRC03331 extends QCCatalogue {
             Date afterDate = StringUtil.parseDateTime(after);//日期转成Date格式
 
             c.setTime(lastMPDate);
-            c.add(Calendar.DATE, 281);//给末次月经时间加281天
+            c.add(Calendar.DATE, 285);//给末次月经时间加281天
             String before = sdf.format(c.getTime());
             Date beforeDate = StringUtil.parseDateTime(before);
 

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

@@ -123,6 +123,10 @@ public class BEH0011 extends QCCatalogue {
         int matchSum = 0;
         ModelAI modelAI = new ModelAI();
         for (String presentPastDiag : presentPastDiags) {
+            if ("高血压".equals(presentPastDiag) || "糖尿病".equals(presentPastDiag)) {
+                matchSum++;
+                continue;
+            }
             JSONArray jsonArray = modelAI.loadChiefPresentSimilarAI(presentPastDiag, initDiags, false
                     , "diagnose", chiefPresentSimilarityServiceClient);
             if (jsonArray.size() == 2) {

+ 8 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0025.java

@@ -64,7 +64,10 @@ public class BEH0025 extends QCCatalogue {
         String pastLabelText = pastLabel.getText();
         if (pastLabelText.contains("手术") || pastLabelText.contains("详见原病历")
                 || pastLabelText.contains("体外碎石") || pastLabelText.contains("术后")
-                || pastLabelText.matches(".*行.*术.*")) {
+                || pastLabelText.matches(".*行.*术.*")
+                || pastLabelText.contains("孕期")
+                || pastLabelText.contains("产期")
+                || pastLabelText.contains("待产")) {
             status.set("0");
         }
         //现病史里出现手术记录也不报
@@ -72,7 +75,10 @@ public class BEH0025 extends QCCatalogue {
         String presentText=presentLabel.getText();
         if(presentText.contains("手术") || presentText.contains("详见原病历")
                 || presentText.contains("体外碎石") || presentText.contains("术后")
-                || presentText.matches(".*行.*术.*")){
+                || presentText.matches(".*行.*术.*")
+                || pastLabelText.contains("孕期")
+                || pastLabelText.contains("产期")
+                || pastLabelText.contains("待产")){
             status.set("0");
         }
     }

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/behospitalized/BEH0028.java

@@ -33,7 +33,7 @@ public class BEH0028 extends QCCatalogue {
             return;
         }
         String past = behStructure.get("既往史");
-        if (StringUtil.isNotBlank(past) && past.contains("")) {
+        if (StringUtil.isNotBlank(past) && past.contains("血")) {
             status.set("0");
             return;
         }
@@ -44,7 +44,7 @@ public class BEH0028 extends QCCatalogue {
             return;
         }
         String pastText = pastLabel.getText();
-        if (pastText.contains("血") || pastText.contains("详见原病历")) {
+        if (pastText.contains("血") || pastText.contains("详见原病历")) {
             status.set("0");
             return;
         }

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

@@ -32,6 +32,9 @@ public class BEH0075 extends QCCatalogue {
             if (StringUtil.isNotBlank(familyText) && familyText.contains("类似疾病")) {
                 return;
             }
+            if(familyText.contains("乳腺癌") || familyText.contains("乳腺")){
+                return;
+            }
             boolean findSimilarDiag = false;
             for (Family family : families) {
                 if (family.getSimilarDiag() != null && StringUtil.isNotBlank(family.getSimilarDiag().getName())) {

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

@@ -33,7 +33,12 @@ public class BEH02903 extends QCCatalogue {
             return;
         }
 
-        if (StringUtil.isNotBlank(pacsText) && (pacsText.contains("暂缺") || pacsText.contains("病理") || pacsText.contains("暂无"))) {
+        if (StringUtil.isNotBlank(pacsText) && (pacsText.contains("暂缺") || pacsText.contains("病理") || pacsText.contains("暂无")) || pacsText.contains("无")) {
+            status.set("0");
+            return;
+        }
+        // 辅助检查未注明时间规则优化
+        if(StringUtil.isNotBlank(pacsText) && (pacsText.contains("20"))){
             status.set("0");
             return;
         }

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

@@ -31,7 +31,9 @@ public class BEH02966 extends QCCatalogue {
         if (medicalRecordInfoDoc != null && medicalRecordInfoDoc.getStructureMap() != null) {
             //科室
             String behDeptName = medicalRecordInfoDoc.getStructureMap().get("behDeptName");
-            if (StringUtil.isNotBlank(behDeptName) && (behDeptName.contains("新生儿科") || behDeptName.contains("产科"))) {
+            if (StringUtil.isNotBlank(behDeptName) && (behDeptName.contains("小儿外科")
+                    ||behDeptName.contains("妇科") ||behDeptName.contains("新生儿重症监护室")
+                    ||behDeptName.contains("新生儿科") || behDeptName.contains("产科"))) {
                 return;
             }
         }

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

@@ -38,7 +38,12 @@ public class BEH0372 extends QCCatalogue {
             return;
         }
 
-        if (bhbasicInfoStatus.equals("未婚") && basicInfoStatus.contains("未婚")) {
+        if(bhbasicInfoStatus.contains("10") || bhbasicInfoStatus.contains("30")){
+            status.set("0");
+            return;
+        }
+
+        if (bhbasicInfoStatus.equals("未婚") && basicInfoStatus.contains("未")) {
             status.set("0");
             return;
         }
@@ -53,13 +58,14 @@ public class BEH0372 extends QCCatalogue {
             return;
         }
 
-        if ((bhbasicInfoStatus.equals("离婚") || bhbasicInfoStatus.equals("离异")) &&
-                (basicInfoStatus.contains("离异") || bhbasicInfoStatus.equals("离婚"))) {
+        if ((bhbasicInfoStatus.equals("离婚") || bhbasicInfoStatus.equals("离异") || bhbasicInfoStatus.equals("40")) &&
+                (basicInfoStatus.contains("离异") || basicInfoStatus.equals("离婚"))) {
             status.set("0");
             return;
         }
 
-        if (bhbasicInfoStatus.equals("已婚") && basicInfoStatus.contains("结婚")) {
+        if ((bhbasicInfoStatus.equals("已婚") || bhbasicInfoStatus.equals("20") || bhbasicInfoStatus.equals("再婚"))
+                && basicInfoStatus.contains("结婚")) {
             status.set("0");
             return;
         }

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

@@ -6,6 +6,7 @@ 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.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
@@ -24,15 +25,15 @@ import java.util.Map;
 public class FIRC0093 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();//病案首页
         FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc != null && beHospitalizedDoc != null) {
+        if (firstCourseRecordDoc != null && firstPageRecordDoc != null) {
             Map<String, String> courseRecordDocStructureMap = firstCourseRecordDoc.getStructureMap();
-            Map<String, String> beHospitalizedDocStructureMap = beHospitalizedDoc.getStructureMap();
-            if (courseRecordDocStructureMap != null && beHospitalizedDocStructureMap != null) {
+            Map<String, String> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureMap();
+            if (courseRecordDocStructureMap != null && firstPageRecordDocStructureMap != null) {
                 String couDate = courseRecordDocStructureMap.get("病历日期");
                 String couBeDate = courseRecordDocStructureMap.get("入院日期");
-                String beDate = beHospitalizedDocStructureMap.get("入院日期");
+                String beDate = firstPageRecordDocStructureMap.get("入院时间");
                 if (StringUtils.isNotEmpty(couDate)) {
                     Date date_out = StringUtil.parseDateTime(couDate);
                     Date date_in = null;
@@ -54,10 +55,10 @@ public class FIRC0093 extends QCCatalogue {
                 }
             }
         } else {
-            if (beHospitalizedDoc != null) {
-                Map<String, String> beHospitalizedDocStructureMap = beHospitalizedDoc.getStructureMap();
-                if (beHospitalizedDocStructureMap != null) {
-                    String beDate = beHospitalizedDocStructureMap.get("入院日期");
+            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);
                         Date date_out = new Date();

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

@@ -111,6 +111,10 @@ public class FIRC0095 extends QCCatalogue {
         int matchSum = 0;
         ModelAI modelAI = new ModelAI();
         for (String presentPastDiag : presentPastDiags) {
+            if ("高血压".equals(presentPastDiag) || "糖尿病".equals(presentPastDiag)) {
+                matchSum++;
+                continue;
+            }
             JSONArray jsonArray = modelAI.loadChiefPresentSimilarAI(presentPastDiag, initDiags, false
                     , "diagnose", chiefPresentSimilarityServiceClient);
             if (jsonArray.size() == 2) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP0192.java

@@ -20,7 +20,7 @@ import java.util.Map;
 
 /**
  * @ClassName : FIRP0192
- * @Description : 主要手术及操作名称与病程记录不一致
+ * @Description : 首页手术名称与手术记录不一致
  * @Author : 胡敬
  * @Date: 2020-03-16 20:28
  */

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

@@ -22,6 +22,10 @@ public class FIRP0205 extends QCCatalogue {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String dischargeTime = firstpageStructureMap.get(Content.nation);
+            //要把外国人的逻辑更新上去,如果不是中国国籍就不触发此规则
+            if (!firstpageStructureMap.get("国籍").equals("中国")){
+                return;
+            }
             if (CatalogueUtil.isEmpty(dischargeTime)) {
                 status.set("-1");
                 Map<String, Object> structureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();

+ 9 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP02905.java

@@ -5,6 +5,7 @@ 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;
@@ -18,20 +19,21 @@ import java.util.Map;
 @Component
 public class FIRP02905 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
         if (inputInfo.getFirstPageRecordDoc() == null) {
-            status.set("0");
             return;
         }
         if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            String name = firstpageStructureMap.get(Content.receivingOrganization);
-            if (!CatalogueUtil.isEmpty(name)) {
-                status.set("0");
+            String receivingOrganization = firstpageStructureMap.get(Content.receivingOrganization); //接收机构名称
+            String outWay = firstpageStructureMap.get(Content.outWay); //离院方式
+            if (StringUtil.isNotBlank(outWay) && outWay.equals("医嘱转院") && StringUtil.isBlank(receivingOrganization)) {
+                status.set("-1");
+                Map<String, Object> structureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+                String xmlId = CatalogueUtil.getXmlId(structureExtMap, Content.receivingOrganization);
+                id.set(xmlId);
                 return;
             }
-            Map<String, Object> structureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
-            String xmlId = CatalogueUtil.getXmlId(structureExtMap, Content.receivingOrganization);
-            id.set(xmlId);
         }
     }
 }

+ 78 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP03110.java

@@ -0,0 +1,78 @@
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.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.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+import com.lantone.qc.pub.util.DateUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03110
+ * @Description : 病案首页未在患者出院院24小时内完成
+ * @Author : 汪浩楠
+ * @Date: 2025-01-20 15:30
+ */
+@Component
+public class FIRP03110 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstPageRecordDoc == null) {
+            status.set("0");
+            return;
+        }
+        if (inputInfo.getDeathRecordDoc() != null || inputInfo.getDeathCaseDiscussDoc() != null) {
+            status.set("0");
+            return;
+        }
+        String timeCy = null;
+        if (inputInfo.getMedicalRecordInfoDoc() != null) {
+            Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
+            timeCy = medicalRecordInfoStructureMap.get("leaveHospitalDate");
+        }
+        String key = getKeyByHospitalId();
+        String timeQm = firstPageRecordDoc.getStructureMap().get(key);
+        if (StringUtil.isNotBlank(timeQm) && DateUtil.parseDate(timeQm) != null && StringUtil.isNotBlank(timeCy)) {
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(timeCy),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))) {//如果出院未超过24小时,规则不判断
+                status.set("0");
+                return;
+            }
+            Date timeQmDate = StringUtil.parseDateTime(timeQm);
+            Date timeCyDate = StringUtil.parseDateTime(timeCy);
+            if (!CatalogueUtil.compareTime(timeCyDate, timeQmDate, 24 * 60L)) {
+                status.set("0");
+            }
+        } else {
+            if (StringUtil.isNotEmpty(timeCy)) {
+                if (!CatalogueUtil.compareTime(
+                        StringUtil.parseDateTime(timeCy),
+                        StringUtil.parseDateTime(DateUtil.nowString()),
+                        Long.valueOf(24 * 60))) {//如果出院未超过24小时,规则不判断
+                    status.set("0");
+                    return;
+                }
+            }
+            status.set("0");
+            return;
+        }
+    }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "创建时间";
+        }
+    }
+}

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/preoperativediscussion/PRE0330.java

@@ -36,7 +36,7 @@ public class PRE0330 extends QCCatalogue {
             if (!map.containsKey("拟施手术方式名称及可能的变更与禁忌症") && !map.containsKey("拟施手术名称和方式及可能的变更")) {
                 continue;
             }
-            if (StringUtil.isEmpty(map.get("拟施手术方式名称及可能的变更与禁忌症")) && StringUtil.isEmpty(map.get("拟施手术名称和方式及可能的变更"))) {
+            if (StringUtil.isEmpty(map.get("拟施手术方式名称及可能的变更与禁忌症")) || StringUtil.isEmpty(map.get("拟施手术名称和方式及可能的变更"))) {
                 status.set("-1");
             }
         }

+ 5 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/threelevelward/THR0125.java

@@ -20,7 +20,7 @@ import java.util.Map;
 
 /**
  * @ClassName : THR0125
- * @Description : 副主任医师/主任医师查房首次查房记录未在                       患者入院72h内完成
+ * @Description : 副主任医师/主任医师查房首次查房记录未在患者入院72h内完成
  * @Author : 胡敬
  * @Date: 2020-03-19 13:51
  */
@@ -110,6 +110,10 @@ public class THR0125 extends QCCatalogue {
                 if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), 72 * 60L)) {
                     String makeTitle = structureMap.get("查房标题");
                     String pathography = structureMap.get("病情记录");
+                    if ("主任".equals(pathography)){
+                        status.set("0");
+                        return;
+                    }
                     //判断标题
                     visitingPhysicianHouse(operatorName, makeTitle);
                     //判断病情记录

+ 8 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/threelevelward/THR0126.java

@@ -135,12 +135,14 @@ public class THR0126 extends QCCatalogue {
             Map<String, String> structureMap = threeLevelWard.getStructureMap();
             String wardDateStr = structureMap.get("查房日期");
             if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(wardDateStr), 48 * 60L)) {
-                String makeTitle = structureMap.get("查房标题");
-                String pathography = structureMap.get("病情记录");
-                //判断标题
-                visitingPhysicianHouse(operatorName, makeTitle);
-                //判断病情记录
-                visitingPhysicianHouse(operatorName, pathography);
+                status.set("0");
+                return;
+//                String makeTitle = structureMap.get("查房标题");
+//                String pathography = structureMap.get("病情记录");
+//                //判断标题
+//                visitingPhysicianHouse(operatorName, makeTitle);
+//                //判断病情记录
+//                visitingPhysicianHouse(operatorName, pathography);
             }
         }
     }

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03290.java

@@ -108,6 +108,12 @@ public class LEA03290 extends QCCatalogue {
             }
             String leaveDiag = leaveHospitalDoc.getStructureMap().get("出院诊断");
             for (String diagCollect : diagCollectList) {
+                leaveDiag = leaveDiag.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                diagCollect = diagCollect.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                if (getLikeRate(leaveDiag, diagCollect) || leaveDiag.contains(diagCollect)) {
+                    status.set("0");
+                    return;
+                }
                 String[] split = diagCollect.split(" ");
                 for (String diagCollectName : split) {
                     if (!diagCollectName.matches(rex)) {

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03293.java

@@ -109,6 +109,12 @@ public class LEA03293 extends QCCatalogue {
             //获取入院诊断
             String beHospitalDiag = leaveHospitalDoc.getStructureMap().get("入院诊断");
             for (String diagCollect : diagCollectList) {
+                beHospitalDiag = beHospitalDiag.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                diagCollect = diagCollect.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                if (getLikeRate(beHospitalDiag, diagCollect) || beHospitalDiag.contains(diagCollect)) {
+                    status.set("0");
+                    return;
+                }
                 String[] split = diagCollect.split(" ");
                 for (String diagCollectName : split) {
                     if (!diagCollectName.matches(rex)) {

+ 25 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03323.java

@@ -113,13 +113,35 @@ public class LEA03323 extends QCCatalogue {
                 status.set("0");
                 return;
             }
+            String leaveDiag = leaveHospitalDoc.getStructureMap().get("出院诊断");
+            if(StringUtil.isEmpty(leaveDiag)){
+                status.set("0");
+                return;
+            }
+            for (String diagCollect : diagCollectList) {
+                if (getLikeRate(leaveDiag, diagCollect) || leaveDiag.contains(diagCollect)) {
+                    status.set("0");
+                    return;
+                }
+                String[] split = diagCollect.split(" ");
+                for (String diagCollectName : split) {
+                    if (!diagCollectName.matches(rex)) {
+                        continue;
+                    }
+                    if (getLikeRate(leaveDiag, diagCollectName) || leaveDiag.contains(diagCollectName)) {
+                        status.set("0");
+                        return;
+                    }
+                }
+            }
+
             //获取入院诊断
-            DiagLabel beHospitalizedLabel = leaveHospitalDoc.getBeHospitalizedLabel();
-            if (beHospitalizedLabel == null) {
+            DiagLabel leaveDiagLabel = leaveHospitalDoc.getLeaveDiagLabel();
+            if (leaveDiagLabel == null) {
                 status.set("0");
                 return;
             }
-            List<Diag> diags = beHospitalizedLabel.getDiags();
+            List<Diag> diags = leaveDiagLabel.getDiags();
             if (ListUtil.isEmpty(diags)) {
                 status.set("0");
                 return;

+ 14 - 16
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA03328.java

@@ -89,23 +89,21 @@ public class LEA03328 extends QCCatalogue {
             if (leaveDiagLabel == null) {
                 return;
             }
-            List<Diag> diags = leaveDiagLabel.getDiags();
-            if (ListUtil.isEmpty(diags)) {
-                return;
-            }
-            for (Diag diag : diags) {
-                String diagName = diag.getHospitalDiagName();
-                for (String diagCollect : diagCollectList) {
-                    String[] split = diagCollect.split(" ");
-                    for (String diagCollectName : split) {
-                        if (!diagCollectName.matches(rex)) {
-                            continue;
+            String leaveDiag = leaveHospitalDoc.getStructureMap().get("出院诊断");
+            for (String diagCollect : diagCollectList) {
+                String[] split = diagCollect.split(" ");
+                for (String diagCollectName : split) {
+                    if (!diagCollectName.matches(rex)) {
+                        continue;
+                    }
+                    if (StringUtil.isNotEmpty(leaveDiag) && StringUtil.isNotEmpty(diagCollectName)) {
+                        if (leaveDiag.contains("会阴裂伤") && diagCollectName.contains("会阴裂伤")){
+                            status.set("0");
+                            return;
                         }
-                        if (StringUtil.isNotEmpty(diagName) && StringUtil.isNotEmpty(diagCollectName)) {
-                            if (getLikeRate(diagName, diagCollectName)) {
-                                status.set("0");
-                                return;
-                            }
+                        if (getLikeRate(leaveDiag, diagCollectName) || leaveDiag.contains(diagCollectName)) {
+                            status.set("0");
+                            return;
                         }
                     }
                 }

+ 11 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03313.java

@@ -122,6 +122,17 @@ public class OPE03313 extends QCCatalogue {
                     continue;
                 }
                 for (String diagCollect : diagCollectList) {
+                    diagCollect = diagCollect.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    operationDiagZ = operationDiagZ.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    operationDiagO = operationDiagO.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    if (getLikeRate(operationDiagZ, diagCollect) || operationDiagZ.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
+                    if (getLikeRate(operationDiagO, diagCollect) || operationDiagO.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
                     String[] split = diagCollect.split(" ");
                     for (String diagCollectName : split) {
                         if (!diagCollectName.matches(rex)) {

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03315.java

@@ -123,6 +123,12 @@ public class OPE03315 extends QCCatalogue {
                     continue;
                 }
                 for (String diagCollectName : diagCollectList) {
+                    operationDiagO = operationDiagO.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    diagCollectName = diagCollectName.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    if (getLikeRate(operationDiagO, diagCollectName) || operationDiagO.contains(diagCollectName)) {
+                        status.set("0");
+                        return;
+                    }
                     String[] split = diagCollectName.split(" ");
                     for (String diagCollectNames : split) {
                         if (!diagCollectNames.matches(rex)) {

+ 11 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03316.java

@@ -121,6 +121,17 @@ public class OPE03316 extends QCCatalogue {
                     continue;
                 }
                 for (String diagCollect : diagCollectList) {
+                    diagCollect = diagCollect.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    operationDiagZ = operationDiagZ.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    operationDiagO = operationDiagO.replace("妊娠合并子宫疤痕","妊娠合并子宫瘢痕");
+                    if (getLikeRate(operationDiagZ, diagCollect) || operationDiagZ.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
+                    if (getLikeRate(operationDiagO, diagCollect) || operationDiagO.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
                     String[] split = diagCollect.split(" ");
                     for (String diagCollectName : split) {
                         if (!diagCollectName.matches(rex)) {

+ 8 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03319.java

@@ -125,6 +125,14 @@ public class OPE03319 extends QCCatalogue {
                     continue;
                 }
                 for (String diagCollect : diagCollectList) {
+                    if (getLikeRate(operationDiagZ, diagCollect) || operationDiagZ.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
+                    if (getLikeRate(operationDiagO, diagCollect) || operationDiagO.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
                     String[] split = diagCollect.split(" ");
                     for (String diagCollectName : split) {
                         if (!diagCollectName.matches(rex)) {

+ 8 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03321.java

@@ -124,17 +124,19 @@ public class OPE03321 extends QCCatalogue {
                     continue;
                 }
                 for (String diagCollect : diagCollectList) {
+                    if (getLikeRate(operationDiagZ, diagCollect) || operationDiagZ.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
                     String[] split = diagCollect.split(" ");
                     for (String diagCollectName : split) {
                         if (!diagCollectName.matches(rex)) {
                             continue;
                         }
-                        if ((StringUtil.isNotEmpty(operationDiagZ)) && StringUtil.isNotEmpty(diagCollectName)) {
-                            if (StringUtil.isNotEmpty(operationDiagZ)) {
-                                if (getLikeRate(operationDiagZ, diagCollectName) || operationDiagZ.contains(diagCollectName)) {
-                                    status.set("0");
-                                    return;
-                                }
+                        if (StringUtil.isNotEmpty(operationDiagZ)) {
+                            if (getLikeRate(operationDiagZ, diagCollectName) || operationDiagZ.contains(diagCollectName)) {
+                                status.set("0");
+                                return;
                             }
                         }
                     }

+ 8 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03322.java

@@ -126,6 +126,14 @@ public class OPE03322 extends QCCatalogue {
                     continue;
                 }
                 for (String diagCollect : diagCollectList) {
+                    if (getLikeRate(operationDiagZ, diagCollect) || operationDiagZ.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
+                    if (getLikeRate(operationDiagO, diagCollect) || operationDiagO.contains(diagCollect)) {
+                        status.set("0");
+                        return;
+                    }
                     String[] split = diagCollect.split(" ");
                     for (String diagCollectName : split) {
                         if (!diagCollectName.matches(rex)) {

+ 28 - 21
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03325.java

@@ -47,6 +47,27 @@ public class THR03325 extends QCCatalogue {
         if (beHospitalizedDoc == null || threeLevelWardDocs == null) {
             return;
         }
+        //获取入院记录婚育史中孕产次
+        String PPT = "";
+        //获取婚育史
+        Map<String, String> MaritalStructureMap = beHospitalizedDoc.getStructureMap();
+        if (MaritalStructureMap == null) {
+            return;
+        }
+
+        String marital = MaritalStructureMap.get("婚育史");
+        if (StringUtil.isBlank(marital)) {
+            return;
+        }
+        Pattern p = Pattern.compile("([0-9])-([0-9])-([0-9])-([0-9])");
+        Matcher matcherMarital = p.matcher(marital);
+        if (matcherMarital.find()) {
+            PPT = matcherMarital.group();
+        }
+        if (StringUtil.isEmpty(PPT)) {
+            return;
+        }
+
         //创建存储能匹配疾病的集合
         List<String> diagList = new ArrayList<>();
         //存放孕次A
@@ -59,6 +80,12 @@ public class THR03325 extends QCCatalogue {
         for (ThreeLevelWardDoc threeLevelWard : allDoctorWradDocs) {
             Map<String, String> structureMap = threeLevelWard.getStructureMap();
             String record = structureMap.get("病情记录");
+            if (StringUtil.isEmpty(record)) {
+                continue;
+            }
+            if (record.contains(PPT)) {
+                return;
+            }
             Pattern pattern = Pattern.compile(".*[Gg孕][^1-9]?([1-9])[^1-9]?[Pp产][^1-9]?([0-9])[^1-9].*");
             Matcher matcher = pattern.matcher(record);
             if (matcher.find()) {
@@ -81,27 +108,6 @@ public class THR03325 extends QCCatalogue {
             return;
         }
 
-        //获取入院记录婚育史中孕产次
-        String PPT = "";
-        //获取婚育史
-        MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
-        if (maritalLabel == null) {
-            return;
-        }
-
-        Fertility fertility = maritalLabel.getFertility();
-        if (fertility == null) {
-            return;
-        }
-        String name = fertility.getName();
-        Pattern p = Pattern.compile("([0-9])-([0-9])-([0-9])-([0-9])");
-        Matcher matcher = p.matcher(name);
-        if (matcher.find()) {
-            PPT = matcher.group();
-        }
-        if (StringUtil.isEmpty(PPT)) {
-            return;
-        }
         //[孕次A】==a+b+c+1,且【产次B】==a+b+c
         String[] split = PPT.split("-");
         try {
@@ -120,4 +126,5 @@ public class THR03325 extends QCCatalogue {
     private int strConvertInt(String str) {
         return Integer.parseInt(str);
     }
+
 }

+ 9 - 9
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/BeHospitalizedAI.java

@@ -84,21 +84,21 @@ public class BeHospitalizedAI extends ModelAI {
             /* 月经史文本需从个人史截取一部分文本拼接 */
             String concatMenstrual = "";
             /* 个人史 */
-            if (beHospitalizedDoc.getPersonalLabel() != null && beHospitalizedDoc.getPersonalLabel().isCrfLabel()) {
-                String personalText = beHospitalizedDoc.getPersonalLabel().getText();
-                putContent(crfContent, medicalTextType.get(2), personalText, Content.personal);
-                concatMenstrual = getConcatMenstrual(concatMenstrual, personalText);
-            }
+//            if (beHospitalizedDoc.getPersonalLabel() != null && beHospitalizedDoc.getPersonalLabel().isCrfLabel()) {
+//                String personalText = beHospitalizedDoc.getPersonalLabel().getText();
+//                putContent(crfContent, medicalTextType.get(2), personalText, Content.personal);
+//                concatMenstrual = getConcatMenstrual(concatMenstrual, personalText);
+//            }
             /* 婚育史 */
             if (beHospitalizedDoc.getMaritalLabel() != null && beHospitalizedDoc.getMaritalLabel().isCrfLabel()) {
                 String maritalText = beHospitalizedDoc.getMaritalLabel().getText();
                 putContent(crfContent, medicalTextType.get(2), maritalText, Content.marriage);
             }
             /* 月经史 */
-            if (beHospitalizedDoc.getMenstrualLabel() != null && beHospitalizedDoc.getMenstrualLabel().isCrfLabel()) {
-                String menstrualText = beHospitalizedDoc.getMenstrualLabel().getText();
-                putContent(crfContent, medicalTextType.get(2), concatMenstrual, menstrualText, Content.menses);
-            }
+//            if (beHospitalizedDoc.getMenstrualLabel() != null && beHospitalizedDoc.getMenstrualLabel().isCrfLabel()) {
+//                String menstrualText = beHospitalizedDoc.getMenstrualLabel().getText();
+//                putContent(crfContent, medicalTextType.get(2), concatMenstrual, menstrualText, Content.menses);
+//            }
             /* 家族史 */
             if (beHospitalizedDoc.getFamilyLabel() != null && beHospitalizedDoc.getFamilyLabel().isCrfLabel()) {
                 String familyText = beHospitalizedDoc.getFamilyLabel().getText();

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

@@ -429,7 +429,7 @@ public class Content {
     );
     //病例特点体格检查
     public static List<String> physicalCheckList = Arrays.asList(
-            "专科检查", "查体", "体温", "脉搏", "呼吸", "血压"
+            "专科检查", "查体", "体温", "脉搏", "呼吸", "血压", "体格检查", "辅助检查"
     );
     //病例特点体格检查
     public static List<String> physicalCheckBTList = Arrays.asList(

+ 7 - 1
trans/src/main/java/com/lantone/qc/trans/yiwu/YiWuBeHospitalizedDocTrans.java

@@ -127,6 +127,13 @@ public class YiWuBeHospitalizedDocTrans extends ModelDocTrans {
                 structureMap.put("民族", value);
             }
         }
+        //处理婚姻状况包含其他数据的情况
+        if(structureMap.containsKey("婚姻状况")){
+            String value= structureMap.get("婚姻状况");
+            if(StringUtil.isNotEmpty(value) && value.contains(" ")){
+                structureMap.put("婚姻状况", value.split(" ")[0]);
+            }
+        }
         //如果有入院时间,优先使用
         addKeyMapping(structureMap, "入院时间", "入病房时间");
         //如果有职业,优先使用
@@ -207,7 +214,6 @@ public class YiWuBeHospitalizedDocTrans extends ModelDocTrans {
             "医师签字时间=初步诊断日期",
             "医师签名时间=初步诊断日期",
             "入院诊断编码=初步诊断",
-            "婚姻=婚姻状况",
             "病史提供者=病史陈述者",
             "家庭地址=户口地址",
             "患者手机号码=联系电话",