Explorar el Código

增加发育情况和精神状态、传染病患病标志字段

chengyao hace 4 años
padre
commit
7d2afe1936

+ 84 - 0
structure-center/src/main/java/com/lantone/structure/facade/tran/BeHospitalizedTran.java

@@ -177,6 +177,63 @@ public class BeHospitalizedTran extends TargetTran {
                 }
             }
 
+            //发育情况代码
+            if(StringUtil.isNotEmpty(retMap.get("个人史"))){
+                List<String> caseStr = Arrays.asList("预防接种史");
+                List<String> standStr = Arrays.asList("正常");
+                List<String> badStr = Arrays.asList("迟缓","缓慢","落后","欠理想");
+                String casePerson = retMap.get("个人史");
+                if(casePerson.contains("生长发育史")){
+                    casePerson = casePerson.substring(casePerson.indexOf("生长发育史")+"生长发育史".length());
+                }
+                for (String str : caseStr) {
+                    if(casePerson.contains(str)){
+                        casePerson = casePerson.substring(0,casePerson.indexOf(str));
+                    }
+                }
+                for (String str : standStr) {
+                    if(casePerson.contains(str)) {
+                        retMap.put("发育情况代码","正立型");
+                    }
+                }
+
+                for (String str : badStr) {
+                    if(casePerson.contains(str)) {
+                        retMap.put("发育情况代码","无力型");
+                    }
+                }
+
+            }
+
+            //精神状态正常标志
+            if(StringUtil.isNotEmpty(retMap.get("现病史"))){
+                List<String> caseStr = Arrays.asList("精神状态","精神");
+                List<String> standStr = Arrays.asList("好","正常","良好","可","尚可","较好","非常好","一般","较一般");
+                List<String> badStr = Arrays.asList("不正常","非正常","疾病","衰弱","差","较差","欠佳","软","偏软","较软");
+                String caseMoment = retMap.get("现病史");
+                for (String str : caseStr) {
+                    if(caseMoment.contains(str)){
+                    caseMoment = caseMoment.substring(caseMoment.indexOf(str)+str.length());
+                    }
+                }
+                caseMoment = caseMoment.replace(",", ",").replace("。", ",").replace("、", ",");
+                if(caseMoment.contains(",")){
+                    caseMoment = caseMoment.split(",")[0];
+                }
+                for (String str : standStr) {
+                    if(caseMoment.contains(str)) {
+                        retMap.put("精神状态正常标志","正常");
+                    }
+                }
+
+                for (String str : badStr) {
+                    if(caseMoment.contains(str)) {
+                        retMap.put("精神状态正常标志","不正常");
+                    }
+                }
+
+            }
+
 
             //病史陈述者
             if(StringUtil.isNotEmpty(retMap.get("病史陈述者"))){
@@ -738,6 +795,8 @@ public class BeHospitalizedTran extends TargetTran {
                     retMap.remove("胎心率");
                     retMap.remove("学历");
                     retMap.remove("日吸烟量(支)");
+                    retMap.remove("精神状态正常标志");
+                    retMap.remove("发育情况代码");
                     //入院记录
                 }else{
                     retMap.remove("出院时间");
@@ -1056,6 +1115,7 @@ public class BeHospitalizedTran extends TargetTran {
                 //传染病史
                 List<DiagInfectious> diagInfectiouses = pastLabel.getDiagInfectiouses();
                 commomRecord(diagInfectiouses,rep,"传染病史");
+                flagMethod(rep);
 
                 //疾病史
                 List<Diag> diags= pastLabel.getDiags();
@@ -1068,6 +1128,30 @@ public class BeHospitalizedTran extends TargetTran {
         }
     }
 
+    public static void flagMethod( Map<String,String> rep){
+      if(StringUtils.isNotEmpty(rep.get("传染病史"))){
+        String str = rep.get("传染病史");
+          rep.put("患者传染性标志","没有");
+        if(str.contains(".")){
+            String[] split = str.split("\\.");
+
+            for (String st : split) {
+                if(st.equals("1")){
+                    continue;
+                }
+                if(!st.contains("否认")){
+                    rep.put("患者传染性标志","有");
+                    break;
+                }
+            }
+        }else{
+            if(!str.contains("否认")){
+                rep.put("患者传染性标志","有");
+            }
+        }
+    }
+    }
+
     public static <T> void commomRecord(List<T> list, Map<String, String> rep,String rocordName){
         try {
             if(ListUtil.isNotEmpty(list)){