Jelajahi Sumber

文书html解析添加修改

lipc 3 tahun lalu
induk
melakukan
69d2acaa9f

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

@@ -5,9 +5,9 @@ spring:
     druid:
       lantone:
         driver-class-name: com.mysql.jdbc.Driver
-        url: jdbc:mysql://192.168.2.121:3306/qc?useUnicode=true&characterEncoding=utf8&useSSL=false
+        url: jdbc:mysql://192.168.2.236:3306/qc?useUnicode=true&characterEncoding=utf8&useSSL=false
         username: root
-        password: QuGDHNG35r
+        password: lantone
         initial-size: 8
         min-idle: 1
         max-active: 20

+ 15 - 0
trans/src/main/java/com/lantone/qc/trans/comsis/CommonAnalysisUtil.java

@@ -310,6 +310,21 @@ public class CommonAnalysisUtil {
         return null;
     }
 
+    /**
+     * 温附一抽取文本中的第一个时间
+     *
+     * @param top
+     * @return
+     */
+    public static String WFYExtractDate(String top) {
+        Pattern p1 = Pattern.compile("[0-9]+月[0-9]+日[0-9]+时[0-9]+分");
+        Matcher m1 = p1.matcher(top);
+        if (m1.find()) {
+            return m1.group(0);
+        }
+        return null;
+    }
+
     /**
      * 宁海医院抽取文本中的第一个时间
      *

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/wenfuyi/BeHospitalizedDocTrans.java

@@ -69,6 +69,7 @@ public class BeHospitalizedDocTrans extends ModelDocTrans {
 
     private List<String> keyContrasts = Lists.newArrayList(
             "单位=工作单位",
+            "过去史=既往史",
             "户口地址=籍贯"
 
     );

+ 4 - 1
trans/src/main/java/com/lantone/qc/trans/wenfuyi/OperationDocTrans.java

@@ -3,6 +3,7 @@ package com.lantone.qc.trans.wenfuyi;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
+import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.operation.*;
 import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.pub.util.FastJsonUtils;
@@ -170,6 +171,7 @@ public class OperationDocTrans extends ModelDocTrans {
             WenFuYiHtmlAnalysis wenFuYiHtmlAnalysis = new OperationRecordHtmlAnalysis();
             Map<String, String> sourceMap = wenFuYiHtmlAnalysis.analysis(content, recTitle, recTypeId);
             if (MapUtils.isNotEmpty(sourceMap)) {
+                sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId("17"));
                 structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, operationRecord_keyContrasts);
                 structureMap.put("记录编号", contentMap.get("recId").toString());
                 structureMap.put("病历号", contentMap.get("behospitalCode") == null ? null : contentMap.get("behospitalCode").toString());
@@ -190,7 +192,8 @@ public class OperationDocTrans extends ModelDocTrans {
             "手术结束时间=结束时间",
             "探查(术中所见)=探查术中所见",
             "手术经过(手术小结)=手术经过",
-            "记录日期=记录时间"
+            "记录日期=记录时间",
+            " 术者/操作者签名= 术者操作者签名"
     );
 
 

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/wenfuyi/util/BeHospitalizedHtmlAnalysis.java

@@ -55,7 +55,7 @@ public class BeHospitalizedHtmlAnalysis implements WenFuYiHtmlAnalysis {
                 .replace("(外院检查注明该医院名称、日期!)", "");
 
         List<String> titles = Lists.newArrayList("姓 名", "邮 编", "性 别", "单位", "年 龄", "身份证号码", "婚 姻", "户口地址", "民 族", "联系电话", "出生地",
-                "入院日期", "职 业", "病史陈述者", "主诉", "现病史", "既往史", "系统回顾", "个人史", "婚育史", "家族史", "一般情况", "特殊检查", "实验室检查", "初步诊断", "修正诊断");
+                "入院日期", "职 业", "病史陈述者", "主诉", "现病史", "过去史", "既往史", "系统回顾", "个人史", "婚育史", "家族史", "一般情况", "特殊检查", "实验室检查", "初步诊断", "修正诊断");
 
         titles = CommonAnalysisUtil.sortTitles(titles, htmlContent);
         CommonAnalysisUtil.cutByTitles(htmlContent, titles, 0, map);

+ 19 - 4
trans/src/main/java/com/lantone/qc/trans/wenfuyi/util/OperationRecordHtmlAnalysis.java

@@ -2,6 +2,7 @@ package com.lantone.qc.trans.wenfuyi.util;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.comsis.CommonAnalysisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.jsoup.Jsoup;
@@ -27,7 +28,7 @@ public class OperationRecordHtmlAnalysis implements WenFuYiHtmlAnalysis {
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            String content = Jsoup.parse(html).selectFirst("body").children().text();
+            String content = Jsoup.parse(html.replace("<br>", "<div>")).selectFirst("body").children().text();
             analysisGeneral(content, map);
             WenFuYiHtmlAnalysisUtil.mapValueRemoveStartColon(map);
             CommonAnalysisUtil.makeEmpty(map, "医生签名");
@@ -39,13 +40,27 @@ public class OperationRecordHtmlAnalysis implements WenFuYiHtmlAnalysis {
     }
 
     private void analysisGeneral(String content, Map<String, String> map) {
-        content = content.replaceAll("注:如果手术记录中的手术日期有变更,必须重新点击“编辑手术名称”按钮保存。", "");
+        content = content.replace("注:如果手术记录中的手术日期有变更,必须重新点击“编辑手术名称”按钮保存。", "");
+
+        int index1 = content.lastIndexOf("总产程");
+        int index2 = content.lastIndexOf("出血原因");
+        if (index1 != -1 && index2 != -1) {
+            content = content.substring(0, index1)
+                    + content.substring(index1, index2).replace("其他", "胎盘其他")
+                    + content.substring(index2).replace("其他", "产后其他");
+        }
+
         List<String> titles = Lists.newArrayList(
-                "手术开始时间", "手术结束时间", "手术日期", "术前诊断", "术中诊断", "手术名称", "主刀医师", "一助", "二助", "麻醉方式", "麻醉者", "体位及手术径路", "探查(术中所见)",
-                "操作步骤", "手术经过(手术小结)", "主刀签名", "记录者", "记录时间", "记录日期"
+                "手术开始时间", "手术结束时间", "手术日期", "术前诊断", "术中诊断", "手术指征", "手术名称", "主刀医师", "一助", "二助", "麻醉方式", "麻醉者", "手术方式", "手术经过", "体位及手术径路", "探查(术中所见)",
+                "操作步骤", "手术经过(手术小结)", "主刀签名", "记录者", "记录时间", "记录日期", "术后诊断", "手术者", "助者", "麻醉", "手术经过", "术者/操作者签名",
+                "破膜", "破膜方式", "娩出胎位", "第一产程", "宫缩开始", "第二产程", "宫口开全", "第三产程", "胎儿娩出", "胎盘娩出", "总产程", "胎盘其他", "脐带", "清后羊水性状", "羊水数量", "会阴", "会阴裂伤", "产时用药", "麻醉方式",
+                "产后出血", "出血原因", "产后其他", "新生儿", "胎数", "分娩概况", "手术指征", "手术方式", "诊断", "阴道分娩纱布清点", "送休养室时间", "接生者", "记录者", "记录时间"
         );
         titles = CommonAnalysisUtil.sortTitles(titles, content);
         CommonAnalysisUtil.cutByTitlesNoColon(content, titles, 0, map);
+        if (StringUtil.isNotBlank(map.get("送休养室时间"))) {
+            map.put("送休养室时间", CommonAnalysisUtil.WFYExtractDate(map.get("送休养室时间")));
+        }
     }
 
 }