华佗
d4bbc58e4e
fix(#630): 请修复 Bug #630:[门诊医生站] 点击选择现诊患者列表报错
根因:
- `DoctorStationEmrAppServiceImpl` 中多处 `emrService.getOne()` / `docRecordService.getOne()` 调用存在同一个缺陷:当同一 `encounterId` 对应多条病历记录时,MyBatis-Plus 的 `getOne()` 方法默认会在多条记录时抛出 `IncorrectResultSizeDataAccessException` 异常。
修复:
- commit b74f6bf3f**:为 `getEmrDetail` 和 `getPatientEmrHistory` 增加了空值校验,`getOne` 第二个参数改为 `false` → ✅ 有效
- commit aa193f60a**:为 `getEmrDetail` 的 EMR 查询增加了 `orderByDesc + LIMIT 1` 排序 → ✅ 有效
- 历史修复**不完整**——只修了 `getEmrDetail`,遗漏了同文件中另外 3 处相同的 `getOne` 问题
- 修改文件:`DoctorStationEmrAppServiceImpl.java`(共 4 处)
- |---|---|---|
- | `addPatientEmr` | 82 | 添加 `orderByDesc + LIMIT 1` + 第二参数 `false` |
- | `getEmrDetail` (DocRecord) | 158 | 添加第二参数 `false` |
- | `getPendingEmrList` | 250 | 添加 `orderByDesc + LIMIT 1` + 第二参数 `false` |
- | `checkNeedWriteEmr` | 308 | 添加 `orderByDesc + LIMIT 1` + 第二参数 `false` |
- ### 全链路 6 环确认
- | 环节 | 状态 | 说明 |
- |---|---|---|
- | 1. 录入 | ✅ 正常 | 前端 `handleCardClick` 正确传递 `encounterId` |
- | 4. 修改 | ✅ 正常 | 编辑回显走 `loadLatestMedicalRecord`,不涉及 `getOne` |
- | 5. 删除 | ✅ 正常 | 软删除机制,不涉及 `getOne` |
- ### 验证
- `mvn compile -pl openhis-application -am` → **BUILD SUCCESS** ✅
2026-05-31 22:28:33 +08:00
..
2026-05-31 22:28:33 +08:00
2026-05-08 09:14:18 +08:00