From 41e9d825eb6a0e68468045c44b529f043cd68ba6 Mon Sep 17 00:00:00 2001 From: anxin Date: Tue, 18 Mar 2025 10:30:14 +0800 Subject: [PATCH] =?UTF-8?q?Whether=E7=9B=B8=E5=85=B3=EF=BC=8C=E8=8D=AF?= =?UTF-8?q?=E5=93=81=E8=AE=BE=E5=A4=87=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HealthcareServiceController.java | 10 +- .../appservice/IDeviceManageAppService.java | 83 ++++++ .../IMedicationManageAppService.java | 87 ++++++ .../impl/DeviceManageAppServiceImpl.java | 231 ++++++++++++++++ .../impl/MedicationManageAppServiceImpl.java | 256 ++++++++++++++++++ .../controller/DeviceManageController.java | 226 ++++++++-------- .../DiagnosisTreatmentController.java | 6 +- .../MedicationManageController.java | 236 ++++++++-------- .../dto/MedicationManageDto.java | 11 +- .../dto/MedicationManageInitDto.java | 15 + .../DoctorStationDiagnosisAppServiceImpl.java | 6 +- .../openhis/common/enums/ApplicableScope.java | 30 ++ .../openhis/common/enums/ItemCategory.java | 11 +- 13 files changed, 965 insertions(+), 243 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDeviceManageAppService.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IMedicationManageAppService.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java create mode 100644 openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ApplicableScope.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java index 0fb7b150..4fc5c61f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/controller/HealthcareServiceController.java @@ -29,7 +29,7 @@ import com.openhis.administration.service.IHealthcareServiceService; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.AccountStatus; -import com.openhis.common.enums.WhetherContainUnknown; +import com.openhis.common.enums.Whether; import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisQueryUtils; import com.openhis.web.basicservice.dto.*; @@ -65,7 +65,7 @@ public class HealthcareServiceController { healthcareServiceInitDto.setActiveFlagOptions(activeFlagOptions); // 是否需要预约 List appointmentRequiredFlagOptions = - Stream.of(WhetherContainUnknown.values()) + Stream.of(Whether.values()) .map(wh -> new HealthcareServiceInitDto.appointmentRequiredFlagOption(wh.getValue(), wh.getInfo())) .collect(Collectors.toList()); healthcareServiceInitDto.setAppointmentRequiredFlagOptions(appointmentRequiredFlagOptions); @@ -121,7 +121,7 @@ public class HealthcareServiceController { e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); // 预约要求-枚举类回显赋值 e.setAppointmentRequiredFlag_enumText( - EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getAppointmentRequiredFlag())); + EnumUtils.getInfoByValue(Whether.class, e.getAppointmentRequiredFlag())); }); return R.ok(healthcareServicePage, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, null)); } @@ -146,8 +146,8 @@ public class HealthcareServiceController { healthcareServiceDtoDetail .setActiveFlag_enumText( EnumUtils.getInfoByValue(AccountStatus.class, healthcareServiceDtoDetail.getActiveFlag())) - .setAppointmentRequiredFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, - healthcareServiceDtoDetail.getAppointmentRequiredFlag())); + .setAppointmentRequiredFlag_enumText( + EnumUtils.getInfoByValue(Whether.class, healthcareServiceDtoDetail.getAppointmentRequiredFlag())); return R.ok(healthcareServiceDtoDetail); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDeviceManageAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDeviceManageAppService.java new file mode 100644 index 00000000..ee8dbfc0 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDeviceManageAppService.java @@ -0,0 +1,83 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.datadictionary.appservice; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; + +import com.core.common.core.domain.R; +import com.openhis.web.datadictionary.dto.DeviceManageSelParam; +import com.openhis.web.datadictionary.dto.DeviceManageUpDto; + +/** + * 器材目录 service + * + * @author dh + * @date 2025-03-10 + */ +public interface IDeviceManageAppService { + + /** + * 器材目录初始化 + * + * @return + */ + @GetMapping("/information-init") + R getDeviceManageInit(); + + /** + * 器材目录查询 + * + * @param deviceManageSelParam 查询条件 + * @param searchKey 查询条件-模糊查询 + * @param pageNo 查询条件 + * @param pageSize 查询条件 + * @return 器材目录查询结果 + */ + R getDevicePage(DeviceManageSelParam deviceManageSelParam, String searchKey, Integer pageNo, Integer pageSize, + HttpServletRequest request); + + /** + * 添加器材目录信息 + * + * @param deviceManageUpDto 器材目录信息 + */ + R addDevice(DeviceManageUpDto deviceManageUpDto); + + /** + * 编辑供应商信息 + * + * @param deviceManageDto 器材目录信息 + */ + R editDevice(DeviceManageUpDto deviceManageDto); + + /** + * 器材目录详细查询 + * + * @param id 查询条件 + * @return 器材目录查询结果 + */ + R getDeviceOne(@PathVariable("id") Long id); + + /** + * 器材目录停用 + * + * @param ids 器材目录ID列表 + * @return + */ + R editDeviceStop(@RequestBody List ids); + + /** + * 器材目录启用 + * + * @param ids 器材目录ID列表 + * @return + */ + R editDeviceStart(@RequestBody List ids); +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IMedicationManageAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IMedicationManageAppService.java new file mode 100644 index 00000000..8644b9d4 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IMedicationManageAppService.java @@ -0,0 +1,87 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.datadictionary.appservice; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import com.core.common.core.domain.R; +import com.openhis.web.datadictionary.dto.MedicationManageUpDto; + +/** + * 药品目录 service + * + * @author + * @date 2025-03-17 + */ +public interface IMedicationManageAppService { + /** + * 初始化药品目录信息 + * + */ + R getMedicationInit(); + + /** + * 药品目录查询 + * + * @param searchKey 查询条件 + * @param ybMatchFlag 查询条件-是否对码 + * @param statusEnum 查询条件-状态 + * @param categoryCode 查询条件-药品分类 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @return 药品目录查询结果 + */ + R getMedicationList(String searchKey, Integer ybMatchFlag, Integer statusEnum, String categoryCode, + Integer pageNo, Integer pageSize, HttpServletRequest request); + + /** + * 药品目录详细查询 + * + * @param id 查询条件 + * @return 药品目录查询结果 + */ + R getMedicationOne(@PathVariable("id") Long id); + + /** + * 编辑药品目录信息 + * + * @param medicationManageUpDto 药品目录信息 + */ + R editMedication(MedicationManageUpDto medicationManageUpDto); + + /** + * 药品目录停用 + * + * @param ids 药品目录ID列表 + * @return + */ + R editMedicationStop(@RequestBody List ids); + + /** + * 药品目录启用 + * + * @param ids 药品目录ID列表 + * @return + */ + R editMedicationStart(@RequestBody List ids); + + /** + * 添加药品目录信息 + * + * @param medicationManageUpDto 药品目录信息 + */ + R addMedication(MedicationManageUpDto medicationManageUpDto); + + R exportMedication(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "ybMatchFlag", defaultValue = "-1") Integer ybMatchFlag, + @RequestParam(value = "statusEnum", defaultValue = "-1") Integer statusEnum, + @RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, HttpServletResponse response); +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java new file mode 100644 index 00000000..8d14603d --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java @@ -0,0 +1,231 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.administration.domain.DeviceDefinition; +import com.openhis.administration.domain.Organization; +import com.openhis.administration.mapper.DeviceDefinitionMapper; +import com.openhis.administration.service.IDeviceDefinitionService; +import com.openhis.administration.service.IOrganizationService; +import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.DeviceCategory; +import com.openhis.common.enums.OrganizationType; +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.IDeviceManageAppService; +import com.openhis.web.datadictionary.dto.DeviceManageDto; +import com.openhis.web.datadictionary.dto.DeviceManageInitDto; +import com.openhis.web.datadictionary.dto.DeviceManageSelParam; +import com.openhis.web.datadictionary.dto.DeviceManageUpDto; + +/** + * 器材目录 impl + * + * @author + * @date 2025-03-17 + */ +@Service +public class DeviceManageAppServiceImpl implements IDeviceManageAppService { + + @Autowired + private DeviceDefinitionMapper deviceDefinitionMapper; + + @Autowired + private IDeviceDefinitionService deviceDefinitionService; + + @Autowired + private IOrganizationService organizationService; + + /** + * 器材目录初始化 + * + * @return + */ + @Override + public R getDeviceManageInit() { + DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto(); + // 获取状态 + List statusEnumOptions = Stream.of(PublicationStatus.values()) + .map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); + deviceManageInitDto.setStatusFlagOptions(statusEnumOptions); + // 获取执行科室 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT); + List organizations = organizationService.list(queryWrapper); + List exeOrganizations = organizations.stream() + .map(exeOrg -> new DeviceManageInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName())) + .collect(Collectors.toList()); + deviceManageInitDto.setExeOrganizations(exeOrganizations); + // 获取分类 + List deviceCategories = Stream.of(DeviceCategory.values()) + .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo())) + .collect(Collectors.toList()); + deviceManageInitDto.setDeviceCategories(deviceCategories); + return R.ok(deviceManageInitDto); + } + + /** + * 器材目录查询 + * + * @param + * @param searchKey 查询条件-模糊查询 + * @param pageNo 查询条件 + * @param pageSize 查询条件 + * @return 器材目录查询结果 + */ + @Override + public R getDevicePage(DeviceManageSelParam deviceManageSelParam, + @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { + + // 构建查询条件 + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, + new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); + // 设置排序 + queryWrapper.orderByAsc("bus_no"); + + // 分页查询 + Page deviceManagePage = + HisPageUtils.selectPage(deviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); + + deviceManagePage.getRecords().forEach(e -> { + // 高值器材标志枚举类回显赋值 + e.setHvcmFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getHvcmFlag())); + // 医保标记枚举类回显赋值 + e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag())); + // 医保对码标记枚举类回显赋值 + e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag())); + // 过敏标记枚举类回显赋值 + e.setAllergenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAllergenFlag())); + }); + + // 返回【器材目录列表DTO】分页 + return R.ok(deviceManagePage); + } + + /** + * 编辑器材信息 + * + * @param deviceManageDto 器材信息 + */ + @Override + public R editDevice(DeviceManageUpDto deviceManageDto) { + + DeviceDefinition deviceDefinition = new DeviceDefinition(); + BeanUtils.copyProperties(deviceManageDto, deviceDefinition); + + // 更新器材信息 + return deviceDefinitionService.updateById(deviceDefinition) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 器材目录详细查询 + * + * @param id 查询条件 + * @return 器材目录查询结果 + */ + @Override + public R getDeviceOne(@PathVariable("id") Long id) { + // 根据ID查询【器材目录】 + DeviceDefinition byId = deviceDefinitionService.getById(id); + return R.ok(byId); + } + + /** + * 器材目录停用 + * + * @param ids 器材目录ID列表 + * @return + */ + @Override + public R editDeviceStop(List ids) { + + List DeviceDefinitionList = new CopyOnWriteArrayList<>(); + + // 取得更新值 + for (Long detail : ids) { + DeviceDefinition deviceDefinition = new DeviceDefinition(); + deviceDefinition.setId(detail); + deviceDefinition.setStatusEnum(PublicationStatus.RETIRED); + DeviceDefinitionList.add(deviceDefinition); + } + + // 更新器材信息 + return deviceDefinitionService.updateBatchById(DeviceDefinitionList) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 器材目录启用 + * + * @param ids 器材目录ID列表 + * @return + */ + @Override + public R editDeviceStart(List ids) { + + List DeviceDefinitionList = new CopyOnWriteArrayList<>(); + + // 取得更新值 + for (Long detail : ids) { + DeviceDefinition DeviceDefinition = new DeviceDefinition(); + DeviceDefinition.setId(detail); + DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE); + DeviceDefinitionList.add(DeviceDefinition); + } + + // 更新器材信息 + return deviceDefinitionService.updateBatchById(DeviceDefinitionList) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 添加供应商信息 + * + * @param deviceManageUpDto 供应商信息 + */ + @Override + public R addDevice(@Validated @RequestBody DeviceManageUpDto deviceManageUpDto) { + + DeviceDefinition DeviceDefinition = new DeviceDefinition(); + BeanUtils.copyProperties(deviceManageUpDto, DeviceDefinition); + + // 新增外来器材目录 + DeviceDefinition.setStatusEnum(PublicationStatus.DRAFT); + return deviceDefinitionService.addDevice(DeviceDefinition) + ? 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/appservice/impl/MedicationManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java new file mode 100644 index 00000000..e09b29d3 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java @@ -0,0 +1,256 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.datadictionary.appservice.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +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.SecurityUtils; +import com.core.common.utils.bean.BeanUtils; +import com.core.common.utils.poi.ExcelUtil; +import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.*; +import com.openhis.common.utils.EnumUtils; +import com.openhis.medication.domain.Medication; +import com.openhis.medication.domain.MedicationDefinition; +import com.openhis.medication.domain.MedicationDetail; +import com.openhis.medication.service.IMedicationDefinitionService; +import com.openhis.medication.service.IMedicationService; +import com.openhis.web.datadictionary.appservice.IMedicationManageAppService; +import com.openhis.web.datadictionary.dto.MedicationManageDto; +import com.openhis.web.datadictionary.dto.MedicationManageInitDto; +import com.openhis.web.datadictionary.dto.MedicationManageUpDto; +import com.openhis.web.datadictionary.mapper.MedicationManageSearchMapper; + +/** + * 药品目录 impl + * + * @author + * @date 2025-03-17 + */ +@Service +public class MedicationManageAppServiceImpl implements IMedicationManageAppService { + + @Autowired + private IMedicationService medicationService; + + @Autowired + private IMedicationDefinitionService medicationDefinitionService; + + @Autowired + private MedicationManageSearchMapper medicationManageSearchMapper; + + /** + * 药品目录初始化 + * + * @return + */ + @Override + public R getMedicationInit() { + + MedicationManageInitDto medicationManageInitDto = new MedicationManageInitDto(); + // 获取状态 + List statusEnumOptions = Stream.of(PublicationStatus.values()) + .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); + // 获取适用范围 + List domainEnumOptions = Stream.of(ApplicableScope.values()) + .map(domain -> new MedicationManageInitDto.domainEnumOption(domain.getValue(), domain.getInfo())) + .collect(Collectors.toList()); + + medicationManageInitDto.setStatusFlagOptions(statusEnumOptions); + medicationManageInitDto.setDomainFlagOptions(domainEnumOptions); + return R.ok(medicationManageInitDto); + } + + /** + * 药品目录查询 + * + * @param + * @param searchKey 查询条件-模糊查询 + * @param pageNo 查询条件 + * @param pageSize 查询条件 + * @return 药品目录查询结果 + */ + @Override + public R getMedicationList(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "ybMatchFlag", defaultValue = "-1") Integer ybMatchFlag, + @RequestParam(value = "statusEnum", defaultValue = "-1") Integer statusEnum, + @RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { + + // 分页设置 + Integer offset = (pageNo - 1) * pageSize; + // 获取租户ID + Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); + // 查询药品目录列表 + List medicationDetailList = medicationManageSearchMapper.getPage(searchKey, ybMatchFlag, + statusEnum, categoryCode, tenantId, pageSize, offset); + // 查询总记录数 + long total = + medicationManageSearchMapper.getPageCount(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId); + // 创建Page对象并设置属性 + Page medicationManageDtoPage = new Page<>(pageNo, pageSize, total); + medicationManageDtoPage.setRecords(medicationDetailList); + + // 枚举类回显赋值 + medicationManageDtoPage.getRecords().forEach(e -> { + // 药品状态 + e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum())); + // 活动标记 + e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); + // 适用范围 + e.setDomainEnum_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getDomainEnum())); + // 药品分类 + e.setCategoryCode_enumText(EnumUtils.getInfoByValue(ItemCategory.class, e.getCategoryCode())); + // 是否皮试 + e.setSkinTestFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getSkinTestFlag())); + // 是否为注射药物 + e.setInjectFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getInjectFlag())); + // 是否限制使用 + e.setRestrictedFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getRestrictedFlag())); + // 儿童用药标志 + e.setChildrenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getChildrenFlag())); + }); + + // 返回【药品录列表DTO】分页 + return R.ok(medicationManageDtoPage); + } + + /** + * 编辑供应商信息 + * + * @param medicationManageUpDto 供应商信息 + */ + @Override + public R editMedication(@Validated @RequestBody MedicationManageUpDto medicationManageUpDto) { + + MedicationDefinition medicationDefinition = new MedicationDefinition(); + Medication medication = new Medication(); + BeanUtils.copyProperties(medicationManageUpDto, medication); // 子表信息 + BeanUtils.copyProperties(medicationManageUpDto, medicationDefinition);// 主表信息 + + // 更新子表药品信息 + if (medicationService.updateById(medication)) { + // 更新主表药品信息 + return medicationDefinitionService.updateById(medicationDefinition) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } else { + return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + } + + /** + * 药品目录详细查询 + * + * @param id 查询条件 + * @return 药品目录查询结果 + */ + @Override + public R getMedicationOne(@PathVariable("id") Long id) { + + // 获取租户ID + Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); + // 查询药品目录列表 + MedicationManageDto medicationManageDto = medicationManageSearchMapper.getOne(id, tenantId); + // 返回【药品录列表DTO】列表 + return R.ok(medicationManageDto); + } + + /** + * 药品目录停用 + * + * @param ids 药品目录ID列表 + * @return + */ + @Override + public R editMedicationStop(List ids) { + + List medicationList = new ArrayList<>(); + // 取得更新值 + for (Long detail : ids) { + Medication medication = new Medication(); + medication.setId(detail); + medication.setStatusEnum(PublicationStatus.RETIRED); + medicationList.add(medication); + } + // 更新药品信息 + return medicationService.updateBatchById(medicationList) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 药品目录启用 + * + * @param ids 药品目录ID列表 + * @return + */ + @Override + public R editMedicationStart(List ids) { + + List medicationList = new ArrayList<>(); + // 取得更新值 + for (Long detail : ids) { + Medication medication = new Medication(); + medication.setId(detail); + medication.setStatusEnum(PublicationStatus.ACTIVE); + medicationList.add(medication); + } + // 更新药品信息 + return medicationService.updateBatchById(medicationList) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + } + + /** + * 添加供应商信息 + * + * @param medicationManageUpDto 供应商信息 + */ + @Override + public R addMedication(@Validated @RequestBody MedicationManageUpDto medicationManageUpDto) { + + MedicationDetail medicationDetail = new MedicationDetail(); + BeanUtils.copyProperties(medicationManageUpDto, medicationDetail); + // 新增主表外来药品目录 + if (medicationDefinitionService.addMedication(medicationDetail)) { + // 新增子表外来药品目录 + return medicationService.addMedication(medicationDetail) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + } else { + return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + } + } + + @Override + public R exportMedication(String searchKey, Integer ybMatchFlag, Integer statusEnum, String categoryCode, + HttpServletResponse response) { + // 获取租户ID + Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); + List list = + medicationManageSearchMapper.getList(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId); + ExcelUtil util = new ExcelUtil<>(MedicationManageDto.class); + util.exportExcel(response, list, "药品目录"); + return null; + } +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DeviceManageController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DeviceManageController.java index 1e7b215a..0d609410 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DeviceManageController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DeviceManageController.java @@ -1,38 +1,17 @@ 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 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.LambdaQueryWrapper; -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.administration.domain.DeviceDefinition; -import com.openhis.administration.domain.Organization; -import com.openhis.administration.mapper.DeviceDefinitionMapper; import com.openhis.administration.service.IDeviceDefinitionService; -import com.openhis.administration.service.IOrganizationService; -import com.openhis.common.constant.PromptMsgConstant; -import com.openhis.common.enums.DeviceCategory; -import com.openhis.common.enums.OrganizationType; -import com.openhis.common.enums.PublicationStatus; -import com.openhis.common.enums.WhetherContainUnknown; -import com.openhis.common.utils.EnumUtils; -import com.openhis.common.utils.HisPageUtils; -import com.openhis.common.utils.HisQueryUtils; +import com.openhis.web.datadictionary.appservice.IDeviceManageAppService; import com.openhis.web.datadictionary.dto.DeviceManageDto; -import com.openhis.web.datadictionary.dto.DeviceManageInitDto; import com.openhis.web.datadictionary.dto.DeviceManageSelParam; import com.openhis.web.datadictionary.dto.DeviceManageUpDto; @@ -51,8 +30,11 @@ import lombok.extern.slf4j.Slf4j; @AllArgsConstructor public class DeviceManageController { private final IDeviceDefinitionService iDeviceDefinitionService; - private final DeviceDefinitionMapper DeviceDefinitionMapper; - private final IOrganizationService iOrganizationService; + // private final DeviceDefinitionMapper DeviceDefinitionMapper; + // private final IOrganizationService iOrganizationService; + + @Autowired + private IDeviceManageAppService deviceManageAppService; /** * TODO: 器材目录初期查询 @@ -61,66 +43,72 @@ public class DeviceManageController { */ @GetMapping("/init") public R getDeviceManageInit() { - DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto(); - // 获取状态 - List statusEnumOptions = Stream.of(PublicationStatus.values()) - .map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) - .collect(Collectors.toList()); - deviceManageInitDto.setStatusFlagOptions(statusEnumOptions); - // 获取执行科室 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT); - List organizations = iOrganizationService.list(queryWrapper); - List exeOrganizations = organizations.stream() - .map(exeOrg -> new DeviceManageInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName())) - .collect(Collectors.toList()); - deviceManageInitDto.setExeOrganizations(exeOrganizations); - // 获取分类 - List deviceCategories = Stream.of(DeviceCategory.values()) - .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo())) - .collect(Collectors.toList()); - deviceManageInitDto.setDeviceCategories(deviceCategories); - return R.ok(deviceManageInitDto); + + return deviceManageAppService.getDeviceManageInit(); + + // DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto(); + // // 获取状态 + // List statusEnumOptions = Stream.of(PublicationStatus.values()) + // .map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) + // .collect(Collectors.toList()); + // deviceManageInitDto.setStatusFlagOptions(statusEnumOptions); + // // 获取执行科室 + // LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + // queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT); + // List organizations = iOrganizationService.list(queryWrapper); + // List exeOrganizations = organizations.stream() + // .map(exeOrg -> new DeviceManageInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName())) + // .collect(Collectors.toList()); + // deviceManageInitDto.setExeOrganizations(exeOrganizations); + // // 获取分类 + // List deviceCategories = Stream.of(DeviceCategory.values()) + // .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo())) + // .collect(Collectors.toList()); + // deviceManageInitDto.setDeviceCategories(deviceCategories); + // return R.ok(deviceManageInitDto); } /** * 查询器材目录分页列表 * - * @param DeviceManageSelParam 查询条件 + * @param deviceManageSelParam 查询条件 * @param searchKey 查询条件-模糊查询 * @param pageNo 当前页码 * @param pageSize 查询条数 * @return */ @GetMapping("/information-page") - public R getDevicePage(DeviceManageSelParam DeviceManageSelParam, + public R getDevicePage(DeviceManageSelParam deviceManageSelParam, @RequestParam(value = "searchKey", defaultValue = "") String searchKey, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { - // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(DeviceManageSelParam, searchKey, - new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); - // 设置排序 - queryWrapper.orderByAsc("bus_no"); + return deviceManageAppService.getDevicePage(deviceManageSelParam, searchKey, pageNo, pageSize, request); - // 分页查询 - Page deviceManagePage = - HisPageUtils.selectPage(DeviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); - - deviceManagePage.getRecords().forEach(e -> { - // 高值器材标志枚举类回显赋值 - e.setHvcmFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getHvcmFlag())); - // 医保标记枚举类回显赋值 - e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag())); - // 医保对码标记枚举类回显赋值 - e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag())); - // 过敏标记枚举类回显赋值 - e.setAllergenFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getAllergenFlag())); - }); - - // 返回【器材目录列表DTO】分页 - return R.ok(deviceManagePage); + // // 构建查询条件 + // QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, + // searchKey, + // new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); + // // 设置排序 + // queryWrapper.orderByAsc("bus_no"); + // + // // 分页查询 + // Page deviceManagePage = + // HisPageUtils.selectPage(DeviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); + // + // deviceManagePage.getRecords().forEach(e -> { + // // 高值器材标志枚举类回显赋值 + // e.setHvcmFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getHvcmFlag())); + // // 医保标记枚举类回显赋值 + // e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag())); + // // 医保对码标记枚举类回显赋值 + // e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag())); + // // 过敏标记枚举类回显赋值 + // e.setAllergenFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getAllergenFlag())); + // }); + // + // // 返回【器材目录列表DTO】分页 + // return R.ok(deviceManagePage); } /** @@ -132,27 +120,30 @@ public class DeviceManageController { @GetMapping("/information-one/{id}") public R getDeviceOne(@PathVariable("id") Long id) { - // 根据ID查询【器材目录】 - DeviceDefinition byId = iDeviceDefinitionService.getById(id); - return R.ok(byId); + return deviceManageAppService.getDeviceOne(id); + // // 根据ID查询【器材目录】 + // DeviceDefinition byId = iDeviceDefinitionService.getById(id); + // return R.ok(byId); } /** * 器材目录编辑 * - * @param DeviceManageDto 器材目录列表 + * @param deviceManageDto 器材目录列表 * @return */ @PutMapping("/information") - public R editDevice(@RequestBody DeviceManageUpDto DeviceManageDto) { + public R editDevice(@RequestBody DeviceManageUpDto deviceManageDto) { - DeviceDefinition DeviceDefinition = new DeviceDefinition(); - BeanUtils.copyProperties(DeviceManageDto, DeviceDefinition); + return deviceManageAppService.editDevice(deviceManageDto); - // 更新器材信息 - return iDeviceDefinitionService.updateById(DeviceDefinition) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + // DeviceDefinition DeviceDefinition = new DeviceDefinition(); + // BeanUtils.copyProperties(deviceManageDto, DeviceDefinition); + // + // // 更新器材信息 + // return iDeviceDefinitionService.updateById(DeviceDefinition) + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) + // : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); } /** @@ -163,19 +154,22 @@ public class DeviceManageController { */ @PutMapping("/information-stop") public R editDeviceStop(@RequestBody List ids) { - List DeviceDefinitionList = new CopyOnWriteArrayList<>(); - // 取得更新值 - for (Long detail : ids) { - DeviceDefinition DeviceDefinition = new DeviceDefinition(); - DeviceDefinition.setId(detail); - DeviceDefinition.setStatusEnum(PublicationStatus.RETIRED); - DeviceDefinitionList.add(DeviceDefinition); - } - // 更新器材信息 - return iDeviceDefinitionService.updateBatchById(DeviceDefinitionList) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + return deviceManageAppService.editDeviceStop(ids); + + // List DeviceDefinitionList = new CopyOnWriteArrayList<>(); + // + // // 取得更新值 + // for (Long detail : ids) { + // DeviceDefinition DeviceDefinition = new DeviceDefinition(); + // DeviceDefinition.setId(detail); + // DeviceDefinition.setStatusEnum(PublicationStatus.RETIRED); + // DeviceDefinitionList.add(DeviceDefinition); + // } + // // 更新器材信息 + // return iDeviceDefinitionService.updateBatchById(DeviceDefinitionList) + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) + // : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); } /** @@ -186,36 +180,42 @@ public class DeviceManageController { */ @PutMapping("/information-start") public R editDeviceStart(@RequestBody List ids) { - List DeviceDefinitionList = new CopyOnWriteArrayList<>(); - // 取得更新值 - for (Long detail : ids) { - DeviceDefinition DeviceDefinition = new DeviceDefinition(); - DeviceDefinition.setId(detail); - DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE); - DeviceDefinitionList.add(DeviceDefinition); - } - // 更新器材信息 - return iDeviceDefinitionService.updateBatchById(DeviceDefinitionList) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + return deviceManageAppService.editDeviceStart(ids); + + // List DeviceDefinitionList = new CopyOnWriteArrayList<>(); + // + // // 取得更新值 + // for (Long detail : ids) { + // DeviceDefinition DeviceDefinition = new DeviceDefinition(); + // DeviceDefinition.setId(detail); + // DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE); + // DeviceDefinitionList.add(DeviceDefinition); + // } + // // 更新器材信息 + // return iDeviceDefinitionService.updateBatchById(DeviceDefinitionList) + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) + // : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); } /** * 新增外来器材目录 * - * @param DeviceManageUpDto 器材目录 + * @param deviceManageUpDto 器材目录 * @return */ @PostMapping("/information") - public R addDevice(@Validated @RequestBody DeviceManageUpDto DeviceManageUpDto) { - DeviceDefinition DeviceDefinition = new DeviceDefinition(); - BeanUtils.copyProperties(DeviceManageUpDto, DeviceDefinition); - // 新增外来器材目录 - DeviceDefinition.setStatusEnum(PublicationStatus.DRAFT); - return iDeviceDefinitionService.addDevice(DeviceDefinition) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + public R addDevice(@Validated @RequestBody DeviceManageUpDto deviceManageUpDto) { + + return deviceManageAppService.addDevice(deviceManageUpDto); + + // DeviceDefinition DeviceDefinition = new DeviceDefinition(); + // BeanUtils.copyProperties(deviceManageUpDto, DeviceDefinition); + // // 新增外来器材目录 + // DeviceDefinition.setStatusEnum(PublicationStatus.DRAFT); + // return iDeviceDefinitionService.addDevice(DeviceDefinition) + // ? 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/DiagnosisTreatmentController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiagnosisTreatmentController.java index 42a0b3a8..8c196dae 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiagnosisTreatmentController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiagnosisTreatmentController.java @@ -27,7 +27,7 @@ import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.ActivityDefCategory; import com.openhis.common.enums.OrganizationType; import com.openhis.common.enums.PublicationStatus; -import com.openhis.common.enums.WhetherContainUnknown; +import com.openhis.common.enums.Whether; import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisPageUtils; import com.openhis.common.utils.HisQueryUtils; @@ -142,9 +142,9 @@ public class DiagnosisTreatmentController { diseaseTreatmentPage.getRecords().forEach(e -> { // 医保标记枚举类回显赋值 - e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag())); + e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag())); // 医保对码标记枚举类回显赋值 - e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag())); + e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag())); }); // 返回【诊疗目录列表DTO】分页 diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java index b0041e2e..fb3b5471 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java @@ -1,34 +1,17 @@ package com.openhis.web.datadictionary.controller; -import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.core.common.utils.poi.ExcelUtil; -import com.core.system.domain.SysOperLog; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -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.SecurityUtils; -import com.core.common.utils.bean.BeanUtils; -import com.openhis.common.constant.PromptMsgConstant; -import com.openhis.common.enums.PublicationStatus; -import com.openhis.medication.domain.Medication; -import com.openhis.medication.domain.MedicationDefinition; -import com.openhis.medication.domain.MedicationDetail; -import com.openhis.medication.service.IMedicationDefinitionService; -import com.openhis.medication.service.IMedicationService; -import com.openhis.web.datadictionary.dto.MedicationManageDto; -import com.openhis.web.datadictionary.dto.MedicationManageInitDto; +import com.openhis.web.datadictionary.appservice.IMedicationManageAppService; import com.openhis.web.datadictionary.dto.MedicationManageUpDto; -import com.openhis.web.datadictionary.mapper.MedicationManageSearchMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -40,14 +23,17 @@ import lombok.extern.slf4j.Slf4j; * @date 2025-02-21 */ @RestController -@RequestMapping("/datadictionary/medication") +@RequestMapping("/data-dictionary/medication") @Slf4j @AllArgsConstructor public class MedicationManageController { - private final IMedicationDefinitionService iMedicationDefinitionService; - private final IMedicationService iMedicationService; - private final MedicationManageSearchMapper medicationManageSearchMapper; + // private final IMedicationDefinitionService iMedicationDefinitionService; + // private final IMedicationService iMedicationService; + // private final MedicationManageSearchMapper medicationManageSearchMapper; + + @Autowired + private IMedicationManageAppService medicationManageAppService; /** * 药品目录初始化 @@ -56,13 +42,16 @@ public class MedicationManageController { */ @GetMapping("/information-init") public R getMedicationInit() { - MedicationManageInitDto medicationManageInitDto = new MedicationManageInitDto(); - // 获取状态 - List statusEnumOptions = Stream.of(PublicationStatus.values()) - .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) - .collect(Collectors.toList()); - medicationManageInitDto.setStatusFlagOptions(statusEnumOptions); - return R.ok(medicationManageInitDto); + + return medicationManageAppService.getMedicationInit(); + + // MedicationManageInitDto medicationManageInitDto = new MedicationManageInitDto(); + // // 获取状态 + // List statusEnumOptions = Stream.of(PublicationStatus.values()) + // .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) + // .collect(Collectors.toList()); + // medicationManageInitDto.setStatusFlagOptions(statusEnumOptions); + // return R.ok(medicationManageInitDto); } /** @@ -83,21 +72,25 @@ public class MedicationManageController { @RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { - // 分页设置 - Integer offset = (pageNo - 1) * pageSize; - // 获取租户ID - Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); - // 查询药品目录列表 - List medicationDetailList = medicationManageSearchMapper.getPage(searchKey, ybMatchFlag, - statusEnum, categoryCode, tenantId, pageSize, offset); - // 查询总记录数 - long total = - medicationManageSearchMapper.getPageCount(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId); - // 创建Page对象并设置属性 - Page medicationManageDtoPage = new Page<>(pageNo, pageSize, total); - medicationManageDtoPage.setRecords(medicationDetailList); - // 返回【药品录列表DTO】分页 - return R.ok(medicationManageDtoPage); + + return medicationManageAppService.getMedicationList(searchKey, ybMatchFlag, statusEnum, categoryCode, pageNo, + pageSize, request); + + // // 分页设置 + // Integer offset = (pageNo - 1) * pageSize; + // // 获取租户ID + // Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); + // // 查询药品目录列表 + // List medicationDetailList = medicationManageSearchMapper.getPage(searchKey, ybMatchFlag, + // statusEnum, categoryCode, tenantId, pageSize, offset); + // // 查询总记录数 + // long total = + // medicationManageSearchMapper.getPageCount(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId); + // // 创建Page对象并设置属性 + // Page medicationManageDtoPage = new Page<>(pageNo, pageSize, total); + // medicationManageDtoPage.setRecords(medicationDetailList); + // // 返回【药品录列表DTO】分页 + // return R.ok(medicationManageDtoPage); } /** @@ -107,54 +100,62 @@ public class MedicationManageController { * @return */ @GetMapping("/information-one/{id}") - public R getDiseaseOne(@PathVariable("id") Long id) { - // 获取租户ID - Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); - // 查询药品目录列表 - MedicationManageDto medicationManageDto = medicationManageSearchMapper.getOne(id, tenantId); - // 返回【药品录列表DTO】列表 - return R.ok(medicationManageDto); + public R getMedicationOne(@PathVariable("id") Long id) { + + return medicationManageAppService.getMedicationOne(id); + + // // 获取租户ID + // Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); + // // 查询药品目录列表 + // MedicationManageDto medicationManageDto = medicationManageSearchMapper.getOne(id, tenantId); + // // 返回【药品录列表DTO】列表 + // return R.ok(medicationManageDto); } // 药品目录编辑 @PutMapping("/information") public R editMedication(@RequestBody MedicationManageUpDto medicationManageUpDto) { - MedicationDefinition medicationDefinition = new MedicationDefinition(); - Medication medication = new Medication(); - BeanUtils.copyProperties(medicationManageUpDto, medication); // 子表信息 - BeanUtils.copyProperties(medicationManageUpDto, medicationDefinition);// 主表信息 - // 更新子表药品信息 - if (iMedicationService.updateById(medication)) { - // 更新主表药品信息 - return iMedicationDefinitionService.updateById(medicationDefinition) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); - } else { - return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); - } + return medicationManageAppService.editMedication(medicationManageUpDto); + + // MedicationDefinition medicationDefinition = new MedicationDefinition(); + // Medication medication = new Medication(); + // BeanUtils.copyProperties(medicationManageUpDto, medication); // 子表信息 + // BeanUtils.copyProperties(medicationManageUpDto, medicationDefinition);// 主表信息 + // + // // 更新子表药品信息 + // if (iMedicationService.updateById(medication)) { + // // 更新主表药品信息 + // return iMedicationDefinitionService.updateById(medicationDefinition) + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + // : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + // } else { + // return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + // } } /** * 药品目录停用 - * + * * @param ids 药品ID列表 * @return */ @PutMapping("/information-stop") public R editMedicationStop(@RequestBody List ids) { - List medicationList = new ArrayList<>(); - // 取得更新值 - for (Long detail : ids) { - Medication medication = new Medication(); - medication.setId(detail); - medication.setStatusEnum(PublicationStatus.RETIRED); - medicationList.add(medication); - } - // 更新药品信息 - return iMedicationService.updateBatchById(medicationList) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + // List medicationList = new ArrayList<>(); + // // 取得更新值 + // for (Long detail : ids) { + // Medication medication = new Medication(); + // medication.setId(detail); + // medication.setStatusEnum(PublicationStatus.RETIRED); + // medicationList.add(medication); + // } + // // 更新药品信息 + // return iMedicationService.updateBatchById(medicationList) + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + // : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + + return medicationManageAppService.editMedicationStop(ids); } /** @@ -165,44 +166,49 @@ public class MedicationManageController { */ @PutMapping("/information-start") public R editMedicationStart(@RequestBody List ids) { - List medicationList = new ArrayList<>(); - // 取得更新值 - for (Long detail : ids) { - Medication medication = new Medication(); - medication.setId(detail); - medication.setStatusEnum(PublicationStatus.ACTIVE); - medicationList.add(medication); - } - // 更新药品信息 - return iMedicationService.updateBatchById(medicationList) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); + + return medicationManageAppService.editMedicationStart(ids); + // List medicationList = new ArrayList<>(); + // // 取得更新值 + // for (Long detail : ids) { + // Medication medication = new Medication(); + // medication.setId(detail); + // medication.setStatusEnum(PublicationStatus.ACTIVE); + // medicationList.add(medication); + // } + // // 更新药品信息 + // return iMedicationService.updateBatchById(medicationList) + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + // : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); } /** * 新增外来药品目录 - * + * * @param medicationManageUpDto 药品目录信息 * @return */ @PostMapping("/information") public R addMedication(@Validated @RequestBody MedicationManageUpDto medicationManageUpDto) { - MedicationDetail medicationDetail = new MedicationDetail(); - BeanUtils.copyProperties(medicationManageUpDto, medicationDetail); - // 新增主表外来药品目录 - if (iMedicationDefinitionService.addMedication(medicationDetail)) { - // 新增子表外来药品目录 - return iMedicationService.addMedication(medicationDetail) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); - } else { - return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); - } + + return medicationManageAppService.addMedication(medicationManageUpDto); + + // MedicationDetail medicationDetail = new MedicationDetail(); + // BeanUtils.copyProperties(medicationManageUpDto, medicationDetail); + // // 新增主表外来药品目录 + // if (iMedicationDefinitionService.addMedication(medicationDetail)) { + // // 新增子表外来药品目录 + // return iMedicationService.addMedication(medicationDetail) + // ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) + // : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + // } else { + // return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + // } } /** * 新增医保药品目录 - * + * * @param medicationManageUpDto 药品目录信息 * @return */ @@ -211,9 +217,9 @@ public class MedicationManageController { return null; } - /** * 药品目录导出 + * * @param searchKey 查询条件 * @param statusEnum 查询条件-状态 * @param ybMatchFlag 查询条件-是否对码 @@ -223,14 +229,18 @@ public class MedicationManageController { */ @GetMapping("/information-export") public R exportMedication(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, - @RequestParam(value = "ybMatchFlag", defaultValue = "-1") Integer ybMatchFlag, - @RequestParam(value = "statusEnum", defaultValue = "-1") Integer statusEnum, - @RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, HttpServletResponse response) { - // 获取租户ID - Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); - List list = medicationManageSearchMapper.getList(searchKey,ybMatchFlag,statusEnum,categoryCode,tenantId); - ExcelUtil util = new ExcelUtil<>(MedicationManageDto.class); - util.exportExcel(response, list, "药品目录"); - return null; + @RequestParam(value = "ybMatchFlag", defaultValue = "-1") Integer ybMatchFlag, + @RequestParam(value = "statusEnum", defaultValue = "-1") Integer statusEnum, + @RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, HttpServletResponse response) { + + return medicationManageAppService.exportMedication(searchKey, ybMatchFlag, statusEnum, categoryCode, response); + + // // 获取租户ID + // Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); + // List list = + // medicationManageSearchMapper.getList(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId); + // ExcelUtil util = new ExcelUtil<>(MedicationManageDto.class); + // util.exportExcel(response, list, "药品目录"); + // return null; } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java index b712afbd..6d495f7c 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java @@ -29,7 +29,9 @@ public class MedicationManageDto { private Long medicationDefId; /** 药品状态 */ - private PublicationStatus statusEnum; +// private PublicationStatus statusEnum; + private Integer statusEnum; + private String statusEnum_enumText; /** 所属科室 */ private Long orgId; @@ -45,6 +47,7 @@ public class MedicationManageDto { /** 是否为活性 */ private Integer activeFlag; + private String activeFlag_enumText; /** 批次号 */ private String lotNumber; @@ -81,6 +84,7 @@ public class MedicationManageDto { /** 适用范围 */ private Integer domainEnum; + private String domainEnum_enumText; /** 药品版本 */ private String version; @@ -96,6 +100,7 @@ public class MedicationManageDto { /** 药品分类 */ private Integer categoryCode; + private String categoryCode_enumText; /** 商品名称 */ private String merchandiseName; @@ -138,9 +143,11 @@ public class MedicationManageDto { /** 是否皮试 */ private Integer skinTestFlag; + private String skinTestFlag_enumText; /** 是否为注射药物 */ private Integer injectFlag; + private String injectFlag_enumText; /** 生产厂家 */ private Long manufacturerId; @@ -150,12 +157,14 @@ public class MedicationManageDto { /** 是否限制使用 */ private Integer restrictedFlag; + private String restrictedFlag_enumText; /** 限制使用范围 */ private String restrictedScope; /** 儿童用药标志 */ private Integer childrenFlag; + private String childrenFlag_enumText; /** 产品特性 */ private Integer characteristic; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageInitDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageInitDto.java index 87270121..053b9afd 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageInitDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageInitDto.java @@ -15,6 +15,7 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class MedicationManageInitDto { private List statusFlagOptions; + private List domainFlagOptions; /** * 状态 @@ -29,4 +30,18 @@ public class MedicationManageInitDto { this.info = info; } } + + /** + * 适用范围 + */ + @Data + public static class domainEnumOption { + private Integer value; + private String info; + + public domainEnumOption(Integer value, String info) { + this.value = value; + this.info = info; + } + } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java index 87e162aa..205b926c 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java @@ -29,7 +29,7 @@ import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.BindingType; import com.openhis.common.enums.ConditionDefinitionSource; import com.openhis.common.enums.PublicationStatus; -import com.openhis.common.enums.WhetherContainUnknown; +import com.openhis.common.enums.Whether; import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisPageUtils; import com.openhis.common.utils.HisQueryUtils; @@ -258,9 +258,9 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn e.setTypeName(CommonConstants.BusinessName.WESTERN_MEDICINE_DIAGNOSIS); } // 医保标记 - e.setYbFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbFlag())); + e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag())); // 医保对码标记 - e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getYbMatchFlag())); + e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag())); }); } diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ApplicableScope.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ApplicableScope.java new file mode 100644 index 00000000..9216738a --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ApplicableScope.java @@ -0,0 +1,30 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ApplicableScope implements HisEnumInterface { + + HUMAN(1, "human", "人"), + + ANIMAL(2, "animal", "动物"), + + ALL(9, "all", "全部"); + + ApplicableScope(int value, String code, String info) { + this.value = value; + this.code = code; + this.info = info; + } + + @EnumValue + @JsonValue // 标记响应json值 + private final Integer value; + private final String code; + private final String info; +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemCategory.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemCategory.java index ab12b092..5377f70a 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemCategory.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/ItemCategory.java @@ -14,29 +14,30 @@ import lombok.Getter; */ @Getter @AllArgsConstructor -public enum ItemCategory { +public enum ItemCategory implements HisEnumInterface { /** * 中药 */ - CHINESE_MEDICINE(1, "中药"), + CHINESE_MEDICINE(1, "1","中药"), /** * 西药 */ - WESTERN_MEDICINE(2, "西药"), + WESTERN_MEDICINE(2, "2","西药"), /** * 中成药 */ - CHINESE_PATENT_MEDICINE(3, "中成药"), + CHINESE_PATENT_MEDICINE(3, "3","中成药"), /** * 医疗耗材 */ - MEDICAL_CONSUMABLES(4, "医疗耗材"); + MEDICAL_CONSUMABLES(4, "4","医疗耗材"); private Integer value; + private String code; private String info; public static ItemCategory getByValue(Integer value) {