Browse Source

北仑: 出院其他诊断不完全优化

wangsy 4 years ago
parent
commit
bd67c7b111

+ 31 - 26
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/firstpagerecord/FIRP0178.java

@@ -9,16 +9,12 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
-import com.lantone.qc.pub.model.entity.Diag;
-import com.lantone.qc.pub.model.label.DiagLabel;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.lang.reflect.Array;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -38,14 +34,15 @@ public class FIRP0178 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getLeaveHospitalDoc() != null) {
+            String mainDiagnosis = "";
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
             if (ListUtil.isEmpty(dischargeDiag)) {
                 return;
             }
-//            if (dischargeDiag.get(0) != null) {
-//                mainDiagnosis = dischargeDiag.get(0).get("诊断名称");
-//            }
+            if (dischargeDiag.get(0) != null) {
+                mainDiagnosis = dischargeDiag.get(0).get("诊断名称");
+            }
 
             /* 病案首页出院小结诊断 除去主诊断*/
             List<String> firstpageLeaveDiags = getFirstPageDiag(dischargeDiag);
@@ -61,9 +58,9 @@ public class FIRP0178 extends QCCatalogue {
             List<String> leaveDiagsStr = putDiagToList(leaveDiags);*/
             //出院小结得出院诊断,模型提取出现问题,需要手动以1.2.3.为界限切开
             Map<String, String> leavehospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
-            List<String> leaveDiagsStr = new ArrayList<>();
-            String leavediag = leavehospitalStructureMap.get("出院诊断");
-            leaveDiagsStr = cut(leaveDiagsStr, leavediag);
+
+            String leaveDiag = leavehospitalStructureMap.get("出院诊断");
+            List<String> leaveDiagsStr = cut(leaveDiag, mainDiagnosis);
 
             /* 修改为疾病相似度模型 */
             ModelAI modelAI = new ModelAI();
@@ -107,26 +104,34 @@ public class FIRP0178 extends QCCatalogue {
         return firstpageDiag;
     }
 
-    private List<String> putDiagToList(List<Diag> diagList) {
-        List<String> diags = new ArrayList<>();
-        for (Diag diag : diagList) {
-            // 去重
-            if (!diags.contains(diag.getHospitalDiagName())) {
-                diags.add(diag.getHospitalDiagName());
-            }
-        }
-        return diags;
-    }
+//    private List<String> putDiagToList(List<Diag> diagList) {
+//        List<String> diags = new ArrayList<>();
+//        for (Diag diag : diagList) {
+//            // 去重
+//            if (!diags.contains(diag.getHospitalDiagName())) {
+//                diags.add(diag.getHospitalDiagName());
+//            }
+//        }
+//        return diags;
+//    }
 
-    private List<String> cut(List<String> leaveDiagsStr, String leavediag) {
-        if (leavediag != null) {
-            String[] leavediags = leavediag.split(",?,?[0-9]\\.");
-            for (String string : leavediags) {
+    private List<String> cut(String leaveDiag, String mainDiagnosis) {
+        List<String> diags = new ArrayList<>();
+        if (leaveDiag != null) {
+            String[] leaveDiags = leaveDiag.split(",?,?[0-9]\\.");
+            for (String string : leaveDiags) {
                 if (!string.isEmpty()) {
-                    leaveDiagsStr.add(string);
+                    if (string.equals(mainDiagnosis)) {
+                        diags.add(0, string);
+                    } else {
+                        // 去重
+                        if (!diags.contains(string)) {
+                            diags.add(string);
+                        }
+                    }
                 }
             }
         }
-        return leaveDiagsStr;
+        return diags;
     }
 }