From 1a9abe1494df355112a822199b6f9e675545e536 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Mon, 18 Dec 2023 09:31:28 +0800 Subject: [PATCH] =?UTF-8?q?web=EF=BC=9A=E6=96=B0=E5=A2=9E=20queryTreatment?= =?UTF-8?q?PlanDetails=20=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/TreatmentPlanIdConstant.java | 5 ++ .../model/TreatmentPlanRecord.java | 6 +- .../mapper/TreatmentPlanRecordMapper.xml | 2 +- .../controller/TreatmentPlanController.java | 8 +++ .../supervision/pojo/vo/DealPlanResVO.java | 7 +- .../service/TreatmentPlanService.java | 3 + .../impl/AskDiagnosisResultServiceImpl.java | 6 +- .../impl/TreatmentPlanServiceImpl.java | 64 +++++++++++++++++-- 8 files changed, 89 insertions(+), 12 deletions(-) create mode 100644 virtual-patient-common/src/main/java/com/supervision/constant/TreatmentPlanIdConstant.java diff --git a/virtual-patient-common/src/main/java/com/supervision/constant/TreatmentPlanIdConstant.java b/virtual-patient-common/src/main/java/com/supervision/constant/TreatmentPlanIdConstant.java new file mode 100644 index 00000000..c4936537 --- /dev/null +++ b/virtual-patient-common/src/main/java/com/supervision/constant/TreatmentPlanIdConstant.java @@ -0,0 +1,5 @@ +package com.supervision.constant; + +public interface TreatmentPlanIdConstant { + String DRUG_ID = "8055ef3412a69f95"; +} diff --git a/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java b/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java index 6b269e42..a93fb2e1 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/TreatmentPlanRecord.java @@ -26,7 +26,7 @@ public class TreatmentPlanRecord implements Serializable { private String processId; /** - * 处置计划id + * 处置计划id 对应于 一级措施id */ private String treatmentPlanId; @@ -36,9 +36,9 @@ public class TreatmentPlanRecord implements Serializable { private Integer disposalMethod; /** - * 处置计划(0:护理 1:药物 2:活动强度 3:心里咨询 4:特殊处置 5:社区资源 6:会诊 7:随诊 ) + * 处置计划 */ - private Integer disposalPlan; + private String disposalPlan; /** * 一级措施 diff --git a/virtual-patient-model/src/main/resources/mapper/TreatmentPlanRecordMapper.xml b/virtual-patient-model/src/main/resources/mapper/TreatmentPlanRecordMapper.xml index 9e005ff7..4fe7e1c6 100644 --- a/virtual-patient-model/src/main/resources/mapper/TreatmentPlanRecordMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/TreatmentPlanRecordMapper.xml @@ -8,7 +8,7 @@ - + diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/TreatmentPlanController.java b/virtual-patient-web/src/main/java/com/supervision/controller/TreatmentPlanController.java index 8479ac81..863c06f7 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/TreatmentPlanController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/TreatmentPlanController.java @@ -2,6 +2,7 @@ package com.supervision.controller; import com.supervision.model.ConfigDrug; import com.supervision.model.TreatmentPlanRecord; +import com.supervision.pojo.vo.DealPlanResVO; import com.supervision.service.TreatmentPlanService; import com.supervision.vo.manage.TreatmentPlanTreeNode; import io.swagger.annotations.Api; @@ -63,6 +64,13 @@ public class TreatmentPlanController { return treatmentPlanService.queryTreatmentPlanRecord(processId, disposalPlanType); } + @ApiOperation("查询处置计划详情") + @GetMapping("/record/queryDetails") + public DealPlanResVO queryTreatmentPlanDetails(@ApiParam("流程实例id") @RequestParam("processId") String processId) { + + return treatmentPlanService.queryTreatmentPlanDetails(processId); + } + @ApiOperation("查询药品列表") @GetMapping("/getDrugList") diff --git a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/DealPlanResVO.java b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/DealPlanResVO.java index fb544a5e..bce8a2ba 100644 --- a/virtual-patient-web/src/main/java/com/supervision/pojo/vo/DealPlanResVO.java +++ b/virtual-patient-web/src/main/java/com/supervision/pojo/vo/DealPlanResVO.java @@ -14,9 +14,9 @@ public class DealPlanResVO { private Integer userTreatmentPlanType; @ApiModelProperty("处置方案列表") - private List drugTreatmentPlan; + private List drugTreatmentPlan; - private List otherTreatmentPlan; + private List otherTreatmentPlan; @Data @@ -26,5 +26,8 @@ public class DealPlanResVO { @ApiModelProperty("结果标识 0:错误 1:正确") private Integer flag; + @ApiModelProperty("处置计划名") + private String disposalPlanName; + } } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/TreatmentPlanService.java b/virtual-patient-web/src/main/java/com/supervision/service/TreatmentPlanService.java index 1fcd1468..0ec966ab 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/TreatmentPlanService.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/TreatmentPlanService.java @@ -2,6 +2,7 @@ package com.supervision.service; import com.supervision.model.ConfigDrug; import com.supervision.model.TreatmentPlanRecord; +import com.supervision.pojo.vo.DealPlanResVO; import com.supervision.vo.manage.TreatmentPlanTreeNode; import java.util.List; @@ -20,4 +21,6 @@ public interface TreatmentPlanService { List getDrugList(); List queryTree(Integer disposalMethod); + + DealPlanResVO queryTreatmentPlanDetails(String processId); } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index abd006b9..3dc70412 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -4,6 +4,7 @@ package com.supervision.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import com.supervision.constant.TreatmentPlanIdConstant; import com.supervision.exception.BusinessException; import com.supervision.model.*; import com.supervision.model.Process; @@ -126,9 +127,10 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService ArrayList otherTreatmentPlanResults = new ArrayList<>(); for (TreatmentPlanRecord treatmentPlanRecord : treatmentPlanRecordList) { DealPlanResVO.TreatmentPlanResult bean = BeanUtil.toBean(treatmentPlanRecord, DealPlanResVO.TreatmentPlanResult.class); - boolean flag = bean.getDisposalPlan().equals(1) ? drugIds.contains(bean.getDrugId()) : planIds.contains(bean.getTreatmentPlanId()); + //药物id 8055ef3412a69f95 + boolean flag = bean.getDisposalPlan().equals(TreatmentPlanIdConstant.DRUG_ID) ? drugIds.contains(bean.getDrugId()) : planIds.contains(bean.getTreatmentPlanId()); bean.setFlag(flag ? 1 : 0); - if (bean.getDisposalPlan().equals(1)) { + if (bean.getDisposalPlan().equals(TreatmentPlanIdConstant.DRUG_ID)) { drugTreatmentPlanResults.add(bean); } else { otherTreatmentPlanResults.add(bean); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/TreatmentPlanServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/TreatmentPlanServiceImpl.java index 55960931..5fd78637 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/TreatmentPlanServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/TreatmentPlanServiceImpl.java @@ -1,13 +1,17 @@ package com.supervision.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; +import com.supervision.constant.TreatmentPlanIdConstant; import com.supervision.controller.TreatmentPlanController; import com.supervision.model.ConfigDrug; +import com.supervision.model.ConfigTreatmentPlan; import com.supervision.model.Process; import com.supervision.model.TreatmentPlanRecord; +import com.supervision.pojo.vo.DealPlanResVO; import com.supervision.service.*; import com.supervision.vo.manage.TreatmentPlanTreeNode; import lombok.RequiredArgsConstructor; @@ -15,8 +19,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.sql.Struct; -import java.util.Collection; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -47,7 +51,7 @@ public class TreatmentPlanServiceImpl implements TreatmentPlanService { return treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId) .eq("0".equals(disposalPlanType), TreatmentPlanRecord::getDisposalPlan, "2") .in("1".equals(disposalPlanType), TreatmentPlanRecord::getDisposalPlan, - CollUtil.newArrayList("1","3","4","5","6","7")).list(); + CollUtil.newArrayList("80fbb83669f39773")).list(); } @Override @@ -94,10 +98,62 @@ public class TreatmentPlanServiceImpl implements TreatmentPlanService { return configTreatmentPlanService.queryTree(disposalMethod); } + @Override + public DealPlanResVO queryTreatmentPlanDetails(String processId) { + // 1. 查询处置计划记录 + List treatmentPlanRecordList = treatmentPlanRecordService.lambdaQuery().eq(TreatmentPlanRecord::getProcessId, processId).list(); + DealPlanResVO dealPlanResVO = new DealPlanResVO(); + if (CollUtil.isEmpty(treatmentPlanRecordList)){ + dealPlanResVO.setOtherTreatmentPlan(CollectionUtil.newArrayList()); + dealPlanResVO.setDrugTreatmentPlan(CollectionUtil.newArrayList()); + return dealPlanResVO; + } + dealPlanResVO.setUserTreatmentPlanType(CollUtil.getFirst(treatmentPlanRecordList).getDisposalMethod()); + + // 2. 填充处置计划属性名字段(处置计划名、一级措施) + List treatmentPlanIds = treatmentPlanRecordList.stream().map(TreatmentPlanRecord::getTreatmentPlanId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + List configTreatmentPlans = new ArrayList<>(); + if (CollUtil.isNotEmpty(treatmentPlanIds)){ + configTreatmentPlans = configTreatmentPlanService.listByIds(treatmentPlanIds); + } + Map configTreatmentPlanMap = configTreatmentPlans.stream().collect(Collectors.toMap(ConfigTreatmentPlan::getId, v -> v)); + // 3.填充药物名 + List drugIds = treatmentPlanRecordList.stream().map(TreatmentPlanRecord::getDrugId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + List configDrugs =new ArrayList<>(); + if (CollUtil.isNotEmpty(drugIds)){ + configDrugs = configDrugService.listByIds(drugIds); + } + Map configDrugMap = configDrugs.stream().collect(Collectors.toMap(ConfigDrug::getId, v -> v)); + + Map> treatmentPlanIdMap = treatmentPlanRecordList.stream().map(item->BeanUtil.toBean(item,DealPlanResVO.TreatmentPlanResult.class)) + .peek(item->{ + if (StrUtil.isEmpty(item.getTreatmentPlanId())){ + item.setDisposalPlanName("药物"); + ConfigDrug configDrug = configDrugMap.get(item.getDrugId()); + if (Objects.nonNull(configDrug)){ + item.setDrugName(configDrug.getDrugName()); + } + + }else { + ConfigTreatmentPlan configTreatmentPlan = configTreatmentPlanMap.get(item.getTreatmentPlanId()); + if (Objects.nonNull(configTreatmentPlan)){ + item.setDisposalPlanName(configTreatmentPlan.getDisposalPlan()); + item.setFirstMeasures(configTreatmentPlan.getFirstMeasures()); + } + } + }) + .collect(Collectors.groupingBy(v -> + Objects.isNull(v.getTreatmentPlanId()) ? "DRUG" :"OTHER")); + + dealPlanResVO.setDrugTreatmentPlan(treatmentPlanIdMap.getOrDefault("DRUG", CollUtil.newArrayList())); + dealPlanResVO.setOtherTreatmentPlan(treatmentPlanIdMap.getOrDefault("OTHER", CollUtil.newArrayList())); + return dealPlanResVO; + } + private void assertSaveTreatmentPlanRecord(TreatmentPlanRecord record){ Assert.notEmpty(record.getProcessId(),"流程id不能为空"); Assert.notNull(record.getDisposalMethod(),"处置方式不能为为空"); - Assert.notNull(record.getDisposalPlan(),"处置计划不能为空"); + //Assert.notNull(record.getDisposalPlan(),"处置计划不能为空"); if (StrUtil.isEmpty(record.getTreatmentPlanId())){ Assert.notEmpty(record.getDrugId(),"药物id不能为空"); }