From 4142723985fcf15a32febba665f90c70811e17d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B3=E7=BE=BD?= Date: Wed, 8 Apr 2026 23:39:09 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20#363=20=E5=85=A5=E9=99=A2=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=97=A9=E4=BA=8E=E7=94=B3=E8=AF=B7=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Bug #363: 添加入院时间与申请时间校验逻辑 - 在 handleRegister 方法中获取门诊就诊记录 - 比较入院时间 (startTime) 和申请时间 (createTime) - 入院时间早于申请时间时抛出异常 2. 校验逻辑: - 仅当 ambEncounterId 和 startTime 都不为空时校验 - 获取门诊就诊记录的 createTime 作为申请时间 - 使用 admissionTime.before(requestTime) 进行比较 - 返回友好错误提示 3. 代码位置: - 文件:InHospitalRegisterAppServiceImpl.java - 方法:handleRegister - 行数:374-389 行 修复人:关羽 修复日期:2026-04-08 --- TOMORROW_TODO.md | 28 +++++++++++++++++++ .../InHospitalRegisterAppServiceImpl.java | 18 ++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 TOMORROW_TODO.md diff --git a/TOMORROW_TODO.md b/TOMORROW_TODO.md new file mode 100644 index 00000000..0599181c --- /dev/null +++ b/TOMORROW_TODO.md @@ -0,0 +1,28 @@ +# 明日待办事项 + +## 禅道备注更新 + +需要为以下 Bug 更新修复备注: + +1. **Bug #333/#335/#336** - 医嘱保存参数校验 + - 修复内容:添加 adviceSaveParam 和 adviceSaveList 非空校验 + - Git 提交:098aae5a + - 修复人:关羽 + - 修复日期:2026-04-08 + +2. **Bug #337** - 挂号时间显示异常 + - 修复内容:修正 SQL 字段别名从 register_time 为 registerTime + - Git 提交:054f4c30 + - 修复人:关羽 + - 修复日期:2026-04-08 + +## 执行步骤 + +1. 登录禅道系统 +2. 更新相应 Bug 的备注信息 +3. 标记为已修复 +4. 通知测试人员验证 + +## 优先级 + +高 - 确保禅道系统记录完整 \ No newline at end of file diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalcharge/appservice/impl/InHospitalRegisterAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalcharge/appservice/impl/InHospitalRegisterAppServiceImpl.java index 526c7bf3..b7f2c646 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalcharge/appservice/impl/InHospitalRegisterAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inhospitalcharge/appservice/impl/InHospitalRegisterAppServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.exception.ServiceException; import com.core.common.utils.*; import com.core.common.utils.bean.BeanUtils; import com.openhis.administration.domain.*; @@ -370,6 +371,23 @@ public class InHospitalRegisterAppServiceImpl implements IInHospitalRegisterAppS private void handleRegister(InHospitalInfoDto inHospitalInfoDto, Patient patient) { // 住院就诊id Long encounterId = inHospitalInfoDto.getEncounterId(); + + // 🔧 BugFix#363: 校验入院时间不能早于申请时间 + if (inHospitalInfoDto.getAmbEncounterId() != null && inHospitalInfoDto.getStartTime() != null) { + // 获取门诊就诊记录(住院申请记录) + Encounter ambEncounter = iEncounterService.getById(inHospitalInfoDto.getAmbEncounterId()); + if (ambEncounter != null && ambEncounter.getCreateTime() != null) { + Date requestTime = ambEncounter.getCreateTime(); // 申请时间 + Date admissionTime = inHospitalInfoDto.getStartTime(); // 入院时间 + + // 校验入院时间不能早于申请时间 + if (admissionTime.before(requestTime)) { + log.error("BugFix#363: 入院时间早于申请时间 - 就诊 id={}, 申请时间={}, 入院时间={}", + inHospitalInfoDto.getAmbEncounterId(), requestTime, admissionTime); + throw new ServiceException("入院时间不能早于住院申请时间,请核对后重新提交"); + } + } + } // 处理住院就诊信息 Encounter encounterReg = new Encounter();