浏览代码

不良反应推送代码

kongwz 5 年之前
父节点
当前提交
8f8fa57d9d

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

@@ -136,7 +136,7 @@ public class GraphCalculate {
             // 查找页面诊断里是否有不良反应
             Map<String, List<String>> disUE = neo4jAPI.getDisUE(diseaseName, diseaseType);
             //根据页面输入内容推出的不良反应集合
-            Set<String> ue = neo4jAPI.getUe((String[]) inputList.toArray(new String[inputList.size()]));
+            Map<String,String> ue = neo4jAPI.getUe((String[]) inputList.toArray(new String[inputList.size()]));
             //走平常诊断治疗
 //            Map<String, Filnlly> mulDiseaseTreat = neo4jAPI.getMulDiseaseTreat_2(diseaseName,webDiag, diseaseType, diseaseSet,disUE,ue,String.join(",", inputList));
             Map<String, Filnlly> mulDiseaseTreat_new = neo4jAPI.getMulDiseaseTreat_new(diseaseName,webDiag, diseaseType, diseaseSet,disUE,ue,String.join(",", inputList));
@@ -148,10 +148,10 @@ public class GraphCalculate {
             logger.info("featureTypeList 包含11,走管理评估!!!");
             starttime = System.currentTimeMillis();
             if(webDiag != null){
-                MangementEvaluation mangementEvaluation = neo4jAPI.pushMe(webDiagList,lis_Result);
+//                MangementEvaluation mangementEvaluation = neo4jAPI.pushMe(webDiagList,lis_Result);
                 MangementEvaluation mangementEvaluation_new = neo4jAPI.pushMe_new(webDiagList);
                 System.out.println("推送管理评估消耗:"+(System.currentTimeMillis()-starttime)+"s");
-                Map<String, JSONObject> mangementEvaluation1 = mangementEvaluation.getMangementEvaluation();
+                Map<String, JSONObject> mangementEvaluation1 = mangementEvaluation_new.getMangementEvaluation();
                 responseData.setManagementEvaluation(mangementEvaluation1);
             }
         }

+ 40 - 37
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -4,6 +4,7 @@ import com.alibaba.druid.support.json.JSONUtils;
 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.FeatureRate;
 import org.diagbot.common.push.bean.SearchData;
 import org.diagbot.common.push.bean.neo4j.*;
@@ -816,9 +817,9 @@ public class Neo4jAPI {
     /**
      * 不良反应推送
      */
-    public Set<String> getUe(String[] keys) {
+    public Map<String,String> getUe(String[] keys) {
         //查找不良反应推送
-        Set<String> indSet = new HashSet<>();
+        Map<String,String> indSet = new HashMap<>();
         List<String> newList = new ArrayList<>();
         List<String> fildList = new ArrayList<>();
         List<String> startList = new ArrayList<>();
@@ -862,7 +863,8 @@ public class Neo4jAPI {
             while (result.hasNext()) {
                 Record record = result.next();
                 String indName = record.get("name").toString().replace("\"", "");
-                indSet.add(indName);
+                String tr = record.get("tr").toString().replace("\"", "");//类型
+                indSet.put(indName,tr);
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -987,7 +989,7 @@ public class Neo4jAPI {
      * @param filds   //     * @param sign 标志,2是平常诊断的治疗,0是复诊诊断的治疗,1是急诊
      * @return
      */
-    public Map<String, Filnlly> getMulDiseaseTreat_2(String disName, String disease, Integer diseaseType, Set<String> disSet, Map<String, List<String>> disUE, Set<String> ueSet, String filds) {
+    public Map<String, Filnlly> getMulDiseaseTreat_2(String disName, String disease, Integer diseaseType, Set<String> disSet, Map<String, List<String>> disUE, Map<String,String> ueSet, String filds) {
         Map<String, Filnlly> diagTreat = new HashMap<>();
         Session session = null;
         NumberFormat nf = NumberFormat.getPercentInstance();
@@ -1189,7 +1191,7 @@ public class Neo4jAPI {
         }
     }
 
-    public Map<String, Filnlly> getMulDiseaseTreat_new(String disName, String disease, Integer diseaseType, Set<String> disSet, Map<String, List<String>> disUE, Set<String> ueSet, String filds) {
+    public Map<String, Filnlly> getMulDiseaseTreat_new(String disName, String disease, Integer diseaseType, Set<String> disSet, Map<String, List<String>> disUE, Map<String,String> ueSet, String filds) {
         Map<String, Filnlly> newTret = new HashMap<>();
         Session session = null;
         Map<String, ArrayList> diseFilds = getdisFilds(disName, disease, disSet, ueSet, filds);
@@ -1324,7 +1326,7 @@ public class Neo4jAPI {
      * @param filds
      * @return
      */
-    private Map<String, ArrayList> getdisFilds(String disName, String disease, Set<String> disSet, Set<String> ueSet, String filds) {
+    private Map<String, ArrayList> getdisFilds(String disName, String disease, Set<String> disSet, Map<String,String> ueSet, String filds) {
         String[] diseaseArray = disease.split(",|,|、|;|:|;");
         List<String> diseaseList = new ArrayList<>();//诊断数组
         for (int i = 0; i < diseaseArray.length; i++) {
@@ -1341,8 +1343,17 @@ public class Neo4jAPI {
                 fildsList.add("\'" + yizhen + "\'");
             }
         }
-        for (String h : ueSet) {
-            fildsList.add("\'" + h + "\'");
+        if(ueSet!= null && ueSet.size()>0){
+            for(Map.Entry<String,String> d:ueSet.entrySet()){
+                String ue = d.getKey();
+                String value = d.getValue();
+                if(StringUtils.isNotEmpty(value) && !"".equals("可能有")){
+                    fildsList.add("\'" +value+ ue + "\'");
+                }
+                if(StringUtils.isNotEmpty(value) && "".equals("可能有")){
+                    fildsList.add("\'" + ue + "\'");
+                }
+            }
         }
         diseFilds.put(disName, fildsList);
         return diseFilds;
@@ -1762,37 +1773,29 @@ public class Neo4jAPI {
 
     }
 
-    public Indicators getAdverse(Set<String> dis, String name) {
+    public Indicators getAdverse(Map<String,String> dis, String name) {
+        String[] item={"无","可能有","轻度","中度","重度"};
+        Indicators indicators = new Indicators();
+        indicators.setName(name);
+        indicators.setControlType(2);
         List<Detail> detailList1 = new ArrayList<>();
-        Indicators indicators1 = new Indicators();
-        indicators1.setName(name);
-        indicators1.setControlType(2);
-        Detail detail1 = new Detail();
-        detail1.setName("无");
-        detail1.setValue(0);
-        Detail detail2 = new Detail();
-        detail2.setName("可能有");
-        detail2.setValue(0);
-        if (dis.contains(name)) {
-            detail2.setValue(1);
+        for (String it:item) {
+            Detail detail = new Detail();
+            detail.setName(it);
+            if(dis != null && dis.size()>0){
+                if(dis.containsKey(name) && dis.get(name).equals(it)){
+                    detail.setValue(1);
+                }else {
+                    detail.setValue(0);
+                }
+            }else {
+                detail.setValue(0);
+            }
+            detailList1.add(detail);
+
         }
-        logger.info("有" + name + " 标记为是!!!!");
-        Detail detail3 = new Detail();
-        detail3.setName("轻度");
-        detail3.setValue(0);
-        Detail detail4 = new Detail();
-        detail4.setName("中度");
-        detail4.setValue(0);
-        Detail detail5 = new Detail();
-        detail5.setName("重度");
-        detail5.setValue(0);
-        detailList1.add(detail1);
-        detailList1.add(detail2);
-        detailList1.add(detail3);
-        detailList1.add(detail4);
-        detailList1.add(detail5);
-        indicators1.setDetails(detailList1);
-        return indicators1;
+        indicators.setDetails(detailList1);
+        return indicators;
     }
 
 

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

@@ -88,7 +88,7 @@ return i.name as name
 searchUe=match (n:Condition)-[r:\u53EF\u80FD\u6709|:\u8F7B\u5EA6|:\u4E2D\u5EA6|:\u91CD\u5EA6]->(m:UntowardEffect)\n \
 where n.name in fildList\n \
 with distinct m,r\n \
-return m.name as name
+return m.name as name,type(r) as tr
 
 #\u6839\u636E\u75BE\u75C5\u67E5\u627E\u76F8\u5E94\u7684Lis Pacs
 serchLisPacs=unwind disList as row \n \
@@ -107,7 +107,7 @@ union\n \
 match(h:Disease{name:disName})-[r:\u6CBB\u7597\u65B9\u6848]->(t:Treat)-[r2:\u63A8\u8350]->(m:Medicine)-[r1:\u5C5E\u4E8E]->(d:Drugs)\n \
 with t,m,d\n \
 match(t)-[r:\u63A8\u8350]->(m)-[r1:\u5C5E\u4E8E]->(h:Drugs)\n \
-where d.name=h.bigDrugs and h.p<6 \n \
+where d.name=h.bigDrugs \n \
 return t.name as treat,d.name as big,h.name as sub, m.name as med,null as ty\n \
 order by h.p
 # \u65B0\u7ED3\u6784\u7BA1\u7406\u8BC4\u4F30