ソースを参照

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

easi 4 年 前
コミット
c3b1f0d0c7
49 ファイル変更388 行追加194 行削除
  1. 20 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR0128.java
  2. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/ninghaiyiyi/behospitalized/BEH0372.java
  3. 4 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/behospitalized/BEH0414.java
  4. 6 6
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/firstpagerecord/FIRP0161.java
  5. 6 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/firstpagerecord/FIRP0222.java
  6. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/structure/ai/ThreeLevelWardAI.java
  7. 1 1
      kernel/src/main/resources/bootstrap.yml
  8. 2 2
      public/src/main/java/com/lantone/qc/pub/model/entity/Pacs.java
  9. 3 2
      public/src/main/java/com/lantone/qc/pub/util/StringUtil.java
  10. 87 0
      trans/src/main/java/com/lantone/qc/trans/comsis/CommonAnalysisUtil.java
  11. 8 6
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiBeHospitalizedDocTrans.java
  12. 6 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiClinicBloodEffectDocTrans.java
  13. 4 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiClinicalBloodDocTrans.java
  14. 9 7
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiConsultationDocTrans.java
  15. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiCrisisValueReportDocTrans.java
  16. 5 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiCriticallyIllNoticeDocTrans.java
  17. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDeathCaseDiscussDocTrans.java
  18. 7 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDeathRecordDocTrans.java
  19. 12 4
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDifficultCaseDiscussDocTrans.java
  20. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDutyShiftSystemDocTrans.java
  21. 5 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiFirstCourseRecordDocTrans.java
  22. 7 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiLeaveHospitalDocTrans.java
  23. 33 19
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiOperationDocTrans.java
  24. 10 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiRescueDocTrans.java
  25. 4 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiStagesSummaryDocTrans.java
  26. 4 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiThreeLevelWardDocTrans.java
  27. 6 6
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiTransferRecordDocTrans.java
  28. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDocTrans.java
  29. 32 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiBeHospitalizedHtmlAnalysis.java
  30. 3 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiClinicBloodEffectHtmlAnalysis.java
  31. 3 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiClinicalBloodHtmlAnalysis.java
  32. 2 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiConsultationHtmlAnalysis.java
  33. 3 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiConsultationRecordHtmlAnalysis.java
  34. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiCrisisValueReportHtmlAnalysis.java
  35. 10 5
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiCriticallyIllNoticeHtmlAnalysis.java
  36. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiDeathCaseDiscussHtmlAnalysis.java
  37. 5 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiDeathRecordHtmlAnalysis.java
  38. 16 5
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiDifficultCaseDiscussHtmlAnalysis.java
  39. 1 1
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiDutyShiftSystemHtmlAnalysis.java
  40. 8 44
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiFirstCourseRecordHtmlAnalysis.java
  41. 8 7
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiLeaveHospitalHtmlAnalysis.java
  42. 2 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiOperationHtmlAnalysis.java
  43. 6 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiOperationRecordHtmlAnalysis.java
  44. 15 15
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiPreoperativeHtmlAnalysis.java
  45. 2 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiRescueHtmlAnalysis.java
  46. 3 3
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiStagesSummaryHtmlAnalysis.java
  47. 8 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiThreeLevelWardHtmlAnalysis.java
  48. 2 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiTransferIntoHtmlAnalysis.java
  49. 2 2
      trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiTransferOutHtmlAnalysis.java

+ 20 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR0128.java

@@ -134,10 +134,12 @@ public class THR0128 extends QCCatalogue {
                     int indicationsNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.attend);
                     //三级医师查房算一次主治查房
                     int threeDoctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), "三级");
+                    //北仑内分泌科(主任携主任代主治)
+                    int endocrinologyTitleNum = endocrinologyTitleNum(roundRecordEveryWeek.get(j).split(","));
                     if (j == 0 && firstRecordAttendExist) { //如果首程中医师签名为主治医师,第一周查房记录也要加上
                         indicationsNum += 1;
                     }
