소스 검색

治疗的用药的大小类调整

kongwz 6 년 전
부모
커밋
919ae79ddb

+ 17 - 7
common-service/src/main/java/org/diagbot/common/work/Drugs.java

@@ -6,15 +6,24 @@ import java.util.LinkedList;
  * 药类
  */
 public class Drugs {
-    private String drugsName;//药类名
+    private String bigdrugsName;//大药类名
+    private String subdrugsName;//小药类名
     private LinkedList<Medicition> medicitionsList;
 
-    public String getDrugsName() {
-        return drugsName;
+    public String getBigdrugsName() {
+        return bigdrugsName;
     }
 
-    public void setDrugsName(String drugsName) {
-        this.drugsName = drugsName;
+    public void setBigdrugsName(String bigdrugsName) {
+        this.bigdrugsName = bigdrugsName;
+    }
+
+    public String getSubdrugsName() {
+        return subdrugsName;
+    }
+
+    public void setSubdrugsName(String subdrugsName) {
+        this.subdrugsName = subdrugsName;
     }
 
     public LinkedList<Medicition> getMedicitionsList() {
@@ -28,8 +37,9 @@ public class Drugs {
     public Drugs() {
     }
 
-    public Drugs(String drugsName, LinkedList<Medicition> medicitionsList) {
-        this.drugsName = drugsName;
+    public Drugs(String bigdrugsName, String subdrugsName, LinkedList<Medicition> medicitionsList) {
+        this.bigdrugsName = bigdrugsName;
+        this.subdrugsName = subdrugsName;
         this.medicitionsList = medicitionsList;
     }
 }

+ 27 - 0
graph/src/main/java/org/diagbot/graph/jdbc/DrugsPattern.java

@@ -0,0 +1,27 @@
+package org.diagbot.graph.jdbc;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class DrugsPattern {
+    public static void main(String[] args) {
+        String str = "镇痛药(阿片类强效镇痛剂)";
+        Map<String, String> stringStringMap = new DrugsPattern().bigSubDrugs(str);
+
+        System.out.println(stringStringMap.get("big")+"\t"+stringStringMap.get("sub"));
+    }
+    public Map<String,String> bigSubDrugs(String drugs){
+        Map<String,String> bigSubMap=new HashMap<>();
+        String bigDrugs="" ,subDrugs="";
+        if(drugs.contains("(")){
+            bigDrugs=drugs.split("\\(")[0];
+            subDrugs=drugs.split("\\(")[1].replace(")","");
+        }else {
+            bigDrugs=drugs;
+            subDrugs=drugs;
+        }
+        bigSubMap.put("big",bigDrugs);
+        bigSubMap.put("sub",subDrugs);
+        return bigSubMap;
+    }
+}

+ 8 - 4
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -905,11 +905,10 @@ public class Neo4jAPI {
                             for (Map.Entry<String, LinkedHashMap<String, String>> w : mapSortValueDa.entrySet()) {
                                 int i = 0;
                                 Drugs drugs1 = new Drugs();
-                                drugs1.setDrugsName(w.getKey().trim());//药类
+//                                drugs1.setDrugsName(w.getKey().trim());//药类
                                 LinkedList<Medicition> medicitions = new LinkedList<>();
                                 LinkedHashMap<String, String> value2 = w.getValue();
                                 for (Map.Entry<String, String> d : value2.entrySet()) {
-//                        System.out.println(w.getKey()+" "+d.getKey()+" "+d.getValue());
                                     Medicition medicition = new Medicition();
                                     medicition.setMedicitionName(d.getKey().trim());//药名
                                     medicition.setRate(nf.format(Double.parseDouble(d.getValue().trim())));//使用率
@@ -1013,7 +1012,8 @@ public class Neo4jAPI {
                         }
                         //药类型的大小类拼接
                         Map<String, String> shortLargeMap = new HashMap<>();
-                        query="match (n:Disease{name:'"+diseaseName+"'})-[:推荐]->(d:Drugs)<-[:包含]-(m) return d.name as short,m.name as large";
+//                        query="match (n:Disease{name:'"+diseaseName+"'})-[:推荐]->(d:Drugs)<-[:包含]-(m) return d.name as short,m.name as large";
+                        query="match (n:Disease{name:'"+diseaseName+"'})-[r0:推荐]->(m:Drugs)-[:包含]->(k:Drugs) return k.name as short,m.name as large";
                         result=tx.run(query);
                         while (result.hasNext()){
                             Record record = result.next();
@@ -1049,10 +1049,13 @@ public class Neo4jAPI {
                         }
                         //大对象集合
                         ArrayList<Drugs> drugsList = new ArrayList<Drugs>();
+                        DrugsPattern drugsPattern = new DrugsPattern();
                         for (Map.Entry<String, LinkedHashMap<String, String>> w : shortLargeMapConcat.entrySet()) {
                             int i = 0;
                             Drugs drugs = new Drugs();
                             String drugsName = w.getKey();//药类
+//                            Map<String, String> bigSubDrugs = new DrugsPattern().bigSubDrugs(drugsName);
+                            Map<String, String> bigSubDrugs = drugsPattern.bigSubDrugs(drugsName);
                             LinkedList<Medicition> medicitionsList=new LinkedList<>();
                             LinkedHashMap<String, String> meditionRate = w.getValue();
                             for (Map.Entry<String,String> g:meditionRate.entrySet()
@@ -1077,7 +1080,8 @@ public class Neo4jAPI {
                                 }
                                 medicitionsList.add(medicition);
                             }
-                            drugs.setDrugsName(drugsName);
+                            drugs.setBigdrugsName(bigSubDrugs.get("big"));
+                            drugs.setSubdrugsName(bigSubDrugs.get("sub"));
                             drugs.setMedicitionsList(medicitionsList);
                             drugsList.add(drugs);
                         }