From 9346a0ace1f9b2ab7df07b2b399531b8d270fcd0 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Sun, 30 Mar 2025 14:58:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=96=BE=E7=97=85=E7=9B=AE=E5=BD=95=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appservice/IDiseaseManageAppService.java | 80 +++++++ .../impl/DiseaseManageAppServiceImpl.java | 205 ++++++++++++++++++ .../controller/DiseaseManageController.java | 99 ++------- 3 files changed, 299 insertions(+), 85 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDiseaseManageAppService.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DiseaseManageAppServiceImpl.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDiseaseManageAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDiseaseManageAppService.java new file mode 100644 index 00000000..ccaa4bda --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDiseaseManageAppService.java @@ -0,0 +1,80 @@ +package com.openhis.web.datadictionary.appservice; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.bind.annotation.GetMapping; + +import com.core.common.core.domain.R; +import com.openhis.web.datadictionary.dto.DiseaseManageSelParam; +import com.openhis.web.datadictionary.dto.DiseaseManageUpDto; + +/** + * 病种目录 + * + * @author liuhr + * @date 2025/3/30 + */ +public interface IDiseaseManageAppService { + + /** + * 病种目录初始化 + * + * @return + */ + R getDiseaseInit(); + + /** + * 查询病种目录分页列表 + * + * @param diseaseManageSelParam 查询条件 + * @param searchKey 查询条件-模糊查询 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @return + */ + R getDiseaseList(DiseaseManageSelParam diseaseManageSelParam, String searchKey, Integer pageNo, Integer pageSize, + HttpServletRequest request); + + /** + * 根据id查询疾病详情 + * + * @param id 疾病ID + * @return + */ + R getDiseaseOne(Long id); + + /** + * 病种目录编辑 + * + * @param diseaseManageDto 病种目录列表 + * @return + */ + R editDisease(DiseaseManageUpDto diseaseManageDto); + + /** + * 病种目录停用 + * + * @param ids 病种目录ID列表 + * @return + */ + R editDiseaseStop(List ids); + + /** + * 病种目录启用 + * + * @param ids 病种目录ID列表 + * @return + */ + R editDiseaseStart(List ids); + + /** + * 新增外来病种目录 + * + * @param diseaseManageUpDto 病种目录 + * @return + */ + R addDisease(DiseaseManageUpDto diseaseManageUpDto); + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DiseaseManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DiseaseManageAppServiceImpl.java new file mode 100644 index 00000000..36922f1f --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DiseaseManageAppServiceImpl.java @@ -0,0 +1,205 @@ +package com.openhis.web.datadictionary.appservice.impl; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import javax.servlet.http.HttpServletRequest; + +import com.core.common.utils.ChineseConvertUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.core.common.utils.MessageUtils; +import com.core.common.utils.bean.BeanUtils; +import com.openhis.clinical.domain.ConditionDefinition; +import com.openhis.clinical.mapper.ConditionDefinitionMapper; +import com.openhis.clinical.service.IConditionDefinitionService; +import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.ConditionDefinitionSource; +import com.openhis.common.enums.PublicationStatus; +import com.openhis.common.enums.Whether; +import com.openhis.common.utils.EnumUtils; +import com.openhis.common.utils.HisPageUtils; +import com.openhis.common.utils.HisQueryUtils; +import com.openhis.web.datadictionary.appservice.IDiseaseManageAppService; +import com.openhis.web.datadictionary.dto.DiseaseManageDto; +import com.openhis.web.datadictionary.dto.DiseaseManageInitDto; +import com.openhis.web.datadictionary.dto.DiseaseManageSelParam; +import com.openhis.web.datadictionary.dto.DiseaseManageUpDto; + +/** + * 病种目录 实现 + * + * @author liuhr + * @date 2025/3/30 + */ +@Service +public class DiseaseManageAppServiceImpl implements IDiseaseManageAppService { + + @Autowired + private ConditionDefinitionMapper conditionDefinitionMapper; + @Autowired + private IConditionDefinitionService ConditionDefinitionService; + + /** + * 病种目录初始化 + * + * @return + */ + @Override + public R getDiseaseInit() { + + DiseaseManageInitDto diseaseManageInitDto = new DiseaseManageInitDto(); + // 获取疾病目录种类 + List diseaseCategoryList = Stream.of(ConditionDefinitionSource.values()) + .map(status -> new DiseaseManageInitDto.diseaseCategory(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); + diseaseManageInitDto.setDiseaseCategoryList(diseaseCategoryList); + // 获取状态 + List statusEnumOptions = Stream.of(PublicationStatus.values()) + .map(status -> new DiseaseManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); + diseaseManageInitDto.setStatusFlagOptions(statusEnumOptions); + + return R.ok(diseaseManageInitDto); + } + + /** + * 查询病种目录分页列表 + * + * @param diseaseManageSelParam 查询条件 + * @param searchKey 查询条件-模糊查询 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @return + */ + public R getDiseaseList(DiseaseManageSelParam diseaseManageSelParam, String searchKey, Integer pageNo, + Integer pageSize, HttpServletRequest request) { + + // 构建查询条件 + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(diseaseManageSelParam, + searchKey, new HashSet<>(Arrays.asList("condition_code", "name", "py_str", "wb_str")), request); + // 设置排序 + queryWrapper.orderByAsc("condition_code"); + // 分页查询 + Page diseasePage = + HisPageUtils.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, DiseaseManageDto.class); + + diseasePage.getRecords().forEach(e -> { + // 医保对码枚举类回显赋值 + e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag())); + // 状态 + e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum())); + }); + + // 返回【病种目录列表DTO】分页 + return R.ok(diseasePage); + } + + /** + * 根据id查询疾病详情 + * + * @param id 疾病ID + * @return + */ + public R getDiseaseOne(Long id) { + DiseaseManageDto diseaseManageDto = new DiseaseManageDto(); + // 根据ID查询【病种目录】 + ConditionDefinition conditionDefinition = ConditionDefinitionService.getById(id); + BeanUtils.copyProperties(conditionDefinition, diseaseManageDto); + return R.ok(diseaseManageDto); + } + + /** + * 病种目录编辑 + * + * @param diseaseManageDto 病种目录列表 + * @return + */ + public R editDisease(DiseaseManageUpDto diseaseManageDto) { + + ConditionDefinition conditionDefinition = new ConditionDefinition(); + BeanUtils.copyProperties(diseaseManageDto, conditionDefinition); + // 拼音码 + conditionDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(conditionDefinition.getName())); + // 五笔码 + conditionDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(conditionDefinition.getName())); + + // 更新病种信息 + return ConditionDefinitionService.updateById(conditionDefinition) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 病种目录停用 + * + * @param ids 病种目录ID列表 + * @return + */ + public R editDiseaseStop(List ids) { + List conditionDefinitionList = new CopyOnWriteArrayList<>(); + + // 取得更新值 + for (Long detail : ids) { + ConditionDefinition conditionDefinition = new ConditionDefinition(); + conditionDefinition.setId(detail); + conditionDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue()); + conditionDefinitionList.add(conditionDefinition); + } + // 更新病种信息 + return ConditionDefinitionService.updateBatchById(conditionDefinitionList) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 病种目录启用 + * + * @param ids 病种目录ID列表 + * @return + */ + public R editDiseaseStart(List ids) { + List conditionDefinitionList = new CopyOnWriteArrayList<>(); + + // 取得更新值 + for (Long detail : ids) { + ConditionDefinition conditionDefinition = new ConditionDefinition(); + conditionDefinition.setId(detail); + conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); + conditionDefinitionList.add(conditionDefinition); + } + // 更新病种信息 + return ConditionDefinitionService.updateBatchById(conditionDefinitionList) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 新增外来病种目录 + * + * @param diseaseManageUpDto 病种目录 + * @return + */ + public R addDisease(DiseaseManageUpDto diseaseManageUpDto) { + ConditionDefinition conditionDefinition = new ConditionDefinition(); + BeanUtils.copyProperties(diseaseManageUpDto, conditionDefinition); + // 新增外来病种目录 + conditionDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue()); + // 拼音码 + conditionDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(conditionDefinition.getName())); + // 五笔码 + conditionDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(conditionDefinition.getName())); + return ConditionDefinitionService.addDisease(conditionDefinition) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java index 1e51a619..ce946140 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java @@ -1,32 +1,18 @@ package com.openhis.web.datadictionary.controller; -import java.util.Arrays; -import java.util.HashSet; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.stream.Collectors; -import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; -import com.openhis.common.enums.*; -import com.openhis.common.utils.EnumUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; -import com.core.common.utils.MessageUtils; import com.core.common.utils.bean.BeanUtils; import com.openhis.clinical.domain.ConditionDefinition; -import com.openhis.clinical.mapper.ConditionDefinitionMapper; -import com.openhis.clinical.service.IConditionDefinitionService; -import com.openhis.common.constant.PromptMsgConstant; -import com.openhis.common.utils.HisPageUtils; -import com.openhis.common.utils.HisQueryUtils; +import com.openhis.web.datadictionary.appservice.IDiseaseManageAppService; import com.openhis.web.datadictionary.dto.DiseaseManageDto; -import com.openhis.web.datadictionary.dto.DiseaseManageInitDto; import com.openhis.web.datadictionary.dto.DiseaseManageSelParam; import com.openhis.web.datadictionary.dto.DiseaseManageUpDto; @@ -44,8 +30,9 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @AllArgsConstructor public class DiseaseManageController { - private final IConditionDefinitionService iConditionDefinitionService; - private final ConditionDefinitionMapper conditionDefinitionMapper; + + @Autowired + private IDiseaseManageAppService diseaseManageAppService; /** * 病种目录初始化 @@ -55,19 +42,7 @@ public class DiseaseManageController { @GetMapping("/information-init") public R getDiseaseInit() { - DiseaseManageInitDto diseaseManageInitDto = new DiseaseManageInitDto(); - // 获取疾病目录种类 - List diseaseCategoryList = Stream.of(ConditionDefinitionSource.values()) - .map(status -> new DiseaseManageInitDto.diseaseCategory(status.getValue(), status.getInfo())) - .collect(Collectors.toList()); - diseaseManageInitDto.setDiseaseCategoryList(diseaseCategoryList); - // 获取状态 - List statusEnumOptions = Stream.of(PublicationStatus.values()) - .map(status -> new DiseaseManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) - .collect(Collectors.toList()); - diseaseManageInitDto.setStatusFlagOptions(statusEnumOptions); - - return R.ok(diseaseManageInitDto); + return diseaseManageAppService.getDiseaseInit(); } /** @@ -85,24 +60,8 @@ public class DiseaseManageController { @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { - // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(diseaseManageSelParam, - searchKey, new HashSet<>(Arrays.asList("condition_code", "name", "py_str", "wb_str")), request); - // 设置排序 - queryWrapper.orderByAsc("condition_code"); - // 分页查询 - Page diseasePage = - HisPageUtils.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, DiseaseManageDto.class); - - diseasePage.getRecords().forEach(e -> { - // 医保对码枚举类回显赋值 - e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag())); - //状态 - e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum())); - }); - // 返回【病种目录列表DTO】分页 - return R.ok(diseasePage); + return diseaseManageAppService.getDiseaseList(diseaseManageSelParam, searchKey, pageNo, pageSize, request); } /** @@ -113,11 +72,9 @@ public class DiseaseManageController { */ @GetMapping("/information-one") public R getDiseaseOne(@RequestParam Long id) { - DiseaseManageDto diseaseManageDto = new DiseaseManageDto(); + // 根据ID查询【病种目录】 - ConditionDefinition conditionDefinition = iConditionDefinitionService.getById(id); - BeanUtils.copyProperties(conditionDefinition, diseaseManageDto); - return R.ok(diseaseManageDto); + return diseaseManageAppService.getDiseaseOne(id); } /** @@ -133,9 +90,7 @@ public class DiseaseManageController { BeanUtils.copyProperties(diseaseManageDto, conditionDefinition); // 更新病种信息 - return iConditionDefinitionService.updateById(conditionDefinition) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + return diseaseManageAppService.editDisease(diseaseManageDto); } /** @@ -146,19 +101,8 @@ public class DiseaseManageController { */ @PutMapping("/information-stop") public R editDiseaseStop(@RequestBody List ids) { - List conditionDefinitionList = new CopyOnWriteArrayList<>(); - - // 取得更新值 - for (Long detail : ids) { - ConditionDefinition conditionDefinition = new ConditionDefinition(); - conditionDefinition.setId(detail); - conditionDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue()); - conditionDefinitionList.add(conditionDefinition); - } // 更新病种信息 - return iConditionDefinitionService.updateBatchById(conditionDefinitionList) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + return diseaseManageAppService.editDiseaseStop(ids); } /** @@ -169,19 +113,9 @@ public class DiseaseManageController { */ @PutMapping("/information-start") public R editDiseaseStart(@RequestBody List ids) { - List conditionDefinitionList = new CopyOnWriteArrayList<>(); - // 取得更新值 - for (Long detail : ids) { - ConditionDefinition conditionDefinition = new ConditionDefinition(); - conditionDefinition.setId(detail); - conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); - conditionDefinitionList.add(conditionDefinition); - } // 更新病种信息 - return iConditionDefinitionService.updateBatchById(conditionDefinitionList) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + return diseaseManageAppService.editDiseaseStart(ids); } /** @@ -192,13 +126,8 @@ public class DiseaseManageController { */ @PostMapping("/information") public R addDisease(@Validated @RequestBody DiseaseManageUpDto diseaseManageUpDto) { - ConditionDefinition conditionDefinition = new ConditionDefinition(); - BeanUtils.copyProperties(diseaseManageUpDto, conditionDefinition); - // 新增外来病种目录 - conditionDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue()); - return iConditionDefinitionService.addDisease(conditionDefinition) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + + return diseaseManageAppService.addDisease(diseaseManageUpDto); } /**