Jelajahi Sumber

糖尿病量表的互斥实现

kongwz 5 tahun lalu
induk
melakukan
ad51ae86e8

+ 34 - 1
graph-web/src/main/java/org/diagbot/graphWeb/work/GraphCalculate.java

@@ -34,6 +34,7 @@ public class GraphCalculate {
         }
     }
     private static Neo4jAPI neo4jAPI ;
+    private static Map<String,List<String>> mergeMap;
 
     /**
      * 返回诊断和治疗
@@ -75,7 +76,6 @@ public class GraphCalculate {
         //处理血肌酐
         List<PreResult> lisArr = searchData.getLisArr();
         String serumCreatinine = processSerumcreatinine(lisArr);
-
         //计算诊断
         Map<String, Object> condition =null;
         Map<String, Map<String, String>> excludelist = null;
@@ -149,6 +149,7 @@ public class GraphCalculate {
                     idns.addAll(idn);
                 }
             }
+            mergerIndex(newindSet1,mergeMap);
             if(newindSet1 != null && newindSet1.size()>0){
                 for (String ind:newindSet1
                      ) {
@@ -177,6 +178,38 @@ public class GraphCalculate {
         return responseData;
     }
 
+    /**
+     * 合并指标
+     * @param newindSet
+     * @return
+     */
+    private Set<String> mergerIndex(Set<String> newindSet,Map<String,List<String>> merge){
+        Map<String, List<String>> mergeInit = mergeInit(merge);
+        if(newindSet != null && newindSet.size()>0){
+            for (Map.Entry<String, List<String>> ds:mergeInit.entrySet()) {
+                String key = ds.getKey();
+                List<String> values = ds.getValue();
+                boolean b = newindSet.retainAll(values);
+                if(newindSet.contains(key) && b ){
+                    newindSet.remove(key);
+
+                }
+            }
+
+        }
+        return newindSet;
+    }
+    private Map<String,List<String>> mergeInit(Map<String,List<String>> merge){
+        if(merge == null){
+            merge = new HashMap<>();
+            List<String> otherIn = new ArrayList<>();
+            otherIn.add("2型糖尿病");
+            otherIn.add("1型糖尿病");
+            otherIn.add("成人迟发性自身免疫糖尿病");
+            merge.put("糖尿病",otherIn);
+        }
+        return merge;
+    }
     private Set<String> getQueNiDiagnose(Map<String, Object> condition) {
         Set<String> diseaseSet =new HashSet<>();
         if(condition != null){