|
@@ -4,17 +4,26 @@ import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.diagbot.client.bean.Medicition;
|
|
import com.diagbot.client.bean.Medicition;
|
|
import com.diagbot.client.bean.MedicitionClass;
|
|
import com.diagbot.client.bean.MedicitionClass;
|
|
|
|
+import com.diagbot.dto.QuestionDTO;
|
|
|
|
+import com.diagbot.entity.DisType;
|
|
|
|
+import com.diagbot.entity.InquiryDrug;
|
|
|
|
+import com.diagbot.entity.InquiryInfo;
|
|
import com.diagbot.entity.IntroduceDetail;
|
|
import com.diagbot.entity.IntroduceDetail;
|
|
import com.diagbot.entity.IntroduceMap;
|
|
import com.diagbot.entity.IntroduceMap;
|
|
import com.diagbot.entity.QuestionInfo;
|
|
import com.diagbot.entity.QuestionInfo;
|
|
|
|
+import com.diagbot.enums.DisTypeEnum;
|
|
import com.diagbot.enums.IntroducePositionEnum;
|
|
import com.diagbot.enums.IntroducePositionEnum;
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
import com.diagbot.enums.QuestionTypeEnum;
|
|
import com.diagbot.enums.QuestionTypeEnum;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonException;
|
|
import com.diagbot.exception.CommonException;
|
|
|
|
+import com.diagbot.util.BeanUtil;
|
|
import com.diagbot.util.EntityUtil;
|
|
import com.diagbot.util.EntityUtil;
|
|
import com.diagbot.util.FastJsonUtils;
|
|
import com.diagbot.util.FastJsonUtils;
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
+import com.sun.org.apache.xpath.internal.operations.Bool;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.LinkedHashMap;
|
|
import java.util.LinkedHashMap;
|
|
@@ -36,6 +45,12 @@ public class TreatmentFacade {
|
|
IntroduceDetailFacade introduceDetailFacade;
|
|
IntroduceDetailFacade introduceDetailFacade;
|
|
@Autowired
|
|
@Autowired
|
|
IntroduceMapFacade introduceMapFacade;
|
|
IntroduceMapFacade introduceMapFacade;
|
|
|
|
+ @Autowired
|
|
|
|
+ DisTypeFacade disTypeFacade;
|
|
|
|
+ @Autowired
|
|
|
|
+ InquiryInfoFacade inquiryInfoFacade;
|
|
|
|
+ @Autowired
|
|
|
|
+ InquiryDrugFacade inquiryDrugFacade;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取治疗方案
|
|
* 获取治疗方案
|
|
@@ -43,7 +58,7 @@ public class TreatmentFacade {
|
|
* @param
|
|
* @param
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public Map<String, Object> getTreatment(Map<String, JSONObject> treatmentMap, Long diseaseId) {
|
|
|
|
|
|
+ public Map<String, Object> getTreatment(Map<String, JSONObject> treatmentMap, Long diseaseId, Long patientId) {
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
QuestionInfo disease = questionFacade.getById(diseaseId);
|
|
QuestionInfo disease = questionFacade.getById(diseaseId);
|
|
if (disease == null) {
|
|
if (disease == null) {
|
|
@@ -64,17 +79,13 @@ public class TreatmentFacade {
|
|
List<IntroduceDetail> surgeryTreatmentDetailList = getIntroduceDetailList(diseaseId, IntroducePositionEnum.SurgeryTreatment.getKey());
|
|
List<IntroduceDetail> surgeryTreatmentDetailList = getIntroduceDetailList(diseaseId, IntroducePositionEnum.SurgeryTreatment.getKey());
|
|
retMap.put("surgeryTreatment", surgeryTreatmentDetailList.size() > 0 ? surgeryTreatmentDetailList.get(0).getContent() : "");
|
|
retMap.put("surgeryTreatment", surgeryTreatmentDetailList.size() > 0 ? surgeryTreatmentDetailList.get(0).getContent() : "");
|
|
|
|
|
|
|
|
+
|
|
//获取知识图谱治疗方案
|
|
//获取知识图谱治疗方案
|
|
JSONObject treatmentJson = treatmentMap.get(disease.getTagName());
|
|
JSONObject treatmentJson = treatmentMap.get(disease.getTagName());
|
|
if (treatmentJson == null || treatmentJson.isEmpty()) {
|
|
if (treatmentJson == null || treatmentJson.isEmpty()) {
|
|
return retMap;
|
|
return retMap;
|
|
}
|
|
}
|
|
|
|
|
|
- /*JSONObject treatmentJson = diseaseJson.getJSONObject(disease.getTagName());
|
|
|
|
- if (treatmentJson == null || treatmentJson.isEmpty()) {
|
|
|
|
- return retMap;
|
|
|
|
- }*/
|
|
|
|
-
|
|
|
|
List<MedicitionClass> drugsList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "treatment", MedicitionClass.class);
|
|
List<MedicitionClass> drugsList = FastJsonUtils.getJsonToListByKey(treatmentJson.toString(), "treatment", MedicitionClass.class);
|
|
|
|
|
|
List<String> classNameList = drugsList.stream().map(drugs -> drugs.getBigdrugsName()).collect(Collectors.toList());
|
|
List<String> classNameList = drugsList.stream().map(drugs -> drugs.getBigdrugsName()).collect(Collectors.toList());
|
|
@@ -112,6 +123,24 @@ public class TreatmentFacade {
|
|
}
|
|
}
|
|
|
|
|
|
retMap.put("treatment", drugsList);
|
|
retMap.put("treatment", drugsList);
|
|
|
|
+
|
|
|
|
+ //判断是否慢病,慢病增加回访时间,上次用药,不良反应
|
|
|
|
+ Boolean isChronic = disTypeFacade.judgeByDisId(diseaseId, DisTypeEnum.CHRONIC.getKey());
|
|
|
|
+ if (isChronic) {
|
|
|
|
+ //慢病,增加回访时间,暂时前端写死, 以后由只是图谱返回
|
|
|
|
+ retMap.put("followUp", null);
|
|
|
|
+
|
|
|
|
+ //上次用药
|
|
|
|
+ if (patientId == null) {
|
|
|
|
+ retMap.put("drugHistory", null);
|
|
|
|
+ } else {
|
|
|
|
+ retMap.put("drugHistory", getDrugHistory(patientId));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //不良反应
|
|
|
|
+ retMap.put("adverseReactions", null);
|
|
|
|
+
|
|
|
|
+ }
|
|
return retMap;
|
|
return retMap;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -166,4 +195,55 @@ public class TreatmentFacade {
|
|
List<IntroduceMap> introduceMapList = introduceMapFacade.list(introduceMapQueryWrapper);
|
|
List<IntroduceMap> introduceMapList = introduceMapFacade.list(introduceMapQueryWrapper);
|
|
return introduceMapList;
|
|
return introduceMapList;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据病人id获取历史用药内容
|
|
|
|
+ *
|
|
|
|
+ * @param patientId
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Map<String, List<Medicition>> getDrugHistory(Long patientId) {
|
|
|
|
+ Map<String, List<Medicition>> drugHistoryMap = new LinkedHashMap<>();
|
|
|
|
+ QueryWrapper<InquiryInfo> inquiryInfoQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ inquiryInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
|
|
|
|
+ eq("patient_id", patientId).
|
|
|
|
+ orderByDesc("gmt_modified");
|
|
|
|
+ List<InquiryInfo> inquiryInfoList = inquiryInfoFacade.list(inquiryInfoQueryWrapper);
|
|
|
|
+ Boolean chronicHistroy = false;
|
|
|
|
+ Boolean not_chronicHistory = false;
|
|
|
|
+ for (InquiryInfo inquiryInfo : inquiryInfoList) {
|
|
|
|
+ String[] diseases = inquiryInfo.getDiagnose().split(",|,");
|
|
|
|
+ if (diseases.length > 0) {
|
|
|
|
+ QueryWrapper<InquiryDrug> inquiryDrugQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ inquiryDrugQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("inquiry_id", inquiryInfo.getId());
|
|
|
|
+ List<InquiryDrug> inquiryDrugList = inquiryDrugFacade.list(inquiryDrugQueryWrapper);
|
|
|
|
+ List<Medicition> medicitionList = Lists.newLinkedList();
|
|
|
|
+ for (InquiryDrug inquiryDrug : inquiryDrugList) {
|
|
|
|
+ Medicition medicition = new Medicition();
|
|
|
|
+ medicition.setId(inquiryDrug.getQuestionId());
|
|
|
|
+ medicition.setMedicitionName(inquiryDrug.getTagName());
|
|
|
|
+ medicition.setIsShow("1");
|
|
|
|
+ Boolean hasIntroduce = introduceMapFacade.hasIntroduceByQuestionName(inquiryDrug.getTagName(), QuestionTypeEnum.Drug.getKey());
|
|
|
|
+ if (hasIntroduce) {
|
|
|
|
+ medicition.setShowInfo("1");
|
|
|
|
+ } else {
|
|
|
|
+ medicition.setShowInfo("0");
|
|
|
|
+ }
|
|
|
|
+ medicitionList.add(medicition);
|
|
|
|
+ }
|
|
|
|
+ Boolean isChronic = disTypeFacade.judgeByDisName(diseases[0], DisTypeEnum.CHRONIC.getKey());
|
|
|
|
+ if (isChronic) {
|
|
|
|
+ if (!chronicHistroy)
|
|
|
|
+ drugHistoryMap.put("慢病用药内容", medicitionList);
|
|
|
|
+ chronicHistroy = true;
|
|
|
|
+ } else {
|
|
|
|
+ if (!not_chronicHistory) {
|
|
|
|
+ drugHistoryMap.put("普通病用药内容", medicitionList);
|
|
|
|
+ not_chronicHistory = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return drugHistoryMap;
|
|
|
|
+ }
|
|
}
|
|
}
|