-                    if (indicationsNum + threeDoctorNum < 3) {
+                    if (indicationsNum + threeDoctorNum + endocrinologyTitleNum < 3) {
                         //每周无3次主治医师查房记录
                         status.set("-1");
                         resultInfos.add(lastWardDateRangeList.get(j));
@@ -151,6 +153,23 @@ public class THR0128 extends QCCatalogue {
         }
     }
 
+    /**
+     * 北仑内分泌科主任主治处理
+     *
+     * @param srcText
+     * @return
+     */
+    private int endocrinologyTitleNum(String[] srcText) {
+        int count = 0;
+        for (String title : srcText) {
+            String regex = ".*主任.*主任.*主治.*";
+            if (title.matches(regex)) {
+                count++;
+            }
+        }
+        return count;
+    }
+
     private Date getLastRecordDate(List<ThreeLevelWardDoc> allDoctorWradDocs) {
         ThreeLevelWardDoc threeLevelWardDoc = allDoctorWradDocs.get(allDoctorWradDocs.size() - 1);
         Map<String, String> lastWardDocStructureMap = threeLevelWardDoc.getStructureMap();

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/ninghaiyiyi/behospitalized/BEH0372.java

@@ -60,7 +60,7 @@ public class BEH0372 extends QCCatalogue {
             return;
         }
 
-        if (bhbasicInfoStatus.equals("已婚") && (basicInfoStatus.contains("结婚") || basicInfoStatus.contains("再婚"))) {
+        if (bhbasicInfoStatus.equals("已婚") && (basicInfoStatus.contains("结婚") || basicInfoStatus.contains("再婚") || basicInfoStatus.contains("已婚") )) {
             status.set("0");
             return;
         }

+ 4 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/behospitalized/BEH0414.java

@@ -42,18 +42,18 @@ public class BEH0414 extends QCCatalogue {
                 status.set("0");
                 return;
             }
-            String admissAge = "";
+//            String admissAge = "";
             if (StringUtil.isNotBlank(admissionAge)) {
                 if (admissionAge.contains("岁")) {
-                    admissAge = admissionAge.substring(0, admissionAge.indexOf("岁"));
+                    admissionAge = admissionAge.substring(0, admissionAge.indexOf("岁"));
                 } else if (admissionAge.contains("天")) {
-                    admissAge = admissionAge.substring(0, admissionAge.indexOf("天"));
+                    admissionAge = admissionAge.substring(0, admissionAge.indexOf("天"));
                 }
             }
             // int firstAdmissionAgeNum = removalUnit(firstAdmissionAge);
             // int admissionAgeNum = removalUnit(admissionAge);
             // 只比较年龄前的数值
-            if (!admissAge.equals(firstAdmissionAge)) {
+            if (!admissionAge.equals(firstAdmissionAge)) {
                 status.set("-1");
                 return;
             }

+ 6 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/firstpagerecord/FIRP0161.java

@@ -42,18 +42,18 @@ public class FIRP0161 extends QCCatalogue {
                 status.set("0");
                 return;
             }
-            String admissAge = "";
+//            String admissAge = "";
             if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("岁")) {
-                admissAge = admissionAge.substring(0, admissionAge.indexOf("岁"));
+                admissionAge = admissionAge.substring(0, admissionAge.indexOf("岁"));
             }
             if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("天")) {
-                admissAge = admissionAge.substring(0, admissionAge.indexOf("天"));
+                admissionAge = admissionAge.substring(0, admissionAge.indexOf("天"));
             }
             if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("分")) {
-                admissAge = admissionAge.substring(0, admissionAge.indexOf("分"));
+                admissionAge = admissionAge.substring(0, admissionAge.indexOf("分"));
             }
             if (StringUtil.isNotBlank(admissionAge) && (admissionAge.contains("时") || admissionAge.contains("小时"))) {
-                admissAge = admissionAge.contains("小时") ? admissionAge.substring(0, admissionAge.indexOf("小")) : admissionAge.substring(0, admissionAge.indexOf("时"));
+                admissionAge = admissionAge.contains("小时") ? admissionAge.substring(0, admissionAge.indexOf("小")) : admissionAge.substring(0, admissionAge.indexOf("时"));
             }
             if (StringUtil.isNotBlank(firstAdmissionAge) && firstAdmissionAge.contains("岁")) {
                 firstAdmissionAge = firstAdmissionAge.substring(0, firstAdmissionAge.indexOf("岁"));
@@ -70,7 +70,7 @@ public class FIRP0161 extends QCCatalogue {
             // int firstAdmissionAgeNum = removalUnit(firstAdmissionAge);
             // int admissionAgeNum = removalUnit(admissionAge);
             // 只比较年龄前的数值
-            if (!admissAge.equals(firstAdmissionAge)) {
+            if (!admissionAge.equals(firstAdmissionAge)) {
                 status.set("-1");
                 Map<String, Object> structureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
                 String xmlId = CatalogueUtil.getXmlId(structureExtMap, Content.age);

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/firstpagerecord/FIRP0222.java

@@ -37,6 +37,12 @@ public class FIRP0222 extends QCCatalogue {
         Map<String, String> medStructureMap = medicalRecordInfoDoc.getStructureMap();
         String admitDept = firpStructureMap.get(Content.admitDept);
         String behDeptId = medStructureMap.get("behDeptName");
+        if (StringUtil.isNotBlank(admitDept) && (admitDept.contains("儿科") || admitDept.contains("妇科") || admitDept.contains("乳腺外科"))) {
+            return;
+        }
+        if (StringUtil.isNotBlank(behDeptId) && (behDeptId.contains("儿科") || behDeptId.contains("妇科") || behDeptId.contains("乳腺外科"))) {
+            return;
+        }
         if ("产科".equals(admitDept) && ("产一".equals(behDeptId) || "产二".equals(behDeptId))) {
             return;
         }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/ThreeLevelWardAI.java

@@ -255,7 +255,7 @@ public class ThreeLevelWardAI extends ModelAI {
         }
         List<Map<String, String>> dateRecordList = new ArrayList<>(dateRecord.values());
         //如果最后一条是疑难病例讨论记录,则之后肯定没有查房记录
-        if (dateRecordList.get(dateRecordList.size() - 1).containsKey("讨论日期")) {
+        if (dateRecordList.size() > 0 && dateRecordList.get(dateRecordList.size() - 1).containsKey("讨论日期")) {
             record = new ArrayList<>();
             return record;
         }

+ 1 - 1
kernel/src/main/resources/bootstrap.yml

@@ -15,7 +15,7 @@ spring:
     active: debug
 
 qc:
-  hospital_id: 4,5,6,7
+  hospital_id: 4,5,6,7,8
 
 logging:          # 日志
   config: classpath:logback-spring.xml

+ 2 - 2
public/src/main/java/com/lantone/qc/pub/model/entity/Pacs.java

@@ -17,8 +17,8 @@ import java.util.List;
 @Getter
 public class Pacs extends General{
     private PD pd;  //时间
-    private PacsValue pacsValues;
-    private BodyPart bodyPart;
+    private PacsValue pacsValues; //辅助检查描述
+    private BodyPart bodyPart; //部位
     private OuterCourtyard outerCourtyard; //外院
     private List<Diag> diags = new ArrayList<>();//疾病
 }

+ 3 - 2
public/src/main/java/com/lantone/qc/pub/util/StringUtil.java

@@ -219,8 +219,9 @@ public class StringUtil {
             if (datetime.length() > 0) {
                 date = DateUtils.parseDate(datetime, Content.dateFormats);
             }
-        } catch (ParseException ex) {
-            ex.printStackTrace();
+        } catch (Exception e) {
+//            ex.printStackTrace();
+            return null;
         }
         return date;
     }

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

@@ -284,6 +284,39 @@ public class CommonAnalysisUtil {
             Matcher m1 = p1.matcher(top);
             if (m1.find()) {
                 return m1.group(0);
+            } else {
+                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);
+                }
             }
         }
         return null;
@@ -347,6 +380,57 @@ 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);
+            String jointTitle = titleContent.get(1);
+            if (StringUtil.isNotBlank(title) && StringUtil.isNotBlank(jointTitle) && jointTitle.contains("医师查房记录")) {
+                structureMap.put("病历标题", title + jointTitle);
+                titleContent.remove(0);
+                titleContent.remove(0);
+            } else {
+                structureMap.put("病历标题", recTitle);
+                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("记录医生", "");
+//                }
+//            }
+        }
+    }
+
     /**
      * 抽取自定义病程录信息
      *
@@ -392,6 +476,9 @@ public class CommonAnalysisUtil {
                 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("记录医生", "");
                 }
             }
         }

+ 8 - 6
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiBeHospitalizedDocTrans.java

@@ -28,7 +28,7 @@ public class NingHaiYiYiBeHospitalizedDocTrans extends ModelDocTrans {
         BeHospitalizedDoc beHospitalizedDoc = null;
         try {
             Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
-            String content = contentMap.get("xmlText").toString();
+            String content = contentMap.get("htmlText").toString();
             Map<String, String> structureMap = null;
             if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
                 structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -62,12 +62,14 @@ public class NingHaiYiYiBeHospitalizedDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-            "联系人(关系)=联系人",
+            "出生地=籍贯",
+            "联系地址=住址",
             "入院时间=入院日期",
-            "医生签名=记录医生",
-            "医生签名时间=记录时间",
-            "疼痛评估=疼痛",
-            "代诉=主诉"
+            "月经婚育史=婚育史",
+            "初步诊断医师签名:=初步诊断医师签名",
+            "初步诊断医师签名:时 间:=初步诊断签名时间",
+            "补充诊断医师签名:时 间:=补充诊断签名时间",
+            "补充诊断医师签名:=补充诊断医师签名"
     );
 
 }

+ 6 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiClinicBloodEffectDocTrans.java

@@ -41,7 +41,7 @@ public class NingHaiYiYiClinicBloodEffectDocTrans extends ModelDocTrans {
     }
 
     private ClinicBloodEffectDoc getClinicalBloodDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -66,7 +66,11 @@ public class NingHaiYiYiClinicBloodEffectDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-            "病情记录=病历内容"
+            "病情记录=病历内容",
+            "病历标题=标题",
+            "记录医生=评估医师",
+            "医生签名=评估医师",
+            "医师签名=评估医师"
     );
 
 }

+ 4 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiClinicalBloodDocTrans.java

@@ -41,7 +41,7 @@ public class NingHaiYiYiClinicalBloodDocTrans extends ModelDocTrans {
     }
 
     private ClinicalBloodDoc getClinicalBloodDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -68,7 +68,9 @@ public class NingHaiYiYiClinicalBloodDocTrans extends ModelDocTrans {
     private List<String> keyContrasts = Lists.newArrayList(
             "输注成分=输注种类、血型、数量",
             "输血过程=输注过程",
-            "病情记录=病历内容"
+            "病情记录=病历内容",
+            "医生签名=记录医生",
+            "医师签名=记录医生"
     );
 
 }

+ 9 - 7
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiConsultationDocTrans.java

@@ -72,7 +72,7 @@ public class NingHaiYiYiConsultationDocTrans extends ModelDocTrans {
         int index = 1;
         String consultationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -91,7 +91,7 @@ public class NingHaiYiYiConsultationDocTrans extends ModelDocTrans {
     }
 
     private ConsultationRecordDoc getConsultationRecordDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -120,7 +120,9 @@ public class NingHaiYiYiConsultationDocTrans extends ModelDocTrans {
             "记录日期=会诊申请日期",
             "签名++++=签名",
             "病情记录=简要病情",
-            "医师签名=签名"
+            "医师签名=签名",
+            "医生签名=记录医生",
+            "医师签名=记录医生"
     );
 
 
@@ -133,7 +135,7 @@ public class NingHaiYiYiConsultationDocTrans extends ModelDocTrans {
         int index = 1;
         String consultationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -152,7 +154,7 @@ public class NingHaiYiYiConsultationDocTrans extends ModelDocTrans {
     }
 
     private ConsultationResultsDoc getConsultationResultsDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -206,7 +208,7 @@ public class NingHaiYiYiConsultationDocTrans extends ModelDocTrans {
         int index = 1;
         String consultationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             consultationName = index + "";
@@ -219,7 +221,7 @@ public class NingHaiYiYiConsultationDocTrans extends ModelDocTrans {
     }
 
     private ConsultationApplicationDoc getConsultationApplicationDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);

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

@@ -41,7 +41,7 @@ public class NingHaiYiYiCrisisValueReportDocTrans extends ModelDocTrans {
     }
 
     private CrisisValueReportDoc getCrisisValueReportDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);

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

@@ -42,7 +42,7 @@ public class NingHaiYiYiCriticallyIllNoticeDocTrans extends ModelDocTrans {
     }
 
     private CriticallyIllNoticeDoc getCriticallyIllNoticeDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -68,8 +68,11 @@ public class NingHaiYiYiCriticallyIllNoticeDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
+            "科室=科别",
             "临床诊断=当前诊断",
-            "患方签名=患者签名"
+            "初步诊断=当前诊断",
+            "患方签名=患者签名",
+            "时间=医生签名时间"
     );
 
 }

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

@@ -28,7 +28,7 @@ public class NingHaiYiYiDeathCaseDiscussDocTrans extends ModelDocTrans {
         DeathCaseDiscussDoc deathCaseDiscussDoc = null;
         try {
             Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
-            String content = contentMap.get("xmlText").toString();
+            String content = contentMap.get("htmlText").toString();
             Map<String, String> structureMap = null;
             if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
                 structureMap = (Map) FastJsonUtils.getJsonToMap(content);

+ 7 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDeathRecordDocTrans.java

@@ -29,7 +29,7 @@ public class NingHaiYiYiDeathRecordDocTrans extends ModelDocTrans {
         DeathRecordDoc deathRecordDoc = null;
         try {
             Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
-            String content = contentMap.get("xmlText").toString();
+            String content = contentMap.get("htmlText").toString();
             Map<String, String> structureMap = null;
             if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
                 structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -56,7 +56,12 @@ public class NingHaiYiYiDeathRecordDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-            "签名时间=记录时间"
+            "科室=科别",
+            "住院号=病历号",
+            "死亡时间=死亡日期",
+            "入院时间=入院日期",
+            "签名时间=记录时间",
+            "诊治经过=诊疗经过"
     );
 
 }

+ 12 - 4
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiDifficultCaseDiscussDocTrans.java

@@ -41,7 +41,7 @@ public class NingHaiYiYiDifficultCaseDiscussDocTrans extends ModelDocTrans {
     }
 
     private DifficultCaseDiscussDoc getDifficultCaseDiscussDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -82,9 +82,17 @@ public class NingHaiYiYiDifficultCaseDiscussDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-            "主持人=主持人姓名及专业技术职务",
-            "参加人员=参加人员的姓名及专业技术职务",
-            "主持人小结意见/讨论结论=主持人小结"
+            "讨论主持人=主持人姓名及专业技术职务",
+            "参加讨论人=参加人员的姓名及专业技术职务",
+            "主持人小结意见=主持人小结",
+            "主持人小结意见=主持人总结",
+            "讨论意见=具体讨论意见",
+            "病史简介=汇报病史",
+            "记录者(签名)=记录医生",
+            "科主任(签名)=记录时间",
+            "发言记录(包括病历简要、讨论意见及结论)=讨论发言",
+            "病历日期=记录时间",
+            "病情记录=汇报病史"
     );
 
 }

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

@@ -41,7 +41,7 @@ public class NingHaiYiYiDutyShiftSystemDocTrans extends ModelDocTrans {
     }
 
     private DutyShiftSystemDoc getDutyShiftSystemDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);

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

@@ -33,7 +33,7 @@ public class NingHaiYiYiFirstCourseRecordDocTrans extends ModelDocTrans {
         FirstCourseRecordDoc firstCourseRecordDoc = null;
         try {
             Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
-            String content = contentMap.get("xmlText").toString();
+            String content = contentMap.get("htmlText").toString();
             Map<String, String> structureMap = null;
             if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
                 structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -76,7 +76,10 @@ public class NingHaiYiYiFirstCourseRecordDocTrans extends ModelDocTrans {
             "时间=病历日期",
             "病历特点=病例特点",
             "入院查体=查体",
-            "辅助检查=辅检"
+            "辅助检查=辅检",
+            "2.诊断依据=诊断依据",
+            "3.鉴别诊断=鉴别诊断",
+            "1.初步诊断=初步诊断"
     );
 
 }

+ 7 - 3
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiLeaveHospitalDocTrans.java

@@ -31,7 +31,7 @@ public class NingHaiYiYiLeaveHospitalDocTrans extends ModelDocTrans {
         LeaveHospitalDoc leaveHospitalDoc = null;
         try {
             Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
-            String content = contentMap.get("xmlText").toString();
+            String content = contentMap.get("htmlText").toString();
             Map<String, String> structureMap = null;
             if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
                 structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -74,15 +74,19 @@ public class NingHaiYiYiLeaveHospitalDocTrans extends ModelDocTrans {
             "实际住院天数=住院天数",
             "入院情况=入院情况",
             "诊疗经过=诊治经过",
+            "住院经过=诊治经过",
+            "入院情况=病史摘要",
+            "辅助检查=主要实验室检查及器械检验结果",
             "出院情况=",
             "出院医嘱=",
             "随访计划=",
             "医师签名=记录医生",
             "时间=记录时间",
-            "治疗结果=诊疗结果",
             "其它=其他",
             "出生年月=出生日期",
-            "床位=床号"
+            "床位=床号",
+            "时间=记录时间",
+            "转归情况=治疗结果"
     );
 
 }

+ 33 - 19
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiOperationDocTrans.java

@@ -81,7 +81,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
         int index = 1;
         String operationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -100,7 +100,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
     }
 
     private OperationDiscussionDoc getOperationDiscussionDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         OperationDiscussionDoc operationDiscussionDoc = new OperationDiscussionDoc();
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
@@ -119,6 +119,10 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
             NingHaiYiYiHtmlAnalysis beiLunHtmlAnalysis = new NingHaiYiYiOperationHtmlAnalysis();
             Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
             if (MapUtils.isNotEmpty(sourceMap)) {
+                if (sourceMap.containsKey("病历标题") && sourceMap.get("病历标题").matches("[\\d]+年.*")) {
+                    sourceMap.put("病历日期", sourceMap.get("病历标题").substring(0, Math.max(0, sourceMap.get("病历标题").indexOf("术后首次"))));
+                    sourceMap.put("病历标题", sourceMap.get("病历标题").replace(sourceMap.get("病历日期"), ""));
+                }
                 structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, operationDiscussion_keyContrasts);
                 structureMap.put("记录编号", contentMap.get("recId").toString());
                 structureMap.put("病历号", contentMap.get("behospitalCode") == null ? null : contentMap.get("behospitalCode").toString());
@@ -136,13 +140,8 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
     }
 
     private List<String> operationDiscussion_keyContrasts = Lists.newArrayList(
-            "手术简要经过(包括手术方式、术中所见、过程是否顺利、有无并发症等)=手术简要经过",
-            "病情记录=手术简要经过",
-            "术后诊断=术中后诊断",
-            "患者手术后情况=患者术后情况",
-            "术后应当特别注意观察的事项:=术后注意事项",
-            "术后治疗计划(包括术后应当特别注意观察的事项)=术后注意事项",
-            "医师签名=医生签名"
+            "病历标题=标题",
+            "病情记录=病程内容"
     );
 
 
@@ -155,7 +154,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
         int index = 1;
         String operationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -174,7 +173,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
     }
 
     private OperationRecordDoc getOperationRecordDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -213,11 +212,14 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
     }
 
     private List<String> operationRecord_keyContrasts = Lists.newArrayList(
+            "手术时间=手术日期",
             "手术经过=手术经过及处理",
+            "手术经过(包括病人体位、切口处理、病灶所见及手术步骤等)=手术经过及处理",
             "术后诊断=术中后诊断",
-            "主刀=主刀医师",
-            "记录者=记录医生",
+            "手术人员=主刀医师",
+            "医师签名=记录医生",
             "患者手术后情况=患者术后情况",
+            "麻醉人员=麻醉医师",
             "麻醉方法=麻醉方式",
             "时间=记录时间"
     );
@@ -232,7 +234,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
         int index = 1;
         String operationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -251,7 +253,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
     }
 
     private PreoperativeDiscussionDoc getPreoperativeDiscussionDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -307,6 +309,16 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
     }
 
     private List<String> preoperativeDiscussion_keyContrasts = Lists.newArrayList(
+            "一、简要病情=简要病情",
+            "1.术前诊断=术前诊断",
+            "2.手术指征与禁忌征=手术指征与禁忌",
+            "3.可替代方案=可替代的方案",
+            "4.拟施手术方式、名称及可能的变更=拟施手术方式名称及可能的变更与禁忌症",
+            "5.计划性多次手术=计划性多次手术",
+            "6.拟施麻醉方式=拟施麻醉方式",
+            "7.术前特殊准备=术前准备",
+            "8.主要术中、术后风险及防范措施=风险及防范措施",
+            "9.术中、术后注意事项(含护理事项)=术中术后注意事项",
             "1.术前诊断=术前诊断",
             "2.手术指征与禁忌征=手术指征与禁忌",
             "3.可替代方案=可替代的方案",
@@ -325,7 +337,9 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
             //"拟施手术方式(名称)及可能的变更方案=拟施手术方式、名称及可能的变更与禁忌症",
             //"术前特殊准备=术前准备",
             //"手术指征与禁忌征=手术指征与禁忌",
+            "经治医师签名=记录医生",
             "经治医生签字时间=记录时间",
+            "主刀医师签名=主刀医生签名",
             "签字时间=记录时间"
     );
 
@@ -338,7 +352,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
         int index = 1;
         String operationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             operationName = index + "";
@@ -352,7 +366,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
 
     private OperationInformedConsentDoc getOperationInformedConsentDoc(Map<String, Object> contentMap) {
         String modeId = "16";
-//        String content = contentMap.get("xmlText").toString();
+//        String content = contentMap.get("htmlText").toString();
 //        Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
 //        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
 //        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
@@ -413,7 +427,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
         int index = 1;
         String operationName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             operationName = index + "";
@@ -427,7 +441,7 @@ public class NingHaiYiYiOperationDocTrans extends ModelDocTrans {
 
     private OperationSafetyChecklistDoc getOperationSafetyChecklistDoc(Map<String, Object> contentMap) {
         String modeId = "21";
-//        String content = contentMap.get("xmlText").toString();
+//        String content = contentMap.get("htmlText").toString();
 //        Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
 //        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
 //        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");

+ 10 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiRescueDocTrans.java

@@ -41,7 +41,7 @@ public class NingHaiYiYiRescueDocTrans extends ModelDocTrans {
     }
 
     private RescueDoc getRescueDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -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(
             "病历标题=标题",
-            "病情记录=抢救内容"
+            "参加抢救人员及职称=参加抢救的医务人员姓名及专业技术职称",
+            "病情变化及抢救过程=抢救内容"
     );
 
 }

+ 4 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiStagesSummaryDocTrans.java

@@ -41,7 +41,7 @@ public class NingHaiYiYiStagesSummaryDocTrans extends ModelDocTrans {
     }
 
     private StagesSummaryDoc getStagesSummaryDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -67,7 +67,9 @@ public class NingHaiYiYiStagesSummaryDocTrans extends ModelDocTrans {
 
     private List<String> keyContrasts = Lists.newArrayList(
             "病历标题=标题",
-            "病情记录=病历内容"
+            "病情记录=病历内容",
+            "医生签名=记录医生",
+            "医师签名=记录医生"
     );
 
 }

+ 4 - 2
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiThreeLevelWardDocTrans.java

@@ -55,7 +55,7 @@ public class NingHaiYiYiThreeLevelWardDocTrans extends ModelDocTrans {
     }
 
     private void classifyThreeLevelWardDoc(ThreeLevelWardDoc threeLevelWardDoc, Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = null;
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -274,7 +274,9 @@ public class NingHaiYiYiThreeLevelWardDocTrans extends ModelDocTrans {
             "病历日期=查房日期",
             "病历标题=查房标题",
             "科主任=三级医师",
-            "记录日期=记录时间"
+            "记录日期=记录时间",
+            "医生签名=记录医生",
+            "医师签名=记录医生"
     );
 
     /**

+ 6 - 6
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/NingHaiYiYiTransferRecordDocTrans.java

@@ -135,7 +135,7 @@ public class NingHaiYiYiTransferRecordDocTrans extends ModelDocTrans {
         int index = 1;
         String transferRecordName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -154,7 +154,7 @@ public class NingHaiYiYiTransferRecordDocTrans extends ModelDocTrans {
     }
 
     private TransferIntoDoc getTransferIntoDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = new HashMap<>();
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -190,7 +190,7 @@ public class NingHaiYiYiTransferRecordDocTrans extends ModelDocTrans {
         int index = 1;
         String transferRecordName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -209,7 +209,7 @@ public class NingHaiYiYiTransferRecordDocTrans extends ModelDocTrans {
     }
 
     private TransferRecordDoc getTransferAllDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = new HashMap<>();
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
@@ -248,7 +248,7 @@ public class NingHaiYiYiTransferRecordDocTrans extends ModelDocTrans {
         int index = 1;
         String transferRecordName = null;
         for (Map<String, Object> contentMap : contentMaps) {
-            if (contentMap.get("xmlText") == null || StringUtil.isBlank(contentMap.get("xmlText").toString())) {
+            if (contentMap.get("htmlText") == null || StringUtil.isBlank(contentMap.get("htmlText").toString())) {
                 continue;
             }
             try {
@@ -267,7 +267,7 @@ public class NingHaiYiYiTransferRecordDocTrans extends ModelDocTrans {
     }
 
     private TransferOutDoc getTransferOutDoc(Map<String, Object> contentMap) {
-        String content = contentMap.get("xmlText").toString();
+        String content = contentMap.get("htmlText").toString();
         Map<String, String> structureMap = new HashMap<>();
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);

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

@@ -21,7 +21,7 @@ import java.util.stream.Collectors;
  * @Date: 2020-03-03 19:47
  */
 @Slf4j
-public class NingHaiYiYiDocTrans extends DocTrans {
+public class NinghaiyiyiDocTrans extends DocTrans {
 
     @Override
     protected InputInfo extract(QueryVo queryVo) {

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

@@ -36,7 +36,8 @@ public class NingHaiYiYiBeHospitalizedHtmlAnalysis implements NingHaiYiYiHtmlAna
             } else if (recTitle.contains("日间病历")) {
                 analysisDay(doc, map);
             } else {
-                analysisGeneral(doc, recTitle, map);
+//                analysisGeneral(doc, recTitle, map);
+                analysisBeHospitalized(doc, map);
             }
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
@@ -45,6 +46,35 @@ public class NingHaiYiYiBeHospitalizedHtmlAnalysis implements NingHaiYiYiHtmlAna
         return map;
     }
 
+    //宁海第一人民医院
+    private void analysisBeHospitalized(Document doc, Map<String, String> map) {
+        NingHaiYiYiHtmlAnalysisUtil.tableStyle1InsertMap(doc.getElementById("header"), map);
+        map.forEach((key, value) -> map.put(key, value.replace("\n", "")));
+        List<String> titles = Lists.newArrayList("姓 名", "入院时间", "出生日期", "性 别", "性别", "记录时间","年 龄", "出 生 地", "职 业", "职业", "入院时间", "民 族", "民族",
+                "联系地址", "婚 姻", "婚姻", "病史陈述者", "病史可靠度", "家长姓名","住 址","联系电话", "主诉", "主 诉", "现 病 史", "既 往 史", "个 人 史", "母 孕 史", "出 生 史", "喂 养 史",
+                "生长发育史", "预防接种史", "生活习惯史", "婚 育 史", "月经婚育史", "家 族 史", "辅助检查", "记录医生", "初步诊断", "补充诊断");
+        String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
+        if (StringUtil.isNotBlank(htmlContent)) {
+            htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第 ( ) 页", "");
+            CommonAnalysisUtil.html2StructureMap(titles, htmlContent, map);
+            disDiagnose(map, Lists.newArrayList("初步诊断"), "医师签名:");
+            disDiagnose(map, Lists.newArrayList("初步诊断医师签名:"), "时 间:");
+        }
+    }
+
+    /**
+     * 处理诊断
+     */
+    private void disDiagnose(Map<String, String> map, List<String> lists, String str) {
+        for (String key : lists) {
+            String value = map.get(key);
+            if (StringUtil.isNotBlank(value) && value.contains(str)) {
+                map.put(key, value.substring(0, value.indexOf(str)));
+                map.put(key + str, value.substring(value.indexOf(str) + str.length()));
+            }
+        }
+    }
+
     //一般模板
     private void analysisGeneral(Document doc, String recTitle, Map<String, String> map) {
         //个人基础信息table解析
@@ -118,7 +148,7 @@ public class NingHaiYiYiBeHospitalizedHtmlAnalysis implements NingHaiYiYiHtmlAna
 
     //24小时出入院记录、24小时出入院记录(全院)、24小时入出院记录(全院通用)、24小时内入院死亡记录(全院通用)
     private void analysis24h(Document doc, Map<String, String> map) {
-        String text = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), false);
+        String text = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), false);
         text = text.substring(text.lastIndexOf("24小时入出院记录姓    名")).replaceFirst("第1页", "");
         List<String> titles = Lists.newArrayList("姓    名", "家庭住址", "性    别", "工作单位", "年    龄", "身份证号码", "民    族",
                 "联系人(关系)", "职    业", "入院时间", "婚    姻", "死亡时间", "记录时间", "出 生 地", "病史陈述者", "主    诉", "入院情况", "心理评估",

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

@@ -29,7 +29,7 @@ public class NingHaiYiYiClinicBloodEffectHtmlAnalysis implements NingHaiYiYiHtml
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle,bigDivElement, map);
             if (map.containsKey("病情记录")) {
                 String content = map.get("病情记录");
@@ -59,10 +59,10 @@ public class NingHaiYiYiClinicBloodEffectHtmlAnalysis implements NingHaiYiYiHtml
             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(
-                "病情记录"
+                "病情记录","医生签名","医师签名"
         );
         titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
         CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, map);

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

@@ -30,7 +30,7 @@ public class NingHaiYiYiClinicalBloodHtmlAnalysis implements NingHaiYiYiHtmlAnal
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle,bigDivElement, map);
             if (map.containsKey("病情记录")) {
                 String content = map.get("病情记录");
@@ -60,10 +60,10 @@ public class NingHaiYiYiClinicalBloodHtmlAnalysis 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(
-                "病情记录"
+                "病情记录","医生签名","医师签名"
         );
         titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
         CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, map);

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

