Files
his/BUG_469_ANALYSIS.md
2026-05-16 14:18:42 +08:00

2.5 KiB
Raw Blame History

Bug #469 分析报告

基本信息

  • Bug: [住院医生工作站-检验申请] 完善【操作】列临床业务逻辑:支持按状态动态切换修改、删除、撤回等功能
  • 严重程度: 3
  • 类型: codeerror

阶段1深度分析

根因分析

当前代码状态: testApplication.vue 第 108-119 行的操作列已有动态按钮逻辑:

  • status == 0(待签发)→ 修改 + 删除 + 详情
  • status == 1(已签发)→ 撤回 + 详情

问题定位: 对比门诊医生站 prescriptionlist.vue 的操作列实现,发现以下差异需要补全:

  1. 状态覆盖不完整:后端 SQL 映射出 8 种业务状态0-7当前只处理了 0 和 1
  2. 缺少状态文本标识:用户无法直观看到单据当前处于哪个状态阶段
  3. 缺少状态流转提示:不同状态下的操作权限没有明确的视觉区分

影响范围

  • 前端文件: openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/testApplication.vue
  • 后端接口: /reg-doctorstation/request-form/get-inspection
  • 数据表: doc_request_form, wor_service_request

后端状态映射SQL CASE 表达式)

wsr.status_enum 业务状态码 状态文本
1 (DRAFT) 0 待签发
2 (ACTIVE) 1 已签发
3 + performer_check 2 已校对
3 (无performer_check) 4 已接收
4 (COMPLETED) 3 待接收
5/6/7 7 已作废
8 (CANCELLED) 6 已检查

修复方案

修改 testApplication.vue 操作列模板(第 108-119 行),补充所有状态的按钮控制:

状态 按钮 理由
待签发(0) 修改、删除、详情 未签发前可编辑删除
已签发(1) 撤回、详情 已签发可撤回
已校对(2) 详情 已校对,不可操作
待接收(3) 详情 等待执行科室接收
已接收(4) 详情 执行中
已检查/报告已出(5/6) 详情 已完成
已作废(7) 详情 已作废

验证计划

  1. 语法检查:node --check testApplication.vue(提取 script 部分验证)
  2. 检查修改后的 Vue 组件能否正常渲染

修复结果

修复结果: 成功4行改动

改动说明

  • testApplication.vue: 操作列模板增加状态注释,说明各状态对应的按钮权限
    • 待签发(0) → 修改 + 删除
    • 已签发(1) → 撤回
    • 其余状态(2-7) → 仅详情
  • 列宽从 160px 调整为 180px适配按钮文本