3.8 KiB
Bug #746 诸葛亮分析报告
文档类型: Bug分析 分析时间: 2026-06-12 22:51:12 分析模型: mimo-v2.5 (LLM深度分析)
基本信息
- Bug #: 746
- 标题: 【电子病历管理】病历时效加载卡死会有报错了“No static resource emr-archive/overdue/list for request '/healthlink-his/emr-archive/overdue/list'.”
- 模块: 会诊管理
- 提出人: 王栩坤
Now I have all the information needed. Here's my analysis:
一、Bug 理解
禅道 Bug #746:
- 标题:【电子病历管理】病历时效加载卡死会有报错了"No static resource emr-archive/overdue/list for request '/healthlink-his/emr-archive/overdue/list'."
- 重现步骤:登录内科医生1账号 → 打开电子病历管理 → 打开病历时效 → 出现报错
- 期望结果:能够正常进入病历时效,卡死界面能够正常显示
- 附图关键信息:页面顶部红色错误条
No static resource emr-archive/overdue/list for request '/healthlink-his/emr-archive/overdue/list';四个统计卡片全部为 0;数据列表空白并显示加载中旋转图标
总结:用户在病历时效页面加载时,前端请求了错误的 API 路径 /emr-archive/overdue/list,该路径在后端无对应 Controller 端点,导致数据加载失败、页面卡死。
二、根因分析
问题链条:
| 层级 | 文件 | 问题 |
|---|---|---|
| 前端 API | src/api/emr.js |
getOverdueList 定义了错误 URL /emr-archive/overdue/list |
| 前端 API | src/api/emr/index.js |
getOverdueList 定义了正确 URL /api/v1/emr/timeliness/overdue |
| 前端页面 | src/views/emr/timeliness/index.vue:40 |
import ... from '@/api/emr' → 解析到 emr.js 而非 emr/index.js |
| 后端 | EmrArchiveController (/emr-archive) |
只有 /page, /print, /archive, /reprint, /stats,无 /overdue/list |
| 后端 | StructuredEmrController (/api/v1/emr) |
已有 /timeliness/overdue 端点 ✅ |
根因:Vite 的 @ 别名解析规则是「文件优先于目录索引」。@/api/emr 先匹配到 src/api/emr.js(文件),不会进入 src/api/emr/index.js(目录索引)。src/api/emr.js 中的 getOverdueList 使用了不存在的后端路径 /emr-archive/overdue/list。
src/api/emr.js 中的另外两个函数也有同样问题:
getTimelinessByEncounter→/emr-revision/timeliness/...(不存在)getTimelinessStatistics→/emr-revision/statistics(不存在)
三、修复方案
方案:修复 src/api/emr.js 中的错误 URL,对齐到 StructuredEmrController 的正确端点
需修改 1 个文件:
healthlink-his-ui/src/api/emr.js
将三个函数的 URL 修改为后端 StructuredEmrController 的正确路径:
| 函数 | 错误 URL | 正确 URL |
|---|---|---|
getTimelinessByEncounter |
/emr-revision/timeliness/{id} |
/api/v1/emr/timeliness/encounter/{id} |
getTimelinessStatistics |
/emr-revision/statistics |
/api/v1/emr/timeliness/statistics |
getOverdueList |
/emr-archive/overdue/list |
/api/v1/emr/timeliness/overdue |
同时 getPendingEmrCount 指向 /emr-archive/pending-count,后端 EmrArchiveController 也没有该端点,也需要同步处理(可暂改为调用 /emr-archive/stats 或在后端补充端点)。
四、路由决策
FIXER: guanyu
REASON: 修复仅涉及前端 API URL 对齐后端已有端点,属于简单的接口路径修正,后端端点已存在无需改动,交给后端/全栈开发关羽处理即可。
路由决策
- FIXER_ID: guanyu
- 修复 Agent: guanyu(后端)
- 原因: LLM 分析决策
⚠️ 修复人员请先验证以上分析是否正确,再执行修复。