@@ -43,7 +43,7 @@ public class NingHaiYiYiConsultationHtmlAnalysis implements NingHaiYiYiHtmlAnaly
                     CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
                 }
             } else if ("协定方会诊".equals(recTitle)) {
-                htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
+                htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
                 if (StringUtil.isNotBlank(htmlContent)) {
                     htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第1页", "");
                     CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
@@ -95,7 +95,7 @@ public class NingHaiYiYiConsultationHtmlAnalysis implements NingHaiYiYiHtmlAnaly
                 }
 
             } else {
-                htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
+                htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
                 //htmlContent = CommonAnalysisUtil.html2String(html);
                 if (StringUtil.isNotBlank(htmlContent)) {
                     htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第1页", "");

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiConsultationRecordHtmlAnalysis implements NingHaiYiYiHtm
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle,bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
@@ -44,10 +44,10 @@ 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(
-                "病情记录"
+                "病情记录","医生签名","医师签名"
         );
         titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
         CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, map);

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiCrisisValueReportHtmlAnalysis implements NingHaiYiYiHtml
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle,bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {

+ 10 - 5
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiCriticallyIllNoticeHtmlAnalysis.java

@@ -26,16 +26,21 @@ 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), true);
+            NingHaiYiYiHtmlAnalysisUtil.tableStyle1InsertMap(doc.selectFirst("body").child(0).getElementById("header"), structureMap);
+            structureMap.forEach((key, value) -> structureMap.put(key, value.replace("\n", "")));
+            String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
             if (StringUtil.isNotBlank(htmlContent)) {
-                htmlContent = htmlContent.replaceAll("[   ]", " ");
+                if (htmlContent.contains("宁海县第一医院重、危病员通知单(交患方)")) {
+                    htmlContent = htmlContent.substring(0, htmlContent.indexOf("宁海县第一医院重、危病员通知单(交患方)"));
+                }
+                htmlContent = htmlContent.replaceAll("[   ]", " ").replace("--", "");
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
             }
             CommonAnalysisUtil.extractDateByTitle(structureMap, "告知时间");

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

