Explorar o código

医嘱有抗生素使用病程无记录修改逻辑

huj %!s(int64=5) %!d(string=hai) anos
pai
achega
c68bcf9a59

+ 18 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02985.java

@@ -110,7 +110,7 @@ public class THR02985 extends QCCatalogue {
                 OperationRecordDoc operationRecordDoc = oDoc.getOperationRecordDoc();
                 if (operationRecordDoc != null) {
                     operContent = operationRecordDoc.getStructureMap().get("手术经过");
-                    String operDateStr = operationRecordDoc.getStructureMap().get("手术日期");
+                    String operDateStr = operationRecordDoc.getStructureMap().get("病历日期");
                     if (StringUtil.isNotBlank(operDateStr)) {
                         operDate = StringUtil.parseDateTime(operDateStr);
                     }
@@ -120,8 +120,9 @@ public class THR02985 extends QCCatalogue {
                 }
                 OperationDiscussionDoc operationDiscussionDoc = oDoc.getOperationDiscussionDoc();
                 if (operationDiscussionDoc != null) {
-                    afterOperContent = operationDiscussionDoc.getStructureMap().get("手术经过");
-                    String operDateStr = operationDiscussionDoc.getStructureMap().get("手术日期");
+                    afterOperContent = CatalogueUtil.structureMapJoin(operationDiscussionDoc.getStructureMap(),
+                            Lists.newArrayList("手术经过", "治疗计划和措施"));
+                    String operDateStr = operationDiscussionDoc.getStructureMap().get("记录日期");
                     if (StringUtil.isNotBlank(operDateStr)) {
                         afterOperDate = StringUtil.parseDateTime(operDateStr);
                     }
@@ -136,6 +137,7 @@ public class THR02985 extends QCCatalogue {
         for (Map.Entry<Date, String> doctorAdviceDrug : doctorAdviceDrugMap.entrySet()) {
             Date doctorAdviceDate = doctorAdviceDrug.getKey();
             String drugs = doctorAdviceDrug.getValue();
+            drugs = removeBracket(drugs);
             Set<String> splitDrugs = CatalogueUtil.getRegexWords(drugs, "[((\\[][^\\[\\]()()]+[\\]))]")
                     .stream().filter(x -> !x.equals("合资") && !x.equals("进口") && !x.equals("国产")).collect(Collectors.toSet());
             String missDrug = "";
@@ -284,4 +286,17 @@ public class THR02985 extends QCCatalogue {
         }
         return drugStandardWord1.equals(drugStandardWord2);
     }
+
+    /**
+     * 如果文本包含中括号([海正]美罗培南针),取括号之后的文字
+     *
+     * @param str
+     * @return
+     */
+    private String removeBracket(String str) {
+        if (str.contains("]") && str.indexOf("]") != str.length() - 1) {
+            return str.substring(str.indexOf("]") + 1);
+        }
+        return str;
+    }
 }