Selaa lähdekoodia

黔东南项目修改解析数据

xuejiafu 3 vuotta sitten
vanhempi
commit
160a16c8e9

+ 49 - 23
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/qdnzyy/QdnzyyXmlUtil.java

@@ -1,14 +1,19 @@
 package com.lantone.qc.dbanaly.facade.qdnzyy;
 
+import com.alibaba.druid.sql.visitor.functions.If;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.lantone.qc.pub.util.FileUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.aspectj.weaver.ast.Var;
 import org.dom4j.Document;
 import org.dom4j.DocumentHelper;
 import org.dom4j.Element;
+import org.dom4j.Node;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -20,35 +25,45 @@ import java.util.Map;
 @Slf4j
 public class QdnzyyXmlUtil {
 
-    public static Map<String, String> xmlToMap(String xml) {
+    public static Map<String, String> xmlToMap(String xml,String modeId) {
         Map<String, String> map = Maps.newHashMap();
         try {
+            String  text = "";
             Document doc = DocumentHelper.parseText(xml);
-//            Element root = (Element) doc.selectSingleNode("//CDR/body/Element[@xsi:type='XTextBody']/XElements");
-            Element root = (Element) doc.selectSingleNode("//CDR/body/structureBody/component/table");
-            findElement(root, "paragraph").forEach(i -> {
-                xInputField(map, i, null);
-            });
-            findElement(root, "paragraph").forEach(tableElement -> {
-                String tablePreTxt = getElementPreVal(tableElement);
-                findElement(tableElement.element("XElements"), "XTextTableRow").forEach(rowElement -> {
-                    findElement(rowElement.element("XElements"), "XTextTableCell").forEach(cellElement -> {
-                        findElement(cellElement.element("XElements"), "XInputField").forEach(xInputFieldElement -> {
-                            xInputField(map, xInputFieldElement, tablePreTxt);
-                        });
-                    });
-                });
-            });
-            Element bodyTextElement = (Element) doc.selectSingleNode("//XTextDocument/BodyText");
-            String bodyText = bodyTextElement.getText();
-            map.put("原始文本", bodyText);
+
+            //根据modeId进入不同的解析模块
+            boolean jieXi = true;
+            if ("7".equals(modeId)){
+                jieXi = false;
+            }
+            if (jieXi){
+                Element root = (Element) doc.selectSingleNode("//CDR/body/structureBody/component");
+                for (Element i : findElement(root, "paragraph")) {
+                    text = textContent(i,text);
+                }
+                for (Element i : findElement(root, "table")) {
+                        for (Element a: findElement(i,"paragraph")) {
+                            text = textContent(a,text);
+                        }
+                    }
+            }else{
+                Element root = (Element) doc.selectSingleNode("//CDR/body/structureBody/component/section/text");
+                for (Element i : findElement(root, "paragraph")) {
+                    text = textContent(i,text);
+                }
+                for (Element i : findElement(root, "table")) {
+                    for (Element a: findElement(i,"paragraph")) {
+                        text = textContent(a,text);
+                    }
+                }
+            }
+
+            map.put("文书内容",text);
+
         } catch (Exception e) {
             e.printStackTrace();
             map.clear();
         }
-//        map.keySet().forEach(key -> {
-//            System.out.println(key + "----" + map.get(key));
-//        });
         return map;
     }
 
@@ -150,7 +165,18 @@ public class QdnzyyXmlUtil {
     }
 
     public static void main(String[] args) {
-        xmlToMap(FileUtil.fileRead("C:\\Users\\DELL\\Desktop\\qdnzyy\\ruyuanjl.xml"));
+        String s = FileUtil.fileRead("C:\\Users\\DELL\\Desktop\\qdnzyy\\ruyuanjl.xml");
+//        xmlToMap(FileUtil.fileRead("C:\\Users\\DELL\\Desktop\\qdnzyy\\ruyuanjl.xml"));
+    }
+
+
+
+    public static String textContent(Element element, String text){
+        if (StringUtil.isNotBlank(element.getTextTrim())){
+            String s = element.getTextTrim();
+            text = text+" "+s;
+        }
+        return text;
     }
 
 }

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

@@ -5,9 +5,9 @@ spring:
     druid:
       lantone:
         driver-class-name: com.mysql.jdbc.Driver
-        url: jdbc:mysql://127.0.0.1:3306/qc?useUnicode=true&characterEncoding=utf8&useSSL=false
+        url: jdbc:mysql://192.168.0.111:3306/qc?useUnicode=true&characterEncoding=utf8&useSSL=false
         username: root
-        password: langtong
+        password: lantone
         initial-size: 8
         min-idle: 1
         max-active: 20
@@ -28,7 +28,7 @@ spring:
     database:
       cache: 10 # cache索引
       token: 10 # Token索引
-    host: 127.0.0.1  #Redis服务器地址
+    host: 192.168.0.111  #Redis服务器地址
     port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
     password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
@@ -42,16 +42,16 @@ spring:
 xml-is-encryped: true
 
 CRF:
-  url: http://127.0.0.1:13456/api/mr_info_ex/entity_predict
+  url: http://192.168.0.112:3456/api/mr_info_ex/entity_predict
 
 Similarity:
-  url: http://127.0.0.1:13456/api/mr_info_ex/similarity
+  url: http://192.168.0.112:3456/api/mr_info_ex/similarity
 
 NewSimilarity:
-  url: http://127.0.0.1:12323/api/similarity
+  url: http://192.168.0.112:23232/api/similarity
 
 NewBatchSimilarity:
-  url: http://127.0.0.1:12323/api/similarity_batch
+  url: http://192.168.0.112:23232/api/similarity_batch
 
 ChiefPresentSimilarity:
-  url: http://127.0.0.1:13456/api/mr_info_ex/chief_present_similarity
+  url: http://192.168.0.112:3456/api/mr_info_ex/chief_present_similarity

+ 10 - 5
dbanaly/src/main/resources/application-test.yml

@@ -42,16 +42,21 @@ spring:
 xml-is-encryped: true
 
 CRF:
-  url: http://192.168.2.234:3456/api/mr_info_ex/entity_predict
+#  url: http://192.168.2.234:3456/api/mr_info_ex/entity_predict
+  url: http://223.93.170.82:23456/api/mr_info_ex/entity_predict
 
 Similarity:
-  url: http://192.168.2.234:3456/api/mr_info_ex/similarity
+#  url: http://192.168.2.234:3456/api/mr_info_ex/similarity
+  url: http://223.93.170.82:23456/api/mr_info_ex/similarity
 
 NewSimilarity:
-  url: http://192.168.2.234:23232/api/similarity
+#  url: http://192.168.2.234:23232/api/similarity
+  url: http://223.93.170.82:23232/api/similarity
 
 NewBatchSimilarity:
-  url: http://192.168.2.234:23232/api/similarity_batch
+#  url: http://192.168.2.234:23232/api/similarity_batch
+  url: http://223.93.170.82:23232/api/similarity_batch
 
 ChiefPresentSimilarity:
-  url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity
+#  url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity
+  url: http://223.93.170.82:23456/api/mr_info_ex/chief_present_similarity

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

@@ -21,7 +21,7 @@ spring:
     active: local
 
 qc:
-  hospital_id: 1,2,3,4,5,6,7,8,10,11,13,15,20,34,35,36,37
+  hospital_id: 1,2,3,4,5,6,7,8,10,11,13,15,20,34,35,36,37,38
 
 logging:          # 日志
   config: classpath:logback-spring.xml

+ 50 - 40
trans/src/main/java/com/lantone/qc/trans/qdnzyy/BeHospitalizedDocTrans.java

@@ -45,50 +45,54 @@ public class BeHospitalizedDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
-            String text = sourceMap.get("原始文本").replace(":", ":").replaceAll("■", "");
+            String text = sourceMap.get("文书内容").replace(":", ":").replaceAll("■", "")
+                    .replace("体 格 检 查","体 格 检 查:").replace("专 科 情 况","专 科 情 况:");
             List<String> titles = Lists.newArrayList(
-                    "其    它", "一般情况", "关系", "可靠程度", "可 靠 度",
-                    "住    址", "电    话", "出 生 地", "生    于", "入 院 于",
-                    "既往史", "主    诉", "陈 述 者", "籍    贯", "记录日期",
-                    "民    族", "入院时间", "年    龄", "联系电话", "医师签名", "记录时间",
-                    "产科检查");//"供 史 者",
+                    "主诉", "现病史", "个人史(出生地、长期居留地)", "既往史",
+//                    "传染病史", "预防接种史", "手术外伤史", "输血史", "药物及食物过敏史",
+                    "个人史(出生地、长期居留地)","个人史",
+//                    "是否到过疫区", "职业和工作条件", "生活习惯及嗜好", "冶游史",
+                    "婚姻史","婚育史","婚姻史和生育史","月经史","月经史和生育史","婚姻史及生育史",
+                    "家族史", "体  格  检  查","体 格 检 查", "专  科  情  况","专 科 情 况", "辅助检查", "初步诊断", "住院医师签名",
+                    "上级医师签名","日期", "姓名", "性别", "年龄", "民族","出生地", "身份证号", "婚姻", "职业", "工作单位",
+                    "住址", "病史陈述者", "可靠性", "费用类别", "入院日期","病史采集日期","病史记录日期");//"供 史 者",
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
 //            sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-            String rec_title = contentMap.get("recTitle").toString();
-            if ("产科住院病历(互联互通)".equals(rec_title)) sourceMap.put("病人性别", "女");
-            sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-            String docker_signatures = sourceMap.get("医师签名");
-            if (StringUtils.isNotBlank(docker_signatures)) {
-                String[] docker_signature = docker_signatures.split(" ");
-                if (docker_signature.length > 1) sourceMap.put("医师签名", docker_signature[0]);
-            }
-            if (StringUtils.isNotBlank(sourceMap.get("记录时间"))) {
-                String[] split = sourceMap.get("记录时间").split(" ");
-                if (split.length >= 2) {
-                    String rec_time = split[0] + " " + split[1];
-                    sourceMap.put("记录时间", rec_time);
-                }
-            }
+//            String rec_title = contentMap.get("recTitle").toString();
+//            if ("产科住院病历(互联互通)".equals(rec_title)) sourceMap.put("病人性别", "女");
+//            sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+//            String docker_signatures = sourceMap.get("医师签名");
+//            if (StringUtils.isNotBlank(docker_signatures)) {
+//                String[] docker_signature = docker_signatures.split(" ");
+//                if (docker_signature.length > 1) sourceMap.put("医师签名", docker_signature[0]);
+//            }
+//            if (StringUtils.isNotBlank(sourceMap.get("记录时间"))) {
+//                String[] split = sourceMap.get("记录时间").split(" ");
+//                if (split.length >= 2) {
+//                    String rec_time = split[0] + " " + split[1];
+//                    sourceMap.put("记录时间", rec_time);
+//                }
+//            }
 
