Browse Source

Merge remote-tracking branch 'origin/beilun/dev' into beilun/dev

zhangzw 4 years atrás
parent
commit
3428d2d099

+ 15 - 18
kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/firstpagerecord/FIRP0190.java

@@ -33,7 +33,6 @@ public class FIRP0190 extends QCCatalogue {
         if (CatalogueUtil.isEmpty(rhFactor)) {
             return;
         }
-//        rhFactor = "RH" + rhFactor;
         int matchSum = 0, noRhSum = 0;
         for (ClinicalBloodDoc clinicalBloodDoc : clinicalBloodDocList) {
             String bloodType = clinicalBloodDoc.getStructureMap().get("病情记录");
@@ -41,33 +40,31 @@ public class FIRP0190 extends QCCatalogue {
                 // 台州无“输注种类、血型、数量”,匹配“Rh血型”
                 bloodType = clinicalBloodDoc.getStructureMap().get("Rh血型");
             }
+            String rh = clinicalBloodDoc.getStructureMap().get("RH");
+            if (StringUtil.isBlank(rh)) {
+                continue;
+            }
+            if (StringUtil.isNotBlank(rh) && rh.contains(rhFactor)) {
+                continue;
+            }
+            if (rhFactor.contains("阴") && rh.contains("阳")) {
+                status.set("-1");
+                return;
+            }
+            if (rhFactor.contains("阳") && rh.contains("阴")) {
+                status.set("-1");
+                return;
+            }
             if (StringUtils.isEmpty(bloodType)) {
                 continue;
             }
             if (!bloodType.contains("阴") && !bloodType.contains("阳")) {
                 noRhSum++;
             }
-
-
-            bloodType = bloodType.toUpperCase();
-            if (bloodType.contains("RH")) {
-                if (rhFactor.contains("阴") && bloodType.contains("-")) {
-                    matchSum++;
-                }
-                if (rhFactor.contains("阳") && bloodType.contains("+")) {
-                    matchSum++;
-                }
-                if (bloodType.contains(rhFactor)) {
-                    matchSum++;
-                }
-            }
         }
         /* 如果所有输血记录都没有rh记录(阴、阳),则不报错 */
         if (noRhSum == clinicalBloodDocList.size()) {
             return;
         }
-        if (matchSum == 0) {
-            status.set("-1");
-        }
     }
 }

+ 15 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/leavehospital/LEA02987.java

@@ -77,7 +77,7 @@ public class LEA02987 extends QCCatalogue {
                     if (name.contains("(基)")) {
                         name = name.substring(0, name.indexOf("(基)"));
                     }
-                    name = name.replaceAll("[^\u4e00-\u9fa5]", "");
+                    name = removeBracket(name).replaceAll("[^\u4e00-\u9fa5]", "");
                     drugs.add(name);
                 }
             }
@@ -99,7 +99,7 @@ public class LEA02987 extends QCCatalogue {
                     || dischargeOrder.contains(drugStandardWord))) {
                 isFind = true;
             }
-            if (dischargeOrder.contains(drug)) {
+            if (dischargeOrder.replaceAll("[^\u4e00-\u9fa5]", "").contains(drug)) {
                 isFind = true;
             }
             String[] splits = drug.split(" ");
@@ -126,4 +126,17 @@ public class LEA02987 extends QCCatalogue {
         }
     }
 
+    /**
+     * 如果文本包含中括号([海正]美罗培南针),取括号之后的文字
+     *
+     * @param str
+     * @return
+     */
+    private String removeBracket(String str) {
+        if (str.contains("]") && str.indexOf("]") != str.length() - 1) {
+            return str.substring(str.indexOf("]") + 1);
+        }
+        return str;
+    }
+
 }