@@ -28,7 +28,7 @@ public class NingHaiYiYiDeathCaseDiscussHtmlAnalysis implements NingHaiYiYiHtmlA
             String html = args[0];
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
-            Element bigDivElement = doc.selectFirst("body").child(0);
+            Element bigDivElement = doc.selectFirst("body").child(0).getElementById("main");
 
             bigDivElement.child(0).lastElementSibling().remove();
             map.put("医生签名时间", NingHaiYiYiHtmlAnalysisUtil.elementLayer1ToStr(bigDivElement.child(0).lastElementSibling(), false));

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

@@ -25,13 +25,15 @@ 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];
             Document doc = Jsoup.parse(html);
-            String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), false);
+            NingHaiYiYiHtmlAnalysisUtil.tableStyle1InsertMap(doc.selectFirst("body").child(0).getElementById("header"), structureMap);
+            structureMap.forEach((key, value) -> structureMap.put(key, value.replace("\n", "")));
+            String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), false);
             if (StringUtil.isNotBlank(htmlContent)) {
                 htmlContent = htmlContent.replaceAll("[   ]", " ");
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);

+ 16 - 5
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiDifficultCaseDiscussHtmlAnalysis.java

@@ -25,20 +25,31 @@ public class NingHaiYiYiDifficultCaseDiscussHtmlAnalysis implements NingHaiYiYiH
     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];
             Document doc = Jsoup.parse(html);
