Browse Source

完成反推LIS,PACS接口,多诊断

kongwz 6 years ago
parent
commit
cbfbb3e1d1

+ 5 - 3
graph-web/src/main/java/org/diagbot/graphWeb/dao/BackResponse.java

@@ -2,9 +2,11 @@ package org.diagbot.graphWeb.dao;
 
 import org.diagbot.graph.javabean.BackLisPacs;
 
+import java.util.List;
+
 public class BackResponse {
     private String status = "unknown";
-    private BackLisPacs Result=new BackLisPacs();
+    private List<BackLisPacs> Result;
 
     public String getStatus() {
         return status;
@@ -14,11 +16,11 @@ public class BackResponse {
         this.status = status;
     }
 
-    public BackLisPacs getResult() {
+    public List<BackLisPacs> getResult() {
         return Result;
     }
 
-    public void setResult(BackLisPacs js) {
+    public void setResult(List<BackLisPacs> js) {
         this.Result = js;
     }
 }

+ 9 - 2
graph-web/src/main/java/org/diagbot/graphWeb/work/BackPush.java

@@ -8,21 +8,28 @@ 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<>();
-        BackLisPacs RSet = null;
+        List<BackLisPacs> RSet = null;
         if (driver == null) {
             driver = DriverManager.newDrive();
         }
         if (driver != null && driver.session() != null) {
             n4api = new Neo4jAPI(driver);
-            RSet = n4api.getLisPacs(diseaseName);
+            RSet = n4api.getLisPacs(diseaseList);
             responseData.setResult(RSet);
         }
         objectResponse.setData(responseData);

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

@@ -1240,36 +1240,43 @@ public class Neo4jAPI {
      * @param diseaseName
      * @return
      */
-    public BackLisPacs getLisPacs(String diseaseName){
-        BackLisPacs backLisPacs = new BackLisPacs();
-        List<String> lisList = new ArrayList<>();
-        List<String> pacsList = new ArrayList<>();
+    public List<BackLisPacs> getLisPacs(List<String> diseaseName){
+        List<BackLisPacs> diseaseLisPacsList = new ArrayList<>();
         Session session = null;
         StatementResult result =null;
         String serchLisPacs = propertiesUtil.getProperty("serchLisPacs");
-        String query = serchLisPacs.replace("diseaseNmae", diseaseName);
+        String query = null;
         try {
             session = driver.session(AccessMode.WRITE);
-            result = session.run(query);
-            while (result.hasNext()){
-                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);
-                }else if("PACS".equals(lei)){
-                    pacsList.add(name);
+            for (String disease:diseaseName) {
+                BackLisPacs backLisPacs = new BackLisPacs();
+                List<String> lisList = new ArrayList<>();
+                List<String> pacsList = new ArrayList<>();
+                query = serchLisPacs.replace("diseaseNmae", disease);
+                result = session.run(query);
+                while (result.hasNext()){
+                    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);
+                    }else if("PACS".equals(lei)){
+                        pacsList.add(name);
+                    }
+
                 }
+                backLisPacs.setDiseaseName(disease.replace("\"",""));
+                backLisPacs.setLisList(lisList);
+                backLisPacs.setPacsList(pacsList);
+                diseaseLisPacsList.add(backLisPacs);
             }
-            backLisPacs.setDiseaseName(diseaseName);
-            backLisPacs.setLisList(lisList);
-            backLisPacs.setPacsList(pacsList);
+
         }catch (Exception e){
             e.printStackTrace();
 
         }finally {
             CloseSession(session);
-            return backLisPacs;
+            return diseaseLisPacsList;
         }
     }
     /**

+ 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 labels(m)[0] as lei,m.name as n
+where d.name = diseaseNmae return distinct d.name as name,labels(m)[0] as lei,m.name as n