From bacad0f2e6877deba0d7ab8392a564eb62651030 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Mon, 22 Jan 2024 15:40:37 +0800 Subject: [PATCH] =?UTF-8?q?manage:=20=E4=BF=AE=E6=94=B9=20=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E7=96=BE=E7=97=85id=E6=9F=A5=E8=AF=A2=E7=96=BE?= =?UTF-8?q?=E7=97=85=E5=A4=84=E7=BD=AE=E4=BF=A1=E6=81=AF=E5=88=97=E8=A1=A8?= =?UTF-8?q?=20=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...DiseaseTreatmentPlanManageServiceImpl.java | 48 +++++++++++++++++-- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseTreatmentPlanManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseTreatmentPlanManageServiceImpl.java index 44a42fb9..353d87e8 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseTreatmentPlanManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseTreatmentPlanManageServiceImpl.java @@ -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 queryListByDiseaseId(String diseaseId) { @@ -50,11 +61,40 @@ public class DiseaseTreatmentPlanManageServiceImpl implements DiseaseTreatmentPl .in(DiseaseTreatmentPlanDrug::getTreatmentPlanId, treatmentPlanIdList) .eq(DiseaseTreatmentPlanDrug::getDiseaseId, diseaseId).list(); + + // 翻译处置计划 **处置计划对应于药物中的剂型** + List drugIds = diseaseTreatmentPlanDrugList.stream() + .map(DiseaseTreatmentPlanDrug::getDrugId).filter(StrUtil::isNotEmpty).collect(Collectors.toList()); + Map> drugIdMapDose = new HashMap<>(); + if (CollUtil.isNotEmpty(drugIds)){ + List configDrugs = configDrugService.listByIds(drugIds); + if (CollUtil.isNotEmpty(configDrugs)){ + Map 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> 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; }