2.9 KiB
2.9 KiB
Bug #556 分析报告
Bug 描述
【门诊医生站-检验】新增检验申请单时就诊卡号/执行时间未自动回显,且项目列表冗余显示"套餐"文字
三个子问题分析
问题1:就诊卡号未自动回显
位置: inspectionApplication.vue 第 146 行 formData.medicalrecordNumber
根因:
initData()第 886 行使用props.patientInfo.identifierNo填充resetForm()第 1526 行同样使用props.patientInfo.identifierNo填充handleSave()第 1598-1607 行同步患者信息时,只同步了visitNo(对应busNo),没有同步medicalrecordNumberprops.patientInfo中就诊卡号对应的字段是busNo(就诊流水号/卡号),而identifierNo是身份证号/标识号,可能为空- 修复:
medicalrecordNumber应使用props.patientInfo.busNo填充,与visitNo保持一致
问题2:执行时间未自动填充
位置: inspectionApplication.vue 第 978 行 executeTime: null
根因:
formData.executeTime初始值为nullinitData()和resetForm()都没有设置executeTime默认值- 第 176-186 行的日期选择器 placeholder 为"选择执行时间",无默认值
- 修复: 在
initData()和resetForm()中将executeTime设置为当前时间(格式与applyTime一致)
问题3:项目列表冗余显示"套餐"文字
位置: inspectionApplication.vue 第 566 行 el-tag v-if="item.isPackage"
根因:
loadCategoryItems()第 1190 行:const isPackage = item.feePackageId != null && item.feePackageId !== '' && item.feePackageId !== 'null'- 数据库中 ALL 12条 lab_activity_definition 记录都有
fee_package_id值 - 但通过
inspection_package_detail比对,只有 2条 记录的名称与套餐名称匹配("肝功能12项"和"免疫组织化学染色诊断") - 其余 10 条是套餐子项或普通项目,不应显示"套餐"标签
- 修复: 改为检查
item.packageName && item.itemName === item.packageName,即只有当项目名称与套餐名称匹配时才标记为套餐
修复方案
修复1: 就诊卡号
initData():formData.medicalrecordNumber = props.patientInfo.busNo || ''(替代identifierNo)resetForm(): 同样改为busNohandleSave(): 同步时增加formData.medicalrecordNumber同步
修复2: 执行时间
initData(): 新增formData.executeTime = formatDateTime(new Date())resetForm(): 将executeTime: null改为executeTime: formatDateTime(new Date())
修复3: 套餐标签
loadCategoryItems()第1190行: 将isPackage判断改为item.packageName && item.name === item.packageName
验证门禁
- Gate A: 根因已定位到具体代码行
- Gate B: 已读取 inspectionApplication.vue 全部代码,理解数据流
- Gate C: 修复方案与验收标准一致
- Gate D: 不涉及数据库 DDL 变更