kongwz 6 лет назад
Родитель
Сommit
3c61492571

+ 87 - 17
graph-web/src/main/java/org/diagbot/graphWeb/work/DiseaseCalculate.java

@@ -1,23 +1,22 @@
 package org.diagbot.graphWeb.work;
 
+import org.diagbot.common.javabean.*;
 import org.diagbot.common.work.FeatureRate;
 import org.diagbot.common.work.ResponseData;
 import org.diagbot.common.work.SearchData;
+import org.diagbot.nlp.relation.module.Lis;
 import org.diagbot.pub.api.Response;
 import org.diagbot.pub.utils.PropertiesUtil;
 import org.diagbot.pub.utils.http.HttpApi;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 推送诊断和治疗方案
  */
 public class DiseaseCalculate {
-    public ResponseData getDisease(HttpServletRequest request, SearchData searchData) throws Exception {
+    public ResponseData getDisease(SearchData searchData) throws Exception {
         ResponseData responseData = new ResponseData();
         PropertiesUtil propertiesUtil = new PropertiesUtil("url.properties");
         //调用图谱API
@@ -26,21 +25,92 @@ public class DiseaseCalculate {
                 ResponseData.class);
         //走诊断推送
         List<FeatureRate> dis = (List<FeatureRate>)diseaseResponse.getDis();
+        List<FeatureRate> diseaseName = getDisease(dis);
+        Map<String, Filnlly> treat = getTreat(diseaseResponse.getTreat());
+        responseData.setTreat(treat);
+        responseData.setDis(diseaseName);
+        return responseData;
+    }
+
+    public List<FeatureRate> getDisease(List<FeatureRate> dis){
         List<FeatureRate> diseaseName = new ArrayList<>();
-        for (FeatureRate d:dis) {
-            FeatureRate featureRate = new FeatureRate();
-            featureRate.setFeatureName(d.getFeatureName());
-            featureRate.setExtraProperty(d.getExtraProperty());
-            featureRate.setDesc(d.getDesc());
-            featureRate.setRate(d.getRate());
-            diseaseName.add(featureRate);
+        if(dis != null && dis.size()>0){
+            for (FeatureRate d:dis) {
+                FeatureRate featureRate = new FeatureRate();
+                featureRate.setFeatureName(d.getFeatureName());
+                featureRate.setExtraProperty(d.getExtraProperty());
+                featureRate.setDesc(d.getDesc());
+                featureRate.setRate(d.getRate());
+                diseaseName.add(featureRate);
+            }
         }
-        //走治疗推送
-        String webDiag = searchData.getDiag();
-        if(webDiag.trim()!=null && Arrays.asList(searchData.getFeatureTypes()).contains("8")){
+        return diseaseName;
+    }
 
+    public Map<String, Filnlly> getTreat(Map<String, Filnlly> treat){
+        Map<String,Filnlly> diseaseTreat = new HashMap<String,Filnlly>();
+        if(treat != null){
+            for (Map.Entry<String, Filnlly> tm:treat.entrySet()) {
+                String dise = tm.getKey();
+                Filnlly value = tm.getValue();
+                List<Indicators> adverseEvent = value.getAdverseEvent();
+                ArrayList<Drugs> treatment = value.getTreatment();
+                List<Indicators> newAdverseEvent = new ArrayList<>();
+                ArrayList<Drugs> newTreatment = new ArrayList<>();
+                if(adverseEvent != null && adverseEvent.size()>0){
+                    for (Indicators i:adverseEvent) {
+                        Indicators indicators = new Indicators();
+                        String name = i.getName();
+                        Integer controlType = i.getControlType();
+                        List<Detail> details = i.getDetails();
+                        List<Detail> newDetails = new ArrayList<>();
+                        if(details !=null && details.size()>0){
+                            for (Detail d:details) {
+                                Detail detail = new Detail();
+                                String name1 = d.getName();
+                                Integer value1 = d.getValue();
+                                detail.setName(name1);
+                                detail.setValue(value1);
+                                newDetails.add(detail);
+                            }
+                        }
+                        indicators.setName(name);
+                        indicators.setControlType(controlType);
+                        indicators.setDetails(newDetails);
+                        newAdverseEvent.add(indicators);
+                    }
+                }
+                if(treatment != null && treatment.size()>0){
+                    for (Drugs d:treatment) {
+                        Drugs drugs = new Drugs();
+                        String bigdrugsName = d.getBigdrugsName();
+                        String subdrugsName = d.getSubdrugsName();
+                        Integer drugsForbidden = d.getDrugsForbidden();
+                        LinkedList<Medicition> medicitionsList = d.getMedicitionsList();
+                        LinkedList<Medicition> newMedicitionsList =new LinkedList<>();
+                        if(medicitionsList != null && medicitionsList.size()>0){
+                            for (Medicition m:medicitionsList) {
+                                Medicition newMedication = new Medicition();
+                                newMedication.setMedicitionName(m.getMedicitionName());
+                                newMedication.setForbidden(m.getForbidden());
+                                newMedication.setIsShow(m.getIsShow());
+                                newMedication.setRate(m.getRate());
+                                newMedicitionsList.add(newMedication);
+                            }
+                        }
+                        drugs.setBigdrugsName(bigdrugsName);
+                        drugs.setSubdrugsName(subdrugsName);
+                        drugs.setDrugsForbidden(drugsForbidden);
+                        drugs.setMedicitionsList(newMedicitionsList);
+                        newTreatment.add(drugs);
+                    }
+                }
+                Filnlly filnlly = new Filnlly();
+                filnlly.setTreatment(newTreatment);
+                filnlly.setAdverseEvent(newAdverseEvent);
+                diseaseTreat.put(dise,filnlly);
+            }
         }
-        responseData.setDis(diseaseName);
-        return responseData;
+        return diseaseTreat;
     }
 }

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

@@ -71,17 +71,15 @@ public class GraphCalculate {
         }
 
         String webDiag = searchData.getDiag();
+        Set<String> diseaseSet = condition.keySet();
+        String diseaseType = searchData.getDiseaseType();
         //走治疗
         if(webDiag.trim()!=null && Arrays.asList(searchData.getFeatureTypes()).contains("8")){
             //走平常诊断治疗
-            Map<String, Filnlly> mulDiseaseTreat = neo4jAPI.getMulDiseaseTreat_2(webDiag, String.join(",", inputList));
+            Map<String, Filnlly> mulDiseaseTreat = neo4jAPI.getMulDiseaseTreat_2(webDiag,diseaseType,diseaseSet,String.join(",", inputList));
             responseData.setTreat(mulDiseaseTreat);
         }
-        if("0".equals(searchData.getDiseaseType())){    //走复诊
-            if(Arrays.asList(searchData.getFeatureTypes()).contains("22")){ //取指标
 
-            }
-        }
         responseData.setGraphWords(graphWordfeatureRates);
         responseData.setDis(featureRates);
         responseData.setInputs(searchData.getInputs());

+ 1 - 1
graph-web/src/main/resources/url.properties

@@ -1,5 +1,5 @@
 highrisk.http.url=http://192.168.2.234:5004/knowledge/getHighRisk
 lisPacs.http.url=http://192.168.2.234:5004/knowledge/getLisPacs
-#disease.http.url=http://192.168.3.112:5004/knowledge/getDisease
+disease.http.url=http://192.168.2.234:5004/knowledge/getDisease
 #lisPacs.http.url=http://192.168.3.9:5004/knowledge/getLisPacs
 #highrisk.http.url=http://192.168.3.9:5004/knowledge/getHighRisk

+ 52 - 51
graph/src/main/java/org/diagbot/graph/jdbc/Neo4jAPI.java

@@ -960,7 +960,7 @@ public class Neo4jAPI {
      * @param filds   //     * @param sign 标志,2是平常诊断的治疗,0是复诊诊断的治疗,1是急诊
      * @return
      */
-    public Map<String, Filnlly> getMulDiseaseTreat_2(String disease, String filds) {
+    public Map<String, Filnlly> getMulDiseaseTreat_2(String disease,String diseaseType,Set<String> disSet, String filds) {
         Map<String, Filnlly> diagTreat = new HashMap<>();
         Session session = null;
         NumberFormat nf = NumberFormat.getPercentInstance();
@@ -979,6 +979,9 @@ public class Neo4jAPI {
             for (String fild : fildsArray) {
                 fildsList.add("\'" + fild + "\'");
             }
+            for (String yizhen:disSet) {
+                fildsList.add("\'" + yizhen + "\'");
+            }
             for (int j = 0; j < diseaseList.size(); j++) {
                 if (i != j) {
                     fildsList.add("\'" + diseaseList.get(j) + "\'");
@@ -1150,58 +1153,18 @@ public class Neo4jAPI {
                             drugs.setMedicitionsList(medicitionsList);
                             drugsList.add(drugs);
                         }
-
                         Filnlly filnlly = new Filnlly();
-                        List<Indicators> indicatorsList1 = new ArrayList<>();
-                        List<Detail> detailList1 = new ArrayList<>();
-                        Detail detail1 = new Detail();
-                        detail1.setName("无");
-                        detail1.setValue(0);
-                        Detail detail2 = new Detail();
-                        detail2.setName("偶尔");
-                        detail2.setValue(0);
-                        Detail detail3 = new Detail();
-                        detail3.setName("频");
-                        detail3.setValue(0);
-                        detailList1.add(detail1);
-                        detailList1.add(detail2);
-                        detailList1.add(detail3);
-                        Indicators indicators1 = new Indicators();
-                        indicators1.setName("低血糖反应");
-                        indicators1.setControlType(2);
-                        indicators1.setDetails(detailList1);
-                        indicatorsList1.add(indicators1);
-
-                        List<Detail> detailList2 = new ArrayList<>();
-                        Detail detail11 = new Detail();
-                        detail11.setName("腹胀");
-                        detail11.setValue(0);
-                        Detail detail12 = new Detail();
-                        detail12.setName("厌食");
-                        detail12.setValue(0);
-                        Detail detail13 = new Detail();
-                        detail13.setName("嗳气");
-                        detail13.setValue(0);
-                        Detail detail14 = new Detail();
-                        detail14.setName("恶心");
-                        detail14.setValue(0);
-                        Detail detail15 = new Detail();
-                        detail15.setName("呕吐");
-                        detail15.setValue(0);
-                        detailList2.add(detail11);
-                        detailList2.add(detail12);
-                        detailList2.add(detail13);
-                        detailList2.add(detail14);
-                        detailList2.add(detail15);
-                        Indicators indicators11 = new Indicators();
-                        indicators11.setName("胃肠道不良反应");
-                        indicators11.setControlType(2);
-                        indicators11.setDetails(detailList2);
-                        indicatorsList1.add(indicators11);
-                        filnlly.setAdverseEvent(indicatorsList1);
+                        //显示不良反应
+                        if("1".equals(diseaseType)){
+                            List<Indicators> indicatorsList1 = new ArrayList<>();
+                            Indicators indicators1 = getAdverse(disSet, "低血糖反应");
+                            Indicators indicators2 = getAdverse(disSet, "胃肠道不良反应");
+                            indicatorsList1.add(indicators1);
+                            indicatorsList1.add(indicators2);
+                            filnlly.setAdverseEvent(indicatorsList1);
+                        }
                         filnlly.setTreatment(drugsList);
                         diagTreat.put(diseaseName, filnlly);
-
                     }
                     return 1;
                 }
@@ -1213,7 +1176,45 @@ public class Neo4jAPI {
             return diagTreat;
         }
     }
-
+    public Indicators getAdverse(Set<String> dis,String name){
+        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);
+        }
+        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);
+        Detail detail6 = new Detail();
+        detail6.setName("偶尔");
+        detail6.setValue(0);
+        Detail detail7 = new Detail();
+        detail7.setName("频繁");
+        detail7.setValue(0);
+        detailList1.add(detail1);
+        detailList1.add(detail2);
+        detailList1.add(detail3);
+        detailList1.add(detail4);
+        detailList1.add(detail5);
+        detailList1.add(detail6);
+        detailList1.add(detail7);
+        indicators1.setDetails(detailList1);
+        return indicators1;
+    }
     /**
      * 倒推实现
      *

+ 13 - 1
graphdb/src/main/java/org/diagbot/repository/BaseNodeRepository.java

@@ -49,6 +49,18 @@ public interface BaseNodeRepository extends Neo4jRepository<BaseNode, Long> {
             "with distinct m,r \n" +
             "return m.name as name, labels(m)[0] as label,type(r) as relationType")
     List<Map<String,Object>> getDisease(List fildList);
-
+    //get treat
+    @Query("match (d:Disease{name:{0}})-[r0:推荐]->(m:Drugs)-[:包含]->(n:Medicine),(d)-[r1:推荐]->(n) \n" +
+            "where r0.p<6 \n" +
+            "return m.name as drugs, r0.p as sort, n.name as medication, r1.rate as rate order by sort ,rate desc")
+    List<Map<String,Object>> getTreatMedicaton(String dis);
+    @Query("match (n:Disease{name:{0}})-[r0:推荐]->(m:Drugs)-[:包含]->(k:Drugs) return k.name as short,m.name as large")
+    List<Map<String,Object>> getShortLarge(String dis);
+    @Query("match (n:Disease{name:{0}})-[:推荐]->(d)<-[r0:慎用]-(m) \n" +
+            "where m.name in {1} and labels(d)[0] in ['Drugs','Medicine'] return d.name as name,type(r0) as type \n" +
+            "union \n" +
+            "match (n:Disease{name:{0}})-[:推荐]->(d)<-[r0:忌用]-(m) where m.name in {1} and labels(d)[0] in ['Drugs','Medicine'] \n" +
+            "return d.name as name,type(r0) as type")
+    List<Map<String,Object>> getShenJiDrugsMedication(String dis,List filds);
 
 }

+ 193 - 11
graphdb/src/main/java/org/diagbot/service/impl/KnowledgeServiceImpl.java

@@ -9,9 +9,7 @@ import org.diagbot.entity.node.Disease;
 import org.diagbot.entity.node.base.BaseNode;
 import org.apache.commons.collections4.IteratorUtils;
 import org.diagbot.repository.*;
-import org.diagbot.vo.domain.FeatureRate;
-import org.diagbot.vo.domain.ResponseData;
-import org.diagbot.vo.domain.SearchData;
+import org.diagbot.vo.domain.*;
 import org.neo4j.driver.v1.types.Node;
 import org.neo4j.driver.v1.types.Path;
 import org.slf4j.Logger;
@@ -272,10 +270,10 @@ public class KnowledgeServiceImpl implements KnowledgeService {
             }
         }
         String webDiag = searchData.getDiag();
-        if(webDiag.trim()!=null && Arrays.asList(searchData.getFeatureTypes()).contains("8")){
-            processTreat(featureRates,webDiag,ss);
+        if(webDiag.trim()!=null){
+            Map<String, Filnlly> mulDiseaseTreat = processTreat(webDiag, ss);
+            responseData.setTreat(mulDiseaseTreat);
         }
-
         responseData.setDis(featureRates);
         return responseData;
     }
@@ -378,20 +376,204 @@ public class KnowledgeServiceImpl implements KnowledgeService {
 
     /**
      * 处理治疗
-     * @param featureRateList
+     * @param
      */
-    public void processTreat(List<FeatureRate> featureRateList,String webDisease,Set inputFilds){
+    public Map<String, Filnlly> processTreat(String webDisease,Set<String> inputFilds){
+        Map<String, Filnlly> diagTreat = new HashMap<>();
         NumberFormat nf = NumberFormat.getPercentInstance();
         nf.setMinimumFractionDigits(0);//设置该百分比数字,保留2位小数;
         nf.setRoundingMode(RoundingMode.HALF_UP); //设置满5向上进位,即四舍五入;
         String[] diseaseArray = webDisease.split(",|,|、|;|:|;");
         List<String> diseaseList = Arrays.asList(diseaseArray);
-        Map<String, ArrayList> diseFilds = new HashMap<>();
+        Map<String, List> diseFilds = new HashMap<>();
         for(int i=0;i<diseaseList.size();i++){
             List<String> fildsList = new ArrayList<>();//其他条件数组
-
+            for (String fild:inputFilds) {
+                fildsList.add(fild);
+            }
+            for (int j = 0; j < diseaseList.size(); j++) {
+                if (i != j) {
+                    fildsList.add(diseaseList.get(j));
+                }
+            }
+            diseFilds.put(diseaseList.get(i), fildsList);
         }
-
+        for (Map.Entry<String, List> disFild:diseFilds.entrySet()) {
+            //获取诊断的药类和用药(排序好的)
+            List<Map<String, Object>> treatMedicaton = baseNodeRepository.getTreatMedicaton(disFild.getKey());
+            Map<String, LinkedHashMap<String, String>> contentMap = new LinkedHashMap<>();
+            if(treatMedicaton != null && treatMedicaton.size()>0){
+                for (Map<String, Object> tm:treatMedicaton) {
+                    String drugs = tm.get("drugs").toString();
+                    String medication = tm.get("medication").toString();
+                    String rate = tm.get("rate").toString();
+                    if (contentMap.containsKey(drugs)) {
+                        LinkedHashMap<String, String> drugsMedicationLinkedHashMap = contentMap.get(drugs);
+                        drugsMedicationLinkedHashMap.put(medication,rate);
+                        contentMap.put(drugs,drugsMedicationLinkedHashMap);
+                    }else {
+                        LinkedHashMap<String, String> sa = new LinkedHashMap<>();
+                        sa.put(medication,rate);
+                        contentMap.put(drugs,sa);
+                    }
+                }
+            }
+            //药所属类型的大小类合并
+            Map<String, String> shortLargeMap = new HashMap<>();
+            List<Map<String, Object>> shortLarge = baseNodeRepository.getShortLarge(disFild.getKey());
+            if(shortLarge != null && shortLarge.size()>0){
+                for (Map<String, Object> sl:shortLarge) {
+                    String aShort = sl.get("short").toString();
+                    String large = sl.get("large").toString();
+                    shortLargeMap.put(aShort,large+"("+aShort+")");
+                }
+            }
+            //小类替换成大类
+            Map<String, LinkedHashMap<String, String>> shortLargeMapConcat = new LinkedHashMap<>();
+            for (Map.Entry<String, LinkedHashMap<String, String>> f : contentMap.entrySet()) {
+                String drugs = f.getKey();
+                if (shortLargeMap.get(drugs) != null) {
+                    shortLargeMapConcat.put(shortLargeMap.get(drugs), contentMap.get(drugs));
+                } else {
+                    shortLargeMapConcat.put(drugs, contentMap.get(drugs));
+                }
+            }
+            //处理慎用,忌用
+            Map<String, String> medicationUseMap = new HashMap<>();//key:药名 value:禁忌(慎用)
+            List<Map<String, Object>> shenJi = baseNodeRepository.getShenJiDrugsMedication(disFild.getKey(), disFild.getValue());
+            if(shenJi != null  && shenJi.size()>0){
+                for (Map<String, Object> sj:shenJi) {
+                    String name = sj.get("name").toString();
+                    String type = sj.get("type").toString();
+                    medicationUseMap.put(name,type);//(名字,禁用/慎用)
+                }
+            }
+            //大对象集合
+            ArrayList<Drugs> drugsList = new ArrayList<Drugs>();
+            DrugsPattern drugsPattern = new DrugsPattern();
+            for (Map.Entry<String, LinkedHashMap<String, String>> w : shortLargeMapConcat.entrySet()) {
+                int i = 0;
+                int forbidden = 0;
+                Drugs drugs = new Drugs();
+                String drugsName = w.getKey();
+                Map<String, String> bigSubDrugs = drugsPattern.bigSubDrugs(drugsName);
+                drugs.setBigdrugsName(bigSubDrugs.get("big"));
+                drugs.setSubdrugsName(bigSubDrugs.get("sub"));
+                LinkedList<Medicition> medicitionsList = new LinkedList<>();
+                LinkedHashMap<String, String> meditionRate = w.getValue();
+                if ("忌用".equals(medicationUseMap.get(bigSubDrugs.get("big"))) || "忌用".equals(medicationUseMap.get(bigSubDrugs.get("sub")))) {
+                    drugs.setDrugsForbidden(2);
+                    for (Map.Entry<String, String> g : meditionRate.entrySet()) {
+                        Medicition medicition = new Medicition();
+                        String meditionName = g.getKey().trim();//药名
+                        String rate = nf.format(Double.parseDouble(g.getValue().trim()));//百分比
+                        medicition.setMedicitionName(meditionName);
+                        medicition.setRate(rate);
+                        if (i < 3) {
+                            medicition.setIsShow(1);
+                            i++;
+                        } else {
+                            medicition.setIsShow(0);
+                        }
+                        medicition.setForbidden(2);
+                        medicitionsList.add(medicition);
+                    }
+                }else if("慎用".equals(medicationUseMap.get(bigSubDrugs.get("big"))) || "慎用".equals(medicationUseMap.get(bigSubDrugs.get("sub")))){
+                    drugs.setDrugsForbidden(1);
+                    for (Map.Entry<String, String> g : meditionRate.entrySet()) {
+                        Medicition medicition = new Medicition();
+                        String meditionName = g.getKey().trim();//药名
+                        String rate = nf.format(Double.parseDouble(g.getValue().trim()));//百分比
+                        medicition.setMedicitionName(meditionName);
+                        medicition.setRate(rate);
+                        if (i < 3) {
+                            medicition.setIsShow(1);
+                            i++;
+                        } else {
+                            medicition.setIsShow(0);
+                        }
+                        medicition.setForbidden(1);
+                        medicitionsList.add(medicition);
+                    }
+                }else {
+                    drugs.setDrugsForbidden(0);
+                    for (Map.Entry<String, String> g : meditionRate.entrySet()) {
+                        Medicition medicition = new Medicition();
+                        String meditionName = g.getKey().trim();//药名
+                        String rate = nf.format(Double.parseDouble(g.getValue().trim()));//百分比
+                        medicition.setMedicitionName(meditionName);
+                        medicition.setRate(rate);
+                        if (i < 3) {
+                            medicition.setIsShow(1);
+                            i++;
+                        } else {
+                            medicition.setIsShow(0);
+                        }
+                        if ("忌用".equals(medicationUseMap.get(meditionName))) {
+                            medicition.setForbidden(2);
+                        } else if ("慎用".equals(medicationUseMap.get(meditionName))) {
+                            medicition.setForbidden(1);
+                        } else {
+                            medicition.setForbidden(0);
+                        }
+                        medicitionsList.add(medicition);
+                    }
+                }
+                drugs.setMedicitionsList(medicitionsList);
+                drugsList.add(drugs);
+            }
+            Filnlly filnlly = new Filnlly();
+            List<Indicators> indicatorsList1 = new ArrayList<>();
+            List<Detail> detailList1 = new ArrayList<>();
+            Detail detail1 = new Detail();
+            detail1.setName("无");
+            detail1.setValue(0);
+            Detail detail2 = new Detail();
+            detail2.setName("偶尔");
+            detail2.setValue(0);
+            Detail detail3 = new Detail();
+            detail3.setName("频");
+            detail3.setValue(0);
+            detailList1.add(detail1);
+            detailList1.add(detail2);
+            detailList1.add(detail3);
+            Indicators indicators1 = new Indicators();
+            indicators1.setName("低血糖反应");
+            indicators1.setControlType(2);
+            indicators1.setDetails(detailList1);
+            indicatorsList1.add(indicators1);
+
+            List<Detail> detailList2 = new ArrayList<>();
+            Detail detail11 = new Detail();
+            detail11.setName("腹胀");
+            detail11.setValue(0);
+            Detail detail12 = new Detail();
+            detail12.setName("厌食");
+            detail12.setValue(0);
+            Detail detail13 = new Detail();
+            detail13.setName("嗳气");
+            detail13.setValue(0);
+            Detail detail14 = new Detail();
+            detail14.setName("恶心");
+            detail14.setValue(0);
+            Detail detail15 = new Detail();
+            detail15.setName("呕吐");
+            detail15.setValue(0);
+            detailList2.add(detail11);
+            detailList2.add(detail12);
+            detailList2.add(detail13);
+            detailList2.add(detail14);
+            detailList2.add(detail15);
+            Indicators indicators11 = new Indicators();
+            indicators11.setName("胃肠道不良反应");
+            indicators11.setControlType(2);
+            indicators11.setDetails(detailList2);
+            indicatorsList1.add(indicators11);
+            filnlly.setAdverseEvent(indicatorsList1);
+            filnlly.setTreatment(drugsList);
+            diagTreat.put(disFild.getKey(),filnlly);
+        }
+        return diagTreat;
     }
 
     @Override

+ 21 - 0
graphdb/src/main/java/org/diagbot/vo/domain/DrugsPattern.java

@@ -0,0 +1,21 @@
+package org.diagbot.vo.domain;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class DrugsPattern {
+    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;
+    }
+}