chengyao 4 years ago
parent
commit
ba9570be2e

+ 2 - 2
structure-center/src/main/java/com/lantone/structure/facade/StructureFacade.java

@@ -59,9 +59,9 @@ public class StructureFacade {
             /*case "上级医师查房记录":
                 targetTran = new ThreeLevelWardTran();
                 break;*/
-            case "入院记录":
+          /*  case "入院记录":
                 targetTran = new BeHospitalizedTran();
-                break;
+                break;*/
             case "24h内入出院记录":
                 targetTran = new BeHospitalizedTran();
                 break;

+ 40 - 7
structure-center/src/main/java/com/lantone/structure/facade/tran/PreoperativeDiscussionTran.java

@@ -51,17 +51,19 @@ public class PreoperativeDiscussionTran extends TargetTran {
     private Map<String, String> cutWord(String text) {
         Map<String, String> sourceMap = Maps.newHashMap();
         List<String> titles = CommonAnalysisUtil.sortTitles(
-                Lists.newArrayList("简要病情","药物、食物过敏史","月经史","一般情况","入院后辅助检查","术前诊断","手术指征","手术禁忌",
-                        "拟实施手术名称","手术方式","拟实施麻醉方式","术前准备","其他术前相关情况","防范措施","手术审批医师","医师签名"),
+                Lists.newArrayList("简要病情","药物、食物过敏史","目前服用的药物","月经史","一般情况","入院后辅助检查","术前诊断","手术指征","手术禁忌",
+                        "拟实施手术名称","手术方式","拟施手术名称和方式","拟实施麻醉方式","拟施麻醉方式","术前准备","其他术前相关情况","注意事项","防范措施","诊疗计划","手术审批医师","医师签名"),
                 text
         );
         CommonAnalysisUtil.cutByTitles(text, titles, 0, sourceMap);
         if( sourceMap.containsKey("术前诊断") || sourceMap.containsKey("月经史")|| sourceMap.containsKey("其他术前相关情况")
-                || sourceMap.containsKey("一般情况")){
+        || sourceMap.containsKey("一般情况") || sourceMap.containsKey("目前服用的药物") || sourceMap.containsKey("诊疗计划")){
             sourceMap.remove("术前诊断");
             sourceMap.remove("月经史");
             sourceMap.remove("一般情况");
             sourceMap.remove("其他术前相关情况");
+            sourceMap.remove("目前服用的药物");
+            sourceMap.remove("诊疗计划");
         }
         return sourceMap;
     }
@@ -87,7 +89,9 @@ public class PreoperativeDiscussionTran extends TargetTran {
             "手术指征=手术指征",
             "手术指征=手术适应证",
             "手术禁忌=手术禁忌症",
+            "参加人员=参加讨论人员名单",
             "拟实施手术名称=拟实施手术及操作名称",
+            "拟施手术名称和方式=拟实施手术及操作名称",
             "防范措施=注意事项",
             "防范措施=手术要点",
             "主持人总结=讨论结论",
@@ -220,10 +224,15 @@ public class PreoperativeDiscussionTran extends TargetTran {
             }
         }
         String date = "";
+        String sub = "";
         if(text.contains("手术审批医师:")){
-            String sub = text.substring(text.lastIndexOf("手术审批医师:"));
-             date = extractDate(sub);
+             sub = text.substring(text.lastIndexOf("手术审批医师:"));
+        }else{
+            if(text.contains("诊疗计划:")){
+             sub = text.substring(text.lastIndexOf("诊疗计划:"));
+            }
         }
+        date = extractDate(sub);
         if(StringUtil.isNotEmpty(date)){
             retMap.put("签名日期时间",date);
         }
@@ -263,11 +272,30 @@ public class PreoperativeDiscussionTran extends TargetTran {
 
         //参加人员
         if(flag){
+            //主持人姓名去职称
+            List<String>titleStr = Lists.newArrayList("﹙副﹚主任医师","(副)主任医师","副主任医师", "主治医师","主任医师",
+                    "住院医师","医师", "护士");
+            for (String timeName : titleStr) {
+                String dirName = retMap.get("讨论主持人");
+                if (StringUtil.isNotEmpty(dirName)) {
+                    if (dirName.contains(timeName)) {
+                        retMap.put("讨论主持人", dirName.split(timeName)[0]);
+                        break;
+                    }
+                }
+            }
+
             if(StringUtil.isEmpty(retMap.get("讨论摘要"))){
                 if(StringUtil.isNotEmpty(retMap.get("情况如下"))){
                     String caseFir = retMap.get("情况如下");
                     if(caseFir.contains("医师:")){
                         String flagCase = caseFir.split("医师:")[1];
+                        if(flagCase.contains(":")){
+                            flagCase = caseFir.split(":")[0];
+                            if(flagCase.contains("。")){
+                                flagCase = caseFir.substring(0,caseFir.lastIndexOf("。"));
+                            }
+                        }
                         if(StringUtil.isNotEmpty(flagCase)){
                             retMap.put("讨论摘要",flagCase);
                         }
@@ -302,8 +330,10 @@ public class PreoperativeDiscussionTran extends TargetTran {
                     signName = dirSum.substring(dirSum.lastIndexOf("记录者(签名)")+"记录者(签名)".length());
                 }
                 if (StringUtil.isNotEmpty(date)) {
-                    signName = signName.substring(0, signName.lastIndexOf(date));
                     retMap.put("签名日期时间",date);
+                    if( signName.contains(date)){
+                        signName = signName.substring(0, signName.lastIndexOf(date));
+                    }
                 }
                 if (StringUtil.isNotEmpty(signName) && StringUtil.isNotEmpty(signName.trim())) {
                     retMap.put("医师签名",signName);
@@ -311,6 +341,9 @@ public class PreoperativeDiscussionTran extends TargetTran {
                 if(dirSum.contains("主持人(签名)")){
                     dirSum = dirSum.substring(0, dirSum.lastIndexOf("主持人(签名)"));
                 }
+                if(dirSum.contains("主持人:")){
+                    dirSum = dirSum.substring(0, dirSum.lastIndexOf("主持人:"));
+                }
                 retMap.put("主持人总结",dirSum);
             }
             retMap.remove("参加讨论人员");
@@ -319,7 +352,7 @@ public class PreoperativeDiscussionTran extends TargetTran {
         }
         retMap.remove("手术方式");
         retMap.remove("拟实施麻醉方式");
-
+        retMap.remove("拟施麻醉方式");
     }
 
     public static void mapKeyContrastCommon(Map sourceMap, List<String> keyContrasts, Map<String, String> retMap) {