Преглед изворни кода

Merge remote-tracking branch 'origin/beilun/dev' into beilun/dev

rengb пре 4 година
родитељ
комит
644ceb50f3

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/beilun/BeiLunDifficultCaseDiscussDocTrans.java

@@ -66,7 +66,8 @@ public class BeiLunDifficultCaseDiscussDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-
+        "主持人=主持人姓名及专业技术职务",
+        "参加人员=参加人员的姓名及专业技术职务"
     );
 
 }

+ 9 - 1
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunDifficultCaseDiscussHtmlAnalysis.java

@@ -31,13 +31,21 @@ public class BeiLunDifficultCaseDiscussHtmlAnalysis implements BeiLunHtmlAnalysi
             String recTitle = args[1];
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
-            String htmlContent = BeiLunHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), false);
+            String htmlContent = BeiLunHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
             if (StringUtil.isNotBlank(htmlContent)) {
                 htmlContent = htmlContent.replaceAll("[   ]", " ");
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
             }
             CommonAnalysisUtil.extractDateByTitle(structureMap, "告知时间");
             removeLast(structureMap);
+            if (structureMap.containsKey("住院号")) {
+                String date = CommonAnalysisUtil.extractDate(structureMap.get("住院号"));
+                if (StringUtil.isNotBlank(date)) {
+                    structureMap.put("时间", date);
+                    structureMap.put("住院号", structureMap.get("住院号").replace(date, "").replace("\n", ""));
+
+                }
+            }
             BeiLunHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {
             log.error(e.getMessage(), e);

+ 3 - 0
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunFirstCourseRecordHtmlAnalysis.java

@@ -31,6 +31,9 @@ public class BeiLunFirstCourseRecordHtmlAnalysis implements BeiLunHtmlAnalysis {
             Document doc = Jsoup.parse(html);
             String htmlContent = BeiLunHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
             if (StringUtil.isNotBlank(htmlContent)) {
+                htmlContent = htmlContent.replace("建议先书写大病", "")
+                        .replace("历,并对导入的既往史和现病史进行归纳", "")
+                        .replace("若书写者为诊疗组长本人,以下签名框中可只签一个名字", "");
                 String[] lines = htmlContent.split("\n\n");
                 if (lines.length > 1) {
                     String text = "";

+ 30 - 4
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunHtmlAnalysisUtil.java

@@ -52,13 +52,39 @@ public class BeiLunHtmlAnalysisUtil {
             if (tdMhIndex < 1) {
                 continue;
             }
-            map.put(
-                    StringUtil.removeBlank(tdText.substring(0, tdMhIndex)),
-                    tdText.length() - 1 <= tdMhIndex ? "" : tdText.substring(tdMhIndex + 1)
-            );
+            if (tdText.contains("姓    名") && tdText.contains("年    龄")) {
+                multiColonResolve(tdMhIndex, tdText, "年    龄", map);
+            } else if (tdText.contains("产前检查") && tdText.contains("孕/产次")) {
+                multiColonResolve(tdMhIndex, tdText, "孕/产次", map);
+            } else if (tdText.contains("末次月经") && tdText.contains("预产期")) {
+                multiColonResolve(tdMhIndex, tdText, "预产期", map);
+            } else {
+                map.put(
+                        StringUtil.removeBlank(tdText.substring(0, tdMhIndex)),
+                        tdText.length() - 1 <= tdMhIndex ? "" : tdText.substring(tdMhIndex + 1)
+                );
+            }
         }
     }
 
+    /**
+     * 取得多个字段时,分别存储
+     *
+     * @param tdText
+     * @param text
+     */
+    public static void multiColonResolve(int tdMhIndex, String tdText, String text, Map<String, String> map) {
+        String firstText = tdText.split(text)[0];
+        map.put(
+                StringUtil.removeBlank(firstText.substring(0, tdMhIndex)),
+                firstText.length() - 1 <= tdMhIndex ? "" : firstText.substring(tdMhIndex + 1)
+        );
+        String secondText = tdText.split(text)[1];
+        secondText = secondText.replace(":", "");
+        secondText = secondText.replace(":", "");
+        map.put(StringUtil.removeBlank(text), secondText);
+    }
+
     /**
      * table样式:td两两配对,一个key,一个value;不保留换行
      *

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunLeaveHospitalHtmlAnalysis.java

@@ -34,8 +34,9 @@ public class BeiLunLeaveHospitalHtmlAnalysis implements BeiLunHtmlAnalysis {
             Document doc = Jsoup.parse(html);
             String htmlContent = BeiLunHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
             if (StringUtil.isNotBlank(htmlContent)) {
+                htmlContent = htmlContent.replace("下拉选择无或右键调用临床数据", "");
                 htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第1页", "");
-                List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, htmlContent.replace("复诊时间",""));
+                List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, htmlContent.replace("复诊时间", ""));
                 sortTitles.add("时间");
                 CommonAnalysisUtil.cutByTitles(htmlContent, sortTitles, 0, structureMap);
             }

+ 2 - 0
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunThreeLevelWardHtmlAnalysis.java

@@ -34,6 +34,8 @@ public class BeiLunThreeLevelWardHtmlAnalysis implements BeiLunHtmlAnalysis {
                 bigDivElement = bigDivElement.child(0);
             }
             String htmlText = BeiLunHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
+            htmlText = htmlText.replace("注意:上级医师查房主要记 录:患者病情、诊断、鉴别诊断、当前治疗措施和疗效的分析及下一步诊疗意见等,能反应上级医 师的水平。", "")
+                    .replace("提醒:有创诊疗操作记录内容包括操作名称、时间、步骤、结果及患者的一般情况,记录操作过 程是否顺利,有无不良反应,术后注意事项,操作医师签名、记录时间等。 手术室完成的、治疗性质的及全麻下完成的有创诊疗操作参照手术管理。(包括介入治疗、胃肠镜 下肿瘤切除/粘膜下肿瘤剥除等)", "");
             CommonAnalysisUtil.extractWardInfo(htmlText, structureMap);
             BeiLunHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {