Bladeren bron

萧山中医院解析调整

liuqq 3 jaren geleden
bovenliggende
commit
5f4876fd20

+ 3 - 1
trans/src/main/java/com/lantone/qc/trans/xszyy/BeiLunBeHospitalizedDocTrans.java

@@ -75,7 +75,9 @@ public class BeiLunBeHospitalizedDocTrans extends ModelDocTrans {
             "补充及专科检查=专科检查",
             "辅 助 检 查=辅助检查",
             "入 院 诊 断=入院诊断",
-            "初步诊断=入院诊断"
+            "初步诊断=入院诊断",
+            "住址=单位或住址",
+            "住院号=住院号码"
     );
 
 }

+ 10 - 3
trans/src/main/java/com/lantone/qc/trans/xszyy/BeiLunOperationDocTrans.java

@@ -206,11 +206,15 @@ public class BeiLunOperationDocTrans extends ModelDocTrans {
 
     private List<String> operationRecord_keyContrasts = Lists.newArrayList(
             "术后诊断=术中后诊断",
-            "麻醉人员=麻醉医师",
+            "麻醉人员=麻醉医师","手法方式=手术名称","手术方式=手术名称","手术方案=手术名称","手术前诊断=术前诊断",
+            "手术经过(包括病人体位、切口选择、病灶所见、术中出现情况及处理等)=手术经过及处理",
+            "口选择、病灶所见、术中出现情况及处理等)=手术经过及处理",
+            "手术前诊断=术前诊断",
             "手术经过=手术经过及处理",
             "主刀医师签名=主刀医师",
             "记录医师签名=记录医生",
             "记录医师=记录医生",
+            "医师签名=记录医生",
             "手术时间=手术日期"
     );
 
@@ -304,9 +308,12 @@ public class BeiLunOperationDocTrans extends ModelDocTrans {
             "主 持 人=主持人",
             "参加人员姓名及专业技术职称=参加人员",
             "报告病史=简要病情",
+            "讨论意见内容记录=具体讨论意见","讨论记录=具体讨论意见",
+            "拟施手术名称和方式=拟施手术名称及方式","手术方式=拟施手术名称及方式",
             "讨论意见内容记录=具体讨论意见",
-            "记录者签名=记录医生",
-            "记录者签名=记录医生"
+            "入院时间=入院日期","麻醉方式=拟施麻醉方式",
+            "(6)目前诊断=术前诊断","(2)术前准备=术前准备",
+            "(4)可能出现的意外及防范措施=注意事项","(1)手术指征=手术指征","报告病史=简要病情","(3)手术方案=拟施手术名称及方式"
 
     );
 

+ 9 - 9
trans/src/main/java/com/lantone/qc/trans/xszyy/util/BeiLunBeHospitalizedHtmlAnalysis.java

@@ -46,17 +46,17 @@ public class BeiLunBeHospitalizedHtmlAnalysis implements BeiLunHtmlAnalysis {
 
     //一般模板
     private void analysisGeneral(Document doc, String recTitle, Map<String, String> map) {
-        List<String> titles = Lists.newArrayList("姓名","病区","床号","住院号码","入 院 记 录","住 院 大 病 历",
-                "姓 名", "职 业", "性 别", "入院日期","年 龄", "记录日期", "婚 姻","病史陈述者", "出生地","可靠程度",
+        List<String> titles = Lists.newArrayList("家长姓名","病区","床号","住院号码","病案号","住院号","入 院 记 录","住 院 大 病 历",
+                "姓 名","职业", "职 业", "性 别", "入院日期","年 龄", "记录日期", "婚 姻","病史陈述者", "出生地","可靠程度",
                 "民 族","身份证号码","发病节气","病案号","单位或住址","主 诉","现病史","既往史","个人史","婚育史","家族史",
                 "专项 评估","专项评估",
-                "体 格 检 查","体 格 检 查 表 ( 一 )","补充及专科检查","辅 助 检 查", "入 院 诊 断","初步诊断",
-                "书写医生","医师签名","书写医师","修正诊断"
+                "体 格 检 查","体 格 检 查 表 ( 一 )","补充及专科检查","辅 助 检 查","辅助检查", "入 院 诊 断","初步诊断",
+                "书写医生","医师签名","书写医师","修正诊断","家长电话","出生年月","住 址"
         );
         String htmlContent = XszyyCommonAnalysisUtil.html2String(doc.toString());
         if (StringUtil.isNotBlank(htmlContent)) {
             //有冒号版本
-//            XszyyCommonAnalysisUtil.html2StructureMap(titles,htmlContent,map);
+            XszyyCommonAnalysisUtil.html2StructureMap(titles,htmlContent,map);
             //无冒号版本
             XszyyCommonAnalysisUtil.html2StructureMapNoColon(titles,htmlContent,map);
         }
@@ -83,11 +83,11 @@ public class BeiLunBeHospitalizedHtmlAnalysis implements BeiLunHtmlAnalysis {
 
     //24小时出入院记录、24小时出入院记录(全院)、24小时入出院记录(全院通用)、24小时内入院死亡记录(全院通用)
     private void analysis24h(Document doc, Map<String, String> map) {
-        List<String> titles = Lists.newArrayList("姓名","病区","床号","住院号码","入 院 记 录","住 院 大 病 历",
+        List<String> titles = Lists.newArrayList("姓名","病区","床号","住院号码","病案号","住院号","入 院 记 录","住 院 大 病 历",
                 "姓 名", "职 业", "性 别", "入院日期","年 龄", "记录日期", "婚 姻","病史陈述者", "出生地","可靠程度",
                 "民 族","身份证号码","发病节气","病案号","单位或住址","主 诉","现病史","既往史","个人史","婚育史","家族史",
                 "专项 评估","专项评估",
-                "体 格 检 查","体 格 检 查 表 ( 一 )","补充及专科检查","辅 助 检 查", "入 院 诊 断","初步诊断",
+                "体 格 检 查","体 格 检 查 表 ( 一 )","补充及专科检查","辅 助 检 查","辅助检查", "入 院 诊 断","初步诊断",
                 "书写医生","医师签名","书写医师","修正诊断"
         );
         String htmlContent = XszyyCommonAnalysisUtil.html2String(doc.toString());
@@ -121,11 +121,11 @@ public class BeiLunBeHospitalizedHtmlAnalysis implements BeiLunHtmlAnalysis {
 
     //原-日间病历入出院记录、日间病历-性早熟
     private void analysisDay(Document doc, Map<String, String> map) {
-        List<String> titles = Lists.newArrayList("姓名","病区","床号","住院号码","入 院 记 录","住 院 大 病 历",
+        List<String> titles = Lists.newArrayList("家长姓名","病区","床号","住院号码","病案号","住院号","入 院 记 录","住 院 大 病 历",
                 "姓 名", "职 业", "性 别", "入院日期","年 龄", "记录日期", "婚 姻","病史陈述者", "出生地","可靠程度",
                 "民 族","身份证号码","发病节气","病案号","单位或住址","主 诉","现病史","既往史","个人史","婚育史","家族史",
                 "专项 评估","专项评估",
-                "体 格 检 查","体 格 检 查 表 ( 一 )","补充及专科检查","辅 助 检 查", "入 院 诊 断","初步诊断",
+                "体 格 检 查","体 格 检 查 表 ( 一 )","补充及专科检查","辅 助 检 查","辅助检查", "入 院 诊 断","初步诊断",
                 "书写医生","医师签名","书写医师","修正诊断"
         );
         String htmlContent = XszyyCommonAnalysisUtil.html2String(doc.toString());

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/xszyy/util/BeiLunFirstCourseRecordHtmlAnalysis.java

@@ -29,7 +29,8 @@ public class BeiLunFirstCourseRecordHtmlAnalysis implements BeiLunHtmlAnalysis {
             String recTitle = args[1];
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
-            List<String> titles = Lists.newArrayList("病例特点","拟诊讨论","初步诊断","诊疗方案","医师签名"
+            List<String> titles = Lists.newArrayList("病例特点","拟诊讨论","初步诊断","诊疗方案",
+                    "医师签名","诊疗计划"
             );
             String htmlContent = XszyyCommonAnalysisUtil.html2String(doc.toString());
             if (StringUtil.isNotBlank(htmlContent)) {

+ 9 - 3
trans/src/main/java/com/lantone/qc/trans/xszyy/util/BeiLunOperationRecordHtmlAnalysis.java

@@ -32,8 +32,9 @@ public class BeiLunOperationRecordHtmlAnalysis implements BeiLunHtmlAnalysis {
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
             List<String> titles = Lists.newArrayList("姓名","病区","床号","住院号","手 术 记 录 单",
-                    "手术日期","手术时间","开始时间","结束时间","术前诊断","手术名称","术后诊断","手术人员","麻醉方式","麻醉人员","手术经过",
-                    "记录医师签名","主刀医师签名","主刀医师","记录医师","科室意见","科主任"
+                    "手术日期","手术时间","开始时间","结束时间","手术前诊断","术前诊断","手法方式","手术方式","手术方案","手术名称","术后诊断","手术人员","麻醉方式","麻醉人员","手术经过",
+                    "手术经过(包括病人体位、切口选择、病灶所见、术中出现情况及处理等)","口选择、病灶所见、术中出现情况及处理等)",
+                    "记录医师签名","主刀医师签名","主刀医师","记录医师","科室意见","科主任","医师签名"
             );
             String htmlContent = XszyyCommonAnalysisUtil.html2String(doc.toString());
 
@@ -45,11 +46,16 @@ public class BeiLunOperationRecordHtmlAnalysis implements BeiLunHtmlAnalysis {
                     map.put("记录时间",XszyyCommonAnalysisUtil.extractDate(map.get("主刀医师签名")));
                     map.put("主刀医师签名",map.get("主刀医师签名").substring(0,map.get("主刀医师签名").indexOf(map.get("记录时间"))));
                 }
-                //记录医师存在记录时间
+                //记录医师存在记录时间
                 if(map.containsKey("记录医师")&&XszyyCommonAnalysisUtil.extractDate(map.get("记录医师"))!=null){
                     map.put("记录时间",XszyyCommonAnalysisUtil.extractDate(map.get("记录医师")));
                     map.put("记录医师",map.get("记录医师").substring(0,map.get("记录医师").indexOf(map.get("记录时间"))));
                 }
+                //医师签名存在记录时间
+                if(map.containsKey("医师签名")&&XszyyCommonAnalysisUtil.extractDate(map.get("医师签名"))!=null){
+                    map.put("记录时间",XszyyCommonAnalysisUtil.extractDate(map.get("医师签名")));
+                    map.put("医师签名",map.get("医师签名").substring(0,map.get("医师签名").indexOf(map.get("记录时间"))));
+                }
             }
 
             XszyyHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, map);

+ 16 - 4
trans/src/main/java/com/lantone/qc/trans/xszyy/util/BeiLunPreoperativeHtmlAnalysis.java

@@ -32,10 +32,10 @@ public class BeiLunPreoperativeHtmlAnalysis implements BeiLunHtmlAnalysis {
             String recTypeId = args[2];
             Document doc = Jsoup.parse(html);
             List<String> titles = Lists.newArrayList("简要病情","术前诊断","手术指征","拟施手术名称和方式","拟施麻醉方式",
-                    "注意事项","术者术前查房情况","书写医师",
-
-                    "入院日期","讨论日期","讨论地点","主 持 人","参加人员姓名及专业技术职称","报告病史", "讨论意见内容记录","主持人小结意见","记录者签名","记录者",
-                    "主持人签名"
+                    "注意事项","术者术前查房情况","书写医师","医师签名",
+                    "术前准备","麻醉方式","手术人员","手术方式",
+                    "入院日期","入院时间","讨论日期","讨论时间","讨论地点","主 持 人","参加人员姓名及专业技术职称","参加人员","报告病史", "讨论记录","讨论意见内容记录","记录者签名","记录者",
+                    "主持人签名","(4)可能出现的意外及防范措施","(3)手术方案","(2)术前准备","(1)手术指征","主持人小结意见","主持人小结"
             );
             String htmlContent = XszyyCommonAnalysisUtil.html2String(doc.toString());
 
@@ -47,6 +47,18 @@ public class BeiLunPreoperativeHtmlAnalysis implements BeiLunHtmlAnalysis {
                 }
             }
 
+            if(StringUtil.isNotEmpty(structureMap.get("主持人小结意见")) && structureMap.get("主持人小结意见").contains("手术指征")){
+                String operationDesc=structureMap.get("主持人小结意见").substring(structureMap.get("主持人小结意见").lastIndexOf("手术指征")+4);
+                structureMap.put("手术指征",operationDesc);
+            }
+            if(StringUtil.isNotEmpty(structureMap.get("主持人小结")) && structureMap.get("主持人小结").contains("手术指征")){
+                String operationDesc=structureMap.get("主持人小结").substring(structureMap.get("主持人小结").lastIndexOf("手术指征")+4);
+                structureMap.put("手术指征",operationDesc);
+            }
+            if(StringUtil.isNotEmpty(structureMap.get("报告病史")) && structureMap.get("报告病史").contains("目前诊断")){
+                String diag=structureMap.get("报告病史").substring(structureMap.get("报告病史").lastIndexOf("目前诊断"),structureMap.get("报告病史").lastIndexOf("讨论目的")-3);
+                structureMap.put("(6)目前诊断",diag);
+            }
             structureMap.put("文书标题",recTitle);
             XszyyHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {

+ 2 - 3
trans/src/main/java/com/lantone/qc/trans/xszyy/util/BeiLunThreeLevelWardHtmlAnalysis.java

@@ -35,7 +35,7 @@ public class BeiLunThreeLevelWardHtmlAnalysis implements BeiLunHtmlAnalysis {
             XszyyCommonAnalysisUtil.xszyyExtractWardInfo(recTitle, htmlContent, structureMap);
 
             //病情记录存在副主任医师和书写医师字段
-            if(structureMap.containsKey("病情记录")){
+            /*if(structureMap.containsKey("病情记录")){
                 String bqtext = structureMap.get("病情记录");
 
                 //无冒号版本
@@ -45,8 +45,7 @@ public class BeiLunThreeLevelWardHtmlAnalysis implements BeiLunHtmlAnalysis {
                 if(bqtext.contains("副主任医师")){
                     structureMap.put("病情记录",bqtext.substring(0,bqtext.lastIndexOf("副主任医师")));
                 }
-            }
-
+            }*/
 
             XszyyHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {

+ 6 - 3
trans/src/main/java/com/lantone/qc/trans/xszyy/util/comsis/XszyyCommonAnalysisUtil.java

@@ -282,10 +282,10 @@ public class XszyyCommonAnalysisUtil {
         Pattern pattern2 = 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 matcher = pattern.matcher(top);
         Matcher matcher2 = pattern2.matcher(top);
-        if (matcher2.find()) {
-            return matcher2.group(0);
-        } else if (matcher.find()) {
+        if (matcher.find()) {
             return matcher.group(0);
+        } else if (matcher2.find()) {
+            return matcher2.group(0);
         } else {
             Pattern p1 = Pattern.compile("[0-9]{4}年[0-9]+月[0-9]+日[0-9]+时[0-9]+分");
             Matcher m1 = p1.matcher(top);
@@ -682,6 +682,9 @@ public class XszyyCommonAnalysisUtil {
                 } else if (info.contains("医师签名")) {
                     structureMap.put("病情记录", info.substring(0, info.lastIndexOf("医师签名")));
                     structureMap.put("医师签名", info.substring(info.lastIndexOf("医师签名") + "医师签名:".length()));
+                }else if (info.contains("主治医师")) {
+                    structureMap.put("病情记录", info.substring(0, info.lastIndexOf("主治医师")));
+                    structureMap.put("医师签名", info.substring(info.lastIndexOf("主治医师") + "主治医师:".length()));
                 }
             }
         }