ソースを参照

交接班记录解析修改

rengb 4 年 前
コミット
67a3485e5d

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/beilun/BeiLunDeathCaseDiscussDocTrans.java

@@ -24,6 +24,7 @@ public class BeiLunDeathCaseDiscussDocTrans extends ModelDocTrans {
         Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
         String content = contentMap.get("xmlText").toString();
         String recTitle = contentMap.get("recTitle").toString();
+        String recTypeId = contentMap.get("recTypeId").toString();
         BeiLunHtmlAnalysis beiLunHtmlAnalysis = new BeiLunDeathCaseDiscussHtmlAnalysis();
         Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle);
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);

+ 17 - 41
trans/src/main/java/com/lantone/qc/trans/beilun/BeiLunDutyShiftSystemDocTrans.java

@@ -4,8 +4,11 @@ import com.google.common.collect.Lists;
 import com.lantone.qc.pub.model.doc.DutyShiftSystemDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.trans.ModelDocTrans;
+import com.lantone.qc.trans.beilun.util.BeiLunCrisisValueReportHtmlAnalysis;
+import com.lantone.qc.trans.beilun.util.BeiLunDutyShiftSystemHtmlAnalysis;
+import com.lantone.qc.trans.beilun.util.BeiLunHtmlAnalysis;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
-import com.lantone.qc.trans.comsis.Preproc;
+import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 
 import java.util.List;
 import java.util.Map;
@@ -20,57 +23,30 @@ public class BeiLunDutyShiftSystemDocTrans extends ModelDocTrans {
     @Override
     public List<DutyShiftSystemDoc> extract(MedrecVo medrecVo) {
         List<DutyShiftSystemDoc> retList = Lists.newArrayList();
-        List<String> contents = (List) medrecVo.getContent().get("content");
-        contents.forEach(content -> {
-            retList.add(getDutyShiftSystemDoc(content));
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getDutyShiftSystemDoc(contentMap));
         });
         return retList;
     }
 
-    private DutyShiftSystemDoc getDutyShiftSystemDoc(String content) {
-        Map<String, String> pageData = Preproc.extract_doc_pub(true, pageDataTitles, content);
-        pageData.put("病程记录内容",
-                pageData.get("病程记录内容")
-                        .replace(pageData.get("病程记录时间"), "")
-                        .replace(pageData.get("病程记录名称"), "")
-        );
+    private DutyShiftSystemDoc getDutyShiftSystemDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
+        String recTitle = contentMap.get("recTitle").toString();
+        String recTypeId = contentMap.get("recTypeId").toString();
+        BeiLunHtmlAnalysis beiLunHtmlAnalysis = new BeiLunDutyShiftSystemHtmlAnalysis();
+        Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
+        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
 
-        List<String> targetTitles = Lists.newArrayList();
-        sourceTitles.forEach(sourceTitle -> {
-            String targetTitle = "";
-            for (int index = 0; index < sourceTitle.length(); index++) {
-                if (index == sourceTitle.length() - 1) {
-                    targetTitle += sourceTitle.substring(index, index + 1);
-                } else {
-                    targetTitle += sourceTitle.substring(index, index + 1) + "[\\s\\p{Zs}]*";
-                }
-            }
-            targetTitles.add(targetTitle);
-        });
-
-        Map<String, String> sourceMap = Preproc.extract_doc_pub(true, targetTitles, content);
-        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
-
-        DutyShiftSystemDoc dutyShiftSystemDoc = ModelDocGenerate.dutyShiftSystemDocGen(sourceMap);
+        DutyShiftSystemDoc dutyShiftSystemDoc = ModelDocGenerate.dutyShiftSystemDocGen(structureMap);
         dutyShiftSystemDoc.setText(content);
-        dutyShiftSystemDoc.setPageData((Map) pageData);
+        dutyShiftSystemDoc.setPageData((Map) structureMap);
 
         return dutyShiftSystemDoc;
     }
 
-    private List<String> pageDataTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录医师"
-    );
+    private List<String> keyContrasts = Lists.newArrayList(
 
-    private List<String> sourceTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录时间",
-            "记录医师"
     );
 
 }

+ 2 - 3
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunDeathCaseDiscussHtmlAnalysis.java

@@ -21,8 +21,7 @@ public class BeiLunDeathCaseDiscussHtmlAnalysis implements BeiLunHtmlAnalysis {
     public Map<String, String> analysis(String... args) {
         Map<String, String> map = Maps.newLinkedHashMap();
         String html = args[0];
-        String recTitle = args[1];
-
+        String recTypeId = args[2];
         Document doc = Jsoup.parse(html);
         Element bigDivElement = doc.selectFirst("body").child(0);
 
@@ -35,7 +34,7 @@ public class BeiLunDeathCaseDiscussHtmlAnalysis implements BeiLunHtmlAnalysis {
                 "主 持 人", "参加人员", "具体讨论意见", "主持人小结意见", "主持人(签名)", "记录者签名");
         CommonAnalysisUtil.cutByTitlesNoColon(text, titles, 0, map);
         BeiLunHtmlAnalysisUtil.mapValueRemoveStartColon(map);
-        BeiLunHtmlAnalysisUtil.insertModuleId(recTitle, map);
+        BeiLunHtmlAnalysisUtil.insertModuleId(recTypeId, map);
         //找不到模板id,用默认标准模板
         map.putIfAbsent("mode_id", "405");
         return map;

+ 54 - 0
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunDutyShiftSystemHtmlAnalysis.java

@@ -0,0 +1,54 @@
+package com.lantone.qc.trans.beilun.util;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.lantone.qc.pub.util.FileUtil;
+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:00
+ */
+public class BeiLunDutyShiftSystemHtmlAnalysis implements BeiLunHtmlAnalysis {
+
+    @Override
+    public Map<String, String> analysis(String... args) {
+        Map<String, String> map = Maps.newLinkedHashMap();
+        String html = args[0];
+        String recTitle = args[1];
+        String recTypeId = args[2];
+        Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+        analysisGeneral(bigDivElement, map);
+        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);
+    }
+
+    public static void main(String[] args) {
+        String html = FileUtil.fileRead("C:/Users/Administrator/Desktop/宁波/分类/消化内科/红细胞输注病程记录/106000157270.odt.html");
+        String recTitle = "术后首程-";
+        BeiLunDutyShiftSystemHtmlAnalysis test = new BeiLunDutyShiftSystemHtmlAnalysis();
+        Map<String, String> map = test.analysis(html, recTitle, "");
+        map.keySet().forEach(key -> {
+            System.out.println(key + "-----" + map.get(key).replaceAll("\n", ""));
+        });
+    }
+
+}