|
@@ -20,6 +20,7 @@ import com.diagbot.util.FastJsonUtils;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.vo.ConceptBaseVO;
|
|
|
import com.diagbot.vo.ConceptIntroduceVO;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
@@ -85,77 +86,73 @@ public class TreatmentFacade {
|
|
|
retMap.put("surgeryTreatment", null);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//获取知识图谱治疗方案
|
|
|
JSONObject treatmentJson = treatmentMap.get(diseaseName);
|
|
|
if (treatmentJson == null || treatmentJson.isEmpty()) {
|
|
|
return retMap;
|
|
|
}
|
|
|
|
|
|
- List<MedicitionClass> drugsList
|
|
|
- = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(),
|
|
|
- "treatment", MedicitionClass.class);
|
|
|
- List<String> cateBigNameList
|
|
|
- = drugsList.stream().map(drugs -> drugs.getBigdrugsName()).collect(Collectors.toList());
|
|
|
- List<Concept> cateBigConceptList
|
|
|
- = conceptFacade.getListByNamesAndType(cateBigNameList,
|
|
|
- LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
|
|
|
- Map<String, Concept> cateBigConceptMap
|
|
|
- = EntityUtil.makeEntityMap(cateBigConceptList, "libName");
|
|
|
- List<String> cateSmallNameList
|
|
|
- = drugsList.stream().map(drugs -> drugs.getSubdrugsName()).collect(Collectors.toList());
|
|
|
- List<Concept> cateSmallConceptList
|
|
|
- = conceptFacade.getListByNamesAndType(cateSmallNameList,
|
|
|
- LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
|
|
|
- Map<String, Concept> cateSmallConceptMap
|
|
|
- = EntityUtil.makeEntityMap(cateSmallConceptList, "libName");
|
|
|
+ //推荐药物
|
|
|
+ List<MedicitionClass> drugsList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "treatment", MedicitionClass.class);
|
|
|
+ if (ListUtil.isNotEmpty(drugsList)) {
|
|
|
+ //药品大类
|
|
|
+ List<String> cateBigNameList = drugsList.stream().map(drugs -> drugs.getBigdrugsName()).collect(Collectors.toList());
|
|
|
+ List<Concept> cateBigConceptList = conceptFacade.getListByNamesAndType(cateBigNameList, LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
|
|
|
+ Map<String, Concept> cateBigConceptMap = EntityUtil.makeEntityMap(cateBigConceptList, "libName");
|
|
|
+ Map<String, Concept> cateBigInfoExistMap = conceptDetailFacade.existList(cateBigNameList, LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
|
|
|
+ //药品小类
|
|
|
+ List<String> cateSmallNameList = drugsList.stream().map(drugs -> drugs.getSubdrugsName()).collect(Collectors.toList());
|
|
|
+ List<Concept> cateSmallConceptList = conceptFacade.getListByNamesAndType(cateSmallNameList, LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
|
|
|
+ Map<String, Concept> cateSmallConceptMap = EntityUtil.makeEntityMap(cateSmallConceptList, "libName");
|
|
|
+ //Map<String, Concept> cateSmallInfoExistMap = conceptDetailFacade.existList(cateSmallNameList, LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
|
|
|
|
|
|
- for (MedicitionClass medicitionClass : drugsList) {
|
|
|
- Concept cateBigConcept = cateBigConceptMap.get(medicitionClass.getBigdrugsName());
|
|
|
- if (cateBigConcept != null) {
|
|
|
- medicitionClass.setBigdrugsConceptId(cateBigConcept.getId());
|
|
|
- }
|
|
|
- medicitionClass.setBigdrgusLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
|
|
|
- medicitionClass.setBigdrugsType(ConceptTypeEnum.Drug_Category_Big.getKey());
|
|
|
- Concept cateSmallConcept = cateSmallConceptMap.get(medicitionClass.getSubdrugsName());
|
|
|
- if (cateSmallConcept != null) {
|
|
|
- medicitionClass.setSubdrugsConceptId(cateSmallConcept.getId());
|
|
|
- }
|
|
|
- medicitionClass.setSubdrugsLibType(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
|
|
|
- medicitionClass.setSubdrugsType(ConceptTypeEnum.Drug_Category_Small.getKey());
|
|
|
- if (cateBigConcept != null) {
|
|
|
- conceptIntroduceVO = new ConceptIntroduceVO();
|
|
|
- conceptIntroduceVO.setName(cateBigConcept.getLibName());
|
|
|
- conceptIntroduceVO.setType(ConceptTypeEnum.Drug_Category_Big.getKey());
|
|
|
- conceptIntroduceVO.setLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
|
|
|
- if (conceptDetailFacade.exist(conceptIntroduceVO)) {
|
|
|
- medicitionClass.setShowInfo("1");
|
|
|
- } else {
|
|
|
- medicitionClass.setShowInfo("0");
|
|
|
+ //药品说明信息
|
|
|
+ List<Medicition> medicitionTotalList = Lists.newLinkedList();
|
|
|
+ for (MedicitionClass medicitionClass : drugsList) {
|
|
|
+ if (medicitionClass.getMedicitionsList() != null) {
|
|
|
+ medicitionTotalList.addAll(medicitionClass.getMedicitionsList());
|
|
|
}
|
|
|
}
|
|
|
- LinkedList<Medicition> medicitionList = medicitionClass.getMedicitionsList();
|
|
|
- List<String> drugNameList
|
|
|
- = medicitionList.stream().map(m -> m.getMedicitionName()).collect(Collectors.toList());
|
|
|
- List<Concept> drugList
|
|
|
- = conceptFacade.getListByNamesAndType(drugNameList, LexiconTypeEnum.DRUGS.getKey());
|
|
|
+ List<String> drugNameList = medicitionTotalList.stream().map(m -> m.getMedicitionName()).collect(Collectors.toList());
|
|
|
+ List<Concept> drugList = conceptFacade.getListByNamesAndType(drugNameList, LexiconTypeEnum.DRUGS.getKey());
|
|
|
Map<String, Concept> drugMap = EntityUtil.makeEntityMap(drugList, "libName");
|
|
|
- Map<String, Concept> drugDetailMap
|
|
|
- = conceptDetailFacade.existList(drugNameList, LexiconTypeEnum.DRUGS.getKey());
|
|
|
- for (Medicition medicition : medicitionList) {
|
|
|
- Concept drugConcept = drugMap.get(medicition.getMedicitionName());
|
|
|
- if (drugConcept != null) {
|
|
|
- medicition.setConceptId(drugConcept.getId());
|
|
|
+ Map<String, Concept> drugDetailMap = conceptDetailFacade.existList(drugNameList, LexiconTypeEnum.DRUGS.getKey());
|
|
|
+
|
|
|
+ for (MedicitionClass medicitionClass : drugsList) {
|
|
|
+ Concept cateBigConcept = cateBigConceptMap.get(medicitionClass.getBigdrugsName());
|
|
|
+ if (cateBigConcept != null) {
|
|
|
+ medicitionClass.setBigdrugsConceptId(cateBigConcept.getId());
|
|
|
+ if (cateBigInfoExistMap.containsKey(cateBigConcept.getLibName())) {
|
|
|
+ medicitionClass.setShowInfo("1");
|
|
|
+ } else {
|
|
|
+ medicitionClass.setShowInfo("0");
|
|
|
+ }
|
|
|
}
|
|
|
- medicition.setLibType(LexiconTypeEnum.DRUGS.getKey());
|
|
|
- medicition.setType(ConceptTypeEnum.Drug.getKey());
|
|
|
- if (drugDetailMap != null && drugDetailMap.containsKey(medicition.getMedicitionName())) {
|
|
|
- medicition.setShowInfo("1");
|
|
|
- } else {
|
|
|
- medicition.setShowInfo("0");
|
|
|
+ medicitionClass.setBigdrgusLibType(LexiconTypeEnum.DRUG_CATEGORY_BIG.getKey());
|
|
|
+ medicitionClass.setBigdrugsType(ConceptTypeEnum.Drug_Category_Big.getKey());
|
|
|
+ Concept cateSmallConcept = cateSmallConceptMap.get(medicitionClass.getSubdrugsName());
|
|
|
+ if (cateSmallConcept != null) {
|
|
|
+ medicitionClass.setSubdrugsConceptId(cateSmallConcept.getId());
|
|
|
+ }
|
|
|
+ medicitionClass.setSubdrugsLibType(LexiconTypeEnum.DRUG_CATEGORY_SMALL.getKey());
|
|
|
+ medicitionClass.setSubdrugsType(ConceptTypeEnum.Drug_Category_Small.getKey());
|
|
|
+
|
|
|
+ LinkedList<Medicition> medicitionList = medicitionClass.getMedicitionsList();
|
|
|
+ for (Medicition medicition : medicitionList) {
|
|
|
+ Concept drugConcept = drugMap.get(medicition.getMedicitionName());
|
|
|
+ if (drugConcept != null) {
|
|
|
+ medicition.setConceptId(drugConcept.getId());
|
|
|
+ }
|
|
|
+ medicition.setLibType(LexiconTypeEnum.DRUGS.getKey());
|
|
|
+ medicition.setType(ConceptTypeEnum.Drug.getKey());
|
|
|
+ if (drugDetailMap != null && drugDetailMap.containsKey(medicition.getMedicitionName())) {
|
|
|
+ medicition.setShowInfo("1");
|
|
|
+ } else {
|
|
|
+ medicition.setShowInfo("0");
|
|
|
+ }
|
|
|
}
|
|
|
+ medicitionClass.setMedicitionsList(medicitionList);
|
|
|
}
|
|
|
- medicitionClass.setMedicitionsList(medicitionList);
|
|
|
}
|
|
|
retMap.put("treatment", drugsList);
|
|
|
|
|
@@ -181,17 +178,11 @@ public class TreatmentFacade {
|
|
|
//上次用药-icss层处理
|
|
|
retMap.put("drugHistory", null);
|
|
|
//不良反应
|
|
|
- List<AdverseReaction> adverseReactionList
|
|
|
- = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(),
|
|
|
- "adverseEvent", AdverseReaction.class);
|
|
|
- List<String> adNameList
|
|
|
- = adverseReactionList.stream().map(a -> a.getName()).collect(Collectors.toList());
|
|
|
- List<Concept> adConceptList
|
|
|
- = conceptFacade.getListByNamesAndType(adNameList, LexiconTypeEnum.SIDE_EFFECTS.getKey());
|
|
|
- Map<String, Concept> adConceptMap
|
|
|
- = EntityUtil.makeEntityMap(adConceptList, "libName");
|
|
|
- Map<String, Concept> adConceptDetailMap
|
|
|
- = conceptDetailFacade.existList(adNameList, LexiconTypeEnum.SIDE_EFFECTS.getKey());
|
|
|
+ List<AdverseReaction> adverseReactionList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "adverseEvent", AdverseReaction.class);
|
|
|
+ List<String> adNameList = adverseReactionList.stream().map(a -> a.getName()).collect(Collectors.toList());
|
|
|
+ List<Concept> adConceptList = conceptFacade.getListByNamesAndType(adNameList, LexiconTypeEnum.SIDE_EFFECTS.getKey());
|
|
|
+ Map<String, Concept> adConceptMap = EntityUtil.makeEntityMap(adConceptList, "libName");
|
|
|
+ Map<String, Concept> adConceptDetailMap = conceptDetailFacade.existList(adNameList, LexiconTypeEnum.SIDE_EFFECTS.getKey());
|
|
|
for (AdverseReaction adverseReaction : adverseReactionList) {
|
|
|
Concept adConcept = adConceptMap.get(adverseReaction.getName());
|
|
|
if (adConcept != null) {
|