chengyao 4 роки тому
батько
коміт
b93185a9e6

+ 15 - 2
structure-center/src/main/java/com/lantone/structure/facade/tran/BeHospitalizedTran.java

@@ -46,12 +46,13 @@ public class BeHospitalizedTran extends TargetTran {
         );
         CommonAnalysisUtil.cutByTitles(text, titles, 0, sourceMap);
         if(sourceMap.containsKey("记录时间") || sourceMap.containsKey("肺脏")
-                || sourceMap.containsKey("其    他") || sourceMap.containsKey("流行病史")|| sourceMap.containsKey("流行病学史") || sourceMap.containsKey("出生地")|| sourceMap.containsKey("既往")|| sourceMap.containsKey("目前使用的药物")){
+                || 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("流行病史");
             sourceMap.remove("出生地");
             sourceMap.remove("目前使用的药物");
         }
@@ -71,6 +72,7 @@ public class BeHospitalizedTran extends TargetTran {
             "职    业=职业类别代码",
             "职业=职业类别代码",
             "入院时间=入院日期时间",
+            "出院时间=出院日期时间",
             "病史陈述者=病史陈述者姓名",
             "与患者关系=陈述者与患者的关系代码",
             "主    诉=主诉",
@@ -318,6 +320,14 @@ public class BeHospitalizedTran extends TargetTran {
                              retMap.put("入院时间",date);
                          }
             }
+            //出院日期时间
+            if(StringUtil.isNotEmpty(retMap.get("出院时间"))) {
+                String date = retMap.get("出院时间");
+                date = extractDate(date);
+                if(StringUtil.isNotEmpty(date)){
+                    retMap.put("出院时间",date);
+                }
+            }
 
             //初步诊断/时间
             if(StringUtil.isNotEmpty(retMap.get("表格<诊断>内容"))) {
@@ -536,8 +546,10 @@ public class BeHospitalizedTran extends TargetTran {
                 Boolean falg = false;
                 for (int i = 0; i < 6; i++) {
                     String firStr = firSplit[i];
-                    if( firStr.contains("二十四") || firStr.contains("日间") && firStr.contains("入出院记录") ){
+                    if(firStr.contains("24h")|| firStr.contains("二十四") || firStr.contains("日间")
+                    || firStr.contains("24小时") || firStr.contains("出入院记录")){
                         falg = true;
+                        break;
                     }
                 }
                 if(falg){
@@ -546,6 +558,7 @@ public class BeHospitalizedTran extends TargetTran {
                     retMap.remove("姓    名");
                     retMap.remove("其他");
                 }else{
+                    retMap.remove("出院时间");
                     retMap.remove("症状名称");
                     retMap.remove("入院诊断-西医诊断名称");
                 }

+ 29 - 4
structure-center/src/main/java/com/lantone/structure/facade/tran/PreoperativeDiscussionTran.java

@@ -69,7 +69,7 @@ public class PreoperativeDiscussionTran extends TargetTran {
     private Map<String, String> cutWordRe(String text) {
         Map<String, String> sourceMap = Maps.newHashMap();
         List<String> titleReplace = CommonAnalysisUtil.sortTitles(
-                Lists.newArrayList("讨论时间","讨论地点","讨论主持人","参加人员","术前诊断","讨论摘要","主持人总结"),
+                Lists.newArrayList("讨论时间","讨论地点","讨论主持人","参加人员","参加讨论人员","情况如下","术前诊断","讨论摘要","主持人总结","医师总结"),
                 text
         );
         CommonAnalysisUtil.cutByTitles(text, titleReplace, 0, sourceMap);
@@ -263,17 +263,39 @@ public class PreoperativeDiscussionTran extends TargetTran {
 
         //参加人员
         if(flag){
-            if(StringUtil.isNotEmpty(retMap.get("参加人员"))){
-                String fir = text.substring(text.indexOf("参加人员:")+5, text.lastIndexOf("汇报病史"));
+            if(StringUtil.isEmpty(retMap.get("讨论摘要"))){
+                if(StringUtil.isNotEmpty(retMap.get("情况如下"))){
+                    String caseFir = retMap.get("情况如下");
+                    if(caseFir.contains("医师:")){
+                        String flagCase = caseFir.split("医师:")[1];
+                        if(StringUtil.isNotEmpty(flagCase)){
+                            retMap.put("讨论摘要",flagCase);
+                        }
+                    }
+                }
+            }
+                String fir = "";
+                if(StringUtil.isNotEmpty(retMap.get("参加人员"))){
+                    fir = text.substring(text.indexOf("参加人员:")+"参加人员:".length(), text.lastIndexOf("汇报病史"));
+                }
+                if(StringUtil.isNotEmpty(retMap.get("参加讨论人员"))){
+                    retMap.remove("参加讨论人员");
+                    fir = text.substring(text.indexOf("参加讨论人员:")+"参加讨论人员:".length(), text.lastIndexOf("情况如下:"));
+                }
                 String[] split = fir.split("\n");
                 StringBuffer sb = new StringBuffer();
                 for (int i = 0; i < split.length-1; i++) {
                     sb.append(split[i]).append("  ");
                 }
+            if(StringUtil.isNotEmpty(sb.toString())){
                 retMap.put("参加人员",sb.toString());
             }
-            if(StringUtil.isNotEmpty(retMap.get("主持人总结"))){
+
+            if(StringUtil.isNotEmpty(retMap.get("主持人总结"))||StringUtil.isNotEmpty(retMap.get("医师总结"))){
                 String dirSum = retMap.get("主持人总结");
+                if(StringUtil.isEmpty(dirSum)){
+                    dirSum = retMap.get("医师总结");
+                }
                 String date = extractDate(dirSum);
                 String signName = "";
                 if(dirSum.contains("记录者(签名)")){
@@ -291,6 +313,9 @@ public class PreoperativeDiscussionTran extends TargetTran {
                 }
                 retMap.put("主持人总结",dirSum);
             }
+            retMap.remove("参加讨论人员");
+            retMap.remove("情况如下");
+            retMap.remove("医师总结");
         }
         retMap.remove("手术方式");
         retMap.remove("拟实施麻醉方式");