-            String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
+            NingHaiYiYiHtmlAnalysisUtil.tableStyle1InsertMap(doc.getElementById("header"), structureMap);
+            structureMap.forEach((key, value) -> structureMap.put(key, value.replace("\n", "")));
+            String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
             if (StringUtil.isNotBlank(htmlContent)) {
-                htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第一页","");
+                htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第一页", "");
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
+                if (structureMap.size() == 0) {
+                    CommonAnalysisUtil.NHExtractWardInfo(recTitle, htmlContent, structureMap);
+                    String bqjlText = "病情记录" + structureMap.get("病情记录");
+                    List<String> keys = Lists.newArrayList(
+                            "病情记录", "医师签名", "医师签字"
+                    );
+                    keys = CommonAnalysisUtil.sortTitlesNoColon(keys, bqjlText);
+                    CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, keys, 0, structureMap);
+                }
             }
             CommonAnalysisUtil.extractDateByTitle(structureMap, "告知时间");
             removeLast(structureMap);
+
             if (structureMap.containsKey("住院号")) {
                 String date = CommonAnalysisUtil.extractDate(structureMap.get("住院号"));
                 if (StringUtil.isNotBlank(date)) {

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiDutyShiftSystemHtmlAnalysis implements NingHaiYiYiHtmlAn
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle,bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {

+ 8 - 44
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiFirstCourseRecordHtmlAnalysis.java

@@ -25,55 +25,19 @@ public class NingHaiYiYiFirstCourseRecordHtmlAnalysis implements NingHaiYiYiHtml
     public Map<String, String> analysis(String... args) {
         Map<String, String> structureMap = Maps.newLinkedHashMap();
         try {
-            List<String> titles = Lists.newArrayList("(一)病历特点", "(二)诊断依据", "(三)鉴别诊断",
-                    "(四)初步诊断", "(五)诊疗计划", "(二)拟诊讨论", "初步诊断", "诊断依据", "鉴别诊断", "(三)诊疗计划", "心理治疗", "(五)疼痛评估",
-                    "疼痛治疗", "营养治疗", "康复治疗", "VTE预防", "医生签名", "(六)诊疗计划");
-            String html = args[0];
-            String recTitle = args[1];
-            Document doc = Jsoup.parse(html);
+            List<String> titles = Lists.newArrayList("一. 病例特点", "二. 拟诊讨论", "三. 诊疗计划", "医师签名");
+            Document doc = Jsoup.parse(args[0]);
             String htmlContent = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
             if (StringUtil.isNotBlank(htmlContent)) {
-                htmlContent = htmlContent.replace("—/—", "")
-                        .replace("第1页", "")
-                        .replace("建议先书写大病", "")
-                        .replace("历,并对导入的既往史和现病史进行归纳", "")
-                        .replace("若书写者为诊疗组长本人,以下签名框中可只签一个名字", "");
-                String[] lines = htmlContent.split("\n\n");
-                String text = "";
-                if (lines.length > 1) {
-                    if (lines[0].contains("宁波市北仑区人民医院")) {
-                        for (int i = 1; i < lines.length; i++) {
-                            text += lines[i];
-                        }
-                    } else {
-                        for (int i = 0; i < lines.length; i++) {
-                            text += lines[i];
-                        }
-                    }
-                    //htmlContent = lines[1];
-                } else if (lines.length == 1) {
-                    text = lines[0];
-                }
-                if (StringUtil.isNotBlank(text)) {
-                    String date = CommonAnalysisUtil.extractDate(text);
-                    if (StringUtil.isNotBlank(date)) {
-                        structureMap.put("时间", date);
-                        text = text.replace(date, "");
-                    }
-                    text = text.replaceAll("[   ]", " ");
-                    CommonAnalysisUtil.html2StructureMap(titles, text, structureMap);
-                }
+                CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
             }
-            if (structureMap.containsKey("(一)病历特点")) {
-                CommonAnalysisUtil.cutByTitles(structureMap.get("(一)病历特点"), Lists.newArrayList("入院查体", "辅助检查"), 0, structureMap);
-                if (structureMap.containsKey("入院查体")) {
-                    structureMap.put("(一)病历特点", structureMap.get("(一)病历特点").split("入院查体")[0]);
-                }
+            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);
-            //        CommonAnalysisUtil.extractDateByTitle(structureMap, "时间");
-            //        structureMap.forEach((k,v)-> System.out.println(k + "------" + v));
-            //        structureMap.put("rec_title=", "107");
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }

+ 8 - 7
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), true);
+            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("时间");

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiOperationHtmlAnalysis implements NingHaiYiYiHtmlAnalysis
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle, bigDivElement, map);
             CommonAnalysisUtil.makeEmpty(map, "医生签名");
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
@@ -45,7 +45,7 @@ public class NingHaiYiYiOperationHtmlAnalysis implements NingHaiYiYiHtmlAnalysis
             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("提醒:有创诊疗操作记录内容包括操作名称、时间、步骤、结果及患者的一般情况,记录操作过","")
                 .replace("程是否顺利,有无不良反应,术后注意事项,操作医师签名、记录时间等。","")

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

@@ -28,7 +28,9 @@ public class NingHaiYiYiOperationRecordHtmlAnalysis implements NingHaiYiYiHtmlAn
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            NingHaiYiYiHtmlAnalysisUtil.tableStyle1InsertMap(Jsoup.parse(html).selectFirst("body").child(0).getElementById("header"), map);
+            map.forEach((key, value) -> map.put(key, value.replace("\n", "")));
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.mapValueRemoveStartColon(map);
             String operatingCrew = null;
@@ -76,8 +78,9 @@ public class NingHaiYiYiOperationRecordHtmlAnalysis implements NingHaiYiYiHtmlAn
         text = text.replaceAll("第1页", "");
         List<String> titles = Lists.newArrayList(
                 "姓名", "性别", "出生日期", "出生年月", "科别", "科室", "病区", "床号", "床位", "住院号",
-                "手术时间", "手术日期", "术前诊断", "手术指征", "手术人员", "麻醉方式", "麻醉人员", "麻 醉 者", "洗手护士", "本次手术是否属于非计划再次手术", "接生者",
-                "术前胎心", "手术名称", "术后诊断", "手术者及助手名称", "术中取病理标本", "麻醉方法", "诊断手术/操作简要经过(包括术中有无并发症及具体描述和处理)", "手术经过",
+                "手术时间", "手术日期", "术前诊断", "手术指征", "手术人员", "外邀指导专家","麻醉方式", "麻醉人员", "麻 醉 者", "洗手护士", "本次手术是否属于非计划再次手术", "接生者",
+                "术前胎心", "手术名称", "术后诊断", "手术者及助手名称", "术中取病理标本", "麻醉方法", "手术经过(包括病人体位、切口处理、病灶所见及手术步骤等)",
+                "诊断手术/操作简要经过(包括术中有无并发症及具体描述和处理)", "手术经过","医师签名",
                 "医生签名", "记录时间", "时间", "手术/操作医生", "记录者", "术中输血", "术前宫颈准备日期", "药物名称及用法", "导管或其他", "插入深度",
                 "阴道填塞纱布条", "准备者", "取出日期", "手术方法", "术中特殊情况", "病理检查", "其他", "记录者", "手术者",
                 "检查子宫位置"

+ 15 - 15
trans/src/main/java/com/lantone/qc/trans/ninghaiyiyi/util/NingHaiYiYiPreoperativeHtmlAnalysis.java

@@ -28,7 +28,7 @@ public class NingHaiYiYiPreoperativeHtmlAnalysis implements NingHaiYiYiHtmlAnaly
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(bigDivElement, map);
 
             NingHaiYiYiHtmlAnalysisUtil.mapValueRemoveStartColon(map);
@@ -45,26 +45,26 @@ public class NingHaiYiYiPreoperativeHtmlAnalysis implements NingHaiYiYiHtmlAnaly
         }*/
         String text = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
 
-        int index1 = text.lastIndexOf("经治医签名");
-        int index2 = text.lastIndexOf("主刀医签名");
+        int index1 = text.lastIndexOf("经治医签名");
+        int index2 = text.lastIndexOf("主刀医签名");
         if (index1 != -1 && index2 != -1) {
             text = text.substring(0, index1).replace("(如高血压病、冠心病、糖尿病、脑梗、心梗、心肺肝肾功能不全,口服抗凝药", "").replace("等)", "")
                     .replace("(如腹腔镜可能改开腹等)", "").replace("(如腹腔镜可能改开腹", "").replace("皮瓣转移术可能的变更方案","")
                     .replace("四级手术、疑难手术等必须填写以下“具体讨论意见”,作为科室三大讨论本留存资料", "")
                     .replace("术后术后", "术后")
-                    + text.substring(index1, index2).replace("签字时间", "经治医生签字时间").replace("年月日时分", "")
-                    + text.substring(index2).replace("签字时间", "主刀医生签字时间").replace("年月日时分", "");
+                    + text.substring(index1, index2).replace("签字时间", "经治医师签字时间:").replace("年月日时分", "")
+                    + text.substring(index2).replace("签字时间", "主刀医师签字时间:").replace("年月日时分", "");
         }
         text = text.replace("术前讨论及术前小结", "").replace("讨论结论:", "").replace("年月日时\n" +
-                "分", "");
+                "分", "").replace("二、","");
         List<String> titles = Lists.newArrayList("姓名", "性别", "出生日期", "出生年月", "科别", "科室", "病区", "床号", "床位", "住院号",
-                "讨论时间", "讨论方式", "参加人员", "简要病情", "具体讨论意见",
-                "1.术前诊断", "2.手术指征与禁忌征", "3.可替代方案", "4.拟施手术方式(名称)及可能的变更方案", "5.计划性多次手术",
-                "5.本次手术是否属于计划性多次手术",
-                "5.拟施麻醉方式", "6.术前特殊准备", "7.主要术中、术后风险及防范措施", "8.术中、术后注意事项(含护理事项)",
+                "讨论时间", "讨论方式", "参加人员", "一、简要病情", "具体讨论意见","1.术前诊断","2.手术指征与禁忌征","3.可替代方案",
+                "1.术前诊断", "2.手术指征与禁忌征", "3.可替代方案", "4.拟施手术方式(名称)及可能的变更方案","4.拟施手术方式、名称及可能的变更","5.计划性多次手术",
+                "5.本次手术是否属于计划性多次手术", "5.拟施麻醉方式", "6.术前特殊准备", "7.主要术中、术后风险及防范措施", "8.术中、术后注意事项(含护理事项)",
+                "5.计划性多次手术","6.拟施麻醉方式","7.术前特殊准备","8.主要术中、术后风险及防范措施","9.术中、术后注意事项(含护理事项)",
                 "6.拟施麻醉方式", "7.术前特殊准备", "8.主要术中、术后风险及防范措施", "9.术中、术后注意事项(含护理事项)",
                 "术前诊断", "手术指征", "拟施手术名称及方式", "拟施麻醉方式", "其他术前相关情况", "注意事项",
-                "经治医生签名", "经治医生签字时间", "主刀医生签名", "医生签名", "主刀医生签字时间", "签字时间");
+                "经治医师签名", "经治医师签字时间", "主刀医师签名", "医生签名", "主刀医师签字时间", "签字时间");
         CommonAnalysisUtil.cutByTitles(text, titles, 0, map);
         CommonAnalysisUtil.processType(map, "5.计划性多次手术");
         CommonAnalysisUtil.processType(map, "5.本次手术是否属于计划性多次手术");
