Files
his/MD/bugs/BUG_760_ANALYSIS.md

4.3 KiB
Raw Blame History

Bug #760 诸葛亮分析报告

文档类型: Bug分析 分析时间: 2026-06-12 21:48:44 分析模型: mimo-v2.5 (LLM深度分析)


基本信息

  • Bug #: 760
  • 标题: [住院护士站-护理记录] 选中患者时系统报错
  • 模块: 病区护士工作站
  • 提出人: 陈显精

Analysis complete. Here's the full report.


一、Bug 理解

禅道 Bug #760[住院护士站-护理记录] 选中患者时系统报错

重现步骤:

  1. 登录账号wx密码123456登录系统进入【住院护士站】
  2. 点击【护理记录】页签
  3. 在左侧列表中选中任意已入院的患者

期望结果:

  1. 选中患者后,系统正常响应,无报错弹窗
  2. 成功加载并展示该患者对应的护理记录表单及历史数据

实际结果:

  • 页面弹出红色报错:No static resource nursing/statistics/summary/list for request '/healthlink-his/nursing/statistics/summary/list'
  • 右侧护理记录列表显示"暂无数据"

截图确认: 顶部红色报错横幅清晰可见,错误 URL 为 /healthlink-his/nursing/statistics/summary/list,选中患者"陈显精"后右侧表格为空。

总结: 用户在住院护士站的「护理记录」页签选中患者时,前端发起了一个后端不存在的 API 请求 /nursing/statistics/summary/list,导致 404 报错,护理记录数据无法加载。


二、根因分析

根因Tab 组件映射错误 — "护理记录"页签加载了错误的组件。

healthlink-his-ui/src/views/inpatientNurse/inpatientNurseStation/index.vue 中:

<!-- 第72-76行 -->
<el-tab-pane label="护理记录" name="NursingRecord">
  <Criticalrecord v-if="activeTabName === 'NursingRecord'" />
</el-tab-pane>

这里渲染的是 Criticalrecord 组件,而不是 NursingRecord 组件。

关键文件对比:

文件 API 路径 后端是否有对应 Controller
nursingstatistics/criticalrecord.vuenursingstatistics/api.js /nursing/statistics/summary/list 不存在
nursingRecord/index.vuenursingRecord/components/api.js /nursing-record/nursing-patient-page NursingRecordController
  • inpatientNurseStation/index.js 中已经同时导入了两个组件:
    • NursingRecord from @/views/inpatientNurse/nursingRecord/index.vue
    • Criticalrecord from @/views/inpatientNurse/nursingstatistics/criticalrecord.vue
  • index.vue 的模板中用错了组件名<Criticalrecord> 应该是 <NursingRecord>
  • 后端 NursingRecordController 映射在 /nursing-record,有完整的 patient-page、nursing-patient-page、save-nursing、delete-nursing 等端点

涉及的文件:

  • healthlink-his-ui/src/views/inpatientNurse/inpatientNurseStation/index.vue — 模板中 Tab 渲染了错误组件

三、修复方案

修改 1 个文件1 处改动:

文件: healthlink-his-ui/src/views/inpatientNurse/inpatientNurseStation/index.vue

改动: 将第 74 行的 <Criticalrecord> 替换为 <NursingRecord>

- <el-tab-pane label="护理记录" name="NursingRecord">
-   <Criticalrecord v-if="activeTabName === 'NursingRecord'" />
+ <el-tab-pane label="护理记录" name="NursingRecord">
+   <NursingRecord v-if="activeTabName === 'NursingRecord'" />
  </el-tab-pane>

NursingRecord 已在同文件的 index.js 中导入第3行无需额外添加 import。

验证:

  1. cd healthlink-his-ui && npm run build:dev — 编译通过
  2. 登录后进入住院护士站 → 护理记录 → 选中患者 → 应加载出患者护理记录列表,无红色报错

四、路由决策

FIXER: zhaoyun

REASON: 纯前端组件映射修复,仅改动 1 个 Vue 文件中的 1 行模板标签(CriticalrecordNursingRecord),属于前端界面/组件层级的问题。


路由决策

  • FIXER_ID: zhaoyun
  • 修复 Agent: zhaoyun前端
  • 原因: ** 纯前端组件映射修复,仅改动 1 个 Vue 文件中的 1 行模板标签(CriticalrecordNursingRecord),属于前端界面/组件层级的问题。

⚠️ 修复人员请先验证以上分析是否正确,再执行修复。