-            String date_of_birth = sourceMap.get("出生日期");
-            String age = sourceMap.get("年龄");
-            if (StringUtils.isBlank(age) && StringUtils.isNotBlank(date_of_birth)) {
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
-                try {
-                    Date date_birth = sdf.parse(date_of_birth);
-                    long time = date_birth.getTime();
-                    long currentTimeMillis = System.currentTimeMillis();
-                    long abs = Math.abs(currentTimeMillis - time);
-                    long age1 = abs / 1000 / 60 / 60 / 24 / 365;
-                    sourceMap.put("年龄", age1 + "");
-                } catch (ParseException e) {
-                    e.printStackTrace();
-                }
-            }
+//            String date_of_birth = sourceMap.get("出生日期");
+//            String age = sourceMap.get("年龄");
+//            if (StringUtils.isBlank(age) && StringUtils.isNotBlank(date_of_birth)) {
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
+//                try {
+//                    Date date_birth = sdf.parse(date_of_birth);
+//                    long time = date_birth.getTime();
+//                    long currentTimeMillis = System.currentTimeMillis();
+//                    long abs = Math.abs(currentTimeMillis - time);
+//                    long age1 = abs / 1000 / 60 / 60 / 24 / 365;
+//                    sourceMap.put("年龄", age1 + "");
+//                } catch (ParseException e) {
+//                    e.printStackTrace();
+//                }
+//            }
 
             structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
             OrdinaryAssistant.removeBlank(structureMap);
