From 0a5d2d99945f79810a7e3273ae05d39b78229592 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Tue, 4 Mar 2025 14:28:06 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HealthcareServiceController.java | 9 +++++--- .../dto/HealthcareServiceDto.java | 1 + .../OutpatientRegistrationController.java | 22 +++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.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 29c47053..0f9f6985 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 @@ -105,9 +105,12 @@ public class HealthcareServiceController { new HashSet<>(Arrays.asList("name", "charge_name")), request); IPage healthcareServicePage = healthcareServiceBizMapper.getHealthcareServicePage( new Page<>(pageNo, pageSize), CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper); - // 活动标记-枚举类回显赋值 - healthcareServicePage.getRecords().forEach(e -> - e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())) + healthcareServicePage.getRecords().forEach(e -> { + // 活动标记-枚举类回显赋值 + e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); + // 预约要求-枚举类回显赋值 + e.setAppointmentRequiredFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, e.getAppointmentRequiredFlag())); + } ); return R.ok(healthcareServicePage, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, null)); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java index 846d0743..895b3d82 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java @@ -82,6 +82,7 @@ public class HealthcareServiceDto { * 预约要求 */ private Integer appointmentRequiredFlag; + private String appointmentRequiredFlag_enumText; /** * 名称 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 new file mode 100644 index 00000000..577452d6 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/OutpatientRegistrationController.java @@ -0,0 +1,22 @@ +/* + * Copyright ©2023 CJB-CNIT Team. All rights reserved + */ +package com.openhis.web.outpatientservice.controller; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 门诊挂号 controller + */ +@RestController +@RequestMapping("/outpatient-service/register") +@Slf4j +@AllArgsConstructor +public class OutpatientRegistrationController { + + + +} From d6418785f7e97edd44e56d80e5b52f28ab5728c9 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Tue, 4 Mar 2025 16:11:25 +0800 Subject: [PATCH 02/26] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=BF=85=E5=A1=AB=E9=A1=B9=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HealthcareServiceController.java | 23 +++-- .../dto/ChargeItemDefinitionFormData.java | 95 +++++++++++++++++++ .../HealthcareServiceAddOrUpdateParam.java | 12 +-- .../dto/HealthcareServiceFormData.java | 86 +++++++++++++++++ .../openhis/common/enums/OutpatientClass.java | 35 +++++++ .../openhis/common/enums/PriorityLevel.java | 24 +++++ .../administration/domain/Encounter.java | 10 +- 7 files changed, 264 insertions(+), 21 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/ChargeItemDefinitionFormData.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceFormData.java create mode 100644 openhis-server/openhis-common/src/main/java/com/openhis/common/enums/OutpatientClass.java create mode 100644 openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PriorityLevel.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 0f9f6985..c4d01cd4 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 @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; 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.ChargeItemDefinition; import com.openhis.administration.domain.HealthcareService; import com.openhis.administration.service.IChargeItemDefinitionService; @@ -19,9 +20,7 @@ import com.openhis.common.enums.AccountStatus; import com.openhis.common.enums.WhetherContainUnknown; import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisQueryUtils; -import com.openhis.web.basicservice.dto.HealthcareServiceAddOrUpdateParam; -import com.openhis.web.basicservice.dto.HealthcareServiceDto; -import com.openhis.web.basicservice.dto.HealthcareServiceInitDto; +import com.openhis.web.basicservice.dto.*; import com.openhis.web.basicservice.mapper.HealthcareServiceBizMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -74,13 +73,17 @@ public class HealthcareServiceController { @PostMapping(value = "/healthcare-service") public R add(@Validated @RequestBody HealthcareServiceAddOrUpdateParam healthcareServiceAddOrUpdateParam) { // 服务管理-表单数据 - HealthcareService healthcareServiceFormData = healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); + HealthcareServiceFormData healthcareServiceFormData = healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); // 费用定价-表单数据 - ChargeItemDefinition chargeItemDefinitionFormData = healthcareServiceAddOrUpdateParam.getChargeItemDefinitionFormData(); + ChargeItemDefinitionFormData chargeItemDefinitionFormData = healthcareServiceAddOrUpdateParam.getChargeItemDefinitionFormData(); // 服务管理-新增 - HealthcareService healthcareService = iHealthcareServiceService.addHealthcareService(healthcareServiceFormData); + HealthcareService healthcareService = new HealthcareService(); + BeanUtils.copyProperties(healthcareServiceFormData, healthcareService); + HealthcareService healthcareServiceAfterAdd = iHealthcareServiceService.addHealthcareService(healthcareService); // 同时保存费用定价 - boolean res = iChargeItemDefinitionService.addChargeItemDefinitionByHealthcareService(healthcareService, chargeItemDefinitionFormData); + ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition(); + BeanUtils.copyProperties(chargeItemDefinitionFormData, chargeItemDefinition); + boolean res = iChargeItemDefinitionService.addChargeItemDefinitionByHealthcareService(healthcareServiceAfterAdd, chargeItemDefinition); return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[]{"服务管理"})) : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); } @@ -125,8 +128,10 @@ public class HealthcareServiceController { @PutMapping(value = "/healthcare-service") public R edit(@Validated @RequestBody HealthcareServiceAddOrUpdateParam healthcareServiceAddOrUpdateParam) { // 服务管理-表单数据 - HealthcareService healthcareServiceFormData = healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); - boolean res = iHealthcareServiceService.updateHealthcareService(healthcareServiceFormData); + HealthcareServiceFormData healthcareServiceFormData = healthcareServiceAddOrUpdateParam.getHealthcareServiceFormData(); + HealthcareService healthcareService = new HealthcareService(); + BeanUtils.copyProperties(healthcareServiceFormData, healthcareService); + boolean res = iHealthcareServiceService.updateHealthcareService(healthcareService); return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"服务管理"})) : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null)); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/ChargeItemDefinitionFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/ChargeItemDefinitionFormData.java new file mode 100644 index 00000000..5ab79878 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/ChargeItemDefinitionFormData.java @@ -0,0 +1,95 @@ +package com.openhis.web.basicservice.dto; + +import com.openhis.common.enums.PublicationStatus; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 费用定价管理表单数据 + * + * @author system + * @date 2025-02-20 + */ +@Data +public class ChargeItemDefinitionFormData { + + /** + * ID + */ + private Long id; + + /** + * 名称 + */ + @NotBlank(message = "名称不能为空") + private String chargeName; + + /** + * 标题 + */ + private String title; + + /** + * 状态 + */ + private PublicationStatus statusEnum; + + /** + * 机构ID + */ + @NotBlank(message = "机构ID不能为空") + private Long orgId; + + /** + * 描述 + */ + @NotBlank(message = "描述不能为空") + private String description; + + /** + * 代码 + */ + private String instanceTable; + + /** + * 关联项目 + */ + private Long instanceId; + + /** + * 有效时间开始 + */ + private Date effectiveStart; + + /** + * 有效时间结束 + */ + private Date effectiveEnd; + + /** + * 财务类别 + */ + @NotBlank(message = "财务类别不能为空") + private String typeCode; + + /** + * 医保类别 + */ + @NotBlank(message = "医保类别不能为空") + private String ybType; + + /** + * 是否使用详细价格规则 + */ + @NotBlank(message = "是否使用详细价格规则不能为空") + private Integer conditionFlag; + + /** + * 基础价格 + */ + @NotBlank(message = "基础价格不能为空") + private BigDecimal price; +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceAddOrUpdateParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceAddOrUpdateParam.java index f5c6f77e..aca33c3f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceAddOrUpdateParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceAddOrUpdateParam.java @@ -1,7 +1,5 @@ package com.openhis.web.basicservice.dto; -import com.openhis.administration.domain.ChargeItemDefinition; -import com.openhis.administration.domain.HealthcareService; import lombok.Data; /** @@ -11,15 +9,15 @@ import lombok.Data; * @date 2025-02-20 */ @Data -public class HealthcareServiceAddOrUpdateParam{ +public class HealthcareServiceAddOrUpdateParam { /** - * 服务管理 + * 服务管理 */ - private HealthcareService healthcareServiceFormData; + private HealthcareServiceFormData healthcareServiceFormData; /** - * 费用定价 + * 费用定价 */ - private ChargeItemDefinition chargeItemDefinitionFormData; + private ChargeItemDefinitionFormData chargeItemDefinitionFormData; } \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceFormData.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceFormData.java new file mode 100644 index 00000000..c85dc4ec --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceFormData.java @@ -0,0 +1,86 @@ +package com.openhis.web.basicservice.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 服务项目管理表单数据 + * + * @author system + * @date 2025-02-20 + */ +@Data +public class HealthcareServiceFormData { + + /** + * ID + */ + private Long id; + + /** + * 活动标记 + */ + @NotBlank(message = "活动标记不能为空") + private Integer activeFlag; + + /** + * 提供部门ID + */ + @NotBlank(message = "提供部门ID不能为空") + private Long offeredOrgId; + + /** + * 服务分类 + */ + @NotBlank(message = "服务分类不能为空") + private String categoryCode; + + /** + * 服务类型 + */ + @NotBlank(message = "服务类型不能为空") + private String typeCode; + + /** + * 服务专业 + */ + @NotBlank(message = "服务专业不能为空") + private String specialtyCode; + + /** + * 地点 + */ + @NotBlank(message = "地点不能为空") + private Long locationId; + + /** + * 服务名称 + */ + @NotBlank(message = "服务名称不能为空") + private String name; + + /** + * 说明 + */ + private String comment; + + /** + * 额外细节 + */ + private String extraDetails; + + /** + * 联系方式 + */ + @NotBlank(message = "联系方式不能为空") + private String contact; + + /** + * 预约要求 + */ + @NotBlank(message = "预约要求不能为空") + private Integer appointmentRequiredFlag; + + +} \ No newline at end of file diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/OutpatientClass.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/OutpatientClass.java new file mode 100644 index 00000000..31f1df9b --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/OutpatientClass.java @@ -0,0 +1,35 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 门诊分类 + */ +@Getter +@AllArgsConstructor +public enum OutpatientClass implements HisEnumInterface { + + GENERAL_OUTPATIENT_SERVICE(1, "GOS", "普通门诊"), + EMERGENCY_TREATMENT(2, "ET", "急诊"), + HEALTH_COUNSELING(3, "HC", "健康咨询"), + SPECIALIZED_OUTPATIENT_DEPARTMENT(4, "SOD", "专科门诊"), + VIP_CLINIC(5, "VC", "特需门诊"), + SPECIALIZED_DISEASE_DEPARTMENT(6, "SOD", "专病门诊"), + APPOINTMENT_FOR_REGISTRATION(7, "AFR", "预约挂号"), + WESTERN_MEDICINE(11, "WM", "西医"), + TRADITIONAL_CHINESE_MEDICAL_SCIENCE(12, "TCMS", "中医"), + WESTERN_MEDICINE_EMERGENCY_DEPARTMENT(21, "WMED", "西医急诊"), + TRADITIONAL_CHINESE_MEDICINE_EMERGENCY(22, "TCME", "中医急诊"), + PHYSICAL_EXAMINATION(31, "PE", "体检"), + PREVENTIVE_MEDICAL_EXAMINATION(32, "PME", "预防体检"), + MATERNAL_AND_CHILD_HEALTH_CARE(33, "MACHC", "孕产保健"), + OTHER(99, "OT", "其他"); + + @EnumValue + 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/PriorityLevel.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PriorityLevel.java new file mode 100644 index 00000000..0afc551c --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/PriorityLevel.java @@ -0,0 +1,24 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 优先级 + */ +@Getter +@AllArgsConstructor +public enum PriorityLevel implements HisEnumInterface { + + EMERGENCY(1, "EM", "紧急"), + PRIORITY(2, "PR", "优先"), + ORDINARY(3, "OR", "普通"), + NOT_URGENT(4, "NU", "不紧急"); + + @EnumValue + private final Integer value; + private final String code; + private final String info; + +} diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java index c6748277..b34b7f48 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java @@ -37,10 +37,10 @@ public class Encounter extends HisBaseEntity { private String busNo; /** 状态编码 */ - private EncounterStatus statusEnum; + private Integer statusEnum; /** 类别编码 */ - private EncounterClass classEnum; + private Integer classEnum; /** 类别医保编码 */ private Integer ybClassEnum; @@ -49,16 +49,16 @@ public class Encounter extends HisBaseEntity { private String classJson; /** 优先级编码 */ - private ActPriority priorityEnum; + private Integer priorityEnum; /** 分类编码 */ - private EncounterType typeEnum; + private Integer typeEnum; /** 服务ID */ private Long serviceTypeId; /** 就诊对象状态 */ - private EncounterSubjectStatus subjectStatusEnum; + private Integer subjectStatusEnum; /** 开始时间 */ private Date startTime; From 6ff77c31c5a578309b55cb3d1257c98e8a931562 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Tue, 4 Mar 2025 16:25:05 +0800 Subject: [PATCH 03/26] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HealthcareServiceController.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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 c4d01cd4..3c7f1f14 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 @@ -28,6 +28,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -139,17 +140,23 @@ public class HealthcareServiceController { /** * 服务管理 删除 * - * @param id ID + * @param ids ID * @return 删除结果 */ @DeleteMapping(value = "/healthcare-service") - public R delete(@RequestParam Long id) { - boolean res = iHealthcareServiceService.removeById(id); + public R delete(@RequestParam String ids) { + List idsList = new ArrayList<>(); + if (ids != null) { + idsList = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList()); + } + boolean res = iHealthcareServiceService.removeByIds(idsList); // 同时删除非同定价 - LambdaQueryWrapper QueryWrapper = new LambdaQueryWrapper<>(); - QueryWrapper.eq(ChargeItemDefinition::getInstanceId, id). - eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.ADM_HEALTHCARE_SERVICE); - iChargeItemDefinitionService.remove(QueryWrapper); + for (Long id : idsList) { + LambdaQueryWrapper QueryWrapper = new LambdaQueryWrapper<>(); + QueryWrapper.eq(ChargeItemDefinition::getInstanceId, id). + eq(ChargeItemDefinition::getInstanceTable, CommonConstants.TableName.ADM_HEALTHCARE_SERVICE); + iChargeItemDefinitionService.remove(QueryWrapper); + } return res ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[]{"服务管理"})) : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null)); } From 6ba56c88413c0cceb1edf188a434ba8a4876f9b3 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Tue, 4 Mar 2025 16:38:30 +0800 Subject: [PATCH 04/26] id Json String --- .../main/java/com/openhis/common/enums/EncounterClass.java | 4 +++- .../java/com/openhis/administration/domain/Encounter.java | 3 +++ .../com/openhis/administration/domain/HealthcareService.java | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java index d249b892..92842768 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java @@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.annotation.EnumValue; import lombok.AllArgsConstructor; import lombok.Getter; - +/** + * 就诊类型 + */ @Getter @AllArgsConstructor public enum EncounterClass { diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java index b34b7f48..4a75d177 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.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 com.openhis.common.enums.*; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,6 +27,7 @@ public class Encounter extends HisBaseEntity { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 患者ID */ diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/HealthcareService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/HealthcareService.java index e77e76b0..d1714236 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/HealthcareService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/HealthcareService.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 lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -22,6 +24,7 @@ public class HealthcareService extends HisBaseEntity { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 活动标记 */ From 747ce90a2fc87d28848cb8b261aa11d0141af0ea Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Tue, 4 Mar 2025 16:58:32 +0800 Subject: [PATCH 05/26] =?UTF-8?q?=E9=97=A8=E8=AF=8A=E8=AE=B0=E5=BD=95=20?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutpatientRecordController.java | 92 ++++++++++++++ .../PatientInformationController.java | 15 +-- .../dto/OutpatientRecordDto.java | 49 ++++++++ .../dto/OutpatientRecordSearchParam.java | 33 +++++ .../dto/PatientInformationDto.java | 2 +- .../mapper/PatientManageMapper.java | 34 +++++- .../patientmanage/PatientManageMapper.xml | 114 +++++++++++++++++- 7 files changed, 326 insertions(+), 13 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java new file mode 100644 index 00000000..31f9b88a --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java @@ -0,0 +1,92 @@ +package com.openhis.web.patientmanage.controller; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +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.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.openhis.common.enums.AdministrativeGender; +import com.openhis.web.patientmanage.dto.OutpatientRecordDto; +import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam; +import com.openhis.web.patientmanage.dto.PatientListDto; +import com.openhis.web.patientmanage.mapper.PatientManageMapper; + +import lombok.extern.slf4j.Slf4j; + +/** + * 门诊记录 + * + * @author liuhr + * @date 2025/2/28 + */ +@RestController +@RequestMapping("/patientmanage/records") +@Slf4j +public class OutpatientRecordController { + + @Autowired(required = false) + PatientManageMapper patientManageMapper; + + /** + * 获取医生名字列表 + */ + @GetMapping("/list-doctornames") + public R getDoctorNames() { + // 获取医生名字列表 + List listDoctorNames = patientManageMapper.getDoctorNames(); + + return R.ok(listDoctorNames); + } + + /** + * 获取性别列表 + */ + @GetMapping("/list-administrativegender") + public R getAdministrativeGender() { + // 获取性别 + List statusList = Arrays.asList(AdministrativeGender.values()); + List dtos = new ArrayList<>(); + // 取得更新值 + for (AdministrativeGender status : statusList) { + PatientListDto dto = new PatientListDto(); + dto.setValue(status.getValue()); + dto.setInfo(status.getInfo()); + dtos.add(dto); + } + return R.ok(dtos); + } + + /** + * 分页查询门诊记录,可选条件 + * + * @param outpatientRecordSearchParam 查询条件 + * @param pageNo 页码(默认为1) + * @param pageSize 每页大小(默认为10) + */ + @GetMapping("/outpatient-record-page") + public R getPatient(@RequestParam(required = false) OutpatientRecordSearchParam outpatientRecordSearchParam, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + + // 跳过的记录数 + Integer offset = (pageNo - 1) * pageSize; + // 连表查询患者信息 + List listOutpatientRecords = + patientManageMapper.getOutpatientRecord(outpatientRecordSearchParam, pageSize, offset); + // 查询总记录数 + long total = patientManageMapper.countOutpatientRecords(outpatientRecordSearchParam); + // 创建Page对象并设置属性 + Page OutpatientRecordPage = new Page<>(pageNo, pageSize, total); + OutpatientRecordPage.setRecords(listOutpatientRecords); + + return R.ok(OutpatientRecordPage); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/PatientInformationController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/PatientInformationController.java index 443d6c75..64bb753b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/PatientInformationController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/PatientInformationController.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import com.core.common.utils.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -12,6 +11,7 @@ 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.enums.AssignSeqEnum; +import com.core.common.utils.*; import com.core.common.utils.bean.BeanUtils; import com.openhis.administration.domain.Patient; import com.openhis.administration.service.IPatientService; @@ -181,8 +181,8 @@ public class PatientInformationController { patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName())); // 设置五笔首拼 patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName())); - //设置死亡时间 - if(patientService.isFuture(patientInformationDto.getDeceasedDate())){ + // 设置死亡时间 + if (patientService.isFuture(patientInformationDto.getDeceasedDate())) { return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"死亡时间未来时"})); } patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate())); @@ -213,8 +213,8 @@ public class PatientInformationController { patient.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(patient.getName())); // 设置五笔首拼 patient.setWbStr(ChineseConvertUtils.toWBFirstLetter(patient.getName())); - //设置死亡时间 - if(patientService.isFuture(patientInformationDto.getDeceasedDate())){ + // 设置死亡时间 + if (patientService.isFuture(patientInformationDto.getDeceasedDate())) { return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"死亡时间未来时"})); } patient.setDeceasedDate(DateUtils.parseDate(patientInformationDto.getDeceasedDate())); @@ -256,11 +256,12 @@ public class PatientInformationController { // 职业编码枚举类回显赋值 e.setPrfsEnum_enumText(EnumUtils.getInfoByValue(OccupationType.class, e.getPrfsEnum())); // 血型ABO枚举类回显赋值 - e.setBloodAbo_text(EnumUtils.getInfoByValue(BloodTypeABO.class, e.getBloodAbo())); + e.setBloodAbo_enumText(EnumUtils.getInfoByValue(BloodTypeABO.class, e.getBloodAbo())); // 血型RH枚举类回显赋值 e.setBloodRh_enumText(EnumUtils.getInfoByValue(BloodTypeRH.class, e.getBloodRh())); // 家庭关系枚举类回显赋值 - e.setLinkRelationCode_enumText(EnumUtils.getInfoByValue(FamilyRelationshipType.class, e.getLinkRelationCode())); + e.setLinkRelationCode_enumText( + EnumUtils.getInfoByValue(FamilyRelationshipType.class, e.getLinkRelationCode())); }); return R.ok(patientInformationPage); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java new file mode 100644 index 00000000..4873ce60 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java @@ -0,0 +1,49 @@ +package com.openhis.web.patientmanage.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * 门诊记录Dto + * + * @author liuhr + * @date 2025/2/28 + */ +@Data +public class OutpatientRecordDto { + + /** 患者姓名 */ + private String name; + + /** 身份证号 */ + private String idCard; + + /** 疾病与诊断描述 */ + private String description; + + /** 患者院内编码/病历号 */ + private String patientBusNo; + + /** 就诊号 */ + private String encounterBusNo; + + /** 性别编码 */ + private Integer genderEnum; + + /** 就诊时间 */ + private Date encounterTime; + + /** 就诊对象状态 */ + private Integer subjectStatusEnum; + + /** 机构名称/接诊医院 */ + private String organizationName; + + /** 接诊医生姓名 */ + private String doctorName; + + /** 手机号码 */ + private String phone; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java new file mode 100644 index 00000000..4dda4a1e --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java @@ -0,0 +1,33 @@ +package com.openhis.web.patientmanage.dto; + +import java.util.Date; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 门诊记录查询参数 + * + * @author liuhr + * @date 2025/2/28 + */ +@Data +@Accessors(chain = true) +public class OutpatientRecordSearchParam { + + /** 身份证号/病人ID/门诊号/病人姓名 */ + private String searchKey; + + /** 手机号码 */ + private String phone; + + /** 医生姓名 */ + private String doctorName; + + /** 筛选开始时间 */ + private Date startTime; + + /** 筛选结束时间 */ + private Date endTime; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/PatientInformationDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/PatientInformationDto.java index 1b3a5c36..b354ed94 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/PatientInformationDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/PatientInformationDto.java @@ -101,7 +101,7 @@ public class PatientInformationDto { /** 血型ABO */ private Integer bloodAbo; - private String bloodAbo_text; + private String bloodAbo_enumText; /** 血型RH */ private Integer bloodRh; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/mapper/PatientManageMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/mapper/PatientManageMapper.java index 72eca389..6a046b7d 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/mapper/PatientManageMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/mapper/PatientManageMapper.java @@ -7,12 +7,14 @@ import org.springframework.stereotype.Repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.openhis.administration.domain.Patient; +import com.openhis.web.patientmanage.dto.OutpatientRecordDto; +import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam; import com.openhis.web.patientmanage.dto.PatientInformationDto; /** * 病人信息管理 * - * @author Wuser + * @author liuhr * @date 2025/2/25 */ @Repository @@ -31,7 +33,7 @@ public interface PatientManageMapper extends BaseMapper { @Param("pageSize") Integer pageSize, @Param("offset") Integer offset); /** - * 统计总记录数的方法 + * 统计病人信息总记录数的方法 * * @param busNo 病人ID * @param name 病人姓名 @@ -39,4 +41,32 @@ public interface PatientManageMapper extends BaseMapper { */ long countPatients(@Param("busNo") String busNo, @Param("name") String name); + /** + * 门诊信息分页查询 + * + * @param outpatientRecordSearchParam 门诊查询参数 + * @param pageSize 页面大小 + * @param offset 跳过条数 + * @return 分页查询 + */ + List getOutpatientRecord( + @Param("OutpatientRecordSearchParam") OutpatientRecordSearchParam outpatientRecordSearchParam, + @Param("pageSize") Integer pageSize, @Param("offset") Integer offset); + + /** + * 统计门诊总记录数的方法 + * + * @param outpatientRecordSearchParam 门诊查询参数 + * @return 分页查询 + */ + long countOutpatientRecords( + @Param("OutpatientRecordSearchParam") OutpatientRecordSearchParam outpatientRecordSearchParam); + + /** + * 获取医生名字列表 + * + * @return 医生名字列表 + */ + List getDoctorNames(); + } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml index 8c1afd73..4e4d7089 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml @@ -38,8 +38,7 @@ pt.organization_id, pt.create_time FROM adm_patient pt - - LEFT JOIN adm_organization ogt ON CAST(pt.organization_id AS VARCHAR) = ogt.bus_no + LEFT JOIN adm_organization ogt ON pt.organization_id = ogt.id @@ -72,7 +71,7 @@ SELECT COUNT(*) FROM adm_patient pt - LEFT JOIN adm_organization ogt ON CAST(pt.organization_id AS VARCHAR) = ogt.bus_no + LEFT JOIN adm_organization ogt ON pt.organization_id = ogt.id @@ -99,6 +98,115 @@ + + + + + + + \ No newline at end of file From 448f86118e2fa9024dc26aa034194db2690939a4 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Tue, 4 Mar 2025 17:05:50 +0800 Subject: [PATCH 06/26] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HealthcareServiceController.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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 3c7f1f14..77ec2fa2 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 @@ -119,6 +119,28 @@ public class HealthcareServiceController { return R.ok(healthcareServicePage, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, null)); } + /** + * 服务管理 详情 + * + * @param id 主键 + * @return 详情 + */ + @GetMapping(value = "/healthcare-service-detail/{id}") + public R getHealthcareServiceDetail(@PathVariable("id") Long id) { + HealthcareServiceDto healthcareServiceDto = new HealthcareServiceDto(); + healthcareServiceDto.setId(id); + // 构建查询条件 + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(healthcareServiceDto, null, + null, null); + IPage healthcareServicePage = healthcareServiceBizMapper.getHealthcareServicePage( + new Page<>(1, 1), CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper); + HealthcareServiceDto healthcareServiceDtoDetail = healthcareServicePage.getRecords().get(0); + // 枚举赋值 + healthcareServiceDtoDetail.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, healthcareServiceDtoDetail.getActiveFlag())) + .setAppointmentRequiredFlag_enumText(EnumUtils.getInfoByValue(WhetherContainUnknown.class, healthcareServiceDtoDetail.getAppointmentRequiredFlag())); + return R.ok(healthcareServiceDtoDetail); + } + /** * 服务管理 编辑 From 42ea3940d3b309a05dde79b841dd9e497b046c00 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Tue, 4 Mar 2025 17:27:50 +0800 Subject: [PATCH 07/26] =?UTF-8?q?=E5=B0=B1=E8=AF=8A=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutpatientRecordController.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java index 31f9b88a..a373a1eb 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.openhis.common.enums.AdministrativeGender; +import com.openhis.common.enums.EncounterSubjectStatus; import com.openhis.web.patientmanage.dto.OutpatientRecordDto; import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam; import com.openhis.web.patientmanage.dto.PatientListDto; @@ -63,6 +64,24 @@ public class OutpatientRecordController { return R.ok(dtos); } + /** + * 获取就诊状态列表 + */ + @GetMapping("/list-encountersubjectstatus") + public R getEncounterSubjectStatus() { + // 获取就诊状态 + List statusList = Arrays.asList(EncounterSubjectStatus.values()); + List dtos = new ArrayList<>(); + // 取得更新值 + for (EncounterSubjectStatus status : statusList) { + PatientListDto dto = new PatientListDto(); + dto.setValue(status.getValue()); + dto.setInfo(status.getInfo()); + dtos.add(dto); + } + return R.ok(dtos); + } + /** * 分页查询门诊记录,可选条件 * From 7b20de9c3d51c8e552f9d0600f66a37ad2233224 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Tue, 4 Mar 2025 18:00:21 +0800 Subject: [PATCH 08/26] up --- .../OutpatientRecordController.java | 53 ++++--------------- .../dto/OutpatientRecordDto.java | 2 + .../dto/OutpatientRecordSearchParam.java | 2 +- .../patientmanage/PatientManageMapper.xml | 10 ++-- .../common/enums/EncounterSubjectStatus.java | 2 +- 5 files changed, 20 insertions(+), 49 deletions(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java index a373a1eb..c30c9bd9 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java @@ -1,7 +1,5 @@ package com.openhis.web.patientmanage.controller; -import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -14,9 +12,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.openhis.common.enums.AdministrativeGender; import com.openhis.common.enums.EncounterSubjectStatus; +import com.openhis.common.utils.EnumUtils; import com.openhis.web.patientmanage.dto.OutpatientRecordDto; import com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam; -import com.openhis.web.patientmanage.dto.PatientListDto; import com.openhis.web.patientmanage.mapper.PatientManageMapper; import lombok.extern.slf4j.Slf4j; @@ -46,42 +44,6 @@ public class OutpatientRecordController { return R.ok(listDoctorNames); } - /** - * 获取性别列表 - */ - @GetMapping("/list-administrativegender") - public R getAdministrativeGender() { - // 获取性别 - List statusList = Arrays.asList(AdministrativeGender.values()); - List dtos = new ArrayList<>(); - // 取得更新值 - for (AdministrativeGender status : statusList) { - PatientListDto dto = new PatientListDto(); - dto.setValue(status.getValue()); - dto.setInfo(status.getInfo()); - dtos.add(dto); - } - return R.ok(dtos); - } - - /** - * 获取就诊状态列表 - */ - @GetMapping("/list-encountersubjectstatus") - public R getEncounterSubjectStatus() { - // 获取就诊状态 - List statusList = Arrays.asList(EncounterSubjectStatus.values()); - List dtos = new ArrayList<>(); - // 取得更新值 - for (EncounterSubjectStatus status : statusList) { - PatientListDto dto = new PatientListDto(); - dto.setValue(status.getValue()); - dto.setInfo(status.getInfo()); - dtos.add(dto); - } - return R.ok(dtos); - } - /** * 分页查询门诊记录,可选条件 * @@ -102,10 +64,17 @@ public class OutpatientRecordController { // 查询总记录数 long total = patientManageMapper.countOutpatientRecords(outpatientRecordSearchParam); // 创建Page对象并设置属性 - Page OutpatientRecordPage = new Page<>(pageNo, pageSize, total); - OutpatientRecordPage.setRecords(listOutpatientRecords); + Page outpatientRecordPage = new Page<>(pageNo, pageSize, total); + outpatientRecordPage.setRecords(listOutpatientRecords); + outpatientRecordPage.getRecords().forEach(e -> { + // 性别枚举类回显赋值 + e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); + // 就诊对象状态枚举类回显赋值 + e.setSubjectStatusEnum_enumText( + EnumUtils.getInfoByValue(EncounterSubjectStatus.class, e.getSubjectStatusEnum())); + }); - return R.ok(OutpatientRecordPage); + return R.ok(outpatientRecordPage); } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java index 4873ce60..3a85e954 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordDto.java @@ -30,12 +30,14 @@ public class OutpatientRecordDto { /** 性别编码 */ private Integer genderEnum; + private String genderEnum_enumText; /** 就诊时间 */ private Date encounterTime; /** 就诊对象状态 */ private Integer subjectStatusEnum; + private String subjectStatusEnum_enumText; /** 机构名称/接诊医院 */ private String organizationName; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java index 4dda4a1e..4ff8c830 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java @@ -25,7 +25,7 @@ public class OutpatientRecordSearchParam { private String doctorName; /** 筛选开始时间 */ - private Date startTime; + private Date beginTime; /** 筛选结束时间 */ private Date endTime; diff --git a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml index 4e4d7089..59f9b2d5 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml @@ -106,13 +106,13 @@ pt.name, pt.id_card, c.description, - pt.bus_no, - e.bus_no, + pt.bus_no as patientBusNo, + e.bus_no as encounterBusNo, pt.gender_enum, - e.start_time, + e.start_time as encounterTime, e.subject_status_enum, - ogt.name, - p.name, + ogt.name as organizationName, + p.name as doctorName, pt.phone FROM adm_encounter e diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java index b3a3507a..2dd33929 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java @@ -6,7 +6,7 @@ import lombok.Getter; @Getter @AllArgsConstructor -public enum EncounterSubjectStatus { +public enum EncounterSubjectStatus implements HisEnumInterface { PLANNED(1, "arrived", "已到达"), TRIAGED(2, "triaged", "已分诊"), From 1dd387201b9f1d8311a2cc4e3e83d40da507165e Mon Sep 17 00:00:00 2001 From: duhe Date: Tue, 4 Mar 2025 18:34:20 +0800 Subject: [PATCH 09/26] =?UTF-8?q?=E6=8C=82=E5=8F=B7=E6=94=B6=E8=B4=B9?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=20up=20by=20dh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supplier/components/supplier.js | 14 +- .../components/AddDialog.vue | 0 .../register_fee_item/components/api.js | 0 .../basicserve/register_fee_item/index.vue | 0 .../components/registrationfee.js | 72 ++ .../basicservices/registrationfee/index.vue | 835 ++++++++++++++++++ openhis-ui-vue3/vite.config.js | 2 +- 7 files changed, 915 insertions(+), 8 deletions(-) delete mode 100644 openhis-ui-vue3/src/views/basicserve/register_fee_item/components/AddDialog.vue delete mode 100644 openhis-ui-vue3/src/views/basicserve/register_fee_item/components/api.js delete mode 100644 openhis-ui-vue3/src/views/basicserve/register_fee_item/index.vue create mode 100644 openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js create mode 100644 openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue diff --git a/openhis-ui-vue3/src/views/basicmanage/supplier/components/supplier.js b/openhis-ui-vue3/src/views/basicmanage/supplier/components/supplier.js index f09dd41a..2e645acb 100644 --- a/openhis-ui-vue3/src/views/basicmanage/supplier/components/supplier.js +++ b/openhis-ui-vue3/src/views/basicmanage/supplier/components/supplier.js @@ -1,7 +1,7 @@ import request from '@/utils/request' import { parseStrEmpty } from "@/utils/openhis"; -// 查询病种目录列表 +// 查询厂商列表 export function getSupplierList(query) { return request({ url: '/data-dictionary/supplier/get-supplier-list', @@ -10,7 +10,7 @@ export function getSupplierList(query) { }) } -// 查询病种目录详细 +// 查询厂商详细 export function getSupplierOne(id) { return request({ url: '/data-dictionary/supplier/get-supplier-detail/' + parseStrEmpty(id), @@ -18,7 +18,7 @@ export function getSupplierOne(id) { }) } -// 新增病种目录 +// 新增厂商 export function addSupplier(data) { return request({ url: '/data-dictionary/supplier/add-supplier', @@ -27,7 +27,7 @@ export function addSupplier(data) { }) } -// 修改病种目录 +// 修改厂商 export function editSupplier(data) { return request({ url: '/data-dictionary/supplier/edit-supplier', @@ -36,7 +36,7 @@ export function editSupplier(data) { }) } -// // 删除病种目录 +// // 删除厂商 // export function delUser(userId) { // return request({ // url: '/system/user/' + userId, @@ -44,7 +44,7 @@ export function editSupplier(data) { // }) // } -// 停用病种目录 +// 停用厂商 export function stopSupplier(ids) { return request({ url: '/data-dictionary/supplier/information-stop', @@ -53,7 +53,7 @@ export function stopSupplier(ids) { }) } -// 启用病种目录 +// 启用厂商 export function startSupplier(ids) { return request({ url: '/data-dictionary/supplier/information-start', diff --git a/openhis-ui-vue3/src/views/basicserve/register_fee_item/components/AddDialog.vue b/openhis-ui-vue3/src/views/basicserve/register_fee_item/components/AddDialog.vue deleted file mode 100644 index e69de29b..00000000 diff --git a/openhis-ui-vue3/src/views/basicserve/register_fee_item/components/api.js b/openhis-ui-vue3/src/views/basicserve/register_fee_item/components/api.js deleted file mode 100644 index e69de29b..00000000 diff --git a/openhis-ui-vue3/src/views/basicserve/register_fee_item/index.vue b/openhis-ui-vue3/src/views/basicserve/register_fee_item/index.vue deleted file mode 100644 index e69de29b..00000000 diff --git a/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js b/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js new file mode 100644 index 00000000..04233fff --- /dev/null +++ b/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js @@ -0,0 +1,72 @@ +import request from '@/utils/request' +import { parseStrEmpty } from "@/utils/openhis"; + +// 查询服务管理列表 +export function getRegistrationfeeList(query) { + return request({ + url: '/basic-service/healthcare/healthcare-service-page', + method: 'get', + params: query + }) +} + +// 查询服务管理详细 +export function getRegistrationfeeOne(id) { + return request({ + url: '/basic-service/healthcare/healthcare-service-detail/' + parseStrEmpty(id), + method: 'get' + }) +} + +// 新增服务管理 +export function addRegistrationfee(data) { + return request({ + url: '/basic-service/healthcare/healthcare-service', + method: 'post', + data: data + }) +} + +// 修改服务管理 +export function editRegistrationfee(data) { + return request({ + url: '/basic-service/healthcare/healthcare-service', + method: 'put', + data: data + }) +} + +// 查询厂商类型 +export function getInit() { + return request({ + url: '/basic-service/healthcare/init', + method: 'get' + }) +} + +// 查询部门树形数据 +export function deptTreeSelect(queryParams) { + return request({ + url: '/basedatamanage/organization/organization', + method: 'get', + param: queryParams + }) +} + +// 查询地点树形数据 +export function locationTreeSelect(queryParams) { + return request({ + url: '/basedatamanage/organization/organization', + method: 'get', + param: queryParams + }) +} + +// 删除收费挂号项目 +export function delRegistrationfee(param) { + return request({ + url: '/basedatamanage/organization/healthcare-service', + method: 'delete', + params: param + }) +} \ No newline at end of file diff --git a/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue b/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue new file mode 100644 index 00000000..f0e88875 --- /dev/null +++ b/openhis-ui-vue3/src/views/basicservices/registrationfee/index.vue @@ -0,0 +1,835 @@ + + + + \ No newline at end of file diff --git a/openhis-ui-vue3/vite.config.js b/openhis-ui-vue3/vite.config.js index 65cca806..3fa8a5c1 100644 --- a/openhis-ui-vue3/vite.config.js +++ b/openhis-ui-vue3/vite.config.js @@ -25,7 +25,7 @@ export default defineConfig (({mode, command}) => { }, // vite 相关配置 server: { - port: 80, + port: 81, host: true, open: true, proxy: { From f1fe7077dffd7dc1aa07f0bdcd3c5d56cea71a3a Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Tue, 4 Mar 2025 19:18:54 +0800 Subject: [PATCH 10/26] =?UTF-8?q?=E9=83=A8=E5=88=86=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutpatientRegistrationController.java | 24 ++++++- .../dto/OutpatientRegistrationAddDto.java | 14 ++++ .../dto/OutpatientRegistrationInitDto.java | 32 +++++++++ .../openhis/common/enums/EncounterClass.java | 3 +- .../openhis/common/enums/EncounterStatus.java | 2 +- .../common/enums/EncounterSubjectStatus.java | 4 +- .../common/enums/EncounterYbClass.java | 34 ++------- .../administration/domain/Encounter.java | 70 +++++++++++++------ 8 files changed, 129 insertions(+), 54 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationInitDto.java 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 577452d6..33a1bfad 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,11 +3,21 @@ */ package com.openhis.web.outpatientservice.controller; +import com.core.common.core.domain.R; +import com.openhis.common.enums.AccountStatus; +import com.openhis.common.enums.PriorityLevel; +import com.openhis.web.basicservice.dto.HealthcareServiceInitDto; +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.RestController; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + /** * 门诊挂号 controller */ @@ -17,6 +27,18 @@ import org.springframework.web.bind.annotation.RestController; @AllArgsConstructor public class OutpatientRegistrationController { - + /** + * 门诊挂号基础数据初始化 + */ + @GetMapping(value = "/init") + public R init() { + OutpatientRegistrationInitDto outpatientRegistrationInitDto = new OutpatientRegistrationInitDto(); + // 优先级 + List priorityLevelOptionOptions = Stream.of(PriorityLevel.values()) + .map(e -> new OutpatientRegistrationInitDto.priorityLevelOption(e.getValue(), e.getInfo())) + .collect(Collectors.toList()); + outpatientRegistrationInitDto.setPriorityLevelOptionOptions(priorityLevelOptionOptions); + return R.ok(outpatientRegistrationInitDto); + } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java new file mode 100644 index 00000000..d00d57eb --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java @@ -0,0 +1,14 @@ +package com.openhis.web.outpatientservice.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 门诊挂号 新增数据 + */ +@Data +@Accessors(chain = true) +public class OutpatientRegistrationAddDto { + + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationInitDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationInitDto.java new file mode 100644 index 00000000..a9fa09e7 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationInitDto.java @@ -0,0 +1,32 @@ +package com.openhis.web.outpatientservice.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * 门诊挂号 init基础数据 + */ +@Data +@Accessors(chain = true) +public class OutpatientRegistrationInitDto { + + private List priorityLevelOptionOptions; + + /** + * 优先级 + */ + @Data + public static class priorityLevelOption { + private Integer value; + private String label; + + public priorityLevelOption(Integer value, String label) { + this.value = value; + this.label = label; + } + } + + +} diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java index 92842768..192ddee3 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterClass.java @@ -1,4 +1,5 @@ package com.openhis.common.enums; + import com.baomidou.mybatisplus.annotation.EnumValue; import lombok.AllArgsConstructor; import lombok.Getter; @@ -8,7 +9,7 @@ import lombok.Getter; */ @Getter @AllArgsConstructor -public enum EncounterClass { +public enum EncounterClass implements HisEnumInterface { IMP(1, "IMP", "住院"), AMB(2, "AMB", "门诊"), diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterStatus.java index 585a7cc8..ed502f78 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterStatus.java @@ -6,7 +6,7 @@ import lombok.Getter; @Getter @AllArgsConstructor -public enum EncounterStatus { +public enum EncounterStatus implements HisEnumInterface { PLANNED(1, "draft", "已安排"), IN_PROGRESS(2, "in-progress", "进行中"), diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java index 2dd33929..035a82d6 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterSubjectStatus.java @@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.annotation.EnumValue; import lombok.AllArgsConstructor; import lombok.Getter; - +/** + * 就诊对象状态 + */ @Getter @AllArgsConstructor public enum EncounterSubjectStatus implements HisEnumInterface { diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterYbClass.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterYbClass.java index 2b0e593a..296162c1 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterYbClass.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/EncounterYbClass.java @@ -3,38 +3,12 @@ import com.baomidou.mybatisplus.annotation.EnumValue; import lombok.AllArgsConstructor; import lombok.Getter; -/*代码值 代码名称 对应7.28医疗类别med_type 在2203接口用到此信息 - 25 异地住院 - 26 单病种住院 - 27 自主就医 - 81 意外伤害门诊 - 15 特药 - 28 日间手术 - 61 照护保险 - 11 普通门诊 - 12 门诊挂号 - 13 急诊 - 14 门诊慢特病 - 990404 门诊特检特治(限吉林市) - 21 普通住院 - 22 外伤住院 - 23 转外诊治住院 - 24 急诊转住院 - 41 定点药店购药 - 51 生育门诊 - 52 生育住院 - 5212 生育新生儿费用 - 16 中医特色门诊 - 29 起付线治疗 - 9107 体检 - 3101 低自付住院 - 3102 低自付门诊 - 140104 门诊慢病 - 140201 门诊特病 - 2114 舒缓疗护住院*/ +/** + * 医保类别 + */ @Getter @AllArgsConstructor -public enum EncounterYbClass { +public enum EncounterYbClass implements HisEnumInterface { // 住院服务 ORDINARY_HOSPITALIZATION(21, "21" , "普通住院"), FOREIGN_HOSPITALIZATION(25,"25", "异地住院"), diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java index 4a75d177..9e31e7ca 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/Encounter.java @@ -1,19 +1,17 @@ package com.openhis.administration.domain; -import java.util.Date; - 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.*; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.util.Date; + /** * 就诊管理Entity实体 * @@ -25,54 +23,86 @@ import lombok.experimental.Accessors; @EqualsAndHashCode(callSuper = false) public class Encounter extends HisBaseEntity { - /** ID */ + /** + * ID + */ @TableId(type = IdType.ASSIGN_ID) @JsonSerialize(using = ToStringSerializer.class) private Long id; - /** 患者ID */ + /** + * 患者ID + */ private Long patientId; - /** 群组ID */ + /** + * 群组ID + */ private Long groupId; - /** 就诊编码 */ + /** + * 就诊编码 + */ private String busNo; - /** 状态编码 */ + /** + * 状态编码 + */ private Integer statusEnum; - /** 类别编码 */ + /** + * 类别编码 + */ private Integer classEnum; - /** 类别医保编码 */ + /** + * 类别医保编码 + */ private Integer ybClassEnum; - /** 类别编码补充 */ + /** + * 类别编码补充 + */ private String classJson; - /** 优先级编码 */ + /** + * 优先级编码 + */ private Integer priorityEnum; - /** 分类编码 */ + /** + * 分类编码 + */ private Integer typeEnum; - /** 服务ID */ + /** + * 服务ID + */ private Long serviceTypeId; - /** 就诊对象状态 */ + /** + * 就诊对象状态 + */ private Integer subjectStatusEnum; - /** 开始时间 */ + /** + * 开始时间 + */ private Date startTime; - /** 结束时间 */ + /** + * 结束时间 + */ private Date endTime; - /** 机构id */ + /** + * 机构id + */ private Long organizationId; - /** 就诊序号 */ + /** + * 就诊序号 + */ private Integer displayOrder; } From befde6cdfdf066387f23ee0512952af00e0eb00e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=B2=E8=8F=B2?= <12704587+yvwen@user.noreply.gitee.com> Date: Wed, 5 Mar 2025 10:04:17 +0800 Subject: [PATCH 11/26] =?UTF-8?q?=E9=97=A8=E8=AF=8A=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../patientManagement/index.vue | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/openhis-ui-vue3/src/views/patientManagement/patientManagement/index.vue b/openhis-ui-vue3/src/views/patientManagement/patientManagement/index.vue index d56c4ded..e389b0a0 100644 --- a/openhis-ui-vue3/src/views/patientManagement/patientManagement/index.vue +++ b/openhis-ui-vue3/src/views/patientManagement/patientManagement/index.vue @@ -26,18 +26,18 @@ - - + + - + - + - + @@ -238,7 +238,7 @@ const administrativegenderList = ref([]) //性别 const bloodtypeaboList = ref([]) //血型abo const bloodtypearhList = ref([]) //血型RH const familyrelationshiptypeList = ref([]) //家庭关系 -const addressCom = ref(""); +const addressCom = ref(""); //地址 const options = ref(pcas); // 地区数据 const selectedOptions = ref([]); // v-model 绑定的选中值 @@ -295,7 +295,6 @@ const findNodeByCode = (data, code) => { /** 查询菜单列表 */ function getList() { listPatient(queryParams.value).then(response => { - console.log("res",response,queryParams.value) patientList.value = response.data.records total.value = response.data.total; }); @@ -386,7 +385,6 @@ function handleUpdate(row) { const codes = convertAddressToCodes(selectedOptions1.value); selectedOptions.value = codes.filter(code => code !== null); isViewMode.value = false; - console.log("form.value12",form.value) open.value = true; title.value = "修改菜单"; } @@ -422,25 +420,18 @@ function submitForm() { if (form.value.busNo != undefined) { const newAddress = form.value.addressProvince+form.value.addressCity + form.value.addressDistrict + form.value.addressStreet + form.value.address if (addressCom.value !== newAddress) { - console.log("6666666666", form.value.address,addressCom.value); - // 如果不一致,清空并重新赋值 form.value.address = newAddress; - console.log("地址已更新为:", form.value.address); - } - console.log("form.value.up",form.value) + } updatePatient(form.value).then(response => { proxy.$modal.msgSuccess("修改成功"); open.value = false; - reset() getList(); }); } else { form.value.address = form.value.addressProvince+form.value.addressCity + form.value.addressDistrict + form.value.addressStreet + form.value.address - console.log("form.value",form.value) addPatient(form.value).then(response => { proxy.$modal.msgSuccess("新增成功"); open.value = false; - reset() getList(); }); } From b7f30c97ceded1c8acdbdd8ed57288f381fdfcf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=B2=E8=8F=B2?= <12704587+yvwen@user.noreply.gitee.com> Date: Wed, 5 Mar 2025 10:11:36 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E9=97=A8=E8=AF=8A=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outpatienRecords/component/api.js | 18 +++ .../outpatienRecords/index.vue | 107 ++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 openhis-ui-vue3/src/views/patientManagement/outpatienRecords/component/api.js create mode 100644 openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue diff --git a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/component/api.js b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/component/api.js new file mode 100644 index 00000000..dad6d50a --- /dev/null +++ b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/component/api.js @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +export function listOutpatienRecords(query) { + return request({ + url: '/patientmanage/records/outpatient-record-page', + method: 'get', + params: query + }) + } + + export function listDoctorNames() { + return request({ + url: '/patientmanage/records/list-doctornames', + method: 'get', + }) + } + + diff --git a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue new file mode 100644 index 00000000..c1267df7 --- /dev/null +++ b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue @@ -0,0 +1,107 @@ + + + \ No newline at end of file From 78d57f97c00d39ac7d62702ca8fec61669625234 Mon Sep 17 00:00:00 2001 From: guorui Date: Wed, 5 Mar 2025 11:24:10 +0800 Subject: [PATCH 13/26] =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=B3=A8=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/aspectj/TransactionAspect.java | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java b/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java index a3b17784..f2756927 100644 --- a/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java +++ b/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java @@ -1,54 +1,54 @@ -package com.core.framework.aspectj; - -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.aspectj.lang.annotation.AfterReturning; -import org.aspectj.lang.annotation.AfterThrowing; -import org.springframework.stereotype.Component; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.TransactionStatus; -import org.springframework.transaction.support.DefaultTransactionDefinition; - -/** - * 事务处理 - */ -@Aspect -@Component -public class TransactionAspect { - - private final PlatformTransactionManager transactionManager; - private TransactionStatus transactionStatus; - - public TransactionAspect(PlatformTransactionManager transactionManager) { - this.transactionManager = transactionManager; - } - - @Before("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + - "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + - "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + - "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") - public void beginTransaction() { - transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); - } - - @AfterReturning("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + - "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + - "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + - "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") - public void commitTransaction() { - if (transactionStatus != null && !transactionStatus.isCompleted()) { - transactionManager.commit(transactionStatus); - } - } - - @AfterThrowing(pointcut = "@annotation(org.springframework.web.bind.annotation.PostMapping) || " + - "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + - "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + - "@annotation(org.springframework.web.bind.annotation.DeleteMapping)", - throwing = "ex") - public void rollbackTransaction(Exception ex) { - if (transactionStatus != null && !transactionStatus.isCompleted()) { - transactionManager.rollback(transactionStatus); - } - } -} +// package com.core.framework.aspectj; +// +// import org.aspectj.lang.annotation.Aspect; +// import org.aspectj.lang.annotation.Before; +// import org.aspectj.lang.annotation.AfterReturning; +// import org.aspectj.lang.annotation.AfterThrowing; +// import org.springframework.stereotype.Component; +// import org.springframework.transaction.PlatformTransactionManager; +// import org.springframework.transaction.TransactionStatus; +// import org.springframework.transaction.support.DefaultTransactionDefinition; +// +/// ** +// * 事务处理 +// */ +// @Aspect +// @Component +// public class TransactionAspect { +// +// private final PlatformTransactionManager transactionManager; +// private TransactionStatus transactionStatus; +// +// public TransactionAspect(PlatformTransactionManager transactionManager) { +// this.transactionManager = transactionManager; +// } +// +// @Before("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") +// public void beginTransaction() { +// transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); +// } +// +// @AfterReturning("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") +// public void commitTransaction() { +// if (transactionStatus != null && !transactionStatus.isCompleted()) { +// transactionManager.commit(transactionStatus); +// } +// } +// +// @AfterThrowing(pointcut = "@annotation(org.springframework.web.bind.annotation.PostMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + +// "@annotation(org.springframework.web.bind.annotation.DeleteMapping)", +// throwing = "ex") +// public void rollbackTransaction(Exception ex) { +// if (transactionStatus != null && !transactionStatus.isCompleted()) { +// transactionManager.rollback(transactionStatus); +// } +// } +// } From 6b219fb219b0da6863e324605b600cb85cbced53 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 12:20:34 +0800 Subject: [PATCH 14/26] =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/OutpatientRegistrationAddDto.java | 14 -------------- .../service/IPatientService.java | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 18 deletions(-) delete mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java deleted file mode 100644 index d00d57eb..00000000 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddDto.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.openhis.web.outpatientservice.dto; - -import lombok.Data; -import lombok.experimental.Accessors; - -/** - * 门诊挂号 新增数据 - */ -@Data -@Accessors(chain = true) -public class OutpatientRegistrationAddDto { - - -} diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java index c56301c1..71ed94be 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java @@ -1,10 +1,11 @@ package com.openhis.administration.service; -import java.util.Date; - +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.openhis.administration.domain.Patient; +import java.util.Date; + /** * 患者管理Service接口 * @@ -15,7 +16,7 @@ public interface IPatientService extends IService { /** * 从身份证号码中提取生日 - * + * * @param idCard 身份证号 * @return 出生日 */ @@ -27,5 +28,15 @@ public interface IPatientService extends IService { * @param date 字符串日期 * @return 是/否 */ - boolean isFuture(String date); + boolean isFuture(String date); + + /** + * 通过关键字查询患者信息 + * + * @param searchKey 关键字 + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @return 患者信息 + */ + Page getPatientBySearchKey(String searchKey, Integer pageNo, Integer pageSize); } \ No newline at end of file From 85333551e8475047a2ebdc99aa17c3192adf8fe0 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 12:23:42 +0800 Subject: [PATCH 15/26] =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/aspectj/TransactionAspect.java | 113 +++++++++--------- 1 file changed, 59 insertions(+), 54 deletions(-) diff --git a/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java b/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java index f2756927..1a7e711d 100644 --- a/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java +++ b/openhis-server/core-framework/src/main/java/com/core/framework/aspectj/TransactionAspect.java @@ -1,54 +1,59 @@ -// package com.core.framework.aspectj; -// -// import org.aspectj.lang.annotation.Aspect; -// import org.aspectj.lang.annotation.Before; -// import org.aspectj.lang.annotation.AfterReturning; -// import org.aspectj.lang.annotation.AfterThrowing; -// import org.springframework.stereotype.Component; -// import org.springframework.transaction.PlatformTransactionManager; -// import org.springframework.transaction.TransactionStatus; -// import org.springframework.transaction.support.DefaultTransactionDefinition; -// -/// ** -// * 事务处理 -// */ -// @Aspect -// @Component -// public class TransactionAspect { -// -// private final PlatformTransactionManager transactionManager; -// private TransactionStatus transactionStatus; -// -// public TransactionAspect(PlatformTransactionManager transactionManager) { -// this.transactionManager = transactionManager; -// } -// -// @Before("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") -// public void beginTransaction() { -// transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); -// } -// -// @AfterReturning("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") -// public void commitTransaction() { -// if (transactionStatus != null && !transactionStatus.isCompleted()) { -// transactionManager.commit(transactionStatus); -// } -// } -// -// @AfterThrowing(pointcut = "@annotation(org.springframework.web.bind.annotation.PostMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + -// "@annotation(org.springframework.web.bind.annotation.DeleteMapping)", -// throwing = "ex") -// public void rollbackTransaction(Exception ex) { -// if (transactionStatus != null && !transactionStatus.isCompleted()) { -// transactionManager.rollback(transactionStatus); -// } -// } -// } +package com.core.framework.aspectj; + +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.springframework.stereotype.Component; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.DefaultTransactionDefinition; + +/** + * 事务处理 + */ +@Aspect +@Component +public class TransactionAspect { + + private final PlatformTransactionManager transactionManager; + private final ThreadLocal transactionStatus = new ThreadLocal<>(); + + public TransactionAspect(PlatformTransactionManager transactionManager) { + this.transactionManager = transactionManager; + } + + @Before("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + + "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + + "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + + "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") + public void beginTransaction() { + TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); + transactionStatus.set(status); + } + + @AfterReturning("@annotation(org.springframework.web.bind.annotation.PostMapping) || " + + "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + + "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + + "@annotation(org.springframework.web.bind.annotation.DeleteMapping)") + public void commitTransaction() { + TransactionStatus status = transactionStatus.get(); + if (status != null && !status.isCompleted()) { + transactionManager.commit(status); + transactionStatus.remove(); // 清除 ThreadLocal 中的状态 + } + } + + @AfterThrowing(pointcut = "@annotation(org.springframework.web.bind.annotation.PostMapping) || " + + "@annotation(org.springframework.web.bind.annotation.GetMapping) || " + + "@annotation(org.springframework.web.bind.annotation.PutMapping) || " + + "@annotation(org.springframework.web.bind.annotation.DeleteMapping)", + throwing = "ex") + public void rollbackTransaction(Exception ex) { + TransactionStatus status = transactionStatus.get(); + if (status != null && !status.isCompleted()) { + transactionManager.rollback(status); + transactionStatus.remove(); // 清除 ThreadLocal 中的状态 + } + } +} \ No newline at end of file From af3cb649883d1bfaa9abf9d647304fbcc21553cd Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 5 Mar 2025 13:07:33 +0800 Subject: [PATCH 16/26] =?UTF-8?q?ServiceRequest=E8=A1=A8=20=E6=96=B0?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5=E6=A0=B8=E5=AF=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/openhis/workflow/domain/ServiceRequest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/domain/ServiceRequest.java b/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/domain/ServiceRequest.java index c7029161..c1fd203e 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/domain/ServiceRequest.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/workflow/domain/ServiceRequest.java @@ -82,6 +82,9 @@ public class ServiceRequest extends HisBaseEntity { /** 执行人 */ private Long performerId; + /** 核对人 */ + private Long performerCheckId; + /** 执行位置 */ private Long locationId; From 64f23e3d63baf5e54e1d2780f272116a73c1de5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=B2=E8=8F=B2?= <12704587+yvwen@user.noreply.gitee.com> Date: Wed, 5 Mar 2025 13:26:36 +0800 Subject: [PATCH 17/26] . --- .../src/views/patientManagement/outpatienRecords/index.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue index c1267df7..fc13a7d6 100644 --- a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue +++ b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue @@ -9,7 +9,7 @@ - + @@ -41,7 +41,7 @@ --> - @@ -93,7 +93,7 @@ function getList() { /** 搜索按钮操作 */ function handleQuery() { console.log("123",queryParams.value) - queryParams.value.pageNum = 1; + queryParams.value.pageNo = 1; getList(); } /** 重置按钮操作 */ From 9ea63da6cc702cc707697539c5e051959a1e2f68 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 13:50:57 +0800 Subject: [PATCH 18/26] tb --- .../service/IPatientService.java | 10 +--------- .../service/impl/PatientServiceImpl.java | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java index 71ed94be..12dc5fa2 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/IPatientService.java @@ -30,13 +30,5 @@ public interface IPatientService extends IService { */ boolean isFuture(String date); - /** - * 通过关键字查询患者信息 - * - * @param searchKey 关键字 - * @param pageNo 当前页码 - * @param pageSize 查询条数 - * @return 患者信息 - */ - Page getPatientBySearchKey(String searchKey, Integer pageNo, Integer pageSize); + } \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java index 83e0ea11..1fc18cd6 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/PatientServiceImpl.java @@ -1,16 +1,21 @@ package com.openhis.administration.service.impl; -import java.time.LocalDate; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import java.util.Date; - -import org.springframework.stereotype.Service; - +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.openhis.administration.domain.Patient; import com.openhis.administration.mapper.PatientMapper; import com.openhis.administration.service.IPatientService; +import com.openhis.common.utils.HisPageUtils; +import com.openhis.common.utils.HisQueryUtils; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Date; +import java.util.HashSet; /** * 患者管理Service业务层处理 @@ -62,4 +67,5 @@ public class PatientServiceImpl extends ServiceImpl impl } } + } \ No newline at end of file From fb8321a8ef0d5b9877bc55d9fbdd4e94d9af7f85 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 14:14:41 +0800 Subject: [PATCH 19/26] =?UTF-8?q?=E9=97=A8=E8=AF=8A=E6=8C=82=E5=8F=B7-?= =?UTF-8?q?=E5=85=83=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutpatientRegistrationController.java | 22 +++++++- .../IOutpatientRegistrationService.java | 21 +++++++ .../IOutpatientRegistrationServiceImpl.java | 56 +++++++++++++++++++ .../dto/OutpatientRegistrationAddParam.java | 22 ++++++++ .../dto/PatientMetadata.java | 28 ++++++++++ 5 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java 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 33a1bfad..43e63b9c 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 @@ -4,14 +4,14 @@ package com.openhis.web.outpatientservice.controller; import com.core.common.core.domain.R; -import com.openhis.common.enums.AccountStatus; import com.openhis.common.enums.PriorityLevel; -import com.openhis.web.basicservice.dto.HealthcareServiceInitDto; +import com.openhis.web.outpatientservice.controller.appservice.IOutpatientRegistrationService; 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; @@ -27,6 +27,8 @@ import java.util.stream.Stream; @AllArgsConstructor public class OutpatientRegistrationController { + private final IOutpatientRegistrationService iOutpatientRegistrationService; + /** * 门诊挂号基础数据初始化 */ @@ -41,4 +43,20 @@ public class OutpatientRegistrationController { return R.ok(outpatientRegistrationInitDto); } + /** + * 门诊挂号 - 查询患者信息 + * + * @param searchKey 模糊查询关键字 + * @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) { + return R.ok(iOutpatientRegistrationService.getPatientMetadataBySearchKey(searchKey, pageNo, pageSize)); + } + + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java new file mode 100644 index 00000000..a6c23d4e --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java @@ -0,0 +1,21 @@ +package com.openhis.web.outpatientservice.controller.appservice; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.web.outpatientservice.dto.PatientMetadata; + +/** + * 门诊挂号 Service + */ +public interface IOutpatientRegistrationService { + + /** + * 门诊挂号 - 查询患者信息 + * + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 患者信息 + */ + Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize); + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java new file mode 100644 index 00000000..ef0d144c --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java @@ -0,0 +1,56 @@ +package com.openhis.web.outpatientservice.controller.appservice.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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.web.outpatientservice.controller.appservice.IOutpatientRegistrationService; +import com.openhis.web.outpatientservice.dto.PatientMetadata; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.HashSet; + +/** + * 门诊挂号 实现类 + */ +@Service +public class IOutpatientRegistrationServiceImpl implements IOutpatientRegistrationService { + + @Resource + PatientMapper patientMapper; + + /** + * 门诊挂号 - 查询患者信息 + * + * @param searchKey 模糊查询关键字 + * @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.orderByDesc("update_time"); + // 患者信息 + Page patientMetadataPage = HisPageUtils.selectPage(patientMapper, + queryWrapper, pageNo, pageSize, PatientMetadata.class); + + patientMetadataPage.getRecords().forEach(e -> { + // 性别枚举 + e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); + }); + return patientMetadataPage; + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java new file mode 100644 index 00000000..75560da2 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/OutpatientRegistrationAddParam.java @@ -0,0 +1,22 @@ +package com.openhis.web.outpatientservice.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 门诊挂号 新增数据 + */ +@Data +@Accessors(chain = true) +public class OutpatientRegistrationAddParam { + + // 就诊管理-表单数据 + + // 就诊诊断管理-表单数据 + + // 就诊位置管理-表单数据 + + // 就诊参数者管理-表单数据 + + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java new file mode 100644 index 00000000..1d42779c --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java @@ -0,0 +1,28 @@ +package com.openhis.web.outpatientservice.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 患者信息 元数据 + */ +@Data +@Accessors(chain = true) +public class PatientMetadata { + /** + * ID + */ + private Long id; + + /** + * 患者姓名 + */ + private String name; + + /** + * 性别编码 + */ + private Integer genderEnum; + private String genderEnum_enumText; + +} From 64fe4bd6a698358e93d76abcedc4ed322eeac8a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=B2=E8=8F=B2?= <12704587+yvwen@user.noreply.gitee.com> Date: Wed, 5 Mar 2025 14:16:13 +0800 Subject: [PATCH 20/26] . --- .../src/views/patientManagement/outpatienRecords/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue index fc13a7d6..edc0d8c3 100644 --- a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue +++ b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue @@ -13,7 +13,7 @@ - + Date: Wed, 5 Mar 2025 16:24:47 +0800 Subject: [PATCH 21/26] =?UTF-8?q?=E9=97=A8=E8=AF=8A=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/patientManagement/outpatienRecords/index.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue index edc0d8c3..77818af0 100644 --- a/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue +++ b/openhis-ui-vue3/src/views/patientManagement/outpatienRecords/index.vue @@ -80,7 +80,7 @@ const doctorOptions = computed(() => { /** 查询门诊记录列表 */ function getList() { - listOutpatienRecords(proxy.addDateRange(queryParams.value, dateRange.value)).then(response => { + listOutpatienRecords(queryParams.value).then(response => { console.log(response); outpatienRecordsList.value = response.data.records; total.value = response.data.total; @@ -92,8 +92,10 @@ function getList() { /** 搜索按钮操作 */ function handleQuery() { - console.log("123",queryParams.value) + queryParams.value.beginTime = dateRange.value[0]; + queryParams.value.endTime = dateRange.value[1]; queryParams.value.pageNo = 1; + console.log("123",queryParams.value,typeof queryParams.value.beginTime) getList(); } /** 重置按钮操作 */ From 4c1f703fb4924bfaa6c679b87a55984ea9ef87f2 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 5 Mar 2025 16:45:45 +0800 Subject: [PATCH 22/26] up --- .../controller/OutpatientRecordController.java | 13 ++++++++----- .../dto/OutpatientRecordSearchParam.java | 4 ++-- .../patientmanage/PatientManageMapper.xml | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java index c30c9bd9..2c484030 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/controller/OutpatientRecordController.java @@ -1,12 +1,11 @@ package com.openhis.web.patientmanage.controller; +import java.util.Date; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; @@ -52,10 +51,14 @@ public class OutpatientRecordController { * @param pageSize 每页大小(默认为10) */ @GetMapping("/outpatient-record-page") - public R getPatient(@RequestParam(required = false) OutpatientRecordSearchParam outpatientRecordSearchParam, + public R getPatient(OutpatientRecordSearchParam outpatientRecordSearchParam, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + System.out.println("doctorName"+outpatientRecordSearchParam.getDoctorName()); + System.out.println("phone"+outpatientRecordSearchParam.getPhone()); + System.out.println("searchKey"+outpatientRecordSearchParam.getSearchKey()); + // 跳过的记录数 Integer offset = (pageNo - 1) * pageSize; // 连表查询患者信息 diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java index 4ff8c830..09674301 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/OutpatientRecordSearchParam.java @@ -25,9 +25,9 @@ public class OutpatientRecordSearchParam { private String doctorName; /** 筛选开始时间 */ - private Date beginTime; + private String beginTime; /** 筛选结束时间 */ - private Date endTime; + private String endTime; } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml index 59f9b2d5..852b13d1 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml @@ -139,13 +139,14 @@ - AND pt.phone LIKE CONCAT('%',#{phone}, '%') + AND pt.phone LIKE CONCAT('%',#{OutpatientRecordSearchParam.phone}, '%') - - AND e.start_time BETWEEN #{OutpatientRecordSearchParam.startTime} AND - #{OutpatientRecordSearchParam.endTime} + + AND e.start_time BETWEEN + TO_TIMESTAMP(#{OutpatientRecordSearchParam.beginTime} || ' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND + TO_TIMESTAMP(#{OutpatientRecordSearchParam.endTime} || ' 23:59:59', 'YYYY-MM-DD HH24:MI:SS') @@ -184,13 +185,14 @@ - AND pt.phone LIKE CONCAT('%',#{phone}, '%') + AND pt.phone LIKE CONCAT('%',#{OutpatientRecordSearchParam.phone}, '%') - - AND e.start_time BETWEEN #{OutpatientRecordSearchParam.startTime} AND - #{OutpatientRecordSearchParam.endTime} + + AND e.start_time BETWEEN + TO_TIMESTAMP(#{OutpatientRecordSearchParam.beginTime} || ' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND + TO_TIMESTAMP(#{OutpatientRecordSearchParam.endTime} || ' 23:59:59', 'YYYY-MM-DD HH24:MI:SS') From a3272c015e92b53bd9ac4b010e57d54d987c5103 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 16:57:31 +0800 Subject: [PATCH 23/26] tb --- .../com/openhis/web/basicservice/dto/HealthcareServiceDto.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java index 895b3d82..8a6e6133 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java @@ -1,5 +1,7 @@ package com.openhis.web.basicservice.dto; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.annotation.Dict; import lombok.Data; import lombok.experimental.Accessors; @@ -15,6 +17,7 @@ public class HealthcareServiceDto { /** * ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** From 6c9d4fc0ea8d84b303611decfa62a24f413acdfa Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 17:14:28 +0800 Subject: [PATCH 24/26] =?UTF-8?q?=E6=9C=BA=E6=9E=84=E6=A0=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/common/utils/AgeCalculatorUtil.java | 9 +- .../appservice/IOrganizationAppService.java | 13 ++ .../impl/IOrganizationAppServiceImpl.java | 74 +++++++++++ .../controller/OrganizationController.java | 118 ++++-------------- .../dto/OrganizationQueryDto.java | 3 + .../dto/HealthcareServiceDto.java | 2 + .../IOutpatientRegistrationServiceImpl.java | 3 + .../dto/PatientMetadata.java | 26 ++++ 8 files changed, 154 insertions(+), 94 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java diff --git a/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java b/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java index 7dd186d4..2a43840b 100644 --- a/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java +++ b/openhis-server/core-common/src/main/java/com/core/common/utils/AgeCalculatorUtil.java @@ -2,7 +2,9 @@ package com.core.common.utils; import java.time.LocalDateTime; import java.time.Period; +import java.time.ZoneId; import java.time.temporal.ChronoUnit; +import java.util.Date; /** * 根据出生日期算年龄 @@ -15,7 +17,9 @@ public final class AgeCalculatorUtil { /** * 当前年龄取得(床位列表表示年龄用) */ - public static String getAge(LocalDateTime dateTime) { + public static String getAge(Date date) { + // 将 Date 转换为 LocalDateTime + LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); LocalDateTime now = LocalDateTime.now(); int years = now.getYear() - dateTime.getYear(); if (years > 2) { @@ -78,5 +82,4 @@ public final class AgeCalculatorUtil { private static boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } - -} +} \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java new file mode 100644 index 00000000..d3f187d2 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IOrganizationAppService.java @@ -0,0 +1,13 @@ +package com.openhis.web.basedatamanage.appservice; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.openhis.web.basedatamanage.dto.OrganizationQueryDto; + +/** + * Organization 应该服务类 + */ +public interface IOrganizationAppService { + // 查询机构树 + Page getOrganizationTree(Integer pageNo, Integer pageSize); + +} 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 new file mode 100644 index 00000000..db9d3ae7 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/IOrganizationAppServiceImpl.java @@ -0,0 +1,74 @@ +package com.openhis.web.basedatamanage.appservice.impl; + +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 { + + @Resource + IOrganizationService organizationService; + + @Override + public Page getOrganizationTree(Integer pageNo, Integer pageSize) { + // 查询机构列表 + Page page = organizationService.page(new Page<>(pageNo, pageSize)); + List organizationList = page.getRecords(); + // 将机构列表转为树结构 + List orgTree = buildTree(organizationList); + Page orgQueryDtoPage = new Page<>(pageNo, pageSize, page.getTotal()); + orgQueryDtoPage.setRecords(orgTree); + return orgQueryDtoPage; + } + + /** + * 将机构列表转换为树结构 + * + * @param records 机构列表 + * @return tree + */ + private List buildTree(List records) { + // 按b_no的层级排序,确保父节点先处理 + List sortedRecords = records.stream() + .sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList()); + + Map nodeMap = new HashMap<>(); + List tree = new ArrayList<>(); + + for (Organization record : sortedRecords) { + String bNo = record.getBusNo(); + String[] parts = bNo.split("\\."); + OrganizationQueryDto node = new OrganizationQueryDto(); + BeanUtils.copyProperties(record, node); + // 将当前节点加入映射 + nodeMap.put(bNo, node); + + if (parts.length == 1) { + // 根节点 + tree.add(node); + } else { + // 获取父节点的b_no(去掉最后一部分) + String parentBNo = String.join(".", Arrays.copyOf(parts, parts.length - 1)); + OrganizationQueryDto parent = nodeMap.get(parentBNo); + + if (parent != null) { + parent.getChildren().add(node); + } else { + // 处理父节点不存在的情况(例如数据缺失) + // 可根据需求调整为将节点加入根或抛出异常 + } + } + } + return tree; + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java index 266f983b..0c27539e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/OrganizationController.java @@ -3,16 +3,6 @@ */ package com.openhis.web.basedatamanage.controller; -import java.util.*; -import java.util.stream.Collectors; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.beans.BeanUtils; -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.AssignSeqUtil; @@ -22,12 +12,18 @@ import com.openhis.administration.mapper.OrganizationMapper; import com.openhis.administration.service.IOrganizationService; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.OrganizationType; -import com.openhis.web.basedatamanage.dto.OrgQueryParam; +import com.openhis.web.basedatamanage.appservice.IOrganizationAppService; import com.openhis.web.basedatamanage.dto.OrganizationInitDto; import com.openhis.web.basedatamanage.dto.OrganizationQueryDto; - import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.*; +import java.util.stream.Collectors; /** * 机构管理controller @@ -42,6 +38,7 @@ import lombok.extern.slf4j.Slf4j; public class OrganizationController { private final IOrganizationService organizationService; + private final IOrganizationAppService iOrganizationAppService; @Autowired private OrganizationMapper organizationMapper; @@ -63,38 +60,17 @@ public class OrganizationController { /** * 机构分页列表 * - * @param orgQueryParam 查询字段 - * @param searchKey 模糊查询关键字 - * @param pageNo 当前页码 + * @param pageNo 当前页码 * @param pageSize 查询条数 - * @param request 请求数据 * @return 机构分页列表 */ @GetMapping(value = "/organization") - public R getOrganizationPage(OrgQueryParam orgQueryParam, - @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(orgQueryParam, searchKey, - // new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), request); - // - // // 设置排序 - // queryWrapper.orderByDesc("create_time"); - // // 执行分页查询并转换为 orgQueryDtoPage - // Page orgQueryDtoPage = - // HisPageUtils.selectPage(organizationMapper, queryWrapper, pageNo, pageSize, OrganizationQueryDto.class); - // 查询机构列表 - Page page = organizationService.page(new Page<>(pageNo, pageSize)); - List organizationList = page.getRecords(); - // 将机构列表转为树结构 - List orgTree = buildTree(organizationList); - Page orgQueryDtoPage = new Page<>(pageNo, pageSize, page.getTotal()); - orgQueryDtoPage.setRecords(orgTree); - - return R.ok(orgQueryDtoPage, - MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"})); + public R getOrganizationPage( + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + Page organizationTree = iOrganizationAppService.getOrganizationTree(pageNo, pageSize); + return R.ok(organizationTree, + MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[]{"机构信息"})); } /** @@ -116,8 +92,8 @@ public class OrganizationController { boolean saveOrgSuccess = organizationService.save(organization); return saveOrgSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"机构信息"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"机构信息"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[]{"机构信息"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[]{"机构信息"})); } /** @@ -129,7 +105,7 @@ public class OrganizationController { public R getOrganizationById(@Validated @RequestParam Long orgId) { Organization organization = organizationService.getById(orgId); - return R.ok(organization, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[] {"机构信息"})); + return R.ok(organization, MessageUtils.createMessage(PromptMsgConstant.Common.M00009, new Object[]{"机构信息"})); } /** @@ -145,8 +121,8 @@ public class OrganizationController { boolean updateOrgSuccess = organizationService.updateById(organization); return updateOrgSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"机构信息"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"机构信息"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"机构信息"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[]{"机构信息"})); } /** @@ -166,8 +142,8 @@ public class OrganizationController { boolean deleteOrgSuccess = organizationService.removeByIds(orgIdList); return deleteOrgSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"机构信息"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, new Object[] {"机构信息"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[]{"机构信息"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00006, new Object[]{"机构信息"})); } /** @@ -181,8 +157,8 @@ public class OrganizationController { boolean activeSuccess = organizationService.activeChange(orgId); return activeSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"启用"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"启用"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"启用"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[]{"启用"})); } /** @@ -196,49 +172,9 @@ public class OrganizationController { boolean inActiveSuccess = organizationService.activeChange(orgId); return inActiveSuccess - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"停用"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[] {"停用"})); + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"停用"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, new Object[]{"停用"})); } - /** - * 将机构列表转换为树结构 - * - * @param records 机构列表 - * @return tree - */ - private List buildTree(List records) { - // 按b_no的层级排序,确保父节点先处理 - List sortedRecords = records.stream() - .sorted(Comparator.comparingInt(r -> r.getBusNo().split("\\.").length)).collect(Collectors.toList()); - - Map nodeMap = new HashMap<>(); - List tree = new ArrayList<>(); - - for (Organization record : sortedRecords) { - String bNo = record.getBusNo(); - String[] parts = bNo.split("\\."); - OrganizationQueryDto node = new OrganizationQueryDto(); - BeanUtils.copyProperties(record, node); - // 将当前节点加入映射 - nodeMap.put(bNo, node); - - if (parts.length == 1) { - // 根节点 - tree.add(node); - } else { - // 获取父节点的b_no(去掉最后一部分) - String parentBNo = String.join(".", Arrays.copyOf(parts, parts.length - 1)); - OrganizationQueryDto parent = nodeMap.get(parentBNo); - - if (parent != null) { - parent.getChildren().add(node); - } else { - // 处理父节点不存在的情况(例如数据缺失) - // 可根据需求调整为将节点加入根或抛出异常 - } - } - } - return tree; - } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java index c1f9f8fd..f8d4348d 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/dto/OrganizationQueryDto.java @@ -8,6 +8,8 @@ import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.enums.OrganizationClass; import com.openhis.common.enums.OrganizationType; @@ -24,6 +26,7 @@ public class OrganizationQueryDto { /** ID */ @TableId(type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** 编码 */ diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java index 8a6e6133..38445ce8 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basicservice/dto/HealthcareServiceDto.java @@ -30,6 +30,7 @@ public class HealthcareServiceDto { * 提供部门ID */ @Dict(dictTable = "adm_organization",dictCode = "id",dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) private Long offeredOrgId; private String offeredOrgId_dictText; @@ -58,6 +59,7 @@ public class HealthcareServiceDto { * 地点 */ @Dict(dictTable = "adm_location",dictCode = "id",dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) private Long locationId; private String locationId_dictText; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java index ef0d144c..d8d3e17f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java @@ -3,6 +3,7 @@ package com.openhis.web.outpatientservice.controller.appservice.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.utils.AgeCalculatorUtil; import com.openhis.administration.domain.Patient; import com.openhis.administration.mapper.PatientMapper; import com.openhis.common.enums.AdministrativeGender; @@ -49,6 +50,8 @@ public class IOutpatientRegistrationServiceImpl implements IOutpatientRegistrati patientMetadataPage.getRecords().forEach(e -> { // 性别枚举 e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum())); + // 计算年龄 + e.setAge(AgeCalculatorUtil.getAge(e.getBirthDate())); }); return patientMetadataPage; } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java index 1d42779c..3f900f12 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/dto/PatientMetadata.java @@ -1,8 +1,12 @@ package com.openhis.web.outpatientservice.dto; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Date; + /** * 患者信息 元数据 */ @@ -12,6 +16,7 @@ public class PatientMetadata { /** * ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long id; /** @@ -25,4 +30,25 @@ public class PatientMetadata { private Integer genderEnum; private String genderEnum_enumText; + /** + * 身份证号 + */ + private String idCard; + + /** + * 电话 + */ + private String phone; + + /** + * 生日 + */ + + private Date birthDate; + + /** + * 年龄 + */ + private String age; + } From 7865c8cb6f40beeac925ad5d532a38e591fa28e1 Mon Sep 17 00:00:00 2001 From: duhe Date: Wed, 5 Mar 2025 17:43:15 +0800 Subject: [PATCH 25/26] =?UTF-8?q?=E6=94=B6=E8=B4=B9=E6=8C=82=E5=8F=B7?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../registrationfee/components/registrationfee.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js b/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js index 04233fff..0033a4c1 100644 --- a/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js +++ b/openhis-ui-vue3/src/views/basicservices/registrationfee/components/registrationfee.js @@ -64,8 +64,9 @@ export function locationTreeSelect(queryParams) { // 删除收费挂号项目 export function delRegistrationfee(param) { + console.log(param,'aaaa') return request({ - url: '/basedatamanage/organization/healthcare-service', + url: '/basic-service/healthcare/healthcare-service', method: 'delete', params: param }) From 247de5b837737707f94c8afc2c5713863d01e25d Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 5 Mar 2025 17:47:24 +0800 Subject: [PATCH 26/26] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IOutpatientRegistrationAppService.java} | 8 ++----- ...OutpatientRegistrationAppServiceImpl.java} | 8 +++---- .../OutpatientRegistrationController.java | 24 +++++++++++++++---- .../HealthcareServiceBizMapper.xml | 2 ++ 4 files changed, 28 insertions(+), 14 deletions(-) rename openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/{controller/appservice/IOutpatientRegistrationService.java => appservice/IOutpatientRegistrationAppService.java} (75%) rename openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/{controller/appservice/impl/IOutpatientRegistrationServiceImpl.java => appservice/impl/IOutpatientRegistrationAppServiceImpl.java} (88%) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java similarity index 75% rename from openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java rename to openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java index a6c23d4e..48727976 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/IOutpatientRegistrationService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/IOutpatientRegistrationAppService.java @@ -1,12 +1,9 @@ -package com.openhis.web.outpatientservice.controller.appservice; +package com.openhis.web.outpatientservice.appservice; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.openhis.web.outpatientservice.dto.PatientMetadata; -/** - * 门诊挂号 Service - */ -public interface IOutpatientRegistrationService { +public interface IOutpatientRegistrationAppService { /** * 门诊挂号 - 查询患者信息 @@ -17,5 +14,4 @@ public interface IOutpatientRegistrationService { * @return 患者信息 */ Page getPatientMetadataBySearchKey(String searchKey, Integer pageNo, Integer pageSize); - } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java similarity index 88% rename from openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java rename to openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java index d8d3e17f..f83afd27 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/controller/appservice/impl/IOutpatientRegistrationServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientservice/appservice/impl/IOutpatientRegistrationAppServiceImpl.java @@ -1,5 +1,4 @@ -package com.openhis.web.outpatientservice.controller.appservice.impl; - +package com.openhis.web.outpatientservice.appservice.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,7 +9,7 @@ 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.web.outpatientservice.controller.appservice.IOutpatientRegistrationService; +import com.openhis.web.outpatientservice.appservice.IOutpatientRegistrationAppService; import com.openhis.web.outpatientservice.dto.PatientMetadata; import org.springframework.stereotype.Service; @@ -22,7 +21,7 @@ import java.util.HashSet; * 门诊挂号 实现类 */ @Service -public class IOutpatientRegistrationServiceImpl implements IOutpatientRegistrationService { +public class IOutpatientRegistrationAppServiceImpl implements IOutpatientRegistrationAppService { @Resource PatientMapper patientMapper; @@ -57,3 +56,4 @@ public class IOutpatientRegistrationServiceImpl implements IOutpatientRegistrati } } + 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 43e63b9c..3dfb0116 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 @@ -5,7 +5,8 @@ package com.openhis.web.outpatientservice.controller; import com.core.common.core.domain.R; import com.openhis.common.enums.PriorityLevel; -import com.openhis.web.outpatientservice.controller.appservice.IOutpatientRegistrationService; +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; @@ -27,10 +28,11 @@ import java.util.stream.Stream; @AllArgsConstructor public class OutpatientRegistrationController { - private final IOutpatientRegistrationService iOutpatientRegistrationService; + private final IOutpatientRegistrationAppService iOutpatientRegistrationAppService; + private final IOrganizationAppService iOrganizationAppService; /** - * 门诊挂号基础数据初始化 + * 门诊挂号 - 基础数据初始化 */ @GetMapping(value = "/init") public R init() { @@ -55,7 +57,21 @@ public class OutpatientRegistrationController { public R getPatientMetadata(@RequestParam(value = "searchKey", defaultValue = "") String searchKey, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { - return R.ok(iOutpatientRegistrationService.getPatientMetadataBySearchKey(searchKey, pageNo, pageSize)); + return R.ok(iOutpatientRegistrationAppService.getPatientMetadataBySearchKey(searchKey, pageNo, pageSize)); + } + + /** + * 门诊挂号 - 查询机构树 + * + * @param pageNo 当前页码 + * @param pageSize 查询条数 + * @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)); } 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 bd9f4ffd..a36b26d8 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,6 +43,8 @@ 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 ) AS T3