Prechádzať zdrojové kódy

把LIS,PACS整合到推送中

kongwz 6 rokov pred
rodič
commit
7a72d7394c

+ 0 - 17
graph-web/src/main/java/org/diagbot/graphWeb/controller/GraphController.java

@@ -1,21 +1,12 @@
 package org.diagbot.graphWeb.controller;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.diagbot.graph.javabean.GdbResponse;
-import org.diagbot.graph.jdbc.DriverManager;
-import org.diagbot.graph.jdbc.Neo4jAPI;
-import org.diagbot.common.work.FeatureRate;
 import org.diagbot.graphWeb.dao.BackResponse;
-import org.diagbot.graphWeb.work.BackPush;
 import org.diagbot.graphWeb.work.GraphCalculate;
 import org.diagbot.graphWeb.work.HighRiskCalculate;
-import org.diagbot.graphWeb.work.ParamsDataProxy;
 import org.diagbot.common.work.ResponseData;
 import org.diagbot.common.work.SearchData;
-import org.diagbot.nlp.feature.FeatureAnalyze;
-import org.diagbot.nlp.feature.FeatureType;
 import org.diagbot.pub.api.Response;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -24,7 +15,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.*;
 
 @Controller
 @RequestMapping("/graph")
@@ -45,13 +35,6 @@ public class GraphController {
         Response<GdbResponse> gdbResponseResponse = highRiskCalculate.calculateHighRisk(request, searchData);
         return gdbResponseResponse;
     }
-    @RequestMapping(value = "/backPush", method = RequestMethod.POST)
-    @ResponseBody
-    public  Response<BackResponse> getBackPush(HttpServletRequest request, @RequestBody JSONObject searchData) throws Exception {
 
-        BackPush backPush = new BackPush();
-        Response<BackResponse> gdbResponseResponse = backPush.calculateBackPush(request, searchData);
-        return gdbResponseResponse;
-    }
 }
 

+ 0 - 38
graph-web/src/main/java/org/diagbot/graphWeb/work/BackPush.java

@@ -1,38 +0,0 @@
-package org.diagbot.graphWeb.work;
-
-import com.alibaba.fastjson.JSONObject;
-import org.diagbot.graph.javabean.BackLisPacs;
-import org.diagbot.graph.jdbc.DriverManager;
-import org.diagbot.graph.jdbc.Neo4jAPI;
-import org.diagbot.graphWeb.dao.BackResponse;
-import org.diagbot.pub.api.Response;
-import org.neo4j.driver.v1.Driver;
-import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
-
-public class BackPush {
-    private Driver driver=null;
-    private Neo4jAPI n4api=null;
-    public Response<BackResponse> calculateBackPush(HttpServletRequest request, JSONObject searchData) throws Exception {
-        List<String> diseaseList = new ArrayList<>();
-        String diseaseName = searchData.getString("name");
-        String[] diseaseSplits = diseaseName.split(",");
-        for (String disease:diseaseSplits) {
-            diseaseList.add("\""+disease+"\"");
-        }
-        BackResponse responseData = new BackResponse();
-        Response<BackResponse> objectResponse = new Response<>();
-        List<BackLisPacs> RSet = null;
-        if (driver == null) {
-            driver = DriverManager.newDrive();
-        }
-        if (driver != null && driver.session() != null) {
-            n4api = new Neo4jAPI(driver);
-            RSet = n4api.getLisPacs(diseaseList);
-            responseData.setResult(RSet);
-        }
-        objectResponse.setData(responseData);
-        return objectResponse;
-    }
-}

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

@@ -63,10 +63,12 @@ public class GraphCalculate {
             String diag = searchData.getDiag();
             Map<String, Filnlly> mulDiseaseTreat = neo4jAPI.getMulDiseaseTreat_2(diag, String.join(",", inputList));
             responseData.setTreat(mulDiseaseTreat);
+            Map<String, List<FeatureRate>> lisPacs = neo4jAPI.getLisPacs(diag);
+            responseData.setLabs(lisPacs.get("LIS"));
+            responseData.setPacs(lisPacs.get("PACS"));
         }
         responseData.setGraphWords(graphWordfeatureRates);
         responseData.setDis(featureRates);
