From ccf39ae5561779ff533acee0ee62882cce52dcc5 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 19:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=B1=E8=AF=8A-=E5=85=83=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IOrganizationAppServiceImpl.java | 16 +++-- .../IOutpatientRegistrationAppService.java | 16 ++++- ...IOutpatientRegistrationAppServiceImpl.java | 58 +++++++++++++---- .../OutpatientRegistrationController.java | 64 +++++++++++-------- .../dto/ConditionDefinitionMetadata.java | 13 ++++ .../dto/ContractMetadata.java | 16 +++++ .../HealthcareServiceBizMapper.xml | 1 - .../administration/domain/Patient.java | 3 + .../clinical/domain/ConditionDefinition.java | 3 + 9 files changed, 141 insertions(+), 49 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ContractMetadata.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java index db9d3ae7..4cf97c3d 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java @@ -1,16 +1,18 @@ package com.openhis.web.basedatamanage.appservice.impl; +import java.util.*; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.openhis.administration.domain.Organization; import com.openhis.administration.service.IOrganizationService; import com.openhis.web.basedatamanage.appservice.IOrganizationAppService; import com.openhis.web.basedatamanage.dto.OrganizationQueryDto; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; @Service public class IOrganizationAppServiceImpl implements IOrganizationAppService { @@ -39,7 +41,7 @@ public class IOrganizationAppServiceImpl implements IOrganizationAppService { private List buildTree(List records) { // 按b_no的层级排序,确保父节点先处理 List sortedRecords = records.stream() - .sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList()); + .sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList()); Map nodeMap = new HashMap<>(); List tree = new ArrayList<>(); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java index 48727976..7a5626b8 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java @@ -1,17 +1,27 @@ package com.openhis.web.outpatientservice.appservice; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.web.outpatientservice.dto.ContractMetadata; import com.openhis.web.outpatientservice.dto.PatientMetadata; +import java.util.List; + public interface IOutpatientRegistrationAppService { /** - * 门诊挂号 - 查询患者信息 + * 查询患者信息 * * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 + * @param pageNo 当前页 + * @param pageSize 每页多少条 * @return 患者信息 */ Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize); + + /** + * 查询费用性质 + * + * @return 费用性质 + */ + List getContractMetadata(); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java index f83afd27..9e059915 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java @@ -1,21 +1,30 @@ package com.openhis.web.outpatientservice.appservice.impl; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.stream.Collectors; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +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.utils.AgeCalculatorUtil; +import com.core.common.utils.bean.BeanUtils; import com.openhis.administration.domain.Patient; import com.openhis.administration.mapper.PatientMapper; import com.openhis.common.enums.AdministrativeGender; import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisPageUtils; import com.openhis.common.utils.HisQueryUtils; +import com.openhis.financial.domain.Contract; +import com.openhis.financial.mapper.ContractMapper; import com.openhis.web.outpatientservice.appservice.IOutpatientRegistrationAppService; +import com.openhis.web.outpatientservice.dto.ContractMetadata; import com.openhis.web.outpatientservice.dto.PatientMetadata; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.Arrays; -import java.util.HashSet; /** * 门诊挂号 实现类 @@ -26,25 +35,27 @@ public class IOutpatientRegistrationAppServiceImpl implements IOutpatientRegistr @Resource PatientMapper patientMapper; + @Resource + ContractMapper contractMapper; + /** * 门诊挂号 - 查询患者信息 * * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 + * @param pageNo 当前页 + * @param pageSize 每页多少条 * @return 患者信息 */ @Override public Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize) { // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(null, - searchKey, new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null - ); + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(null, searchKey, + new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null); // 设置排序 queryWrapper.orderByDesc("update_time"); // 患者信息 - Page patientMetadataPage = HisPageUtils.selectPage(patientMapper, - queryWrapper, pageNo, pageSize, PatientMetadata.class); + Page patientMetadataPage = + HisPageUtils.selectPage(patientMapper, queryWrapper, pageNo, pageSize, PatientMetadata.class); patientMetadataPage.getRecords().forEach(e -> { // 性别枚举 @@ -55,5 +66,26 @@ public class IOutpatientRegistrationAppServiceImpl implements IOutpatientRegistr return patientMetadataPage; } -} + /** + * 查询费用性质 + * + * @return 费用性质 + */ + @Override + public List getContractMetadata() { + // TODO: Contract表的基础数据维护还没做,具体不知道状态字段的取值是什么,先查询默认值为0的数据 + List ContractList = + contractMapper.selectList(new LambdaQueryWrapper().eq(Contract::getStatusEnum, 0)); + // 复制同名字段并 return + return ContractList.stream().map(contract -> { + ContractMetadata metadata = new ContractMetadata(); + try { + BeanUtils.copyProperties(contract, metadata); + } catch (Exception e) { + e.printStackTrace(); + } + return metadata; + }).collect(Collectors.toList()); + } +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java index 3dfb0116..fba03b1a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java @@ -3,21 +3,23 @@ */ package com.openhis.web.outpatientservice.controller; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + import com.core.common.core.domain.R; import com.openhis.common.enums.PriorityLevel; import com.openhis.web.basedatamanage.appservice.IOrganizationAppService; import com.openhis.web.outpatientservice.appservice.IOutpatientRegistrationAppService; import com.openhis.web.outpatientservice.dto.OutpatientRegistrationInitDto; + import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** * 门诊挂号 controller @@ -32,13 +34,14 @@ public class OutpatientRegistrationController { private final IOrganizationAppService iOrganizationAppService; /** - * 门诊挂号 - 基础数据初始化 + * 基础数据初始化 */ @GetMapping(value = "/init") public R init() { OutpatientRegistrationInitDto outpatientRegistrationInitDto = new OutpatientRegistrationInitDto(); // 优先级 - List priorityLevelOptionOptions = Stream.of(PriorityLevel.values()) + List priorityLevelOptionOptions = + Stream.of(PriorityLevel.values()) .map(e -> new OutpatientRegistrationInitDto.priorityLevelOption(e.getValue(), e.getInfo())) .collect(Collectors.toList()); outpatientRegistrationInitDto.setPriorityLevelOptionOptions(priorityLevelOptionOptions); @@ -46,33 +49,44 @@ public class OutpatientRegistrationController { } /** - * 门诊挂号 - 查询患者信息 + * 查询患者信息 * * @param searchKey 模糊查询关键字 - * @param pageNo 当前页 - * @param pageSize 每页多少条 + * @param pageNo 当前页 + * @param pageSize 每页多少条 * @return 患者信息 */ @GetMapping(value = "/patient-metadata") public R getPatientMetadata(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, - @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { return R.ok(iOutpatientRegistrationAppService.getPatientMetadataBySearchKey(searchKey, pageNo, pageSize)); } /** - * 门诊挂号 - 查询机构树 - * - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @return 机构分页列表 + * 查询费用性质 + * + * @return 费用性质 */ - @GetMapping(value = "/organization-tree") - public R getOrganizationTree( - @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { - return R.ok(iOrganizationAppService.getOrganizationTree(pageNo, pageSize)); + @GetMapping(value = "/contract-list") + public R getContractList() { + return R.ok(iOutpatientRegistrationAppService.getContractMetadata()); } + /** + * 查询第一诊断 + */ + + /** + * 查询就诊位置 + */ + + /** + * 根据位置id筛选医生 + */ + + /** + * 根据机构id筛选服务项目 + */ } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java new file mode 100644 index 00000000..8737bc76 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ConditionDefinitionMetadata.java @@ -0,0 +1,13 @@ +package com.openhis.web.outpatientservice.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 诊断 元数据 + */ +@Data +@Accessors(chain = true) +public class ConditionDefinitionMetadata { + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ContractMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ContractMetadata.java new file mode 100644 index 00000000..6a5889ec --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/ContractMetadata.java @@ -0,0 +1,16 @@ +package com.openhis.web.outpatientservice.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 费用性质 元数据 + */ +@Data +@Accessors(chain = true) +public class ContractMetadata { + /** 合同名称 */ + private String contractName; + /** 合同编码 */ + private String busNo; +} diff --git a/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml index a36b26d8..e1305276 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/basicservice/HealthcareServiceBizMapper.xml @@ -43,7 +43,6 @@ adm_healthcare_service AS T1 LEFT JOIN adm_charge_item_definition AS T2 ON T2.instance_id = T1.ID AND T2.instance_table = #{tableName} - AND T1.delete_flag = '0' WHERE T1.delete_flag = '0' ORDER BY T1.create_time DESC diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java index 2923a91b..f2d0d2ca 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Patient.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -25,6 +27,7 @@ public class Patient extends HisBaseEntity { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 活动标记 */ diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java index 43ce81a7..09e1453f 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/clinical/domain/ConditionDefinition.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.enums.ConditionDefinitionSource; import com.openhis.common.enums.PublicationStatus; @@ -25,6 +27,7 @@ public class ConditionDefinition extends HisBaseEntity { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 所属分类 */