|
@@ -184,7 +184,7 @@ public class PushTreat {
|
|
|
//规则不匹配,返回主诊断治疗方案
|
|
|
treatDetailList = this.ordinaryMedicaton(disName,allFilds,driver);
|
|
|
}else {
|
|
|
- treatDetailList = this.processMedication(disDrugs, conditionDesign, allFilds, driver);
|
|
|
+ treatDetailList = this.processMedication(disName,disDrugs, conditionDesign, allFilds, driver);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -216,7 +216,7 @@ public class PushTreat {
|
|
|
//规则不匹配,返回主诊断治疗方案
|
|
|
treatDetailList = this.ordinaryMedicaton(disName,allFilds,driver);
|
|
|
}else {
|
|
|
- treatDetailList = this.processMedication(disDrugs, conditionDesign, allFilds, driver);
|
|
|
+ treatDetailList = this.processMedication(disName,disDrugs, conditionDesign, allFilds, driver);
|
|
|
|
|
|
}
|
|
|
|
|
@@ -321,77 +321,80 @@ public class PushTreat {
|
|
|
return treatDetailList;
|
|
|
}
|
|
|
|
|
|
- private List<TreatDetail> processMedication(Map<String,Map<String,Object>> disDrugs,Map<String,Integer> conditionDesign,List<String> allFilds,Driver driver){
|
|
|
+ private List<TreatDetail> processMedication(String disName,Map<String,Map<String,Object>> disDrugs,Map<String,Integer> conditionDesign,List<String> allFilds,Driver driver){
|
|
|
List<TreatDetail> treatDetailList = new ArrayList<>();
|
|
|
|
|
|
if(disDrugs != null && disDrugs.size()>0){
|
|
|
for (Map.Entry<String,Map<String,Object>> ds:disDrugs.entrySet()) {
|
|
|
String key = ds.getKey();
|
|
|
- Map<String, Object> values = ds.getValue();
|
|
|
- List<String> cateList = (List<String>) values.get("cate");
|
|
|
- List<String> disList = (List<String>)values.get("dis");
|
|
|
- List<Object> collList = (List<Object>)values.get("coll");
|
|
|
- if(cateList.contains("主症") && cateList.contains("并发症")){
|
|
|
- TreatDetail treatDetail = new TreatDetail();
|
|
|
- List<MeditionDetail> meditionDetails = new ArrayList<>();
|
|
|
- int main = cateList.indexOf("主症");
|
|
|
- String mainDis = disList.get(main);
|
|
|
- List<String> dds= new ArrayList<>();
|
|
|
- for(String s:disList){
|
|
|
- if(!s.equals(mainDis)){
|
|
|
- dds.add(s);
|
|
|
+ if(Arrays.asList(key.split("\\+")).contains(disName)){
|
|
|
+ Map<String, Object> values = ds.getValue();
|
|
|
+ List<String> cateList = (List<String>) values.get("cate");
|
|
|
+ List<String> disList = (List<String>)values.get("dis");
|
|
|
+ List<Object> collList = (List<Object>)values.get("coll");
|
|
|
+ if(cateList.contains("主症") && cateList.contains("并发症")){
|
|
|
+ TreatDetail treatDetail = new TreatDetail();
|
|
|
+ List<MeditionDetail> meditionDetails = new ArrayList<>();
|
|
|
+ int main = cateList.indexOf("主症");
|
|
|
+ String mainDis = disList.get(main);
|
|
|
+ List<String> dds= new ArrayList<>();
|
|
|
+ for(String s:disList){
|
|
|
+ if(!s.equals(mainDis)){
|
|
|
+ dds.add(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ treatDetail.setTitle(mainDis+"及其"+String.join("、",dds)+"治疗方案");//糖尿病及其2型糖尿病治疗方案
|
|
|
+ Integer da = conditionDesign.get(key);
|
|
|
+ String s = switchType(da);
|
|
|
+ MeditionDetail meditionDetail_main = new MeditionDetail();//主诊断的
|
|
|
+ List<String> o = (List<String>)collList.get(main);
|
|
|
+ List<String> yinhao = yinhao(o);
|
|
|
+ //根据类找药
|
|
|
+ List<Drugs> drugs = searchMedication(yinhao,allFilds,driver);
|
|
|
+ meditionDetail_main.setDescription(s+":"+String.join("、",o));//单药治疗:双胍类
|
|
|
+ meditionDetail_main.setTreatment(drugs);
|
|
|
+ meditionDetails.add(meditionDetail_main);
|
|
|
+
|
|
|
+ //并发症用药
|
|
|
+ for (String dis:dds) {
|
|
|
+ MeditionDetail meditionDetail_bing = new MeditionDetail();//并发症的
|
|
|
+ int i = disList.indexOf(dis);
|
|
|
+ List<String> ol = (List<String>)collList.get(i);
|
|
|
+ List<String> yinhaol = yinhao(ol);
|
|
|
+ List<Drugs> drugs1 = searchMedication(yinhaol,allFilds,driver);
|
|
|
+ meditionDetail_bing.setDescription(dis);//单药治疗:双胍类
|
|
|
+ meditionDetail_bing.setTreatment(drugs1);
|
|
|
+ meditionDetails.add(meditionDetail_bing);
|
|
|
}
|
|
|
- }
|
|
|
- treatDetail.setTitle(mainDis+"及其"+String.join("、",dds)+"治疗方案");//糖尿病及其2型糖尿病治疗方案
|
|
|
- Integer da = conditionDesign.get(key);
|
|
|
- String s = switchType(da);
|
|
|
- MeditionDetail meditionDetail_main = new MeditionDetail();//主诊断的
|
|
|
- List<String> o = (List<String>)collList.get(main);
|
|
|
- List<String> yinhao = yinhao(o);
|
|
|
- //根据类找药
|
|
|
- List<Drugs> drugs = searchMedication(yinhao,allFilds,driver);
|
|
|
- meditionDetail_main.setDescription(s+":"+String.join("、",o));//单药治疗:双胍类
|
|
|
- meditionDetail_main.setTreatment(drugs);
|
|
|
- meditionDetails.add(meditionDetail_main);
|
|
|
-
|
|
|
- //并发症用药
|
|
|
- for (String dis:dds) {
|
|
|
- MeditionDetail meditionDetail_bing = new MeditionDetail();//并发症的
|
|
|
- int i = disList.indexOf(dis);
|
|
|
- List<String> ol = (List<String>)collList.get(i);
|
|
|
- List<String> yinhaol = yinhao(ol);
|
|
|
- List<Drugs> drugs1 = searchMedication(yinhaol,allFilds,driver);
|
|
|
- meditionDetail_bing.setDescription(dis);//单药治疗:双胍类
|
|
|
- meditionDetail_bing.setTreatment(drugs1);
|
|
|
- meditionDetails.add(meditionDetail_bing);
|
|
|
- }
|
|
|
|
|
|
- treatDetail.setMeditionDetails(meditionDetails);
|
|
|
+ treatDetail.setMeditionDetails(meditionDetails);
|
|
|
|
|
|
- treatDetailList.add(treatDetail);
|
|
|
+ treatDetailList.add(treatDetail);
|
|
|
|
|
|
+ }
|
|
|
+ /*if(cateList.size()==1 && cateList.contains("主症")){
|
|
|
+
|
|
|
+ TreatDetail treatDetail = new TreatDetail();
|
|
|
+ List<MeditionDetail> meditionDetails = new ArrayList<>();
|
|
|
+ int main = cateList.indexOf("主症");
|
|
|
+ String mainDis = disList.get(main);
|
|
|
+ treatDetail.setTitle(mainDis+"治疗方案");//糖尿病及其2型糖尿病治疗方案
|
|
|
+ Integer da = conditionDesign.get(key);
|
|
|
+ String s = switchType(da);
|
|
|
+ MeditionDetail meditionDetail_main = new MeditionDetail();//主诊断的
|
|
|
+ List<String> o = (List<String>)collList.get(main);
|
|
|
+ List<String> yinhao = yinhao(o);
|
|
|
+ //根据类找药
|
|
|
+ List<Drugs> drugs = searchMedication(yinhao,allFilds,driver);
|
|
|
+ meditionDetail_main.setDescription(s+":"+String.join("、",o));//单药治疗:双胍类
|
|
|
+ meditionDetail_main.setTreatment(drugs);
|
|
|
+ meditionDetails.add(meditionDetail_main);
|
|
|
+ treatDetail.setMeditionDetails(meditionDetails);
|
|
|
+
|
|
|
+ treatDetailList.add(treatDetail);
|
|
|
+ }*/
|
|
|
}
|
|
|
- if(cateList.size()==1 && cateList.contains("主症")){
|
|
|
-
|
|
|
- TreatDetail treatDetail = new TreatDetail();
|
|
|
- List<MeditionDetail> meditionDetails = new ArrayList<>();
|
|
|
- int main = cateList.indexOf("主症");
|
|
|
- String mainDis = disList.get(main);
|
|
|
- treatDetail.setTitle(mainDis+"治疗方案");//糖尿病及其2型糖尿病治疗方案
|
|
|
- Integer da = conditionDesign.get(key);
|
|
|
- String s = switchType(da);
|
|
|
- MeditionDetail meditionDetail_main = new MeditionDetail();//主诊断的
|
|
|
- List<String> o = (List<String>)collList.get(main);
|
|
|
- List<String> yinhao = yinhao(o);
|
|
|
- //根据类找药
|
|
|
- List<Drugs> drugs = searchMedication(yinhao,allFilds,driver);
|
|
|
- meditionDetail_main.setDescription(s+":"+String.join("、",o));//单药治疗:双胍类
|
|
|
- meditionDetail_main.setTreatment(drugs);
|
|
|
- meditionDetails.add(meditionDetail_main);
|
|
|
- treatDetail.setMeditionDetails(meditionDetails);
|
|
|
-
|
|
|
- treatDetailList.add(treatDetail);
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
return treatDetailList;
|