浏览代码

宁海第一人民医院:页面调试

wangsy 4 年之前
父节点
当前提交
66ea86b834
共有 15 个文件被更改,包括 126 次插入23 次删除
  1. 74 1
      trans/src/main/java/com/lantone/qc/trans/comsis/CommonAnalysisUtil.java
  2. 4 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiCriticallyIllNoticeDocTrans.java
  3. 4 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDeathRecordDocTrans.java
  4. 4 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiFirstCourseRecordDocTrans.java
  5. 5 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiLeaveHospitalDocTrans.java
  6. 9 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiRescueDocTrans.java
  7. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiConsultationRecordHtmlAnalysis.java
  8. 6 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiCriticallyIllNoticeHtmlAnalysis.java
  9. 2 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiDeathRecordHtmlAnalysis.java
  10. 6 0
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiFirstCourseRecordHtmlAnalysis.java
  11. 7 6
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiLeaveHospitalHtmlAnalysis.java
  12. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiRescueHtmlAnalysis.java
  13. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiStagesSummaryHtmlAnalysis.java
  14. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiTransferIntoHtmlAnalysis.java
  15. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiTransferOutHtmlAnalysis.java

+ 74 - 1
trans/src/main/java/com/lantone/qc/trans/comsis/CommonAnalysisUtil.java

