Jelajahi Sumber

修改宁波镇海中医院html解析代码

lipc 3 tahun lalu
induk
melakukan
bd69c3d18b

+ 1 - 1
dbanaly/src/main/resources/application-local.yml

@@ -28,7 +28,7 @@ spring:
     database:
       cache: 10 # cache索引
       token: 10 # Token索引
-    host: 192.168.2.121  #Redis服务器地址
+    host: 127.0.0.1  #Redis服务器地址
     port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
     password: lantone # Redis服务器连接密码(默认为空)
     lettuce:

+ 2 - 2
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/BeHospitalizedDocTrans.java

@@ -35,8 +35,8 @@ public class BeHospitalizedDocTrans extends ModelDocTrans {
             } else {
                 String recTitle = contentMap.get("recTitle").toString();
                 String recTypeId = contentMap.get("recTypeId").toString();
-                HtmlAnalysis beiLunHtmlAnalysis = new BeHospitalizedHtmlAnalysis();
-                Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
+                HtmlAnalysis htmlAnalysis = new BeHospitalizedHtmlAnalysis();
+                Map<String, String> sourceMap = htmlAnalysis.analysis(content, recTitle, recTypeId);
                 if (MapUtils.isNotEmpty(sourceMap)) {
                     structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
                     structureMap.put("记录编号", contentMap.get("recId").toString());

+ 2 - 2
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/ClinicBloodEffectDocTrans.java

@@ -48,8 +48,8 @@ public class ClinicBloodEffectDocTrans extends ModelDocTrans {
         } else {
             String recTitle = contentMap.get("recTitle").toString();
             String recTypeId = contentMap.get("recTypeId").toString();
-            HtmlAnalysis beiLunHtmlAnalysis = new ClinicBloodEffectHtmlAnalysis();
-            Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
+            HtmlAnalysis htmlAnalysis = new ClinicBloodEffectHtmlAnalysis();
+            Map<String, String> sourceMap = htmlAnalysis.analysis(content, recTitle, recTypeId);
             if (MapUtils.isNotEmpty(sourceMap)) {
                 structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
                 structureMap.put("记录编号", contentMap.get("recId").toString());

+ 2 - 2
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/ClinicalBloodDocTrans.java

@@ -49,8 +49,8 @@ public class ClinicalBloodDocTrans extends ModelDocTrans {
         } else {
             String recTitle = contentMap.get("recTitle").toString();
             String recTypeId = contentMap.get("recTypeId").toString();
-            HtmlAnalysis beiLunHtmlAnalysis = new ClinicalBloodHtmlAnalysis();
-            Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
+            HtmlAnalysis htmlAnalysis = new ClinicalBloodHtmlAnalysis();
+            Map<String, String> sourceMap = htmlAnalysis.analysis(content, recTitle, recTypeId);
             if (MapUtils.isNotEmpty(sourceMap)) {
                 structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
                 structureMap.put("记录编号", contentMap.get("recId").toString());

+ 2 - 11
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/DeathCaseDiscussDocTrans.java

@@ -54,17 +54,8 @@ public class DeathCaseDiscussDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-            "科室=科别",
-            "病史摘要(经管医师汇报病史)=病史简介",
-            "医生签名时间=记录时间",
-            "讨论主持人=主持人",
-            "参加者=参加人员",
-            "发言记录(包括病史摘要、治疗抢救过程、讨论目的、讨论意见及结论)=讨论内容",
-            "记录者(签名)=记录医生",
-            "主持人小结意见=主持人小结",
-            "讨论意见=讨论内容",
-            "记录者签名=记录医生",
-            "主持人(签名)=主持人签名"
+            "讨论内容(包括病史摘要、治疗抢救过程、讨论目的、讨论意见及结论)=讨论内容",
+            "病史摘要(经管医师汇报病史)=病史摘要"
     );
 
 }

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/NingbozhenhaiDocTrans.java

@@ -13,7 +13,7 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
- * @ClassName : BeiLunDocTrans
+ * @ClassName : DocTrans
  * @Description :
  * @Author : 楼辉荣
  * @Date: 2020-03-03 19:47

+ 5 - 21
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/ClinicBloodEffectHtmlAnalysis.java

@@ -17,9 +17,6 @@ import java.util.Map;
  */
 @Slf4j
 public class ClinicBloodEffectHtmlAnalysis implements HtmlAnalysis {
-    List<String> titles = Lists.newArrayList("输血前症状", "输血前实验室指标", "输血目的", "输注成分", "输血时间",
-            "开始时间", "结束时间", "输血过程");
-
     private String modeId = "32";
 
     @Override
@@ -30,20 +27,7 @@ public class ClinicBloodEffectHtmlAnalysis implements HtmlAnalysis {
             String recTitle = args[1];
             String recTypeId = args[2];
             Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
-            analysisGeneral(recTitle,bigDivElement, map);
-            if (map.containsKey("病情记录")) {
-                String content = map.get("病情记录");
-                CommonAnalysisUtil.cutByTitles(content, titles, 0, map);
-            }
-        /*titles.remove(5);
-        titles.forEach(i -> {
-                    if (map.get(i).length() > 2) {
-                        map.put(i, map.get(i).substring(0, map.get(i).length() - 2));
-                    }
-                }
-        );
-
-         */
+            analysisGeneral(recTitle, bigDivElement, map);
             HtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -59,13 +43,13 @@ public class ClinicBloodEffectHtmlAnalysis implements HtmlAnalysis {
             bigDivElement.selectFirst("hr").previousElementSiblings().remove();
         }
         String text = HtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
-        CommonAnalysisUtil.extractWardInfo(recTitle,text, map);
+        CommonAnalysisUtil.extractWardInfo(recTitle, text, map);
         String bqjlText = "病情记录" + map.get("病情记录");
         List<String> titles = Lists.newArrayList(
-                "病情记录"
+                "医生签名"
         );
-        titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
-        CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, map);
+        titles = CommonAnalysisUtil.sortTitles(titles, text);
+        CommonAnalysisUtil.cutByTitles(text, titles, 0, map);
     }
 
 }

+ 3 - 18
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/ClinicalBloodHtmlAnalysis.java

@@ -23,8 +23,6 @@ public class ClinicalBloodHtmlAnalysis implements HtmlAnalysis {
 
     @Override
     public Map<String, String> analysis(String... args) {
-        List<String> titles = Lists.newArrayList("输血前症状", "输血前实验室指标", "输血目的", "输注成分", "输血时间",
-                "开始时间", "结束时间", "输血过程");
         Map<String, String> map = Maps.newLinkedHashMap();
         try {
             String html = args[0];
@@ -32,19 +30,6 @@ public class ClinicalBloodHtmlAnalysis implements HtmlAnalysis {
             String recTypeId = args[2];
             Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
             analysisGeneral(recTitle,bigDivElement, map);
-            if (map.containsKey("病情记录")) {
-                String content = map.get("病情记录");
-                CommonAnalysisUtil.cutByTitles(content, titles, 0, map);
-            }
-            if (titles.size() > 6) {
-                titles.remove(5);
-            }
-            titles.forEach(i -> {
-                        if (map.get(i).length() > 2) {
-                            map.put(i, map.get(i).substring(0, map.get(i).length() - 2));
-                        }
-                    }
-            );
             HtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -63,10 +48,10 @@ public class ClinicalBloodHtmlAnalysis implements HtmlAnalysis {
         CommonAnalysisUtil.extractWardInfo(recTitle,text, map);
         String bqjlText = "病情记录" + map.get("病情记录");
         List<String> titles = Lists.newArrayList(
-                "病情记录"
+                "医生签名"
         );
-        titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
-        CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, map);
+        titles = CommonAnalysisUtil.sortTitlesNoColon(titles, text);
+        CommonAnalysisUtil.cutByTitlesNoColon(text, titles, 0, map);
     }
 
 }

+ 13 - 13
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/DeathCaseDiscussHtmlAnalysis.java

@@ -29,23 +29,23 @@ public class DeathCaseDiscussHtmlAnalysis implements HtmlAnalysis {
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
             Element bigDivElement = doc.selectFirst("body").child(0);
-            HtmlAnalysisUtil.tableStyle1InsertMap(doc.getElementById("table1"), map);
-            /*bigDivElement.child(0).lastElementSibling().remove();
-            map.put("医生签名时间", HtmlAnalysisUtil.elementLayer1ToStr(bigDivElement.child(0).lastElementSibling(), false));
-            bigDivElement.child(0).lastElementSibling().remove();*/
-
+            HtmlAnalysisUtil.tableStyle1InsertMap(doc.getElementById("table4_6"), map);
             String text = HtmlAnalysisUtil.blockDivToStr(bigDivElement, false).replace("病情变化、诊治、抢救情况", "");
-            List<String> titles = Lists.newArrayList("姓名", "床号", "住院号", "性别", "年龄", "婚姻", "地址",
-                    "入院日期", "死亡时间", "入院诊断", "讨论时间", "讨论主持人", "诊疗经过", "参加者",
-                    "发言记录(包括病史摘要、治疗抢救过程、讨论目的、讨论意见及结论)", "病史摘要(经管医师汇报病史)",
-                    "讨论目的", "讨论意见", "主持人小结", "死亡原因", "死亡诊断", "科主任(签名)", "记录者(签名)");
+
+            int index1 = text.lastIndexOf("记录者签名");
+            int index2 = text.lastIndexOf("主持人签名");
+            if (index1 != -1 && index2 != -1) {
+                text = text.substring(0, index1)
+                        + text.substring(index1, index2).replace("签字时间", "记录者签字时间:").replace("年月日时分", "")
+                        + text.substring(index2).replace("签字时间", "主持人签字时间:").replace("年月日时分", "");
+            }
+
+            List<String> titles = Lists.newArrayList("姓名", "性别", "年龄 ", "地址 ", "入院时间", "死亡时间", "讨论时间", "讨论地点",
+                    "讨论主持人", "参加人员", "讨论内容(包括病史摘要、治疗抢救过程、讨论目的、讨论意见及结论)", "病史摘要(经管医师汇报病史)", "讨论目的",
+                    "讨论意见", "主持人小结", "死亡原因", "死亡诊断", "记录者签名", "记录者签字时间", "主持人签名", "主持人签字时间");
             titles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitlesNoColon(text, titles, 0, map);
             HtmlAnalysisUtil.mapValueRemoveStartColon(map);
-            map.put("记录时间", map.get("记录者(签名)").replace("—", ""));
-            map.put("记录者(签名)", map.get("记录者(签名)").replace("时间", ""));
-            map.put("讨论意见", map.get("讨论意见").replace("讨论意见", ""));
-            map.put("主持人小结", map.get("主持人小结").replace("主持人小结", ""));
             HtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
             log.error(e.getMessage(), e);