Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/push-dev-filter' into push-debug

kongwz 6 rokov pred
rodič
commit
c1996f42ba

+ 27 - 3
common-push/src/main/java/org/diagbot/common/push/filter/ClassifyDiag.java

@@ -116,11 +116,12 @@ public class ClassifyDiag {
          * 这里处理一下可能诊断剔除的功能
          * 如果图谱推出的诊断和可能诊断有层级关系,就把对应的可能诊断剔除
          */
+        Set<String> queSet =null;
         List<String> newBIgDiagList = this.removeKeng(queDiagList, bigDiagList);
         System.out.println("图谱归一前数据 :"+queDiagList);
         if(queDiagList != null && queDiagList.size()>0){
             //图谱归一 ,图谱sign =0,大数据sign = 1
-            Set<String> queSet = this.diagProcess(queDiagList,0);
+            queSet = this.diagProcess(queDiagList,0);
             System.out.println("图谱归一后的数据    :"+queSet);
             if(queSet != null && queSet.size()>0){
                 for (String queDis:queSet) {
@@ -144,6 +145,15 @@ public class ClassifyDiag {
         if(newBIgDiagList!= null && newBIgDiagList.size()>0){
             //大数据的可能诊断归一和排序
             List<FeatureRate> featureRates = this.sortFeatureList(newBIgDiagList, updateFeatures);
+            //把可能诊断中和图谱相同的诊断去除
+            if(featureRates != null && featureRates.size()>0 && queSet !=null){
+                for (FeatureRate f:featureRates) {
+                    if(queSet.contains(f.getFeatureName())){
+                        featureRates.remove(f);
+                        continue;
+                    }
+                }
+            }
             finalDiagList.addAll(featureRates);
         }
 
@@ -393,12 +403,26 @@ public class ClassifyDiag {
                     //如果能找到就把相关联的rate加起来
                     testCollect.add(queDis);
 
-                    String s = diagClassifyCache.get(queDis);
+                    String s = null;
+                    s= diagClassifyCache.get(queDis);
                     if(s != null){
                         testCollect.add(s);
+                        s = diagClassifyCache.get(s);
+                        if(s != null){
+                            testCollect.add(s);
+                        }
                     }
-                    List<Object> key = this.getKey(diagClassifyCache, queDis);
+                    List<Object> key =null;
+                    key = this.getKey(diagClassifyCache, queDis);
                     testCollect.addAll(key);
+                    if(key != null && key.size()>0){
+                        for (Object o:key) {
+                            key = this.getKey(diagClassifyCache,o.toString());
+                            if(key!= null){
+                                testCollect.addAll(key);
+                            }
+                        }
+                    }
                     Double count = 0.0;
                     for (String dis:diss) {
                         if(testCollect.indexOf(dis) >= 0){