Browse Source

宁波中医院:出院小结出院诊断处理

chengyao 3 years ago
parent
commit
2f4269cb9d

+ 48 - 0
trans/src/main/java/com/lantone/qc/trans/ningbozhongyi/util/NingBoZhongYiLeaveHospitalHtmlAnalysis.java

@@ -55,6 +55,33 @@ public class NingBoZhongYiLeaveHospitalHtmlAnalysis implements NingBoZhongYiHtml
                 structureMap.put("出院诊断", discharge.substring(0, index));
                 structureMap.put("入院情况", discharge.substring(index + 4));
             }
+            if (structureMap.containsKey("出院诊断") && StringUtil.isNotBlank(structureMap.get("出院诊断"))){
+                String discharge = structureMap.get("出院诊断");
+                StringBuilder sb = new StringBuilder();
+                int num =0;
+                if(discharge.contains("中医诊断") && !discharge.contains("西医诊断")){
+                    String zdischarge = discharge.split("中医诊断")[1].replace(":","");
+                    num = extractDischarge(num, sb, zdischarge);
+
+                }
+                if(discharge.contains("中医诊断") && discharge.contains("西医诊断")){
+                    String zdischarge = discharge.split("西医诊断")[0].split("中医诊断")[1].replace(":","");
+                    String xdischarge = discharge.split("西医诊断")[1].replace(":","");
+                    num = extractDischarge(num,sb,zdischarge);
+                    String[] xleaveDiags = xdischarge.split(",?,?[0-9]\\.");
+                    for (String leaveDiag : xleaveDiags) {
+                        leaveDiag = leaveDiag.trim();
+                        if(StringUtil.isNotBlank(leaveDiag)){
+                            num++;
+                            sb.append(num+"."+leaveDiag.trim());
+                        }
+                    }
+
+                }
+                if(StringUtil.isNotBlank(sb.toString())){
+                    structureMap.put("出院诊断",sb.toString());
+                }
+            }
             CommonAnalysisUtil.extractDateByTitle(structureMap, "时间");
             NingBoZhongYiHtmlAnalysisUtil.insertModuleId(modeId, recTypeId, structureMap);
         } catch (Exception e) {
@@ -62,4 +89,25 @@ public class NingBoZhongYiLeaveHospitalHtmlAnalysis implements NingBoZhongYiHtml
         }
         return structureMap;
     }
+
+    public int extractDischarge( int num, StringBuilder sb,String zdischarge){
+        String rex =",?,?[0-9]\\.";
+        boolean matches = zdischarge.matches(rex);
+        String[] zleaveDiags = null;
+        if(matches){
+            zleaveDiags = zdischarge.split(",?,?[0-9]\\.");
+        }else{
+            zleaveDiags = zdischarge.split(" ");
+        }
+        if(null != zleaveDiags || zleaveDiags.length>0){
+            for (String zleaveDiag : zleaveDiags) {
+                zleaveDiag = zleaveDiag.trim();
+                if(StringUtil.isNotBlank(zleaveDiag)){
+                    num++;
+                    sb.append(num+"."+zleaveDiag);
+                }
+            }
+        }
+        return num;
+    }
 }