Pārlūkot izejas kodu

有创台州xml、北仑html操作解析有无记录不良反应

chengyao 3 gadi atpakaļ
vecāks
revīzija
c640057250

+ 1 - 5
trans/src/main/java/com/lantone/qc/trans/beilun/BeilunInvasiveOperationDocTrans.java

@@ -55,7 +55,6 @@ public class BeilunInvasiveOperationDocTrans extends ModelDocTrans {
                     BeiLunHtmlAnalysis beiLunHtmlAnalysis = new BeiLunInvasiveOperationHtmlAnalysis();
                     Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
                     if (MapUtils.isNotEmpty(sourceMap)) {
-                        structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
                         structureMap.put("记录编号", contentMap.get("recId").toString());
                         structureMap.put("标题", recTitle);
                         structureMap.put("病历号", contentMap.get("behospitalCode") == null ? null : contentMap.get("behospitalCode").toString());
@@ -72,8 +71,5 @@ public class BeilunInvasiveOperationDocTrans extends ModelDocTrans {
     }
 
 
-    private List<String> keyContrasts = Lists.newArrayList(
-            "操作简要经过(包括术中有无并发症及具体描述和处理)=操作步骤",
-            "术后注意事项=术后注意"
-    );
+
 }

+ 35 - 2
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunInvasiveOperationHtmlAnalysis.java

@@ -3,13 +3,17 @@ package com.lantone.qc.trans.beilun.util;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.lantone.qc.trans.comsis.CommonAnalysisUtil;
+import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @Description: 有创操作html解析
@@ -40,10 +44,14 @@ public class BeiLunInvasiveOperationHtmlAnalysis implements BeiLunHtmlAnalysis {
             Document doc = Jsoup.parse(html);
             String htmlContent = BeiLunHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), false);
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
-            String cases = getKeyCut(structureMap.get("术后注意事项"));
+            if (MapUtils.isNotEmpty(structureMap)) {
+                structureMap = OrdinaryAssistant.mapKeyContrast(structureMap, keyContrasts);
+            }
+            String cases = getKeyCut(structureMap.get("术后注意"));
             if(StringUtils.isNotBlank(cases)){
-                structureMap.put("术后注意事项",cases);
+                structureMap.put("术后注意",cases);
             }
+            structureMap = preSolve(htmlContent, structureMap);
             BeiLunHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -51,6 +59,31 @@ public class BeiLunInvasiveOperationHtmlAnalysis implements BeiLunHtmlAnalysis {
         return structureMap;
     }
 
+    private List<String> keyContrasts = Lists.newArrayList(
+            "操作简要经过(包括术中有无并发症及具体描述和处理)=操作步骤",
+            "术后注意事项=术后注意"
+    );
+
+    Map<String, String>preSolve(String content,Map<String, String>structureMap){
+        String rex = "[\\s\\S]*[(?=无)|(?=有)][^,;,;。]{0,3}(?=不适)[\\s\\S]*";
+        Pattern p = Pattern.compile(rex);
+        Matcher m = p.matcher(content);
+        String result = "";
+        while (m.find()) {
+            result = m.group().trim();
+        }
+        if(StringUtils.isNotBlank(result)){
+            structureMap.put("有无记录不良反应","true");
+        }else{
+            structureMap.put("有无记录不良反应","false");
+        }
+        if(structureMap.containsKey("术后注意") && structureMap.get("术后注意").matches(rex)){
+            structureMap.put("有无记录不良反应","false");
+}
+
+        return structureMap;
+    };
+
     String getKeyCut(String key){
         if(StringUtils.isBlank(key)){
             return key;

+ 5 - 1
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouInvasiveOperationDocTrans.java

@@ -49,7 +49,8 @@ public class TaiZhouInvasiveOperationDocTrans extends ModelDocTrans {
         return invasiveOperationDoc;
     }
     Map<String, String>preSolve(String content,Map<String, String>structureMap){
-            Pattern p = Pattern.compile("[\\s\\S]*[(?=无)|(?=有)][^,;,;。]{0,3}(?=不适)[\\s\\S]*");
+        String rex = "[\\s\\S]*[(?=无)|(?=有)][^,;,;。]{0,3}(?=不适)[\\s\\S]*";
+            Pattern p = Pattern.compile(rex);
             Matcher m = p.matcher(content);
             String result = "";
             while (m.find()) {
@@ -60,6 +61,9 @@ public class TaiZhouInvasiveOperationDocTrans extends ModelDocTrans {
       }else{
           structureMap.put("有无记录不良反应","false");
       }
+        if(structureMap.containsKey("术后注意") && structureMap.get("术后注意").matches(rex)){
+            structureMap.put("有无记录不良反应","false");
+        }
 
         if(structureMap.containsKey("术前准备") && null != structureMap.get("术前准备")){
             String str = structureMap.get("术前准备");