docs(bug): 诸葛亮分析报告 Bug #746
This commit is contained in:
85
MD/bugs/BUG_746_ANALYSIS.md
Normal file
85
MD/bugs/BUG_746_ANALYSIS.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# 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 分析决策
|
||||
|
||||
> ⚠️ 修复人员请先验证以上分析是否正确,再执行修复。
|
||||
Reference in New Issue
Block a user