@@ -108,19 +112,25 @@ public class BeHospitalizedDocTrans extends ModelDocTrans {
 
     private List<String> keyContrasts = Lists.newArrayList(
             "患者姓名=姓名", "病人姓名=姓名", "生于=出生日期", "电话=联系电话",
+            "个人史(出生地、长期居留地)=个人史",
             "国籍=籍贯",
             "病人性别=性别",
             "患者现住址=住址",
             "工作单位名称=工作单位",
-            "婚姻状况=婚姻", "婚姻=婚姻",
+            "婚姻史=婚育史",
+            "婚姻=婚姻史",
+            "婚姻史和生育史=婚育史",
+            "婚姻史及生育史=婚育史",
             "供史者=病史陈述者", "陈述者=病史陈述者",
             "入院诊断=初步诊断", "初步诊断西医诊断名称=初步诊断",
-            "医师签名=记录医生",
+            "住院医师签名=记录医生",
             "现病史1=现病史",
             "入院情况=现病史",
             "工作单位名称=职业",
             "产科检查=专科检查",
-            "签名时间=记录时间"
+            "病史记录日期=记录日期",
+            "病史采集日期=病史采集时间",
+            "日期=记录时间"
     );
     /*
      "初步诊断医师=初步诊断医师签名",

+ 11 - 10
trans/src/main/java/com/lantone/qc/trans/qdnzyy/ConsultationDocTrans.java

@@ -3,6 +3,7 @@ package com.lantone.qc.trans.qdnzyy;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.facade.shengzhouzz.ShengzhouyyXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationApplicationDoc;
@@ -91,13 +92,13 @@ public class ConsultationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
 
             //按指定标题切词
-            List<String> titles = Lists.newArrayList("记录医师", "会诊意见的执行情况", "会诊医师",
-                    "会诊科室", "会诊时间", "会诊意见","会诊原因");
-            String text = sourceMap.get("原始文本");
+            List<String> titles = Lists.newArrayList("会诊意见", "会诊医师签名", "日期",
+                    "姓名", "性别", "年龄","住院号","科别","床号","会诊科室","是否急会诊","接到会诊单时间","会诊时间","会诊医师","会诊医师职称");
+            String text = sourceMap.get("文书内容").replaceAll(":",":");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
 
@@ -114,9 +115,9 @@ public class ConsultationDocTrans extends ModelDocTrans {
 
     // 会诊记录映射字段
     private List<String> consultationRecord_keyContrasts = Lists.newArrayList(
-            "会诊意见的执行情况=会诊情况",
-            "记录医师=记录医生",
-            "病程时间=记录时间"
+            "会诊意见=简要病情",
+            "会诊医师=记录医生",
+            "日期=记录时间"
             /*"事件日期=记录时间",
             "医生=记录医师",
             "会诊意见的执行情况=会诊情况",
@@ -153,10 +154,10 @@ public class ConsultationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             List<String> titles = Lists.newArrayList("会诊记录", "会诊科室", "会诊医师", "会诊意见",
                     "会诊后采取措施", "记录医师", "会诊原因","会诊时间","记录时间","会诊意见的执行情况");
-            String text = sourceMap.get("原始文本");
+            String text = sourceMap.get("文书内容");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
@@ -215,7 +216,7 @@ public class ConsultationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
             sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/qdnzyy/CriticallyIllNoticeDocTrans.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.trans.qdnzyy;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.facade.shengzhouzz.ShengzhouyyXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.CriticallyIllNoticeDoc;
@@ -35,7 +36,7 @@ public class CriticallyIllNoticeDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             List<String> titles = Lists.newArrayList("防范措施","","目前病情");
             String text = sourceMap.get("原始文本");

+ 11 - 3
trans/src/main/java/com/lantone/qc/trans/qdnzyy/DeathCaseDiscussDocTrans.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.trans.qdnzyy;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.facade.shengzhouzz.ShengzhouyyXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.DeathCaseDiscussDoc;
@@ -8,6 +9,7 @@ import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.MapUtil;
 import com.lantone.qc.trans.ModelDocTrans;
+import com.lantone.qc.trans.comsis.CommonAnalysisUtil;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import org.apache.commons.lang3.StringUtils;
 
@@ -28,13 +30,19 @@ public class DeathCaseDiscussDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
             sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-            String moderator_summary_opinions = sourceMap.get("主持人总结意见");
+            String text = sourceMap.get("文书内容").replace(":", ":").replaceAll("■", "");
+            List<String> titles = Lists.newArrayList("主持人(姓名及职称)","参加人员(姓名及职称)","讨论内容(具体讨论意见和主持人小结意见)",
+                    "总结发言","记录人(签名)","日期","讨论日期","讨论地点","患者姓名","性别","年龄","住院号","入院日期","死亡时间","职业","住址","入院诊断"
+                    );
+            List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
+            CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
+            String moderator_summary_opinions = sourceMap.get("总结发言");
             if (StringUtils.isNotBlank(moderator_summary_opinions)){
-                String[] split = moderator_summary_opinions.split("死亡原因:");
+                String[] split = moderator_summary_opinions.split("死亡原因考虑:");
                 sourceMap.put("主持人小结",split[0]);
                 sourceMap.put("死亡诊断",split[1]);
             }

+ 11 - 10
trans/src/main/java/com/lantone/qc/trans/qdnzyy/DifficultCaseDiscussDocTrans.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.trans.qdnzyy;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.facade.yiwu.YiWuXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.DifficultCaseDiscussDoc;
@@ -36,21 +37,21 @@ public class DifficultCaseDiscussDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = YiWuXmlUtil.xmlToMap(content);
-            List<String> titles = Lists.newArrayList("讨论日期", "讨论意见", "地点", "主持人", "参加人员的姓名及专业技术职务", "主持人小结",
-                    "记录医师", "记录医师签名", "主持人签名", "汇报病情", "讨论目的", "讨论时间","参加人员","入院诊断",
-                    "讨论摘要","讨论内容");
-            String text = sourceMap.get("原始文本");
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
+            List<String> titles = Lists.newArrayList("主持人(姓名及职称)", "参加人员(姓名及职称)", "讨论内容(具体讨论意见和主持人小结意见)", "记录人(签名)", "日期", "讨论时间",
+                    "讨论地点", "姓名", "性别", "年龄", "职业", "住院号","入院日期","住址",
+                    "诊断");
+            String text = sourceMap.get("文书内容");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
             sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-            String talk_time = sourceMap.get("讨论时间");
-            if (StringUtils.isNotBlank(talk_time)) {
-                String[] split = talk_time.split(" ");
-                if (split.length > 0) sourceMap.put("讨论时间", split[0]);
-            }
+//            String talk_time = sourceMap.get("讨论时间");
+//            if (StringUtils.isNotBlank(talk_time)) {
+//                String[] split = talk_time.split(" ");
+//                if (split.length > 0) sourceMap.put("讨论时间", split[0]);
+//            }
             structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
         }
 

+ 14 - 11
trans/src/main/java/com/lantone/qc/trans/qdnzyy/FirstCourseRecordDocTrans.java

@@ -2,6 +2,7 @@ package com.lantone.qc.trans.qdnzyy;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.facade.shengzhouzz.ShengzhouyyXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
@@ -34,13 +35,13 @@ public class FirstCourseRecordDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             /*List<String> titles = Lists.newArrayList("病历记录时间", "一般情况", "一、病例特点", "二、初步诊断", "三、诊断依据"
                     , "四、鉴别诊断", "五、诊疗计划", "主诊医师", "记录医师", "审核医师");*/
-            List<String> titles = Lists.newArrayList("病历记录时间", "一般情况", "病例特点", "1.初步诊断", "2.诊断依据"
-                    , "3.鉴别诊断", "三、诊疗计划", "主诊医师", "记录医师", "审核医师","二、拟诊讨论");
-            String text = sourceMap.get("原始文本");
+            List<String> titles = Lists.newArrayList("病史特点(症状体征及辅助检查)", "入院初步诊断", "诊断依据", "鉴别诊断", "诊疗计划"
+                    , "住院医师签名", "上级医师签名", "日期", "姓名", "性别","年龄","民族", "婚姻", "职业","工作单位","住址","入院日期","记录完成日期");
+            String text = sourceMap.get("文书内容");
             titles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, titles, 0, sourceMap);
             //新生儿科特殊处理
