Browse Source

风险因素评估

kongwz 5 năm trước cách đây
mục cha
commit
1601742e37

+ 5 - 2
graph-web/src/main/java/org/diagbot/graphWeb/controller/GraphController.java

@@ -1,5 +1,6 @@
 package org.diagbot.graphWeb.controller;
 
+import org.diagbot.common.push.bean.CrisisDetail;
 import org.diagbot.common.push.bean.ResponseData;
 import org.diagbot.common.push.bean.SearchData;
 import org.diagbot.graph.javabean.GdbResponse;
@@ -15,16 +16,18 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
 
 @Controller
 @RequestMapping("/graph")
 public class GraphController {
     @RequestMapping(value = "/push", method = RequestMethod.POST)
     @ResponseBody
-    public Response<ResponseData> bayesPageData(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
+    public Response<ResponseData> bayesPageData(HttpServletRequest request, @RequestBody SearchData searchData,Map<String, List<CrisisDetail>> crisisDetails) throws Exception {
         Response<ResponseData> response = new Response();
         GraphCalculate graphCalculate = new GraphCalculate();
-        ResponseData responseData = graphCalculate.calculate(request, searchData);
+        ResponseData responseData = graphCalculate.calculate(request, searchData,crisisDetails);
         response.setData(responseData);
         return response;
     }

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.lang3.StringUtils;
+import org.diagbot.common.push.bean.CrisisDetail;
 import org.diagbot.common.push.bean.FeatureRate;
 import org.diagbot.common.push.bean.ResponseData;
 import org.diagbot.common.push.bean.SearchData;
@@ -35,7 +36,7 @@ public class GraphCalculate {
      * @return
      * @throws Exception
      */
-    public ResponseData calculate(HttpServletRequest request, SearchData searchData) throws Exception {
+    public ResponseData calculate(HttpServletRequest request, SearchData searchData,Map<String, List<CrisisDetail>> crisisDetails) throws Exception {
 
         long starttime = System.currentTimeMillis();
         System.out.println("Start at: " + starttime);
@@ -149,7 +150,7 @@ public class GraphCalculate {
             starttime = System.currentTimeMillis();
             if(webDiag != null){
 //                MangementEvaluation mangementEvaluation = neo4jAPI.pushMe(webDiagList,lis_Result);
-                MangementEvaluation mangementEvaluation_new = neo4jAPI.pushMe_new(webDiagList);
+                MangementEvaluation mangementEvaluation_new = neo4jAPI.pushMe_new(webDiagList,crisisDetails);
                 System.out.println("推送管理评估消耗:"+(System.currentTimeMillis()-starttime)+"s");
                 Map<String, JSONObject> mangementEvaluation1 = mangementEvaluation_new.getMangementEvaluation();
                 responseData.setManagementEvaluation(mangementEvaluation1);

+ 33 - 5
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.lang3.StringUtils;
+import org.diagbot.common.push.bean.CrisisDetail;
 import org.diagbot.common.push.bean.FeatureRate;
 import org.diagbot.common.push.bean.SearchData;
 import org.diagbot.common.push.bean.neo4j.*;
@@ -1545,7 +1546,7 @@ public class Neo4jAPI {
      * @param webDiagList
      * @return
      */
-    public MangementEvaluation pushMe_new(String[] webDiagList) {
+    public MangementEvaluation pushMe_new(String[] webDiagList,Map<String, List<CrisisDetail>> crisisDetails) {
         MangementEvaluation mangementEvaluation = new MangementEvaluation();
         Map<String, JSONObject> mangementMap = new HashMap<>();
         Map<String, Map<String, List<String>>> zong = new LinkedHashMap<>();
@@ -1577,15 +1578,15 @@ public class Neo4jAPI {
                     types.add(type);
                 }
             }
-            mangementMap = this.procrssMange(zong, types);
+            mangementMap = this.procrssMange(zong, types,crisisDetails);
             mangementEvaluation.setMangementEvaluation(mangementMap);
         }
         return mangementEvaluation;
     }
 
-    public Map<String, JSONObject> procrssMange(Map<String, Map<String, List<String>>> zong, List<String> types) {
+    public Map<String, JSONObject> procrssMange(Map<String, Map<String, List<String>>> zong, List<String> types,Map<String, List<CrisisDetail>> crisisDetails) {
         Map<String, JSONObject> llo = new HashMap<>();
-//        Map<String,List<JSONObject>> ll = new HashMap<>();
+        Map<String, String> crisisDetailsMap = this.processCrisisDetails(crisisDetails);
         if (types != null && types.size() > 0) {
             for (String type : types) {
                 JSONObject big = new JSONObject();
@@ -1607,7 +1608,11 @@ public class Neo4jAPI {
                                 ) {
                             JSONObject ds = new JSONObject();
                             ds.put("detailName", value);
-                            ds.put("state", 0);
+                            if(crisisDetailsMap.containsKey(key) && value.equals(crisisDetailsMap.get(key))){
+                                ds.put("state", 1);
+                            }else {
+                                ds.put("state", 0);
+                            }
                             hList.add(ds);
                         }
                     }
@@ -1622,6 +1627,29 @@ public class Neo4jAPI {
         return llo;
     }
 
+    /**
+     * 处理风险因素评估
+     * @param crisisDetails
+     * @return
+     */
+    public Map<String,String> processCrisisDetails(Map<String, List<CrisisDetail>> crisisDetails){
+        Map<String,String> crisisMap = new HashMap<>();
+        if(crisisDetails != null && crisisDetails.size()>0 ){
+            for (Map.Entry<String, List<CrisisDetail>>  crisis:crisisDetails.entrySet()
+                 ) {
+                List<CrisisDetail> value = crisis.getValue();
+                if(value!=null && value.size()>0){
+                    for (CrisisDetail crisisDetail:value) {
+                        if("1".equals(crisisDetail.getTypeId())){
+                            String[] crisisSplits = crisisDetail.getRemindText().split(":");
+                            crisisMap.put(crisisSplits[0],crisisSplits[1]);
+                        }
+                    }
+                }
+            }
+        }
+        return crisisMap;
+    }
     /**
      * 旧结构管理评估
      *

+ 2 - 2
push-web/src/main/java/org/diagbot/push/controller/AlgorithmController.java

@@ -155,7 +155,8 @@ public class AlgorithmController extends BaseController {
         ResponseData bigDataResponseData = core.algorithm(request, searchData, responseData);
 
         GraphCalculate graphCalculate = new GraphCalculate();
-        ResponseData graphResponseData = graphCalculate.calculate(request, searchData);
+        Map<String, List<CrisisDetail>> crisisDetails = responseData.getCrisisDetails();
+        ResponseData graphResponseData = graphCalculate.calculate(request, searchData,crisisDetails);
         if (graphResponseData.getDis().size() > 0) {
             List<FeatureRate> disFeatureRates = new ArrayList<>();
             List<FeatureRate> bigdis = bigDataResponseData.getDis();
@@ -183,7 +184,6 @@ public class AlgorithmController extends BaseController {
         bigDataResponseData.setTreat(graphResponseData.getTreat());
 
         //量表和指标推送
-        Map<String, List<CrisisDetail>> crisisDetails = responseData.getCrisisDetails();
         List<MedicalIndication> crisisDetailsList = this.getCrisisDetails(crisisDetails);
         List<MedicalIndication> medicalIndications = graphResponseData.getMedicalIndications();
         if (medicalIndications == null) {

+ 4 - 2
push-web/src/main/java/org/diagbot/push/controller/GraphController.java

@@ -1,6 +1,7 @@
 package org.diagbot.push.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import org.diagbot.common.push.bean.CrisisDetail;
 import org.diagbot.common.push.bean.ResponseData;
 import org.diagbot.common.push.bean.SearchData;
 import org.diagbot.common.push.work.ParamsDataProxy;
@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -43,10 +45,10 @@ public class GraphController extends BaseController {
      */
     @RequestMapping(value = "/push", method = RequestMethod.POST)
     @ResponseBody
-    public Response<ResponseData> bayesPageData(HttpServletRequest request, @RequestBody SearchData searchData) throws Exception {
+    public Response<ResponseData> bayesPageData(HttpServletRequest request, @RequestBody SearchData searchData,Map<String, List<CrisisDetail>> crisisDetails) throws Exception {
         Response<ResponseData> response = new Response();
         GraphCalculate graphCalculate = new GraphCalculate();
-        ResponseData responseData = graphCalculate.calculate(request, searchData);
+        ResponseData responseData = graphCalculate.calculate(request, searchData,crisisDetails);
         response.setData(responseData);
         return response;
     }