From d6a9509294f6a6354689190f6d16904859932f42 Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Wed, 19 Jun 2024 18:02:26 +0800 Subject: [PATCH] =?UTF-8?q?1:=20=E4=BF=AE=E6=94=B9=20=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E7=97=85=E5=8E=86=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DiseaseAncillaryManageService.java | 3 + .../service/DiseasePhysicalManageService.java | 2 + .../DiseaseTreatmentPlanManageService.java | 4 ++ .../MedicalRecAncillaryManageService.java | 12 ++++ .../MedicalRecPhysicalManageService.java | 10 ++++ .../MedicalRecTreatmentPlanManageService.java | 16 +++++ .../DiseaseAncillaryManageServiceImpl.java | 6 ++ .../DiseasePhysicalManageServiceImpl.java | 6 ++ ...DiseaseTreatmentPlanManageServiceImpl.java | 12 ++++ .../MedicalRecAncillaryManageServiceImpl.java | 27 +++++++++ .../impl/MedicalRecManageServiceImpl.java | 51 ++++++++++++++++ .../MedicalRecPhysicalManageServiceImpl.java | 26 ++++++++ ...icalRecTreatmentPlanManageServiceImpl.java | 59 +++++++++++++++++++ 13 files changed, 234 insertions(+) create mode 100644 virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecAncillaryManageService.java create mode 100644 virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecPhysicalManageService.java create mode 100644 virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecTreatmentPlanManageService.java create mode 100644 virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecAncillaryManageServiceImpl.java create mode 100644 virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecPhysicalManageServiceImpl.java create mode 100644 virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecTreatmentPlanManageServiceImpl.java diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseAncillaryManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseAncillaryManageService.java index 861601c0..87751c83 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseAncillaryManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseAncillaryManageService.java @@ -24,4 +24,7 @@ public interface DiseaseAncillaryManageService { List queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo); + List queryRowsByDiseaseId(String diseaseId); + + } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java index 5d525168..0da5ea01 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseasePhysicalManageService.java @@ -19,4 +19,6 @@ public interface DiseasePhysicalManageService { boolean deleteByDiseaseId(String diseaseId); List queryTree(String diseaseId, String toolId); + + List queryRowsByDiseaseId(String diseaseId); } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseTreatmentPlanManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseTreatmentPlanManageService.java index abcf5409..88ecb04c 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseTreatmentPlanManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/DiseaseTreatmentPlanManageService.java @@ -1,6 +1,7 @@ package com.supervision.manage.service; import com.supervision.model.DiseaseTreatmentPlan; +import com.supervision.model.DiseaseTreatmentPlanDrug; import com.supervision.vo.manage.DiseaseTreatmentPlanReqVo; import com.supervision.vo.manage.DiseaseTreatmentPlanResVo; import com.supervision.vo.manage.DiseaseTreatmentPlanTreeNode; @@ -22,4 +23,7 @@ public interface DiseaseTreatmentPlanManageService { List queryDiseaseTreatmentPlanTree(Integer disposalMethod, String diseaseId); boolean updateDiseaseTreatmentPlan(DiseaseTreatmentPlanReqVo diseaseTreatmentPlan); + + List queryRowsByDiseaseId(String diseaseId); + List queryDrugRowsByDiseaseId(String diseaseId); } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecAncillaryManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecAncillaryManageService.java new file mode 100644 index 00000000..d0479bde --- /dev/null +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecAncillaryManageService.java @@ -0,0 +1,12 @@ +package com.supervision.manage.service; + +import com.supervision.model.MedicalRecAncillary; + +import java.util.List; + +public interface MedicalRecAncillaryManageService { + + + void saveAncillary(List medicalRecAncillaryList); + +} diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecPhysicalManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecPhysicalManageService.java new file mode 100644 index 00000000..1baedc9c --- /dev/null +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecPhysicalManageService.java @@ -0,0 +1,10 @@ +package com.supervision.manage.service; + +import com.supervision.model.MedicalRecPhysical; + +import java.util.List; + +public interface MedicalRecPhysicalManageService { + + void savePhysical(List medicalRecPhysicalList); +} diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecTreatmentPlanManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecTreatmentPlanManageService.java new file mode 100644 index 00000000..f0c6e07c --- /dev/null +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/MedicalRecTreatmentPlanManageService.java @@ -0,0 +1,16 @@ +package com.supervision.manage.service; + +import com.supervision.model.MedicalRecTreatmentPlan; +import com.supervision.model.MedicalRecTreatmentPlanDrug; + +import java.util.List; + +public interface MedicalRecTreatmentPlanManageService { + + void saveTreatmentPlan(List medicalRecTreatmentPlanList); + + + void saveTreatmentPlanDrug(List medicalRecTreatmentPlanDrugList); + + void saveTreatmentPlan(MedicalRecTreatmentPlan medicalRecTreatmentPlan , List treatmentPlanDrugList); +} diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java index d60e4318..9812f9af 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java @@ -97,6 +97,12 @@ public class DiseaseAncillaryManageServiceImpl implements DiseaseAncillaryManage return configAncillaryItemResVOS; } + @Override + public List queryRowsByDiseaseId(String diseaseId) { + Assert.notEmpty(diseaseId,"疾病id不能为空"); + return diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getDiseaseId,diseaseId).list(); + } + private void assertDiseaseAncillary(DiseaseAncillary diseaseAncillary){ diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java index c9204f42..959449c8 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseasePhysicalManageServiceImpl.java @@ -139,6 +139,12 @@ public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageSe return bean.getChild(); } + @Override + public List queryRowsByDiseaseId(String diseaseId) { + Assert.notEmpty(diseaseId,"疾病id不能为空"); + return diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getDiseaseId,diseaseId).list(); + } + private void assertDiseasePhysical(DiseasePhysical diseasePhysical){ Assert.isTrue(StrUtil.isNotEmpty(diseasePhysical.getDiseaseId()),"疾病id不能为空"); 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 071880b4..aa086b20 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 @@ -210,6 +210,18 @@ public class DiseaseTreatmentPlanManageServiceImpl implements DiseaseTreatmentPl return true; } + @Override + public List queryRowsByDiseaseId(String diseaseId) { + Assert.notEmpty(diseaseId,"疾病id不能为空"); + return diseaseTreatmentPlanService.lambdaQuery().eq(DiseaseTreatmentPlan::getDiseaseId,diseaseId).list(); + } + + @Override + public List queryDrugRowsByDiseaseId(String diseaseId) { + Assert.notEmpty(diseaseId,"疾病id不能为空"); + return diseaseTreatmentPlanDrugService.lambdaQuery().eq(DiseaseTreatmentPlanDrug::getDiseaseId,diseaseId).list(); + } + private void assertDiseaseTreatmentPlan(DiseaseTreatmentPlan diseaseTreatmentPlan){ diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecAncillaryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecAncillaryManageServiceImpl.java new file mode 100644 index 00000000..c5e70e67 --- /dev/null +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecAncillaryManageServiceImpl.java @@ -0,0 +1,27 @@ +package com.supervision.manage.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.supervision.manage.service.MedicalRecAncillaryManageService; +import com.supervision.model.MedicalRecAncillary; +import com.supervision.service.MedicalRecAncillaryService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class MedicalRecAncillaryManageServiceImpl implements MedicalRecAncillaryManageService { + + + private final MedicalRecAncillaryService medicalRecAncillaryService; + @Override + public void saveAncillary(List medicalRecAncillaryList) { + if (CollUtil.isEmpty(medicalRecAncillaryList)){ + return; + } + medicalRecAncillaryService.saveBatch(medicalRecAncillaryList); + } +} diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java index 21e92cf9..842406d8 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecManageServiceImpl.java @@ -66,6 +66,12 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService { private final MedicalExtendItemService medicalExtendItemService; + private final MedicalRecPhysicalManageService medicalRecPhysicalManageService; + + private final MedicalRecAncillaryManageService medicalRecAncillaryManageService; + + private final MedicalRecTreatmentPlanManageService medicalRecTreatmentPlanManageService; + public List queryDiseaseListByDropList() { return diseaseService.lambdaQuery().list(); } @@ -430,6 +436,51 @@ public class MedicalRecManageServiceImpl implements MedicalRecManageService { medicalRec.insert(); // 这里生成一个新的编号(首先去数据库里面查询编号,然后用最大的编号+1)(可能存在并发修改导致编码重复问题,不是重点,等有问题再说) medicalRecService.updateMedicalRecNo("QL", "男".equals(reqVO.getPatientGender()) ? "M" : "F", medicalRec.getId()); + + // 初始化体格检查关联信息 + List diseasePhysicals = diseasePhysicalManageService.queryRowsByDiseaseId(reqVO.getDiseaseId()); + List medicalRecPhysicals = diseasePhysicals.stream().map(diseasePhysical -> { + diseasePhysical.setId(null); + MedicalRecPhysical bean = BeanUtil.toBean(diseasePhysical, MedicalRecPhysical.class); + bean.setMedicalRecId(medicalRec.getId()); + return bean; + }).toList(); + // 保存体格检查关联信息 + medicalRecPhysicalManageService.savePhysical(medicalRecPhysicals); + + + // 初始化辅助检查关联信息 + List diseaseAncillaries = diseaseAncillaryManageService.queryRowsByDiseaseId(reqVO.getDiseaseId()); + List medicalRecAncillaries = diseaseAncillaries.stream().map(diseaseAncillary -> { + diseaseAncillary.setId(null); + MedicalRecAncillary bean = BeanUtil.toBean(diseaseAncillary, MedicalRecAncillary.class); + bean.setMedicalRecId(medicalRec.getId()); + return bean; + }).toList(); + // 保存辅助检查关联信息 + medicalRecAncillaryManageService.saveAncillary(medicalRecAncillaries); + + // 初始化处置计划关联信息 + List diseaseTreatmentPlans = diseaseTreatmentPlanManageService.queryRowsByDiseaseId(reqVO.getDiseaseId()); + if (CollUtil.isNotEmpty(diseaseTreatmentPlans)){ + List diseaseTreatmentPlanDrugList = diseaseTreatmentPlanManageService.queryDrugRowsByDiseaseId(reqVO.getDiseaseId()); + // 对处置计划药品信息进行分组,方便后面批量保存 + Map> idMapDrug = diseaseTreatmentPlanDrugList.stream().collect(Collectors.groupingBy(DiseaseTreatmentPlanDrug::getDiseaseTreatmentPlanId, + Collectors.mapping(e -> { + e.setId(null); + return BeanUtil.toBean(e, MedicalRecTreatmentPlanDrug.class); + }, Collectors.toList()))); + + //批量保存处置计划信息 + for (DiseaseTreatmentPlan diseaseTreatmentPlan : diseaseTreatmentPlans) { + String id = diseaseTreatmentPlan.getId(); + diseaseTreatmentPlan.setId(null); + MedicalRecTreatmentPlan medicalRecTreatmentPlan = BeanUtil.toBean(diseaseTreatmentPlan, MedicalRecTreatmentPlan.class); + medicalRecTreatmentPlan.setMedicalRecId(medicalRec.getId()); + medicalRecTreatmentPlanManageService.saveTreatmentPlan(medicalRecTreatmentPlan, idMapDrug.get(id)); + } + } + return medicalRec.getId(); diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecPhysicalManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecPhysicalManageServiceImpl.java new file mode 100644 index 00000000..54b904ce --- /dev/null +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecPhysicalManageServiceImpl.java @@ -0,0 +1,26 @@ +package com.supervision.manage.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.supervision.manage.service.MedicalRecPhysicalManageService; +import com.supervision.model.MedicalRecPhysical; +import com.supervision.service.MedicalRecPhysicalService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class MedicalRecPhysicalManageServiceImpl implements MedicalRecPhysicalManageService { + + private final MedicalRecPhysicalService medicalRecPhysicalService; + @Override + public void savePhysical(List medicalRecPhysicalList) { + if (CollUtil.isEmpty(medicalRecPhysicalList)){ + return; + } + medicalRecPhysicalService.saveBatch(medicalRecPhysicalList); + } +} diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecTreatmentPlanManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecTreatmentPlanManageServiceImpl.java new file mode 100644 index 00000000..4f735d0f --- /dev/null +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/MedicalRecTreatmentPlanManageServiceImpl.java @@ -0,0 +1,59 @@ +package com.supervision.manage.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.supervision.manage.service.MedicalRecTreatmentPlanManageService; +import com.supervision.model.MedicalRecTreatmentPlan; +import com.supervision.model.MedicalRecTreatmentPlanDrug; +import com.supervision.service.MedicalRecTreatmentPlanDrugService; +import com.supervision.service.MedicalRecTreatmentPlanService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class MedicalRecTreatmentPlanManageServiceImpl implements MedicalRecTreatmentPlanManageService { + + private final MedicalRecTreatmentPlanService medicalRecTreatmentPlanService; + + private final MedicalRecTreatmentPlanDrugService medicalRecTreatmentPlanDrugService; + @Override + public void saveTreatmentPlan(List medicalRecTreatmentPlanList) { + if (CollUtil.isEmpty(medicalRecTreatmentPlanList)){ + return; + } + medicalRecTreatmentPlanService.saveBatch(medicalRecTreatmentPlanList); + } + + @Override + public void saveTreatmentPlanDrug(List medicalRecTreatmentPlanDrugList) { + + if (CollUtil.isEmpty(medicalRecTreatmentPlanDrugList)){ + return; + } + + medicalRecTreatmentPlanDrugService.saveBatch(medicalRecTreatmentPlanDrugList); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveTreatmentPlan(MedicalRecTreatmentPlan medicalRecTreatmentPlan,List treatmentPlanDrugList) { + medicalRecTreatmentPlanService.save(medicalRecTreatmentPlan); + + if (CollUtil.isEmpty(treatmentPlanDrugList)){ + return; + } + String id = medicalRecTreatmentPlan.getId(); + for (MedicalRecTreatmentPlanDrug planDrug : treatmentPlanDrugList) { + planDrug.setId(null); + planDrug.setMedicalRecId(medicalRecTreatmentPlan.getMedicalRecId()); + planDrug.setTreatmentPlanId(medicalRecTreatmentPlan.getTreatmentPlanId()); + planDrug.setMedicalRecTreatmentPlanId(id); + } + medicalRecTreatmentPlanDrugService.saveBatch(treatmentPlanDrugList); + } +}