Browse Source

把推送LIS,PACS排序修改

kongwz 6 years ago
parent
commit
d01d80991d

+ 1 - 25
graph-web/src/main/java/org/diagbot/graphWeb/controller/GraphController.java

@@ -19,30 +19,6 @@ import javax.servlet.http.HttpServletRequest;
 @Controller
 @RequestMapping("/graph")
 public class GraphController {
-    @RequestMapping(value = "/push", method = RequestMethod.POST)
-    @ResponseBody
-    public Response<ResponseData> bayesPageData(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
-        Response<ResponseData> response = new Response();
-        GraphCalculate graphCalculate = new GraphCalculate();
-        ResponseData responseData = graphCalculate.calculate(request, searchData);
-        response.setData(responseData);
-        return response;
-    }
-    @RequestMapping(value = "/highRisk", method = RequestMethod.POST)
-    @ResponseBody
-    public  Response<GdbResponse> getHighRisk(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
-        HighRiskCalculate highRiskCalculate = new HighRiskCalculate();
-        Response<GdbResponse> gdbResponseResponse = highRiskCalculate.calculateHighRisk(request, searchData);
-        return gdbResponseResponse;
-    }
-    @RequestMapping(value = "/lisPacs", method = RequestMethod.POST)
-    @ResponseBody
-    public Response<ResponseData> lisPacsData(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
-        Response<ResponseData> response = new Response();
-        GraphCalculate graphCalculate = new GraphCalculate();
-        ResponseData responseData = graphCalculate.getLisPacs(request, searchData);
-        response.setData(responseData);
-        return response;
-    }
+
 }
 

+ 38 - 35
graph-web/src/main/java/org/diagbot/graphWeb/work/GraphCalculate.java

@@ -97,40 +97,45 @@ public class GraphCalculate {
                     }
                 }
         }
-        System.out.println("web:"+webDiagList+"\n"+"大数据:"+bigdataDiagList);
-        Map<String, Set<FeatureRate>> weblisPacs =null;
-        Map<String, Set<FeatureRate>> biglisPacs =null;
+
+        Map<String, Set<String>> weblisPacs1 =null;
+        Map<String, Set<String>> biglisPacs1 =null;
         if(webDiagList !=null && webDiagList.size()>0){
-            weblisPacs = neo4jAPI.getLisPacs(webDiagList);//界面诊断推出的LIS,PACS
+            weblisPacs1=neo4jAPI.getLisPacs(webDiagList);//界面诊断推出的LIS,PACS
         }
         if(bigdataDiagList !=null && bigdataDiagList.size()>0){
-            biglisPacs =neo4jAPI.getLisPacs(bigdataDiagList);//大数据推得诊断
+            biglisPacs1=neo4jAPI.getLisPacs(bigdataDiagList);//大数据推得诊断
         }
-
-        Set<FeatureRate> lis =null;
-        Set<FeatureRate> pacs =null;
+        Set<String> lis =null;
+        Set<String> pacs =null;
         //如果界面有诊断
