|
|
|
@ -3,11 +3,17 @@ package com.supervision.manage.service.impl;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
|
import cn.hutool.core.lang.Pair;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
|
|
|
|
import com.supervision.manage.service.ConfigTreatmentPlanManageService;
|
|
|
|
|
import com.supervision.manage.service.DiseaseTreatmentPlanManageService;
|
|
|
|
|
import com.supervision.model.CommonDic;
|
|
|
|
|
import com.supervision.model.ConfigDrug;
|
|
|
|
|
import com.supervision.model.DiseaseTreatmentPlan;
|
|
|
|
|
import com.supervision.model.DiseaseTreatmentPlanDrug;
|
|
|
|
|
import com.supervision.service.CommonDicService;
|
|
|
|
|
import com.supervision.service.ConfigDrugService;
|
|
|
|
|
import com.supervision.service.DiseaseTreatmentPlanDrugService;
|
|
|
|
|
import com.supervision.service.DiseaseTreatmentPlanService;
|
|
|
|
|
import com.supervision.vo.manage.DiseaseTreatmentPlanReqVo;
|
|
|
|
@ -18,6 +24,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
@ -31,7 +38,11 @@ public class DiseaseTreatmentPlanManageServiceImpl implements DiseaseTreatmentPl
|
|
|
|
|
|
|
|
|
|
private final ConfigTreatmentPlanManageService configTreatmentPlanManageService;
|
|
|
|
|
|
|
|
|
|
private final DiseaseTreatmentPlanDrugService diseaseTreatmentPlanDrugService;;
|
|
|
|
|
private final DiseaseTreatmentPlanDrugService diseaseTreatmentPlanDrugService;
|
|
|
|
|
|
|
|
|
|
private final ConfigDrugService configDrugService;
|
|
|
|
|
|
|
|
|
|
private final CommonDicService commonDicService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<DiseaseTreatmentPlanResVo> queryListByDiseaseId(String diseaseId) {
|
|
|
|
@ -50,11 +61,40 @@ public class DiseaseTreatmentPlanManageServiceImpl implements DiseaseTreatmentPl
|
|
|
|
|
.in(DiseaseTreatmentPlanDrug::getTreatmentPlanId, treatmentPlanIdList)
|
|
|
|
|
.eq(DiseaseTreatmentPlanDrug::getDiseaseId, diseaseId).list();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 翻译处置计划 **处置计划对应于药物中的剂型**
|
|
|
|
|
List<String> drugIds = diseaseTreatmentPlanDrugList.stream()
|
|
|
|
|
.map(DiseaseTreatmentPlanDrug::getDrugId).filter(StrUtil::isNotEmpty).collect(Collectors.toList());
|
|
|
|
|
Map<String, Pair<String,String>> drugIdMapDose = new HashMap<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(drugIds)){
|
|
|
|
|
List<ConfigDrug> configDrugs = configDrugService.listByIds(drugIds);
|
|
|
|
|
if (CollUtil.isNotEmpty(configDrugs)){
|
|
|
|
|
Map<String, String> doseDic = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "DOSE").list()
|
|
|
|
|
.stream().collect(Collectors.toMap(CommonDic::getCode, CommonDic::getNameZh));
|
|
|
|
|
// 组合药物id与剂型之间的映射关系
|
|
|
|
|
drugIdMapDose = configDrugs.stream().collect(Collectors.toMap(ConfigDrug::getId, drug -> {
|
|
|
|
|
if (StrUtil.isNotEmpty(drug.getDosageForm())) {
|
|
|
|
|
return Pair.of(drug.getDosageForm(),doseDic.getOrDefault(drug.getDosageForm(),StrUtil.EMPTY));
|
|
|
|
|
}
|
|
|
|
|
return Pair.of(StrUtil.EMPTY,StrUtil.EMPTY);
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Map<String, List<DiseaseTreatmentPlanDrug>> group = diseaseTreatmentPlanDrugList.stream().collect(Collectors.groupingBy(DiseaseTreatmentPlanDrug::getTreatmentPlanId));
|
|
|
|
|
diseaseTreatmentPlanResVos.forEach(item->item.setDrugIds(
|
|
|
|
|
group.getOrDefault(item.getTreatmentPlanId(), CollUtil.newArrayList())
|
|
|
|
|
.stream().map(DiseaseTreatmentPlanDrug::getDrugId).collect(Collectors.toList())));
|
|
|
|
|
|
|
|
|
|
for (DiseaseTreatmentPlanResVo item : diseaseTreatmentPlanResVos) {
|
|
|
|
|
// 设置处置药物id集合
|
|
|
|
|
item.setDrugIds(
|
|
|
|
|
group.getOrDefault(item.getTreatmentPlanId(), CollUtil.newArrayList())
|
|
|
|
|
.stream().map(DiseaseTreatmentPlanDrug::getDrugId).collect(Collectors.toList()));
|
|
|
|
|
// 设置处置药物剂型与剂型的翻译数据
|
|
|
|
|
String drugId = CollUtil.getFirst(item.getDrugIds());
|
|
|
|
|
String fistMeasuresId = StrUtil.isNotEmpty(drugId) ? drugIdMapDose.getOrDefault(drugId,
|
|
|
|
|
Pair.of(StrUtil.EMPTY,StrUtil.EMPTY)).getKey() : StrUtil.EMPTY;
|
|
|
|
|
String fistMeasures = StrUtil.isNotEmpty(drugId) ? drugIdMapDose.getOrDefault(drugId, Pair.of(StrUtil.EMPTY, StrUtil.EMPTY)).getValue() : StrUtil.EMPTY;
|
|
|
|
|
item.setFirstMeasuresId(fistMeasuresId);
|
|
|
|
|
item.setFirstMeasures(fistMeasures);
|
|
|
|
|
}
|
|
|
|
|
return diseaseTreatmentPlanResVos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|