d4bbc58e4ec054c05e913e5dddf5faa78b9b95e7
根因: - `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** ✅
his-repo
@ 5de8a22418
Fix Bug #445: 引用计费时已生成医嘱项目重新出现在待生成列表 — handleQuoteBilling 中先清空 temporaryAdvices 再执行 ID 匹配过滤,导致过滤逻辑对空数组无效;且 ID 匹配不可靠(新医嘱无 requestId/chargeItemId),已改为在清空前提取复合键(名称|||规格|||数量)并在数据加载后用该键过滤
Fix Bug #547: 执行科室配置保存时时间冲突检测范围错误 — 根因:addOrEditOrgLoc 方法使用 getOrgLocListByActivityDefinitionId 跨科室查询同一诊疗的所有配置,导致不同科室间的正常时间重叠被误判为冲突;修复:改为 getOrgLocListByOrgIdAndActivityDefinitionId(orgId, activityDefId) 限定同科室范围;同时优化软删除科室处理,当冲突记录关联的科室已被删除时,使用"科室[ID]已删除"替代静默跳过
Description
No description provided
Languages
Java
47.5%
Vue
45.9%
JavaScript
5.6%
HTML
0.6%
SCSS
0.1%