diff --git a/MD/bugs/BUG_746_ANALYSIS.md b/MD/bugs/BUG_746_ANALYSIS.md new file mode 100644 index 000000000..f124ab223 --- /dev/null +++ b/MD/bugs/BUG_746_ANALYSIS.md @@ -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 分析决策 + +> ⚠️ 修复人员请先验证以上分析是否正确,再执行修复。