-        if(webDiagList.size()>0){
-            lis = weblisPacs.get("LIS");
-            lis = new HashSet<>(processResult(lis));
-            pacs = weblisPacs.get("PACS");
-            pacs = new HashSet<>(processResult(pacs));
-
-            if (biglisPacs != null && biglisPacs.size()>0) {
-                lis.addAll(biglisPacs.get("LIS"));
-                pacs.addAll(biglisPacs.get("PACS"));
+        if(weblisPacs1 !=null && weblisPacs1.values().size()>0){
+            lis = weblisPacs1.get("LIS");
+            pacs = weblisPacs1.get("PACS");
+            if(biglisPacs1 !=null && biglisPacs1.values().size()>0){
+                Set<String> bl = biglisPacs1.get("LIS");
+                Set<String>  bp= biglisPacs1.get("PACS");
+                lis.addAll(bl);
+                pacs.addAll(bp);
             }
-
         }else {
-            lis=biglisPacs.get("LIS");
-            pacs=biglisPacs.get("PACS");
+            lis = biglisPacs1.get("LIS");
+            pacs = biglisPacs1.get("PACS");
         }
-
-        lis = new HashSet<>(processResult(lis));
-        pacs = new HashSet<>(processResult(pacs));
-
-        responseData.setLabs(new ArrayList<FeatureRate>(lis));
-        responseData.setPacs(new ArrayList<FeatureRate>(pacs));
+        ArrayList<FeatureRate> lisFeature = new ArrayList<>();
+        ArrayList<FeatureRate> pacsFeature = new ArrayList<>();
+        for (String l:lis) {
+            FeatureRate featureRate = new FeatureRate();
+            featureRate.setFeatureName(l);
+            lisFeature.add(featureRate);
+        }
+        for (String p:pacs) {
+            FeatureRate featureRate = new FeatureRate();
+            featureRate.setFeatureName(p);
+            pacsFeature.add(featureRate);
+        }
+        responseData.setLabs(lisFeature);
+        responseData.setPacs(pacsFeature);
         return responseData;
     }
 
@@ -140,21 +145,19 @@ public class GraphCalculate {
      * @param set
      * @return List<FeatureRate>
      */
-    public List<FeatureRate> processResult(Set<FeatureRate> set) {
-        List<FeatureRate> frlist = new ArrayList<>();
+    public Set<String> processResult(Set<String> set) {
+        Set<String> frlist = new LinkedHashSet<>();
         Map<String, String> sortval = new HashMap<>();
-        Map<String, FeatureRate> items = new HashMap<>();
+        Map<String, String> items = new HashMap<>();
         String name;
 
         try {
             if (set != null && set.size() > 0) {
-                for (FeatureRate item : set) {
-                    name = item.getFeatureName();
-                    items.put(name, item);
-                    if (sortval.get(name) == null) {
-                        sortval.put(name, "1");
+                for (String item : set) {
+                    if (sortval.get(item) == null) {
+                        sortval.put(item, "1");
                     } else {
-                        sortval.put(name, String.valueOf(Integer.parseInt(sortval.get(name)) + 1));
+                        sortval.put(item, String.valueOf(Integer.parseInt(sortval.get(item)) + 1));
                     }
                 }
 

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

@@ -1283,12 +1283,13 @@ public class Neo4jAPI {
      * @param diseases
      * @return
      */
-    public Map<String, Set<FeatureRate>> getLisPacs(List<String> diseases) {
+    public Map<String, Set<String>> getLisPacs(List<String> diseases) {
         Session session = null;
         StatementResult result = null;
         String serchLisPacs = propertiesUtil.getProperty("serchLisPacs");
         String query = null;
         Map<String, Set<FeatureRate>> lisPacsMap = new HashMap<>();
+        Map<String, Set<String>> lisPacsMap1 = new HashMap<>();
         List<String> diseaseList = new ArrayList<>();//诊断数组
         for (String dis : diseases) {
             diseaseList.add("\"" + dis + "\"");
@@ -1297,57 +1298,54 @@ public class Neo4jAPI {
             session = driver.session(AccessMode.WRITE);
             List<FeatureRate> lisList = new ArrayList<>();
             List<FeatureRate> pacsList = new ArrayList<>();
+            List<String> lisArray = new ArrayList<>();
+            List<String> pacsArray = new ArrayList<>();
             query = serchLisPacs.replace("diseaseNmae", diseaseList.toString());
             System.out.println(query);
             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("\"", "");
                 String subLis = next.get("lr").toString().replaceAll("\"", "");
                 if ("LIS".equals(lei)) {
-                    featureRate.setFeatureName(name);
-                    if (!lisList.contains(featureRate)) {
-                        lisList.add(featureRate);
-                    }
+                    lisArray.add(name);
                 } else if ("PACS".equals(lei)) {
-                    featureRate.setFeatureName(name);
-                    if (!pacsList.contains(featureRate)) {
-                        pacsList.add(featureRate);
-                    }
+                   pacsArray.add(name);
                 }
             }
 
-            lisPacsMap.put("LIS", processList(lisList));
-            lisPacsMap.put("PACS", processList(pacsList));
+//            lisPacsMap.put("LIS", processList(lisList));
+//            lisPacsMap.put("PACS", processList(pacsList));
+            lisPacsMap1.put("LIS",processList(lisArray));
+            lisPacsMap1.put("PACS",processList(pacsArray));
         } catch (Exception e) {
             e.printStackTrace();
 
         } finally {
             CloseSession(session);
-            return lisPacsMap;
+            return lisPacsMap1;
         }
     }
 
-    public Set<FeatureRate> processList(List<FeatureRate> list) {
-        Set<FeatureRate> resultSet = new LinkedHashSet<>();
-        Map<FeatureRate, Integer> featuerInt = new HashMap<FeatureRate, Integer>();
-        for (FeatureRate d : list) {
+    public Set<String> processList(List<String> list) {
+        Set<String> resultSet = new LinkedHashSet<>();
+        Map<String, Integer> featuerInt = new HashMap<String, Integer>();
+        for (String d : list) {
             if (featuerInt.containsKey(d)) {
                 featuerInt.put(d, featuerInt.get(d) + 1);
             } else {
                 featuerInt.put(d, 1);
             }
         }
-        List<Map.Entry<FeatureRate, Integer>> reslist = new ArrayList<Map.Entry<FeatureRate, Integer>>(featuerInt.entrySet());
-        Collections.sort(reslist, new Comparator<Map.Entry<FeatureRate, Integer>>() {
+        List<Map.Entry<String, Integer>> reslist = new ArrayList<Map.Entry<String, Integer>>(featuerInt.entrySet());
+        Collections.sort(reslist, new Comparator<Map.Entry<String, Integer>>() {
             @Override
-            public int compare(Map.Entry<FeatureRate, Integer> o1, Map.Entry<FeatureRate, Integer> o2) {
+            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                 return o2.getValue().compareTo(o1.getValue());
             }
         });
-        for (Map.Entry<FeatureRate, Integer> f : reslist
+        for (Map.Entry<String, Integer> f : reslist
                 ) {
             //排好序的set
             resultSet.add(f.getKey());

+ 32 - 0
push-web/src/main/java/org/diagbot/push/controller/GraphController.java

@@ -18,6 +18,30 @@ import javax.servlet.http.HttpServletRequest;
 @Controller
 @RequestMapping("/graph")
 public class GraphController extends BaseController {
+    /**
+     * 推送诊断,治疗
+     * @param request
+     * @param searchData
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping(value = "/push", method = RequestMethod.POST)
+    @ResponseBody
+    public Response<ResponseData> bayesPageData(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
+        Response<ResponseData> response = new Response();
+        GraphCalculate graphCalculate = new GraphCalculate();
+        ResponseData responseData = graphCalculate.calculate(request, searchData);
+        response.setData(responseData);
+        return response;
+    }
+
+    /**
+     * 推送警惕
+     * @param request
+     * @param searchData
+     * @return
+     * @throws Exception
+     */
     @RequestMapping(value = "/highRisk", method = RequestMethod.POST)
     @ResponseBody
     public Response<GdbResponse> getHighRisk(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
@@ -25,6 +49,14 @@ public class GraphController extends BaseController {
         Response<GdbResponse> gdbResponseResponse = highRiskCalculate.calculateHighRisk(request, searchData);
         return gdbResponseResponse;
     }
+
+    /**
+     * 推送化验,辅检
+     * @param request
+     * @param searchData
+     * @return
+     * @throws Exception
+     */
     @RequestMapping(value = "/lisPacs", method = RequestMethod.POST)
     @ResponseBody
     public Response<ResponseData> lisPacsData(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {