Browse Source

化验推送修改

kongwz 6 years ago
parent
commit
3c3d07595c

+ 41 - 7
graphdb/src/main/java/org/diagbot/service/impl/KnowledgeServiceImpl.java

@@ -370,6 +370,11 @@ public class KnowledgeServiceImpl implements KnowledgeService {
         return responseData;
     }
 
+    /**
+     * 获取化验和辅检
+     * @param searchData
+     * @return
+     */
     @Override
     public Map<String, List<FeatureRate>> getLisPacs(SearchData searchData) {
         String[] featureArray = StringUtils.split(searchData.getFeatureType(), ",");
@@ -381,11 +386,12 @@ public class KnowledgeServiceImpl implements KnowledgeService {
             webDiagList = Arrays.asList(webDiag.split(",|,|、"));
         }
         List<FeatureRate> bigdataDiagFeature = searchData.getPushDiags();
-        List<String> bigdataDiagList = new LinkedList<>();
+        List<String> neo4jDiagList = new LinkedList<>();//疑似诊断
+        List<String> bigdataDiagList = new LinkedList<>();//大数据诊断
         if (bigdataDiagFeature.size() > 0) {
             for (FeatureRate fe : bigdataDiagFeature) {
                 if ("neo4j".equals(fe.getRate()) && fe.getDesc().contains("确诊")) {
-                    bigdataDiagList.add(fe.getFeatureName());
+                    neo4jDiagList.add(fe.getFeatureName());
                     logger.info("图谱推出的诊断为: " + fe.getFeatureName());
                 } else if (fe.getDesc() == null) {
                     bigdataDiagList.add(fe.getFeatureName());
@@ -400,14 +406,23 @@ public class KnowledgeServiceImpl implements KnowledgeService {
                         bigdataDiagList.remove(bigdataDiagList.get(i));
                     }
                 }
+                for (int i = 0; i < neo4jDiagList.size(); i++) {
+                    if (neo4jDiagList.get(i).equals(web)) {
+                        neo4jDiagList.remove(bigdataDiagList.get(i));
+                    }
+                }
             }
         }
         logger.info("界面诊断为: " + webDiagList);
         Map<String, Set<String>> weblisPacs = null;
+        Map<String, Set<String>> neo4jlisPacs = null;
         Map<String, Set<String>> biglisPacs = null;
         if (webDiagList != null && webDiagList.size() > 0) {
             weblisPacs = processLisPacs(webDiagList);
         }
+        if (neo4jDiagList != null && neo4jDiagList.size() > 0) {
+            neo4jlisPacs = processLisPacs(neo4jDiagList);
+        }
         if (bigdataDiagList != null && bigdataDiagList.size() > 0) {
             biglisPacs = processLisPacs(bigdataDiagList);
         }
@@ -419,17 +434,36 @@ public class KnowledgeServiceImpl implements KnowledgeService {
             pacs = weblisPacs.get("PACS");
             logger.info("界面有诊断的情况下,界面诊断推出的lis为: " + lis);
             logger.info("界面有诊断的情况下,界面诊断推出的pacs为: " + pacs);
+            if (neo4jlisPacs != null && neo4jlisPacs.values().size() > 0) {
+                Set<String> bl = neo4jlisPacs.get("LIS");
+                Set<String> bp = neo4jlisPacs.get("PACS");
+                logger.info("疑诊推出的lis为: " + bl);
+                logger.info("疑诊推出的pacs为: " + bp);
+                lis.addAll(bl);
+                pacs.addAll(bp);
+            }
             if (biglisPacs != null && biglisPacs.values().size() > 0) {
                 Set<String> bl = biglisPacs.get("LIS");
                 Set<String> bp = biglisPacs.get("PACS");
-                logger.info("疑诊和可能诊断推出的lis为: " + bl);
-                logger.info("疑诊和可能诊断推出的pacs为: " + bp);
+                logger.info("可能诊断推出的lis为: " + bl);
+                logger.info("可能诊断推出的pacs为: " + bp);
                 lis.addAll(bl);
                 pacs.addAll(bp);
             }
-        } else if (biglisPacs != null) {
-            lis = biglisPacs.get("LIS");
-            pacs = biglisPacs.get("PACS");
+        } else if (neo4jlisPacs != null || biglisPacs != null) {
+            lis = new HashSet<>();
+            pacs = new HashSet<>();
+            if(neo4jlisPacs != null){
+                Set<String> neo4jLis = neo4jlisPacs.get("LIS");
+                Set<String> neo4jpacs = neo4jlisPacs.get("PACS");
+                lis.addAll(neo4jLis);
+                pacs.addAll(neo4jpacs);
+            }else if(biglisPacs != null){
+                Set<String> biglis = biglisPacs.get("LIS");
+                Set<String> bigpacs = biglisPacs.get("PACS");
+                lis.addAll(biglis);
+                pacs.addAll(bigpacs);
+            }
             logger.info("界面无诊断的情况下,推出诊断的lis为: " + lis);
             logger.info("界面无诊断的情况下,推出诊断的lis为: " + pacs);
         }