@@ -66,11 +67,11 @@ public class FirstCourseRecordDocTrans extends ModelDocTrans {
             structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
         }
 
-        structureMap.put("诊疗计划-crf", MapUtil.getSelectString(structureMap, Arrays.asList(
-                "检查计划",
-                "治疗计划和措施"
-                ))
-        );
+//        structureMap.put("诊疗计划-crf", MapUtil.getSelectString(structureMap, Arrays.asList(
+//                "检查计划",
+//                "治疗计划和措施"
+//                ))
+//        );
 
         // 诊疗计划
         FirstCourseRecordDoc firstCourseRecordDoc = ModelDocGenerate.firstCourseRecordDocGen(structureMap);
@@ -85,8 +86,9 @@ public class FirstCourseRecordDocTrans extends ModelDocTrans {
             "本人姓名=姓名",
             "现病史- 发病情况=现病史",
             "现病史- 发病情况=现病史",
-            "医生=记录医生",
             "治疗计划和措施=治疗计划",
+            "病史特点(症状体征及辅助检查)=病例特点",
+            "入院初步诊断=初步诊断",
             "体温(耳)=体温耳",
             "体温(口)=体温口",
             "病程时间=病历日期",
@@ -95,6 +97,7 @@ public class FirstCourseRecordDocTrans extends ModelDocTrans {
             "一般情况=病历内容",
             "3.鉴别诊断=鉴别诊断",
             "1.初步诊断=初步诊断",
-            "2.诊断依据=诊断依据","患者基本情况=病历内容"
+            "2.诊断依据=诊断依据","患者基本情况=病历内容",
+            "住院医师签名=记录医生"
     );
 }

