Files
his/MD/bugs/BUG_462_ANALYSIS.md
华佗 d8427f788e docs: 统一文档管理规范,合并docs/到MD/目录
- 创建MD/目录结构(architecture/development/standards/specs/bugs/guides/upgrade)
- 制定文档命名规范(大写英文+下划线)
- 制定文档格式规范(元数据块、结构模板)
- 合并27个文档到MD/目录,按类别分类
- 删除旧的docs/目录
- 更新AGENTS.md铁律#5: 文档统一管理

命名规范:
- 架构设计: ARCH_<模块>_<描述>.md
- 开发计划: PLAN_<类型>_<版本>.md
- 国家标准: STD_<标准名称>.md
- 技术规范: SPEC_<类型>_<描述>.md
- Bug修复: BUG_<编号>_<描述>.md
- 使用指南: GUIDE_<主题>.md
- 升级记录: UPGRADE_<组件>_<类型>.md
2026-06-06 09:06:21 +08:00

2.5 KiB
Raw Blame History

Bug #462 分析报告

Bug 描述

[目录管理-诊疗目录] 编辑弹窗中"所需标本"下拉框数据加载失败,显示为"无数据"

根因分析

数据流追踪

  1. 前端组件 diagnosisTreatmentDialog.vue 第168-178行渲染"所需标本"下拉框
  2. 下拉框选项来自 specimen_code 变量第172行 v-for="category in specimen_code"
  3. specimen_code 通过 proxy.useDict('specimen_code', ...) 加载第378-386行
  4. useDict 调用 API /system/dict/data/type/specimen_codesrc/utils/dict.js 第16行
  5. 后端 SysDictDataController.dictType() 处理请求第65-73行无权限校验
  6. 最终查询 sys_dict_data 表,条件:status = '0' AND dict_type = 'specimen_code'

根因

hisprd生产schemasys_dict_data缺少 specimen_code 字典类型的7条数据记录

经核实:

  • hisdev schemasys_dict_type + sys_dict_data7条均已存在
  • histest1 schemasys_dict_type + sys_dict_data7条均已存在
  • hisprd schemasys_dict_type 存在dict_id=250sys_dict_data0条

前端 useDict('specimen_code') 调用 API 后返回空数组 [],下拉框 v-for 遍历空数组,没有任何 <el-option> 渲染Element Plus 显示默认空状态文案"无数据"。

与 Bug #433 对比Bug #433 是"麻醉方法回显为代码"和"外请专家姓名数据未加载",根因也是字典数据缺失。本次 Bug #462 属于同类问题——字典类型已创建但生产环境的数据记录未同步插入。

影响范围

  • 前端文件healthlink-his-ui/src/views/catalog/diagnosistreatment/components/diagnosisTreatmentDialog.vue(仅一处引用)
  • 后端文件:无代码变更,纯数据问题
  • 数据库表hisprd.sys_dict_data插入7条标本数据
  • 影响接口GET /system/dict/data/type/specimen_code

修复方案

hisprd.sys_dict_data 表插入7条标本记录

  • 血液(1)、尿液(2)、粪便(3)、呼吸道(4)、无菌体液(5)、生殖道(6)、其他(99)

注意hisprd 的 sys_dict_data 表无 py_str 字段旧表结构DDL 中不包含该字段。

验证计划

  1. 确认 hisprd 中 sys_dict_data 存在7条 specimen_code 数据status='0' 已验证
  2. 重启后端服务(刷新字典缓存)
  3. 前端进入诊疗目录编辑弹窗,点击"所需标本"下拉框应显示7条标本选项
  4. 选择任意标本后保存,再次编辑应正确回显已选标本