Explorar o código

ez入院记录修改

chengyao %!s(int64=4) %!d(string=hai) anos
pai
achega
2379d3c58e

+ 34 - 20
structure-center/src/main/java/com/lantone/structure/facade/tran/BeHospitalizedTran.java

@@ -10,6 +10,7 @@ import com.lantone.structure.model.entity.*;
 import com.lantone.structure.model.label.PastLabel;
 import com.lantone.structure.util.MapUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
 
 import java.util.*;
@@ -204,43 +205,56 @@ public class BeHospitalizedTran extends TargetTran {
                     String firStr = text.substring(text.lastIndexOf("体  格  检  查"));
                     String[] splits = firStr.split("\n");
                     String split =splits[0];
-                    if(splits.length>1){
-                         split =splits[1];
+                    for (int i = 1; i < splits.length; i++) {
+                      if(StringUtils.isEmpty(splits[i].trim())){
+                          continue;
+                      }
+                      if((splits[i].contains("T") || splits[i].contains("t"))&& (splits[i].contains("mmHg") || splits[i].contains("BP") || splits[i].contains("Bp"))){
+                          split = splits[i];
+                          break;
+                      }
                     }
-                    if(split.contains("专  科  检  查")){
-                        split = split.substring(0, split.lastIndexOf("专  科  检  查"));
-                    }
-                    if(split.contains("其他:")){
-                        split = split.substring(0, split.lastIndexOf("其他:"));
+
+                    List<String> checkList = Arrays.asList("专  科  检  查", "其他:","一般情况");
+                    for (String str : checkList) {
+                        if(split.contains(str)){
+                            split = split.substring(0, split.lastIndexOf(str));
+                        }
                     }
 
-                    String[] splitRet = split.split(",");
-                    for (int i = 0; i < splitRet.length; i++) {
-                        if(splitRet[i].contains("T") && splitRet[i].contains("℃") ){
-                            String t = splitRet[i].substring(splitRet[i].indexOf("T")+"T".length());
+
+                        if(split.contains("T") && split.contains("℃") ){
+                            String t = split.substring(split.indexOf("T")+"T".length(),split.indexOf("℃")+"℃".length());
+                            split = split.substring(split.indexOf(t)+t.length());
                             if(StringUtil.isNotEmpty(t)){
                             retMap.put("体格检查--体温(℃)", t);
                             }
                         }
-                        if(splitRet[i].contains("P")){
-                            String p = splitRet[i].substring(splitRet[i].indexOf("P")+"P".length());
+                        if(split.contains("P") && split.contains("分")){
+                            String p = split.substring(split.indexOf("P")+"P".length(),split.indexOf("分")+"分".length());
+                            split = split.substring(split.indexOf(p)+p.length());
                             if(StringUtil.isNotEmpty(p)){
                             retMap.put("体格检查--脉率(次/min)", p);
                             }
                         }
-                        if(splitRet[i].contains("R")){
-                            String r = splitRet[i].substring(splitRet[i].indexOf("R")+"R".length());
+                        if(split.contains("R") && split.contains("分")){
+                            String r = split.substring(split.indexOf("R")+"R".length(),split.indexOf("分")+"分".length());
+                            split = split.substring(split.indexOf(r)+r.length());
                             if(StringUtil.isNotEmpty(r)){
                             retMap.put("体格检查--呼吸频率(次/min)", r);
                             }
                         }
-                        if(splitRet[i].contains("Bp")){
+                            String bp = "Bp";
+                        if(split.contains("BP")){
+                            bp = "BP";
+                        };
+                        if(split.contains(bp) && split.contains("mmHg")){
                             String flag = "/";
-                            if(splitRet[i].contains("/")){
+                            if(split.contains("/")){
                                 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(),splitRet[i].lastIndexOf("mmHg")+"mmHg".length());
+                            String b = split.substring(split.indexOf(bp)+bp.length(),split.indexOf(flag));
+                            String p = split.substring(split.indexOf(flag)+flag.length(),split.lastIndexOf("mmHg")+"mmHg".length());
                             if(StringUtil.isNotEmpty(b)){
                                 retMap.put("体格检查--收缩压(mmHg)", b+"mmHg");
                             }
@@ -248,7 +262,7 @@ public class BeHospitalizedTran extends TargetTran {
                                 retMap.put("体格检查--舒张压(mmHg)", p);
                             }
                         }
-                    }
+
                 }
 
                 if(StringUtil.isEmpty(retMap.get("流行病史"))){