+ 31 - 13
trans/src/main/java/com/lantone/qc/trans/qdnzyy/LeaveHospitalDocTrans.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.trans.qdnzyy;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.facade.shengzhouzz.ShengzhouyyXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
@@ -11,6 +12,7 @@ import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.trans.comsis.CommonAnalysisUtil;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import org.apache.commons.lang3.StringUtils;
+import org.aspectj.weaver.ast.Var;
 
 import java.util.List;
 import java.util.Map;
@@ -26,27 +28,40 @@ public class LeaveHospitalDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             /*List<String> titles = Lists.newArrayList("入院时间", "出院时间", "住院天数", "入院诊断", "出院诊断"
                     , "入院情况", "住院经过", "出院情况", "出院医嘱", "记录医生","记录时间", "出院指导");*/
 //        随访计划:随访日期:2021年03月21日;随访周期建议:每2周;随访方式:电话
-            List<String> titles = Lists.newArrayList("出院医嘱", "出院指导", "随访日期", "随访计划", "医生签名", "时    间", "一般随访比例");
-            String text = sourceMap.get("原始文本");
+            List<String> titles = Lists.newArrayList("入院情况", "入院诊断", "诊疗经过", "出院诊断", "出院情况", "出院医嘱", "带组医生姓名",
+                    "带组医生电话","管床医生姓名","管床医生电话","医院随访电话","住院医师签名","上级医师签名","姓名","性别","年龄","民族","婚姻","出生地","科室及床号",
+                    "职业","工作单位","住址","入院日期","出院日期","住院天数");
+            String text = sourceMap.get("文书内容").replaceAll(":",":");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
             sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-            String follow_up_date = sourceMap.get("随访日期");
-            String general_follow_up_ratio = sourceMap.get("一般随访比例");
-            if (StringUtils.isNotBlank(follow_up_date)) {
-                if (StringUtils.isNotBlank(general_follow_up_ratio)) {
-                    sourceMap.put("随访日期", "随访日期:" + follow_up_date + " " + "一般随访比例:" + general_follow_up_ratio);
-                }
-                sourceMap.put("随访日期", "随访日期:" + follow_up_date);
-            } else {
-                sourceMap.put("一般随访比例", "一般随访比例:" + general_follow_up_ratio);
+//            String follow_up_date = sourceMap.get("随访日期");
+//            String general_follow_up_ratio = sourceMap.get("一般随访比例");
+//            if (StringUtils.isNotBlank(follow_up_date)) {
+//                if (StringUtils.isNotBlank(general_follow_up_ratio)) {
+//                    sourceMap.put("随访日期", "随访日期:" + follow_up_date + " " + "一般随访比例:" + general_follow_up_ratio);
+//                }
+//                sourceMap.put("随访日期", "随访日期:" + follow_up_date);
+//            } else {
+//                sourceMap.put("一般随访比例", "一般随访比例:" + general_follow_up_ratio);
+//            }
+            if (StringUtil.isNotBlank(sourceMap.get("住院医师签名"))&&sourceMap.get("住院医师签名").contains("日期")){
+                sourceMap.put("住院医师签名日期",sourceMap.get("住院医师签名").substring(sourceMap.get("住院医师签名").indexOf(":")+1));
+                sourceMap.put("住院医师签名",sourceMap.get("住院医师签名").substring(0, sourceMap.get("住院医师签名").indexOf("日期:")));
             }
+            if (StringUtil.isNotBlank(sourceMap.get("上级医师签名"))&&sourceMap.get("上级医师签名").contains("日期")){
+                sourceMap.put("上级医师签名日期",sourceMap.get("上级医师签名").substring(sourceMap.get("上级医师签名").indexOf(":")+1));
+                sourceMap.put("上级医师签名",sourceMap.get("上级医师签名").substring(0, sourceMap.get("上级医师签名").indexOf("日期:")));
+            }
+
+
+
             structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
         }
         LeaveHospitalDoc leaveHospitalDoc = new LeaveHospitalDoc();