@@ -80,13 +80,13 @@ public class NingHaiYiYiPreoperativeHtmlAnalysis implements NingHaiYiYiHtmlAnaly
      * @param map
      */
     private void signatureTime(Map<String, String> map) {
-        String goCureDoctor = map.get("经治医签字时间");
-        String operateDoctor = map.get("主刀医签字时间");
+        String goCureDoctor = map.get("经治医签字时间");
+        String operateDoctor = map.get("主刀医签字时间");
         if (StringUtil.isNotBlank(goCureDoctor) && goCureDoctor.contains("年 月 日 时 分")) {
-            map.put("经治医签字时间", goCureDoctor.replace("年 月 日 时 分", ""));
+            map.put("经治医签字时间", goCureDoctor.replace("年 月 日 时 分", ""));
         }
         if (StringUtil.isNotBlank(operateDoctor) && operateDoctor.contains("年 月 日 时 分")) {
-            map.put("主刀医签字时间", operateDoctor.replace("年 月 日 时 分", ""));
+            map.put("主刀医签字时间", operateDoctor.replace("年 月 日 时 分", ""));
         }
     }
 

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiRescueHtmlAnalysis implements NingHaiYiYiHtmlAnalysis {
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle,bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
@@ -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);

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiStagesSummaryHtmlAnalysis implements NingHaiYiYiHtmlAnal
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle, bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
@@ -44,10 +44,10 @@ 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(
-                "病情记录"
+                "病情记录","医生签名","医师签名"
         );
         titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
         CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, map);

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

