Bladeren bron

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

daiyi 3 jaren geleden
bovenliggende
commit
90f4cbc151

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

@@ -60,8 +60,14 @@ public class ThreeLevelWardDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            String recTitle = contentMap.get("recTitle").toString();
-            String recTypeId = contentMap.get("recTypeId").toString();
+            String recTitle = "";
+            String recTypeId = "";
+            if (contentMap.containsKey("recTitle") && StringUtil.isNotBlank(contentMap.get("recTitle").toString())) {
+                recTitle = contentMap.get("recTitle").toString();
+            }
+            if (contentMap.containsKey("recTypeId") && StringUtil.isNotBlank(contentMap.get("recTypeId").toString())) {
+                recTypeId = contentMap.get("recTypeId").toString();
+            }
             HtmlAnalysis ningBoZhongYiHtmlAnalysis = new ThreeLevelWardHtmlAnalysis();
             Map<String, String> sourceMap = ningBoZhongYiHtmlAnalysis.analysis(content, recTitle, recTypeId);
             if (MapUtils.isNotEmpty(sourceMap)) {

+ 7 - 5
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/BeHospitalizedHtmlAnalysis.java

@@ -67,13 +67,15 @@ public class BeHospitalizedHtmlAnalysis implements HtmlAnalysis {
         }
 //
 
-        if (map.get("性别").equals("女")) {
-            if (map.get("婚育史").contains("月经史")) {
-                map.put("月经史", map.get("婚育史").substring(map.get("婚育史").indexOf("月经史") + 4));
-                map.put("婚育史", map.get("婚育史").substring(0, map.get("婚育史").indexOf("月经史")));
+        if (map.get("性别") != null && map.get("性别").equals("女")) {
+            if (StringUtil.isNotBlank(map.get("婚育史"))) {
+                if (map.get("婚育史").contains("月经史")) {
+                    map.put("月经史", map.get("婚育史").substring(map.get("婚育史").indexOf("月经史") + 4));
+                    map.put("婚育史", map.get("婚育史").substring(0, map.get("婚育史").indexOf("月经史")));
+                }
             }
         }
-        if (map.get("性别").equals("男")) {
+        if (map.get("性别") != null && map.get("性别").equals("男")) {
             if (StringUtil.isNotBlank(map.get("月经史"))) {
                 map.put("婚育史", map.get("月经史"));
             }

+ 3 - 1
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/CriticallyIllNoticeHtmlAnalysis.java

@@ -54,7 +54,9 @@ public class CriticallyIllNoticeHtmlAnalysis implements HtmlAnalysis {
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
             }
             structureMap.put("患者签名", structureMap.get("患者签名").replace("患者签名", ""));
-            structureMap.put("法定监护人/被授权人签名", structureMap.get("法定监护人/被授权人签名").replace("患方签名", ""));
+            if (StringUtil.isNotBlank(structureMap.get("法定监护人/被授权人签名"))) {
+                structureMap.put("法定监护人/被授权人签名", structureMap.get("法定监护人/被授权人签名").replace("患方签名", ""));
+            }
             CommonAnalysisUtil.processTypeRight(structureMap, "3.目前病情评估");
             CommonAnalysisUtil.processType(structureMap, "6.患方知情选择");
             CommonAnalysisUtil.processType(structureMap, "指印");

+ 9 - 7
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/DifficultCaseDiscussHtmlAnalysis.java

@@ -34,7 +34,9 @@ public class DifficultCaseDiscussHtmlAnalysis implements HtmlAnalysis {
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
             HtmlAnalysisUtil.tableStyle1InsertMap(doc.getElementById("table1"), structureMap);
-            doc.selectFirst("body").child(0).getElementById("table1").remove();
+            if (doc.selectFirst("body").child(0).getElementById("table1") != null) {
+                doc.selectFirst("body").child(0).getElementById("table1").remove();
+            }
             String htmlContent = HtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
             if (StringUtil.isNotBlank(htmlContent)) {
                 htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第一页", "").replace("发言记录(包括病史简要、讨论意见及结论):", "");
@@ -46,23 +48,23 @@ public class DifficultCaseDiscussHtmlAnalysis implements HtmlAnalysis {
                 String date = CommonAnalysisUtil.extractDate(structureMap.get("住院号"));
                 if (StringUtil.isNotBlank(date)) {
                     structureMap.put("时间", date);
-                    CommonAnalysisUtil.repKey(structureMap,"住院号","\n");
+                    CommonAnalysisUtil.repKey(structureMap, "住院号", "\n");
                 }
             }
             if (structureMap.containsKey("记录者(签名)")) {
-                structureMap.put("记录医生", structureMap.get("记录者(签名)").replace(" ",""));
+                structureMap.put("记录医生", structureMap.get("记录者(签名)").replace(" ", ""));
             }
             if (structureMap.containsKey("科主任(签名)")) {
                 String date1 = CommonAnalysisUtil.NBZYExtractDate(structureMap.get("科主任(签名)").replace(" ", ""));
                 if (StringUtil.isNotBlank(date1)) {
-                    structureMap.put("科主任签名", structureMap.get("科主任(签名)").replace(" ","").replace(date1, ""));
-                }else{
-                    structureMap.put("科主任签名", structureMap.get("科主任(签名)").replace(" ","").replace("年月日", ""));
+                    structureMap.put("科主任签名", structureMap.get("科主任(签名)").replace(" ", "").replace(date1, ""));
+                } else {
+                    structureMap.put("科主任签名", structureMap.get("科主任(签名)").replace(" ", "").replace("年月日", ""));
                 }
             }
             HtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {
-            log.error(e.getMessage(), e);
+            log.error(e.getMessage(), e + "html=" + args[0]);
         }
         return structureMap;
     }

+ 11 - 3
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/LeaveHospitalHtmlAnalysis.java

@@ -34,7 +34,9 @@ public class LeaveHospitalHtmlAnalysis implements HtmlAnalysis {
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
             HtmlAnalysisUtil.tableStyle1InsertMap(doc.getElementById("table1"), structureMap);
-            doc.selectFirst("body").child(0).getElementById("table1").remove();
+            if (doc.selectFirst("body").child(0).getElementById("table1") != null) {
+                doc.selectFirst("body").child(0).getElementById("table1").remove();
+            }
             String htmlContent = HtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
             if (StringUtil.isNotBlank(htmlContent)) {
                 htmlContent = htmlContent.replace("患者如有需要,可于出院十日后(工作日),携带(身份证、社保卡、户口簿)等有效身份证到病案室(茗\n" +
@@ -44,7 +46,13 @@ public class LeaveHospitalHtmlAnalysis implements HtmlAnalysis {
                                 "三楼)复印住院病历资料。如委托他人办理,需携带委托人(患者)及被委托人有效身份证明前来办理。", "")
                         .replace("特殊检查资料号", "特殊检查资料号:");
                 List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, htmlContent);
-                CommonAnalysisUtil.cutByTitles(htmlContent, sortTitles, 0, structureMap);
+
+                try {
+                    CommonAnalysisUtil.cutByTitles(htmlContent, sortTitles, 0, structureMap);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    log.error("报错html :" + htmlContent);
+                }
             }
             if (StringUtil.isNotBlank(CommonAnalysisUtil.extractDate(structureMap.get("出院日期")))) {
                 structureMap.put("住院天数", structureMap.get("出院日期").replace(CommonAnalysisUtil.extractDate(structureMap.get("出院日期")), ""));
@@ -66,7 +74,7 @@ public class LeaveHospitalHtmlAnalysis implements HtmlAnalysis {
             }
             HtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {
-            log.error(e.getMessage(), e);
+            log.error(e.getMessage(), e + "html=" + args[0]);
         }
         return structureMap;
     }

+ 22 - 6
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/OperationRecordHtmlAnalysis.java

@@ -2,6 +2,7 @@ package com.lantone.qc.trans.ningbozhenhai.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;
@@ -44,7 +45,7 @@ public class OperationRecordHtmlAnalysis implements HtmlAnalysis {
                 .replace("(包括体位、切口处理经过,病灶所见及手术步骤等):", "");
         List<String> titles = Lists.newArrayList(
                 "姓名", "病区", "科室", "床号", "床位", "住院号", "手术开始时间", "手术结束时间", "术前诊断", "术 前 诊  断",
-                "手术名称", "手 术 名  称", "术中诊断", "术(中)后诊断", "手术人员", "手术主刀医师", "手 术 主 刀 医 师", "一 助", "二 助", "麻醉方式",
+                "手术名称", "手 术 名  称", "术中诊断", "术(中)后诊断", "手术人员", "手术主刀医师", "手 术 主 刀 医 师", "麻醉方式",
                 "麻 醉 方  式", "麻醉人员", "麻 醉 医  师", "手术风险评估(可选)", "NNIS分级", "手术类别(可选)", "手术标本", "冰冻切片结果",
                 "术中并发症", "术中失血量", "手术经过", "手术经过及处理(包括患者的体位、切口处理、病灶所见及手术步骤等)", "记录者签字", "主刀签字", "主刀医师签名",
                 "记录日期", "日期", "时间"
@@ -55,13 +56,28 @@ public class OperationRecordHtmlAnalysis implements HtmlAnalysis {
         CommonAnalysisUtil.processTypeRight(map, "手术类别(可选)");
         CommonAnalysisUtil.processType(map, "手术标本");
         CommonAnalysisUtil.processType(map, "术中并发症");
-        map.put("NNIS分级", map.get("NNIS分级").replace("-", ""));
-        if (map.containsKey("时间")) {
-            map.put("日期", map.get("记录日期") + map.get("时间"));
+        if (StringUtil.isNotBlank(map.get("NNIS分级"))) {
+            map.put("NNIS分级", map.get("NNIS分级").replace("-", ""));
         }
-        if (map.containsKey("手术主刀医师")) {
-            map.put("手术人员", "手术主刀医师:" + map.get("手术主刀医师") + " 一助:" + map.get("一助") + " 二助:" + map.get("二助"));
+        if (map.containsKey("记录日期") && StringUtil.isNotBlank(map.get("记录日期"))) {
+            StringBuffer sb = new StringBuffer();
+            sb.append(map.get("记录日期"));
+            if (map.containsKey("时间") && StringUtil.isNotBlank(map.get("时间"))) {
+                sb.append(map.get("时间"));
+            }
+            map.put("日期", sb.toString());
         }
+        /*if (map.containsKey("手术主刀医师") && StringUtil.isNotBlank(map.get("手术主刀医师"))) {
+            StringBuffer sb1 = new StringBuffer();
+            sb1.append("手术主刀医师:" + map.get("手术主刀医师"));
+            if (map.containsKey("一助") && StringUtil.isNotBlank(map.get("一助"))) {
+                sb1.append(" 一助:" + map.get("一助"));
+            }
+            if (map.containsKey("二助") && StringUtil.isNotBlank(map.get("二助"))) {
+                sb1.append(" 二助:" + map.get("二助"));
+            }
+            map.put("手术人员", sb1.toString());
+        }*/
     }
 
 }

+ 11 - 4
trans/src/main/java/com/lantone/qc/trans/ningbozhenhai/util/ThreeLevelWardHtmlAnalysis.java

@@ -31,14 +31,21 @@ public class ThreeLevelWardHtmlAnalysis implements HtmlAnalysis {
             String recTitle = args[1];
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
-            Element bigDivElement = doc.selectFirst("body").child(0);
-            if (bigDivElement.childNodeSize() == 1) {
-                bigDivElement = bigDivElement.child(0);
+            String htmlText;
+            if (doc.selectFirst("body").childNodeSize() > 0) {
+                Element bigDivElement = doc.selectFirst("body").child(0);
+                if (bigDivElement.childNodeSize() == 1) {
+                    bigDivElement = bigDivElement.child(0);
+                }
+                htmlText = HtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
+            }else{
+                htmlText = doc.text();
             }
+
             /*if (bigDivElement.selectFirst("hr") != null) {
                 bigDivElement.selectFirst("hr").previousElementSiblings().remove();
             }*/
-            String htmlText = HtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
+
             /*htmlText = htmlText.replace("注意:上级医师查房主要记 录:患者病情、诊断、鉴别诊断、当前治疗措施和疗效的分析及下一步诊疗意见等,能反应上级医 师的水平。", "")
                     .replace("提醒:有创诊疗操作记录内容包括操作名称、时间、步骤、结果及患者的一般情况,记录操作过 程是否顺利,有无不良反应,术后注意事项,操作医师签名、记录时间等。 手术室完成的、治疗性质的及全麻下完成的有创诊疗操作参照手术管理。(包括介入治疗、胃肠镜 下肿瘤切除/粘膜下肿瘤剥除等)", "");*/
             CommonAnalysisUtil.extractWardInfo(recTitle, htmlText, structureMap);