@@ -285,7 +285,34 @@ public class CommonAnalysisUtil {
             if (m1.find()) {
                 return m1.group(0);
             } else {
-                Pattern p2 = Pattern.compile("[0-9]{4}年[0-9]+月[0-9]+日 [0-9]+:[0-9]+");
+                Pattern p2 = Pattern.compile("[0-9]{4}年[0-9]+月[0-9]+日 [0-9]+:[0-9]+ | [0-9]{4}年[0-9]+月[0-9]+日[0-9]+:[0-9]+ ");
+                Matcher m2 = p2.matcher(top);
+                if (m2.find()) {
+                    return m2.group(0);
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 宁海医院抽取文本中的第一个时间
+     *
+     * @param top
+     * @return
+     */
+    public static String NHExtractDate(String top) {
+        Pattern pattern = Pattern.compile("[0-9]{4}年[0-9]+月[0-9]+日 [0-9]+:[0-9]+ | [0-9]{4}年[0-9]+月[0-9]+日[0-9]+:[0-9]+");
+        Matcher matcher = pattern.matcher(top);
+        if (matcher.find()) {
+            return matcher.group(0);
+        } else {
+            Pattern p1 = Pattern.compile("[0-9]{4}年[0-9]+月[0-9]+日[0-9]+时[0-9]+分");
+            Matcher m1 = p1.matcher(top);
+            if (m1.find()) {
+                return m1.group(0);
+            } else {
+                Pattern p2 = Pattern.compile("[0-9]{4}[-][0-9]{1,2}[-][0-9]{1,2}([ ][0-9]{1,2}[:][0-9]{1,2}([:][0-9]{1,2})?)?");
                 Matcher m2 = p2.matcher(top);
                 if (m2.find()) {
                     return m2.group(0);
@@ -353,6 +380,52 @@ public class CommonAnalysisUtil {
         }
     }
 
+    /**
+     * 宁海用抽取自定义病程录信息
+     *
+     * @param htmlText
+     * @param structureMap
+     */
+    public static void NHExtractWardInfo(String recTitle, String htmlText, Map<String, String> structureMap) {
+        if (StringUtil.isNotBlank(htmlText)) {
+            htmlText = htmlText.replaceAll("[   \n]", " ").replace("第1页", "")
+                    .replace("\n", " ");
+            String date = NHExtractDate(htmlText);
+            if (date != null) {
+                structureMap.put("病历日期", date);
+                htmlText = htmlText.replace(date, "").trim();
+            }
+            List<String> titleContent = Lists.newArrayList(htmlText.split(" "));
+            String title = titleContent.get(0);
+            if (StringUtil.isNotBlank(title)) {
+                structureMap.put("病历标题", title);
+                titleContent.remove(0);
+            }
+            StringBuffer sb = new StringBuffer();
+            for (String text : titleContent) {
+                sb.append(text).append(" ");
+            }
+            String content = sb.toString();
+            if (content.contains("<img")) {
+                String[] contentDoctor = content.split("<img");
+                structureMap.put("病情记录", contentDoctor[0]);
+                structureMap.put("记录医生", "<img" + contentDoctor[1]);
+            } else {
+                structureMap.put("病情记录", content);
+            }
+            if (structureMap.containsKey("病情记录")) {
+                String info = structureMap.get("病情记录");
+                if (info.contains("医生签名")) {
+                    structureMap.put("病情记录", info.substring(0, info.lastIndexOf("医生签名")));
+                    structureMap.put("记录医生", "");
+                }else if(info.contains("医师签名")){
+                    structureMap.put("病情记录", info.substring(0, info.lastIndexOf("医师签名")));
+                    structureMap.put("记录医生", "");
+                }
+            }
+        }
+    }
+
     /**
      * 抽取自定义病程录信息
      *

+ 4 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiCriticallyIllNoticeDocTrans.java

@@ -68,8 +68,11 @@ public class NingHaiYiYiCriticallyIllNoticeDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
+            "科室=科别",
             "临床诊断=当前诊断",
-            "患方签名=患者签名"
+            "初步诊断=当前诊断",
+            "患方签名=患者签名",
+            "时间=医生签名时间"
     );
 
 }

+ 4 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDeathRecordDocTrans.java

@@ -56,7 +56,10 @@ public class NingHaiYiYiDeathRecordDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-            "签名时间=记录时间"
+            "死亡时间=死亡日期",
+            "入院时间=入院日期",
+            "签名时间=记录时间",
+            "诊治经过=诊疗经过"
     );
 
 }

+ 4 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiFirstCourseRecordDocTrans.java

@@ -76,7 +76,10 @@ public class NingHaiYiYiFirstCourseRecordDocTrans extends ModelDocTrans {
             "时间=病历日期",
             "病历特点=病例特点",
             "入院查体=查体",
-            "辅助检查=辅检"
+            "辅助检查=辅检",
+            "2.诊断依据=诊断依据",
+            "3.鉴别诊断=鉴别诊断",
+            "1.初步诊断=初步诊断"
     );
 
 }

+ 5 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiLeaveHospitalDocTrans.java

@@ -74,15 +74,18 @@ public class NingHaiYiYiLeaveHospitalDocTrans extends ModelDocTrans {
             "实际住院天数=住院天数",
             "入院情况=入院情况",
             "诊疗经过=诊治经过",
+            "住院经过=诊治经过",
+            "入院情况=病史摘要",
+            "辅助检查=主要实验室检查及器械检验结果",
             "出院情况=",
             "出院医嘱=",
             "随访计划=",
             "医师签名=记录医生",
             "时间=记录时间",
-            "治疗结果=诊疗结果",
             "其它=其他",
             "出生年月=出生日期",
-            "床位=床号"
+            "床位=床号",
+            "时间=记录时间"
     );
 
 }

+ 9 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiRescueDocTrans.java

@@ -51,6 +51,13 @@ public class NingHaiYiYiRescueDocTrans extends ModelDocTrans {
             NingHaiYiYiHtmlAnalysis beiLunHtmlAnalysis = new NingHaiYiYiRescueHtmlAnalysis();
             Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
             if (MapUtils.isNotEmpty(sourceMap)) {
+                if (sourceMap.containsKey("抢救时间") && sourceMap.get("抢救时间").contains("-")) {
+                    String[] rescueDates = sourceMap.get("抢救时间").split("-");
+                    if (rescueDates.length > 1) {
+                        sourceMap.put("开始时间", rescueDates[0]);
+                        sourceMap.put("结束时间", rescueDates[1]);
+                    }
+                }
                 structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
                 structureMap.put("记录编号", contentMap.get("recId").toString());
                 structureMap.put("病历号", contentMap.get("behospitalCode") == null ? null : contentMap.get("behospitalCode").toString());
@@ -67,7 +74,8 @@ public class NingHaiYiYiRescueDocTrans extends ModelDocTrans {
 
     private List<String> keyContrasts = Lists.newArrayList(
             "病历标题=标题",
-            "病情记录=抢救内容"
+            "参加抢救人员及职称=参加抢救的医务人员姓名及专业技术职称",
+            "病情变化及抢救过程=抢救内容"
     );
 
 }

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiConsultationRecordHtmlAnalysis.java

@@ -44,7 +44,7 @@ public class NingHaiYiYiConsultationRecordHtmlAnalysis implements NingHaiYiYiHtm
             bigDivElement.selectFirst("hr").previousElementSiblings().remove();
         }
         String text = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
-        CommonAnalysisUtil.extractWardInfo(recTitle,text, map);
+        CommonAnalysisUtil.NHExtractWardInfo(recTitle,text, map);
         String bqjlText = "病情记录" + map.get("病情记录");
         List<String> titles = Lists.newArrayList(
                 "病情记录"

+ 6 - 3
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiCriticallyIllNoticeHtmlAnalysis.java

@@ -26,15 +26,18 @@ public class NingHaiYiYiCriticallyIllNoticeHtmlAnalysis implements NingHaiYiYiHt
         Map<String, String> structureMap = Maps.newLinkedHashMap();
 
         try {
-            List<String> titles = Lists.newArrayList("姓名", "性别", "出生日期", "科别", "病区", "床号", "住院号",
-                    "临床诊断", "病情摘要", "主要症状", "体格检查", "辅助检查", "告知医师签名",
-                    "告知时间", "患方意见", "患方签名", "手印说明", "与患者关系", "签字时间");
+            List<String> titles = Lists.newArrayList("姓名", "性别", "年龄", "出生日期", "科室", "科别", "病区", "床号", "住院号",
+                    "单位或地址", "联系电话", "初步诊断", "临床诊断", "病情摘要", "主要症状", "体格检查", "辅助检查", "告知医师签名",
+                    "告知时间", "患方意见", "患方签名", "手印说明", "与患者关系", "患者(或被授权人)签名与患方关系", "医师签名", "时间", "签字时间");
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
             String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
             if (StringUtil.isNotBlank(htmlContent)) {
+                if (htmlContent.contains("宁海县第一医院重、危病员通知单(交患方)")) {
+                    htmlContent = htmlContent.substring(0, htmlContent.indexOf("宁海县第一医院重、危病员通知单(交患方)"));
+                }
                 htmlContent = htmlContent.replaceAll("[   ]", " ");
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
             }

+ 2 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiDeathRecordHtmlAnalysis.java

@@ -25,8 +25,8 @@ public class NingHaiYiYiDeathRecordHtmlAnalysis implements NingHaiYiYiHtmlAnalys
     public Map<String, String> analysis(String... args) {
         Map<String, String> structureMap = Maps.newLinkedHashMap();
         try {
-            List<String> titles = Lists.newArrayList("入院日期", "死亡时间", "入院情况", "入院诊断",
-                    "诊疗经过(重点记录病情演变、抢救经过)", "死亡原因", "死亡诊断", "医师签字", "记录时间");
+            List<String> titles = Lists.newArrayList("入院日期", "入院时间", "死亡时间", "记录时间", "入院诊断", "入院情况",
+                    "诊疗经过(重点记录病情演变、抢救经过)", "诊治经过", "死亡原因", "死亡诊断", "医师签字");
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];

+ 6 - 0
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiFirstCourseRecordHtmlAnalysis.java

@@ -31,6 +31,12 @@ public class NingHaiYiYiFirstCourseRecordHtmlAnalysis implements NingHaiYiYiHtml
             if (StringUtil.isNotBlank(htmlContent)) {
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
             }
+            if (structureMap.containsKey("二.拟诊讨论")) {
+                List<String> listTitle = CommonAnalysisUtil.sortTitles(
+                        Lists.newArrayList("1.初步诊断", "2.诊断依据", "3.鉴别诊断"), structureMap.get("二.拟诊讨论")
+                );
+                CommonAnalysisUtil.cutByTitles(structureMap.get("二.拟诊讨论"), listTitle, 0, structureMap);
+            }
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, args[2], structureMap);
         } catch (Exception e) {
             log.error(e.getMessage(), e);

+ 7 - 6
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiLeaveHospitalHtmlAnalysis.java

@@ -25,18 +25,19 @@ public class NingHaiYiYiLeaveHospitalHtmlAnalysis implements NingHaiYiYiHtmlAnal
     public Map<String, String> analysis(String... args) {
         Map<String, String> structureMap = Maps.newLinkedHashMap();
         try {
-            List<String> titles = Lists.newArrayList("姓名", "出生年月", "性别", "年龄", "出生日期", "科室", "病区", "床位", "床号", "住院号 ", "住院号",
-                    "入院日期", "出院日期", "地址", "住院天数", "婚姻", "入院诊断", "出院诊断", "分娩日期", "分娩方式", "手术指征",
-                    "入院情况", "诊治经过", "入院后检查化验结果", "入院后化验检查结果", "诊疗经过", "治疗结果", "出院计划", "病理检查结果", "出院情况", "婴儿情况",
-                    "治疗效果", "出院医嘱", "医师签名", "日期", "病理号", "X片号", "MR号", "CT号", "其它", "主治医师", "住院医师");
+            List<String> titles = Lists.newArrayList("姓名", "出生年月", "性别", "年龄", "出生日期", "科室", "床位", "床号", "病区", "住院号 ", "住院号",
+                    "病理号", "B超", "X片号", "CT号", "MRI号", "内镜", "入院诊断", "出院诊断", "入院日期", "出院日期", "地址", "住院天数", "婚姻", "分娩日期",
+                    "分娩方式", "手术指征", "入院情况", "辅助检查","诊治经过", "住院经过", "入院后检查化验结果", "入院后化验检查结果", "诊疗经过", "治疗结果", "转归情况", "出院计划",
+                    "病理检查结果","出院情况", "婴儿情况", "治疗效果", "出院医嘱", "医师签名", "日期", "时 间", "其它", "主治医师", "住院医师");
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
             String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
             if (StringUtil.isNotBlank(htmlContent)) {
-                htmlContent = htmlContent.replace("下拉选择无或右键调用临床数据", "");
-                htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第1页", "");
+                htmlContent = htmlContent.replaceAll("[   ]", " ")
+                        .replace("第1页", "")
+                        .replace("出院后请注意接听本院的随访电话:825592278255916565578435","");
                 htmlContent = htmlContent.replace("\n", "");
                 List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, htmlContent.replace("复诊时间", ""));
                 sortTitles.add("时间");

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiRescueHtmlAnalysis.java

@@ -47,7 +47,7 @@ public class NingHaiYiYiRescueHtmlAnalysis implements NingHaiYiYiHtmlAnalysis {
         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);

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiStagesSummaryHtmlAnalysis.java

@@ -44,7 +44,7 @@ public class NingHaiYiYiStagesSummaryHtmlAnalysis implements NingHaiYiYiHtmlAnal
             bigDivElement.selectFirst("hr").previousElementSiblings().remove();
         }
         String text = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
-        CommonAnalysisUtil.extractWardInfo(recTitle, text, map);
+        CommonAnalysisUtil.NHExtractWardInfo(recTitle, text, map);
         String bqjlText = "病情记录" + map.get("病情记录");
         List<String> titles = Lists.newArrayList(
                 "病情记录"

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiTransferIntoHtmlAnalysis.java

@@ -44,7 +44,7 @@ public class NingHaiYiYiTransferIntoHtmlAnalysis implements NingHaiYiYiHtmlAnaly
             bigDivElement.selectFirst("hr").previousElementSiblings().remove();
         }
         String text = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
-        CommonAnalysisUtil.extractWardInfo(recTitle, text, map);
+        CommonAnalysisUtil.NHExtractWardInfo(recTitle, text, map);
         String bqjlText = "病情记录" + map.get("病情记录");
         List<String> titles = Lists.newArrayList(
                 "病情记录", "医师签名", "医师签字"

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiTransferOutHtmlAnalysis.java

@@ -44,7 +44,7 @@ public class NingHaiYiYiTransferOutHtmlAnalysis implements NingHaiYiYiHtmlAnalys
             bigDivElement.selectFirst("hr").previousElementSiblings().remove();
         }
         String text = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
-        CommonAnalysisUtil.extractWardInfo(recTitle, text, map);
+        CommonAnalysisUtil.NHExtractWardInfo(recTitle, text, map);
         String bqjlText = "病情记录" + map.get("病情记录").replace("年   月   日   时   分 ","");
         List<String> titles = Lists.newArrayList(
                 "病情记录",