-//        response.setData(responseData);
         responseData.setInputs(searchData.getInputs());
         return responseData;
     }

+ 24 - 18
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.diagbot.common.work.Drugs;
+import org.diagbot.common.work.FeatureRate;
 import org.diagbot.common.work.Filnlly;
 import org.diagbot.common.work.Medicition;
 import org.diagbot.graph.javabean.BackLisPacs;
@@ -1240,43 +1241,48 @@ public class Neo4jAPI {
      * @param diseaseName
      * @return
      */
-    public List<BackLisPacs> getLisPacs(List<String> diseaseName){
-        List<BackLisPacs> diseaseLisPacsList = new ArrayList<>();
+    public Map<String,List<FeatureRate>> getLisPacs(String diseaseName){
         Session session = null;
         StatementResult result =null;
         String serchLisPacs = propertiesUtil.getProperty("serchLisPacs");
         String query = null;
+        Map<String,List<FeatureRate>> lisPacsMap = new HashMap<>();
+        String[] diseaseArray = diseaseName.split(",|,|、");
+        List<String> diseaseList = new ArrayList<>();//诊断数组
+        for (int i = 0;i<diseaseArray.length;i++) {
+            diseaseList.add("\""+diseaseArray[i]+"\"");
+        }
         try {
-            session = driver.session(AccessMode.WRITE);
-            for (String disease:diseaseName) {
-                BackLisPacs backLisPacs = new BackLisPacs();
-                List<String> lisList = new ArrayList<>();
-                List<String> pacsList = new ArrayList<>();
-                query = serchLisPacs.replace("diseaseNmae", disease);
+                session = driver.session(AccessMode.WRITE);
+                List<FeatureRate> lisList = new ArrayList<>();
+                List<FeatureRate> pacsList = new ArrayList<>();
+                query = serchLisPacs.replace("diseaseNmae", diseaseList.toString());
                 result = session.run(query);
                 while (result.hasNext()){
+                    FeatureRate featureRate = new FeatureRate();
                     Record next = result.next();
                     String lei = next.get("lei").toString().replaceAll("\"","");
                     String name = next.get("n").toString().replaceAll("\"","");
                     if("LIS".equals(lei)){
-                        lisList.add(name);
+                        featureRate.setFeatureName(name);
+                        if(!lisList.contains(featureRate)){
+                            lisList.add(featureRate);
+                        }
                     }else if("PACS".equals(lei)){
-                        pacsList.add(name);
+                        featureRate.setFeatureName(name);
+                        if(!pacsList.contains(featureRate)){
+                            pacsList.add(featureRate);
+                        }
                     }
-
                 }
-                backLisPacs.setDiseaseName(disease.replace("\"",""));
-                backLisPacs.setLisList(lisList);
-                backLisPacs.setPacsList(pacsList);
-                diseaseLisPacsList.add(backLisPacs);
-            }
-
+            lisPacsMap.put("LIS",lisList);
+            lisPacsMap.put("PACS",pacsList);
         }catch (Exception e){
             e.printStackTrace();
 
         }finally {
             CloseSession(session);
-            return diseaseLisPacsList;
+            return lisPacsMap;
         }
     }
     /**

+ 1 - 1
graph/src/main/resources/bolt.properties

@@ -26,4 +26,4 @@ sql1=with "+newList+" as data unwind data as row\n \
 searchWords=match(d) where d.name in fildList return distinct d.name as name
 #\u6839\u636E\u75BE\u75C5\u67E5\u627E\u76F8\u5E94\u7684Lis Pacs
 serchLisPacs=match (d:Disease)-[r1:\u63A8\u8350]->(m)\n \
-where d.name = diseaseNmae return distinct d.name as name,labels(m)[0] as lei,m.name as n
+where d.name in diseaseNmae return distinct d.name as name,labels(m)[0] as lei,m.name as n