@@ -31,7 +31,7 @@ public class NingHaiYiYiThreeLevelWardHtmlAnalysis implements NingHaiYiYiHtmlAna
             String recTitle = args[1];
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
-            Element bigDivElement = doc.selectFirst("body").child(0);
+            Element bigDivElement = doc.selectFirst("body").child(0).getElementById("main");
             if (bigDivElement.childNodeSize() == 1) {
                 bigDivElement = bigDivElement.child(0);
             }
@@ -41,7 +41,13 @@ public class NingHaiYiYiThreeLevelWardHtmlAnalysis implements NingHaiYiYiHtmlAna
             String htmlText = NingHaiYiYiHtmlAnalysisUtil.blockDivToStr(bigDivElement, true);
             htmlText = htmlText.replace("注意:上级医师查房主要记 录:患者病情、诊断、鉴别诊断、当前治疗措施和疗效的分析及下一步诊疗意见等,能反应上级医 师的水平。", "")
                     .replace("提醒:有创诊疗操作记录内容包括操作名称、时间、步骤、结果及患者的一般情况,记录操作过 程是否顺利,有无不良反应,术后注意事项,操作医师签名、记录时间等。 手术室完成的、治疗性质的及全麻下完成的有创诊疗操作参照手术管理。(包括介入治疗、胃肠镜 下肿瘤切除/粘膜下肿瘤剥除等)", "");
-            CommonAnalysisUtil.extractWardInfo(recTitle, htmlText, structureMap);
+            CommonAnalysisUtil.NHExtractWardInfo(recTitle, htmlText, structureMap);
+            String bqjlText = "病情记录" + structureMap.get("病情记录");
+            List<String> titles = Lists.newArrayList(
+                    "病情记录","医生签名","医师签名"
+            );
+            titles = CommonAnalysisUtil.sortTitlesNoColon(titles, bqjlText);
+            CommonAnalysisUtil.cutByTitlesNoColon(bqjlText, titles, 0, structureMap);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {
             log.error(e.getMessage(), e);

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiTransferIntoHtmlAnalysis implements NingHaiYiYiHtmlAnaly
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle, bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
@@ -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(
                 "病情记录", "医师签名", "医师签字"

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

@@ -27,7 +27,7 @@ public class NingHaiYiYiTransferOutHtmlAnalysis implements NingHaiYiYiHtmlAnalys
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];
-            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0);
+            Element bigDivElement = Jsoup.parse(html).selectFirst("body").child(0).getElementById("main");
             analysisGeneral(recTitle, bigDivElement, map);
             NingHaiYiYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);
         } catch (Exception e) {
@@ -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(
                 "病情记录",