@@ -70,7 +85,10 @@ public class LeaveHospitalDocTrans extends ModelDocTrans {
     private List<String> keyContrasts = Lists.newArrayList(
             "时    间=时间",
             "随访日期=随访计划",
-            "一般随访比例=随访计划"
+            "一般随访比例=随访计划",
+            "诊疗经过=诊治经过",
+            "住院医师签名=记录医生",
+            "住院医师签名日期=记录时间"
          /*   "本人姓名=姓名",
             "实际住院天数=住院天数",
             "出院时情况=出院情况",

+ 13 - 13
trans/src/main/java/com/lantone/qc/trans/qdnzyy/OperationDocTrans.java

@@ -3,7 +3,7 @@ package com.lantone.qc.trans.qdnzyy;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import com.lantone.qc.dbanaly.facade.shengzhouzz.ShengzhouyyXmlUtil;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.operation.*;
 import com.lantone.qc.pub.model.vo.MedrecVo;
@@ -42,14 +42,14 @@ public class OperationDocTrans extends ModelDocTrans {
         Map<String, OperationRecordDoc> operationRecordDocMap = getOperationRecordDocMap((List) contentMap.get("手术记录"));
         Map<String, PreoperativeDiscussionDoc> preoperativeDiscussionDocMap = getPreoperativeDiscussionDocMap((List) contentMap.get("术前讨论、术前小结"));
         Map<String, OperationInformedConsentDoc> operationInformedConsentDocMap = getOperationInformedConsentDocMap((List) contentMap.get("手术知情同意书"));
-        //Map<String, OperationSafetyChecklistDoc> operationSafetyChecklistDocMap = getOperationSafetyChecklistDocMap((List) contentMap.get("手术安全核查表"));
+        Map<String, OperationSafetyChecklistDoc> operationSafetyChecklistDocMap = getOperationSafetyChecklistDocMap((List) contentMap.get("手术安全核查表"));
 
         Set<String> operationNameSet = Sets.newHashSet();
         operationNameSet.addAll(operationDiscussionDocMap.keySet());
         operationNameSet.addAll(operationRecordDocMap.keySet());
         operationNameSet.addAll(preoperativeDiscussionDocMap.keySet());
         operationNameSet.addAll(operationInformedConsentDocMap.keySet());
-        //operationNameSet.addAll(operationSafetyChecklistDocMap.keySet());
+        operationNameSet.addAll(operationSafetyChecklistDocMap.keySet());
 
         operationNameSet.forEach(operationName -> {
             OperationDoc operationDoc = new OperationDoc();
@@ -58,7 +58,7 @@ public class OperationDocTrans extends ModelDocTrans {
             operationDoc.setOperationRecordDoc(operationRecordDocMap.get(operationName));
             operationDoc.setPreoperativeDiscussionDoc(preoperativeDiscussionDocMap.get(operationName));
             operationDoc.setOperationInformedConsentDoc(operationInformedConsentDocMap.get(operationName));
-            //operationDoc.setOperationSafetyChecklistDoc(operationSafetyChecklistDocMap.get(operationName));
+            operationDoc.setOperationSafetyChecklistDoc(operationSafetyChecklistDocMap.get(operationName));
             retList.add(operationDoc);
         });
         return retList;
@@ -93,7 +93,7 @@ public class OperationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             List<String> titles = Lists.newArrayList(
                     "术后处理措施", "医师签名", "患方签名",
                     "记录医师", "术后注意事项", "术后处理措施", "术后诊断",
@@ -101,7 +101,7 @@ public class OperationDocTrans extends ModelDocTrans {
                     "手术名称", "手术时间", "术前诊断", "手术医生", "助手", "手术经过", "术后生命体征",
                     "患者家属签名");
 
-            String text = sourceMap.get("原始文本");
+            String text = sourceMap.get("文本内容");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
@@ -127,7 +127,7 @@ public class OperationDocTrans extends ModelDocTrans {
 
         OperationDiscussionDoc operationDiscussionDoc = new OperationDiscussionDoc();
         operationDiscussionDoc.setStructureMap(structureMap);
-        operationDiscussionDoc.setText(structureMap.get("原始文本"));
+        operationDiscussionDoc.setText(structureMap.get("文本内容"));
         operationDiscussionDoc.setPageData((Map) structureMap);
 
         return operationDiscussionDoc;
@@ -183,14 +183,14 @@ public class OperationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             List<String> titles = Lists.newArrayList("手术开始时间", "手术结束时间", "术中诊断", "手术简要经过", "主    刀",
                     "第一助手", "第二助手", "第三助手", "洗手护士", "巡回护士", "麻醉方式", "手术方式", "麻醉医师", "手术标本", "冰冻切片结果",
                     "术中并发症", "术中失血量", "手术经过及处理", "手术简要经过", "手术经过", "医师签名", "主刀医师签名", "时间", "术后生命体征",
                     "术后出血量", "患方签名", "记录时间", "待产日期", "手术名称", "术后诊断");
 
-            String text = sourceMap.get("原始文本");
+            String text = sourceMap.get("文本内容");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
@@ -267,14 +267,14 @@ public class OperationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             List<String> titles = Lists.newArrayList("简要病情", "术前诊断", "手术指征", "手术禁忌症",
                     "拟施手术名称和方式", "拟施麻醉方式", "其他术前相关情况", "术中或术后可能发生的并发症", "手术风险及防治对策",
                     "术前与患方谈话及签定手术知情同意书情况", "注意事项", "术前准备", "记录医师", "手术名称", "参加者姓名及职称",
                     "临床诊断"
             );
-            String text = sourceMap.get("原始文本");
+            String text = sourceMap.get("文本内容");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
@@ -333,7 +333,7 @@ public class OperationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
             sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
@@ -392,7 +392,7 @@ public class OperationDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
             sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");

+ 21 - 16
trans/src/main/java/com/lantone/qc/trans/qdnzyy/ThreeLevelWardDocTrans.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.trans.qdnzyy;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.qdnzyy.QdnzyyXmlUtil;
 import com.lantone.qc.dbanaly.facade.shengzhouzz.ShengzhouyyXmlUtil;
 import com.lantone.qc.dbanaly.lt.facade.ModelHospitalFacade;
 import com.lantone.qc.dbanaly.util.KernelConstants;
@@ -44,7 +45,7 @@ public class ThreeLevelWardDocTrans extends ModelDocTrans {
     @Override
     public List<ThreeLevelWardDoc> extract(MedrecVo medrecVo) {
         ModelHospitalFacade modelHospitalFacade = SpringContextUtil.getBean(ModelHospitalFacade.class);
-        recTitles = modelHospitalFacade.getRecTitles(5l, 4l);
+        recTitles = modelHospitalFacade.getRecTitles(38l, 4l);
 
         List<ThreeLevelWardDoc> retList = Lists.newArrayList();
         List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
@@ -63,11 +64,11 @@ public class ThreeLevelWardDocTrans extends ModelDocTrans {
         if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
             structureMap = (Map) FastJsonUtils.getJsonToMap(content);
         } else {
-            Map<String, String> sourceMap = ShengzhouyyXmlUtil.xmlToMap(content);
+            Map<String, String> sourceMap = QdnzyyXmlUtil.xmlToMap(content,modeId);
             List<String> titles = Lists.newArrayList(
                     "记录医师");
 
-            String text = sourceMap.get("原始文本");
+            String text = sourceMap.get("文书内容");
             List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
             CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
@@ -79,20 +80,24 @@ public class ThreeLevelWardDocTrans extends ModelDocTrans {
             //病程内容未解析出来 则在原始文本中获取病程内容
             addContent(sourceMap);
             structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
+            structureMap.put("查房标题",recTitle);
+            structureMap.put("查房日期",text.substring(0, text.indexOf(recTitle)));
+            String nr = text.replace(recTitle,"").replace(structureMap.get("查房日期"),"");
+            structureMap.put("病情记录",nr);
 
-            if (StringUtils.isEmpty(structureMap.get("查房日期"))) {
-                return;
-            }
-            //不能简单的标准转化,如果有查房标题,优先使用
-            if (StringUtils.isEmpty(structureMap.get("查房标题")) && StringUtils.isNotEmpty(structureMap.get("查房备注"))) {
-                structureMap.put("查房标题", structureMap.get("查房备注"));
-            }
-            if (StringUtils.isEmpty(structureMap.get("查房标题")) && StringUtils.isNotEmpty(structureMap.get("查房类别"))) {
-                structureMap.put("查房标题", structureMap.get("查房类别"));
-            }
-            if (StringUtils.isEmpty(structureMap.get("查房标题")) && StringUtils.isNotEmpty(structureMap.get("上级查房医生职称"))) {
-                structureMap.put("查房标题", structureMap.get("上级查房医生职称"));
-            }
+//            if (StringUtils.isEmpty(structureMap.get("查房日期"))) {
+//                return;
+//            }
+           //不能简单的标准转化,如果有查房标题,优先使用
+//            if (StringUtils.isEmpty(structureMap.get("查房标题")) && StringUtils.isNotEmpty(structureMap.get("查房备注"))) {
+//                structureMap.put("查房标题", structureMap.get("查房备注"));
+//            }
+//            if (StringUtils.isEmpty(structureMap.get("查房标题")) && StringUtils.isNotEmpty(structureMap.get("查房类别"))) {
+//                structureMap.put("查房标题", structureMap.get("查房类别"));
+//            }
+//            if (StringUtils.isEmpty(structureMap.get("查房标题")) && StringUtils.isNotEmpty(structureMap.get("上级查房医生职称"))) {
+//                structureMap.put("查房标题", structureMap.get("上级查房医生职称"));
+//            }
         }
         //总的查房记录 汇总
         ThreeLevelWardDoc allDoctorWradDoc = new ThreeLevelWardDoc();