Procházet zdrojové kódy

北仑会诊记录解析修改

rengb před 4 roky
rodič
revize
2302f57a99

+ 25 - 19
trans/src/main/java/com/lantone/qc/trans/beilun/BeiLunConsultationDocTrans.java

@@ -13,6 +13,7 @@ import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.trans.beilun.util.BeiLunConsultationHtmlAnalysis;
+import com.lantone.qc.trans.beilun.util.BeiLunConsultationRecordHtmlAnalysis;
 import com.lantone.qc.trans.beilun.util.BeiLunHtmlAnalysis;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
@@ -74,11 +75,17 @@ public class BeiLunConsultationDocTrans extends ModelDocTrans {
             if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
                 continue;
             }
-            consultationName = index + "";
-            ConsultationRecordDoc consultationRecordDoc = getConsultationRecordDoc(contentMap);
-            consultationRecordDoc.setConsultationName(consultationName);
-            retMap.put(consultationName, consultationRecordDoc);
-            index++;
+            try {
+                ConsultationRecordDoc consultationRecordDoc = getConsultationRecordDoc(contentMap);
+                if (consultationRecordDoc != null) {
+                    consultationName = index + "";
+                    consultationRecordDoc.setConsultationName(consultationName);
+                    retMap.put(consultationName, consultationRecordDoc);
+                    index++;
+                }
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
         }
         return retMap;
     }
@@ -91,24 +98,23 @@ public class BeiLunConsultationDocTrans extends ModelDocTrans {
         } else {
             String recTitle = contentMap.get("recTitle").toString();
             String recTypeId = contentMap.get("recTypeId").toString();
-            BeiLunHtmlAnalysis beiLunHtmlAnalysis = new BeiLunConsultationHtmlAnalysis();
+            BeiLunHtmlAnalysis beiLunHtmlAnalysis = new BeiLunConsultationRecordHtmlAnalysis();
             Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
-            structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, consultationRecord_keyContrasts);
-            structureMap.put("记录编号", contentMap.get("recId").toString());
-            structureMap.put("病历号", contentMap.get("behospitalCode") == null ? null : contentMap.get("behospitalCode").toString());
+            if (MapUtils.isNotEmpty(sourceMap)) {
+                structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, consultationRecord_keyContrasts);
+                structureMap.put("记录编号", contentMap.get("recId").toString());
+                structureMap.put("病历号", contentMap.get("behospitalCode") == null ? null : contentMap.get("behospitalCode").toString());
+            }
+        }
+        if (MapUtils.isNotEmpty(structureMap)) {
+            ConsultationRecordDoc consultationRecordDoc = ModelDocGenerate.consultationRecordDocGen(structureMap);
+            consultationRecordDoc.setPageData((Map) structureMap);
+            return consultationRecordDoc;
+        } else {
+            return null;
         }
-
-        ConsultationRecordDoc consultationRecordDoc = ModelDocGenerate.consultationRecordDocGen(structureMap);
-        consultationRecordDoc.setText(content);
-        consultationRecordDoc.setPageData((Map) structureMap);
-
-        return consultationRecordDoc;
     }
 
-    private List<String> consultationRecord_sourceTitles = Lists.newArrayList(
-            "医师签名"
-    );
-
     private List<String> consultationRecord_keyContrasts = Lists.newArrayList(
             "执行情况=会诊情况",
             "记录日期=会诊申请日期",

+ 52 - 0
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunConsultationRecordHtmlAnalysis.java

@@ -0,0 +1,52 @@
+package com.lantone.qc.trans.beilun.util;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Element;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/9/28 20:12
+ */
+@Slf4j
+public class BeiLunConsultationRecordHtmlAnalysis implements BeiLunHtmlAnalysis {
+
+    private String modeId = "7";
+
+    @Override
+    public Map<String, String> analysis(String... args) {
+        Map<String, String> map = Maps.newLinkedHashMap();
+        try {
+            String html = args[0];
+            String recTitle = args[1];
+            String recTypeId = args[2];
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            analysisGeneral(bigDivElement, map);
+            BeiLunHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+        return map;
+    }
+
+    private void analysisGeneral(Element bigDivElement, Map<String, String> map) {
+        if (bigDivElement.selectFirst("hr") != null) {
+            bigDivElement.selectFirst("hr").previousElementSiblings().remove();
+        }
+        String text = BeiLunHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
+        CommonAnalysisUtil.extractWardInfo(text, map);
+        String bqjlText = "病情记录" + map.get("病情记录");
+        List<String> titles = Lists.newArrayList(
+                "病情记录"
+        );
+        titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
+        CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, map);
+    }
+
+}