Jelajahi Sumber

新结构不良反应推送

kongwz 6 tahun lalu
induk
melakukan
88adaabc60

+ 12 - 4
graph-web/src/main/java/org/diagbot/graphWeb/work/GraphCalculate.java

@@ -49,9 +49,13 @@ public class GraphCalculate {
         String webDiag = searchData.getDiag();
         logger.info("页面诊断为 :"+webDiag);
         //计算诊断
-        Map<String, Map<String,String>> condition = neo4jAPI.getNewCondition((String[]) inputList.toArray(new String[inputList.size()]),webDiag );
+        Map<String, Map<String,String>> condition =null;
+        if(featureTypeList.contains("7")){
+            condition = neo4jAPI.getNewCondition((String[]) inputList.toArray(new String[inputList.size()]),webDiag );
+        }
         List<FeatureRate> featureRates = new ArrayList<>();
-        for (Map.Entry<String, Map<String,String>> d : condition.entrySet()) {
+        if(condition != null){
+            for (Map.Entry<String, Map<String,String>> d : condition.entrySet()) {
                 FeatureRate featureRate = new FeatureRate();
                 featureRate.setFeatureName(d.getKey());
                 featureRate.setExtraProperty("");
@@ -60,9 +64,13 @@ public class GraphCalculate {
                 featureRate.setDesc(s);
                 featureRate.setRate("neo4j");
                 featureRates.add(featureRate);
+            }
+        }
+        Set<String> diseaseSet =null;
+        if(condition != null){
+            diseaseSet = condition.keySet();
+            logger.info("diseaseSet :" + diseaseSet);
         }
-        Set<String> diseaseSet = condition.keySet();
-        logger.info("diseaseSet :" + diseaseSet);
         Integer diseaseType = searchData.getDisType();
         List<LisDetail> lisArr = searchData.getLisArr();
         Set<String> lisSet = new HashSet<>();

+ 19 - 30
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -911,7 +911,8 @@ public class Neo4jAPI {
         //查找不良反应推送
         Set<String> indSet = new HashSet<>();
         List<String> newList = new ArrayList<>();
-        ArrayList<String> fildList = new ArrayList<>();
+        List<String> fildList = new ArrayList<>();
+        List<String> startList = new ArrayList<>();
         for (String fild : keys) {
             fildList.add("\"" + fild.trim() + "\"");
         }
@@ -922,46 +923,31 @@ public class Neo4jAPI {
         try {
             session = driver.session(AccessMode.WRITE);
             logger.info("session 为: " + session);
-            query = propertiesUtil.getProperty("serchCollect").replace("fildList", fildList.toString());
-            logger.info("查找是否有组合词,查找语句为:\n"+query);
+            //第一步查询输入的词所在number
+            query = propertiesUtil.getProperty("searchNumColl").replace("startList", fildList.toString());
+            logger.info("查找词所在的number \n" + query);
             result = session.run(query);
             while (result.hasNext()) {
-                Record record = result.next();
-                String fild = record.get("fild").toString();
-                List<Object> typeCollect = record.get("typeCollect").asList();
-                //如果不包含诊断依据就找它的同义词,否则就要这个词
-                if ("近义词".equals(typeCollect.get(0)) && typeCollect.size() == 1) {
-                    query = "match(l)-[r:近义词]->(h) where l.name=" + fild + " return h.name as js";
-                    logger.info("如果有近义词就替换,处理语句为:\n"+query);
-                    StatementResult jinyiResult = session.run(query);
-                    while (jinyiResult.hasNext()) {
-                        Record next = jinyiResult.next();
-                        String js = next.get("js").toString();
-                        fildList.remove(fild);
-                        fildList.add(js);
-                    }
-                }
+                Record next = result.next();
+                String v = next.get("v").toString();
+                startList.add(v);
             }
-            newList.addAll(fildList);
+            newList.addAll(startList);
             int i = 1;
             while (newList.size() > 0) {
+                query = propertiesUtil.getProperty("searchNewCondition").replace("newList", newList.toString()).replace("fildList", startList.toString());
+                logger.info("第" + i + "次查询conditon语句 \n" + query);
                 i++;
-                query = propertiesUtil.getProperty("searchCondition").replace("newList", newList.toString()).replace("fildList", fildList.toString());
-                logger.info("第"+i+"次查询符合诊断依据的语句:\n"+query);
                 result = session.run(query);
                 newList.clear();
                 while (result.hasNext()) {
                     Record record = result.next();
                     String condition = record.get("condition").toString();
-                    String jundgement = record.get("jundgement").toString();
-                    String label = record.get("label").toString();
-                    if ("TRUE".equals(jundgement)) {
-                        newList.add(condition);
-                        fildList.add(condition);
-                    }
+                    newList.add(condition);
+                    startList.add(condition);
                 }
             }
-            query = propertiesUtil.getProperty("searchUe").replace("fildList", fildList.toString());
+            query = propertiesUtil.getProperty("searchUe").replace("fildList", startList.toString());
             logger.info("查找界面输入是否有不良反应,处理语句为:\n"+query);
             result = session.run(query);
             while (result.hasNext()) {
@@ -1257,9 +1243,12 @@ public class Neo4jAPI {
             for (String fild : fildsArray) {
                 fildsList.add("\'" + fild + "\'");
             }
-            for (String yizhen : disSet) {
-                fildsList.add("\'" + yizhen + "\'");
+            if(disSet != null && disSet.size()>0){
+                for (String yizhen : disSet) {
+                    fildsList.add("\'" + yizhen + "\'");
+                }
             }
+
             for (String h : ueSet) {
                 fildsList.add("\'" + h + "\'");
             }

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

@@ -318,7 +318,7 @@ public class KnowledgeServiceImpl implements KnowledgeService {
             List<String> bigdataDiagList =new LinkedList<>();
             if(bigdataDiagFeature.size()>0){
                 for (FeatureRate fe:bigdataDiagFeature) {
-                    if(!"{\"鉴别诊断\":\"\"}".equals(fe.getDesc())){
+                    if(!"{\"鉴别诊断\":\"\"}".equals(fe.getDesc()) || !"{\"急诊\":\"\"}".equals(fe.getDesc())){
                         if("neo4j".equals(fe.getRate())){
                             bigdataDiagList.add(fe.getFeatureName());
                             logger.info("图谱推出的诊断为: "+fe.getFeatureName());
@@ -358,8 +358,8 @@ public class KnowledgeServiceImpl implements KnowledgeService {
                 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);
                 }