chengyao 4 anos atrás
pai
commit
1e71727c7e

+ 45 - 30
structure-center/src/main/java/com/lantone/structure/facade/tran/BeHospitalizedTran.java

@@ -202,7 +202,18 @@ public class BeHospitalizedTran extends TargetTran {
                     firRetStr = firRetStr.substring(0, firRetStr.lastIndexOf("体  格  检  查"));
                     retMap.put("家族史",firRetStr);
                     String firStr = text.substring(text.lastIndexOf("体  格  检  查"));
-                    String split = firStr.split("\n")[1];
+                    String[] splits = firStr.split("\n");
+                    String split =splits[0];
+                    if(splits.length>1){
+                         split =splits[1];
+                    }
+                    if(split.contains("专  科  检  查")){
+                        split = split.substring(0, split.lastIndexOf("专  科  检  查"));
+                    }
+                    if(split.contains("其他:")){
+                        split = split.substring(0, split.lastIndexOf("其他:"));
+                    }
+
                     String[] splitRet = split.split(",");
                     for (int i = 0; i < splitRet.length; i++) {
                         if(splitRet[i].contains("T") && splitRet[i].contains("℃") ){
@@ -229,7 +240,7 @@ public class BeHospitalizedTran extends TargetTran {
                                 flag = "/";
                             }
                             String b = splitRet[i].substring(splitRet[i].indexOf("Bp")+"Bp".length(),splitRet[i].indexOf(flag));
-                            String p = splitRet[i].substring(splitRet[i].indexOf(flag)+flag.length());
+                            String p = splitRet[i].substring(splitRet[i].indexOf(flag)+flag.length(),splitRet[i].lastIndexOf("mmHg")+"mmHg".length());
                             if(StringUtil.isNotEmpty(b)){
                                 retMap.put("体格检查--收缩压(mmHg)", b+"mmHg");
                             }
@@ -268,27 +279,33 @@ public class BeHospitalizedTran extends TargetTran {
             //脊柱四肢
             if(StringUtil.isNotEmpty(retMap.get("脊柱四肢"))){
                 String fir = retMap.get("脊柱四肢");
-                if(fir.contains("。") && fir.split("。").length>1){
-                    String[] split = fir.split("。");
-                    if(StringUtil.isNotEmpty(split[0])){
-                        retMap.put("体格检查--脊柱检查结果", split[0]);
-                    }
-                    System.out.println("split.length = " + split.length);
-                    if(split.length>1 && StringUtil.isNotEmpty(split[1])){
-                        retMap.put("体格检查--四肢检查结果", split[1]);
-                    }
+                if(fir.contains("详见") && fir.contains("检查")){
+                    retMap.put("体格检查--脊柱检查结果",fir);
+                    retMap.put("体格检查--四肢检查结果",fir);
                 }else{
-                    if(fir.contains("四肢")){
-                        String sec = fir.substring(0, fir.lastIndexOf("四肢"));
-                        String thr = fir.substring( fir.lastIndexOf("四肢"));
-                        if(StringUtil.isNotEmpty(sec)){
-                            retMap.put("体格检查--脊柱检查结果",sec);
+                    if(fir.contains("。") && fir.split("。").length>1){
+                        String[] split = fir.split("。");
+                        if(StringUtil.isNotEmpty(split[0])){
+                            retMap.put("体格检查--脊柱检查结果", split[0]);
                         }
-                        if(StringUtil.isNotEmpty(thr)){
-                            retMap.put("体格检查--四肢检查结果",thr);
+                        System.out.println("split.length = " + split.length);
+                        if(split.length>1 && StringUtil.isNotEmpty(split[1])){
+                            retMap.put("体格检查--四肢检查结果", split[1]);
+                        }
+                    }else{
+                        if(fir.contains("四肢")){
+                            String sec = fir.substring(0, fir.lastIndexOf("四肢"));
+                            String thr = fir.substring( fir.lastIndexOf("四肢"));
+                            if(StringUtil.isNotEmpty(sec)){
+                                retMap.put("体格检查--脊柱检查结果",sec);
+                            }
+                            if(StringUtil.isNotEmpty(thr)){
+                                retMap.put("体格检查--四肢检查结果",thr);
+                            }
                         }
                     }
                 }
+
                 retMap.remove("脊柱四肢");
             }
             //其他
@@ -370,7 +387,7 @@ public class BeHospitalizedTran extends TargetTran {
                             }
                         }
                     }
-                    if(StringUtil.isNotEmpty(fir)){
+                    if(StringUtil.isNotEmpty(fir) &&  StringUtil.isNotEmpty(fir.trim())){
                         retMap.put("初步诊断-西医诊断名称",fir);
                         //兼容24小时出入院记录
                         retMap.put("入院诊断-西医诊断名称",fir);
@@ -558,30 +575,28 @@ public class BeHospitalizedTran extends TargetTran {
             }
 
             //区别连个模块
-            if(firSplit.length>5){
-                Boolean falg = false;
-                for (int i = 0; i < 6; i++) {
-                    String firStr = firSplit[i];
+                    Boolean flag = false;
+                    String firStr = text.substring(0,30);
                     if(firStr.contains("24h")|| firStr.contains("二十四") || firStr.contains("日间")
-                    || firStr.contains("24小时") || firStr.contains("出入院记录")){
-                        falg = true;
-                        break;
+                    || firStr.contains("24小时") || firStr.contains("出入院记录")) {
+                        flag = true;
                     }
-                }
-                if(falg){
+
+                //日间
+                if(flag){
                     retMap.remove("初步诊断-西医诊断名称");
                     retMap.remove("姓名");
                     retMap.remove("姓    名");
                     retMap.remove("其他");
+                    //入院记录
                 }else{
                     retMap.remove("出院时间");
                     retMap.remove("症状名称");
                     retMap.remove("入院诊断-西医诊断名称");
                 }
             }
-
         }
-    }
+
 
 
     public static void parseBirthAddress(Map<String,String> retMap){

+ 2 - 0
structure-center/src/main/java/com/lantone/structure/facade/tran/ThreeLevelWardTran.java

@@ -89,7 +89,9 @@ public class ThreeLevelWardTran extends TargetTran {
             String plan = retMap.get("诊疗计划");
             if(StringUtil.isNotEmpty( retMap.get("记录人签名")) && StringUtil.isNotEmpty( retMap.get("记录人签名").trim())){
                 String name = retMap.get("记录人签名").trim();
+                if(plan.contains(name)){
                 plan = plan.substring(0,plan.lastIndexOf(name));
+                }
             }
             if(plan.contains("诊断考虑:")){
                 plan = plan.substring(0,plan.lastIndexOf("诊断考虑:"));