Bläddra i källkod

Merge branch 'shaoyf/dev' into shaoyf/master

rengb 5 år sedan
förälder
incheckning
de8309242b

+ 9 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0019.java

@@ -42,6 +42,15 @@ public class BEH0019 extends QCCatalogue {
                         status.set("-1");
                         info.set(clinicalName);
                     }
+
+                    if (clinicals.size() > 1) {
+                        String secondeName = clinicals.get(1).getName();
+                        String presentText = inputInfo.getBeHospitalizedDoc().getPresentLabel().getText();
+                        String subTxt = presentText.substring(presentText.indexOf(clinicalName), presentText.indexOf(secondeName));
+                        if (subTxt.indexOf("忍") > -1) {
+                            status.set("0");
+                        }
+                    }
                 }
             }
         }

+ 9 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0020.java

@@ -42,6 +42,15 @@ public class BEH0020 extends QCCatalogue {
                         status.set("-1");
                         info.set(clinicalName);
                     }
+
+                    if (clinicals.size() > 1) {
+                        String secondeName = clinicals.get(1).getName();
+                        String presentText = inputInfo.getBeHospitalizedDoc().getPresentLabel().getText();
+                        String subTxt = presentText.substring(presentText.indexOf(clinicalName), presentText.indexOf(secondeName));
+                        if (subTxt.indexOf("好转") > -1) {
+                            status.set("0");
+                        }
+                    }
                 }
             }
         }

+ 52 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03060.java

@@ -0,0 +1,52 @@
+package com.lantone.qc.kernel.catalogue.behospitalized;
+
+import com.google.common.collect.Lists;
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+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;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName : BEH03060
+ * @Description : 诊断与体征描述相互矛盾
+ * @Author : 胡敬
+ * @Date: 2020-08-10 19:00
+ */
+@Component
+public class BEH03060 extends QCCatalogue {
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            return;
+        }
+        DiagLabel initialDiagLabel = inputInfo.getBeHospitalizedDoc().getInitialDiagLabel();
+        if (initialDiagLabel == null || StringUtil.isBlank(initialDiagLabel.getText())) {
+            return;
+        }
+
+        List<String> diags = Lists.newArrayList(initialDiagLabel.getText().split("\n"));
+        List<String> matchDiag = diags.stream().filter(x -> x.contains("房扑") || x.contains("房颤")).collect(Collectors.toList());
+        if (matchDiag.size() > 0) {
+            String diag = matchDiag.get(0);//取第一个包含房扑或房颤的疾病名称
+            Map<String, String> behStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+            String heartRate = behStructureMap.get("心律");
+            if (StringUtil.isNotBlank(heartRate) && "齐".equals(heartRate)) {
+                status.set("-1");
+                info.set(diag + "><心律齐");
+                return;
+            }
+            String specialCheck = behStructureMap.get("专科体格检查");
+            if (StringUtil.isNotBlank(specialCheck) && specialCheck.contains("律齐")) {
+                status.set("-1");
+                info.set(diag + "><心律齐");
+            }
+        }
+    }
+}

+ 47 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03061.java

@@ -0,0 +1,47 @@
+package com.lantone.qc.kernel.catalogue.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;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : BEH03061
+ * @Description : 体征前后描述矛盾
+ * @Author : 胡敬
+ * @Date: 2020-08-11 15:28
+ */
+@Component
+public class BEH03061 extends QCCatalogue {
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            return;
+        }
+        Map<String, String> behStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+        String heartRate = behStructureMap.get("心律");
+        String specialCheck = behStructureMap.get("专科体格检查");
+        if (StringUtil.isNotBlank(heartRate) && StringUtil.isNotBlank(specialCheck)) {
+            Pattern p = Pattern.compile("心律.*齐");
+            Matcher m = p.matcher(specialCheck);
+            if (m.find()) {
+                String matchVital = m.group(0);
+                if (StringUtil.isNotBlank(matchVital)) {
+                    if ("齐".equals(heartRate) && matchVital.contains("不")) {
+                        status.set("-1");
+                        info.set("心律齐><" + matchVital);
+                    } else if ("不齐".equals(heartRate) && !matchVital.contains("不")) {
+                        status.set("-1");
+                        info.set("心律不齐><" + matchVital);
+                    }
+                }
+            }
+        }
+    }
+}

+ 9 - 0
trans/src/main/java/com/lantone/qc/trans/shaoyf/ShaoyfBeHospitalizedDocTrans.java

@@ -104,6 +104,15 @@ public class ShaoyfBeHospitalizedDocTrans extends ModelDocTrans {
             "长期用药情况(包括可能成瘾的药物)=长期用药",
             "体温(口)=体温",
             "常规产前检查=产前检查",
+            "呼吸频率/节律=呼吸节律",
+            "肺下界(肩胛下)=肺下界",
+            "第I/II/III测量线上脾脏大小=脾脏大小",
+            "肌力(左上肢)=肌力左上肢",
+            "肌力(左下肢)=肌力左下肢",
+            "肌力(右上肢)=肌力右上肢",
+            "肌力(右下肢)=肌力右下肢",
+            "运动系统:步态=运动系统步态",
+            "运动系统:共济失调=运动系统共济失调",
             "复诊科室=科别"
     );