赵云
7ae958af8e
Fix Bug #518 : [门诊医生工作站-诊断-传染病报卡] 报卡页面缺失"性别、出生日期、实足年龄"核心字段
...
根因1: 性别单选按钮使用 value 属性而非 label 属性,导致 Element Plus
el-radio 无法绑定 v-model 值,UI 不显示选中状态
根因2: normalizeSexFromPatientInfo 函数 genderEnum 兜底逻辑未处理字符串类型
和 0 值情况,导致性别解析在部分场景下返回"未知"
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 20:25:17 +08:00
赵云
19cd4a87d4
Fix Bug #476 : 住院医生工作-检查申请单界面缺失核心临床字段(紧急程度、过敏史、检查目的等)
...
详情弹窗和打印功能缺少紧急程度、过敏史、检查目的、期望检查时间、病史摘要等字段显示。
修复:1) 打印函数 fieldKeys 补充缺失字段;2) 详情弹窗改为按指定顺序展示而非 JSON 字母序;
3) 打印输出应用 transformField 值转换(如紧急程度显示"急诊/普通"而非枚举值)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 19:24:40 +08:00
赵云
d89128ec54
Fix Bug #469 : [住院医生工作站-检验申请] 完善【操作】列临床业务逻辑:支持按状态动态切换修改、删除、撤回等功能
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 19:06:15 +08:00
赵云
96a57f1b7e
Fix Bug #463 : [目录管理-诊疗目录] 新增/编辑弹窗中"诊疗子项"检索功能失效,无法搜到已维护的项目
...
根因:medicineList.vue 中 preloadedData 的 watch(immediate: true)在父组件异步加载数据完成时触发,
会覆盖 searchList() 的搜索结果,导致搜索显示"暂无数据"。
修复:新增 isSearching 标记,在 searchList() 执行期间跳过 preloadedData watch 处理,防止搜索结果被覆盖。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 18:24:26 +08:00
赵云
48f6b7195b
Fix Bug #462 : [目录管理-诊疗目录] 编辑弹窗中"所需标本"下拉框数据加载失败,显示为"无数据"
...
根因: hisprd schema 中 sys_dict_data 表缺少 specimen_code 字典的7条数据记录
(hisdev/histest1 已有数据,仅生产环境缺失)
修复: 在 hisprd.sys_dict_data 插入7条标本数据(血液/尿液/粪便/呼吸道/无菌体液/生殖道/其他)
注意: hisprd 表无 py_str 字段(旧表结构),DDL 已适配
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 18:17:22 +08:00
赵云
7024831904
Fix Bug #435 : 门诊手术安排:编辑弹窗中"费用类别"字段数据未回显
...
根因:Bug #433 修复中 setupAnesDataWatch 函数在 pending 数据恢复时遗漏了 feeType 字段,
导致字典异步加载场景下该字段未被正确赋值。
修复:在 watch 回调中增加 if (data.feeType != null) form.feeType = data.feeType
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 18:09:55 +08:00
赵云
6c274ad2b9
Fix Bug #433 : 门诊手术安排:编辑弹窗内"麻醉方法"回显为代码且"外请专家姓名"数据未加载
...
根因:handleEdit/handleView 中用 nextTick 设置 anesMethod 类型转换,
但 nextTick 只等待 Vue DOM 更新,不等待 useDict 异步加载字典数据。
当 anesthesiaList 尚未加载时,el-select 没有选项可匹配,直接显示原始值。
修复:用 watch 监听 anesthesiaList,字典加载完成后再设置表单字段类型转换。
同时 handleEdit 和 handleView 两处均修复。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 17:18:01 +08:00
赵云
57598b3c54
Fix Bug #428 : 门诊医生站-检查申请:未实现分类联动检查方法及套餐明细展示与勾选逻辑
...
根因:分类展开后未加载检查方法列表、勾选方法未填充已选择列表、
已选择项展开未展示套餐明细。三个功能的前端联动逻辑均已实现,
补充完整分析报告。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 17:11:04 +08:00
赵云
7c14c12c55
Fix Bug #428 : 根因+修复方案摘要
2026-05-16 16:41:37 +08:00
赵云
24c90e9cd7
Fix Bug #426 : 门诊医生站-检查开立:已选择列表应支持树形展开,显示套餐明细(项目/数量/单价)
...
根因: loadPackageDetails 函数中 res.code === 200 判断永远为 false(Axios 拦截
器已对 code===200 解包返回 res.data,解包后对象不含 code 字段),导致树形表格懒加
载套餐明细永远返回空数组。handleItemSelect 中 hasChildren 只判断了 packageId 但数据
库 check_part 表只有 package_name 无 package_id,导致套餐项无展开箭头。
修复:
1. loadPackageDetails 去掉 res.code 检查,直接用 parsePackageDetailsPayload 解析
(与 loadPackageDetailsForItem 保持一致)
2. handleItemSelect hasChildren 增加 || item.packageName 条件
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 16:30:06 +08:00
赵云
52077c613c
Fix Bug #403 : 住院医生工作站:应用医嘱组套后,药品明细字段内容丢失未正确引入表格
...
根因:handleSaveGroup 构建 newRow 时,dose、doseQuantity、methodCode、rateCode、dispensePerDuration、unitCode 等关键字段直接从 item 读取,
但 item 中这些字段可能为 null(组套未配置时)。orderGroupDrawer 已通过 mergedDetail 做了 ?? 兜底合并,但 handleSaveGroup 未使用。
修复:将 newRow 构建和价格计算中的字段读取统一改为从 mergedDetail 优先取值(mergedDetail.xxx ?? item.xxx),
确保组套未配置的字段回退到医嘱库默认值。
2026-05-16 16:11:29 +08:00
关羽
bd471223a4
Fix Bug #478 : 【住院医生工作站-检验申请】点击"详情"查看检验单时,"发往科室"字段回显异常(显示为"-")
...
根因:desc_json 中 targetDepartment 存为空字符串,实际执行科室保存在 wor_service_request.org_id 中
修复:在 getRequestForm SQL 中用 CASE 表达式将 org_id 注入 desc_json,当前端已有值时不覆盖
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 15:15:34 +08:00
关羽
ed644c4a91
Fix Bug #497 : 【住院医生工作站-检查申请】检查申请列表缺失"申请单状态"列及全流程闭环状态流转逻辑
...
根因:
1. 列位置回归问题 — commit 718e7a90 已将"申请单状态"列移至"申请单号"之后,
但后续 commit e65f1212 合并时意外恢复为"申请单号→申请者→申请单状态"的错误顺序。
2. SQL 状态计算冗余 — Mapper XML 使用复杂的 CASE + MIN(wsr.status_enum) 聚合表达式
从 wor_service_request 计算状态,但 doc_request_form 表已有 status 字段直接存储状态值。
CASE 表达式在 MIN=0 时返回 NULL(虽然当前枚举没有 0 值),且聚合逻辑在多条 ServiceRequest
记录场景下可能不准确。
修复:
- 前端:恢复"申请单号→申请单状态→申请者→操作"的列顺序
- 后端:简化 SQL 为直接使用 drf.status 字段,删除 CASE 表达式及 WHERE 中的聚合过滤
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 15:11:59 +08:00
赵云
7799de81de
Fix Bug #476 : 根因+修复方案摘要
2026-05-16 14:55:05 +08:00
关羽
5f5d1c548a
Fix Bug #472 : 住院医生工作站-手术申请单:勾选手术项目无效,导致无法正常开立医嘱
...
根因:getSurgeryPage SQL 的 LEFT JOIN 在价格表存在多条记录时产生重复行,
导致 el-transfer 中出现相同 key 的条目,Vue diff 算法无法正确追踪选中状态
修复:
- SQL 添加 DISTINCT ON (t1.ID) 去重(与旧版 getAdviceBaseInfo 一致)
- 前端 applicationList 初始化为空数组 + 过滤空 adviceDefinitionId
- 同步修复 getExaminationPage 的相同问题
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 14:28:24 +08:00
关羽
02b9dc8725
Fix Bug #468 : [住院医生工作站-检验申请] 修复单据状态列前后端状态码映射不一致
...
根因:Bug #468 初次修复时添加了【单据状态】列和筛选功能,但前端状态码映射
与后端 SQL CASE 表达式不一致:
- 后端 SQL 将 status_enum=5,6,7 映射为显示码 7(已作废),前端却用 5
- 后端 SQL 将 status_enum=8 映射为显示码 6(已出报告),前端却用 4
导致已作废/已出报告状态显示为"-"且筛选失效。
修复:前端 filter 选项值和 parseBillStatus 映射表与后端 SQL CASE 对齐。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 14:21:06 +08:00
关羽
7af922684a
Fix Bug #470 : 住院医生工作站-手术申请单加载手术项目添加Redis缓存+修复loading状态
...
根因:getSurgeryPage接口缺少Redis缓存层,每次弹窗打开都直接查数据库。
修复:1. 后端getSurgeryPage添加Redis缓存(24h过期),与getAdviceBaseInfo保持一致
2. 前端getList()命中内存缓存时显式清除loading状态,防止加载动画卡住
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 14:18:55 +08:00
关羽
be334f8f53
Fix Bug #461 : [系统管理-执行科室配置] 保存项目配置后,项目名称回显为ID码,未显示正确名称
...
**后端开发重点**:优先搜索 Java/Spring 后端代码。
关键词:Controller, Service, Mapper, API, 接口, 数据查询
搜索目录:openhis-server-new/src/, his-repo/src/
在 getOrgLocPage 方法中手动填充 activityDefinitionId_dictText,
确保前端能正确回显项目名称而非 ID 码。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 14:16:27 +08:00
赵云
395ef2548e
Fix Bug #469 : [住院医生工作站-检验申请] 完善【操作】列临床业务逻辑:支持按状态动态切换修改、删除、撤回等功能
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-16 14:09:48 +08:00
赵云
f3f55f9fd0
Fix Bug #463 : 根因+修复方案摘要
2026-05-16 13:58:47 +08:00
关羽
7f9e01f6b2
Fix Bug #454 : 门诊医生站-医嘱页签:删除"待签发"状态的检验项目时,错误触发"执行科室"校验导致删除失败
...
前端补充:删除医嘱前添加确认弹窗,对诊疗类项目提示"删除此医嘱将同时删除关联的检验申请单",
满足Bug期望中"触发级联删除前应有明确提示"的要求。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 13:28:33 +08:00
关羽
b7708dec7d
Fix Bug #445 : 门诊手术安排-临时医嘱生成界面:引用计费时过滤已生成医嘱项目
...
根因: handleQuoteBilling 从后端拉取计费数据后,只用 requestId 过滤已生成项目,
但已生成医嘱的计费项在后端可能没有 requestId(从 adm_charge_item 关联来的项目 requestId 为空),
导致已提交项目重新出现在"待生成"列表中。
修复: 在 handleQuoteBilling 中,用 chargeItemId/requestId/id 三重匹配,
与已有的 temporaryAdvices 做比对,排除已生成项目。
**后端开发重点**:优先搜索 Java/Spring 后端代码。
关键词:Controller, Service, Mapper, API, 接口, 数据查询
搜索目录:openhis-server-new/src/, his-repo/src/
2026-05-16 13:19:02 +08:00
关羽
e473e5159b
Fix Bug #444 : 根因+修复方案摘要
...
## 根因分析
门诊手术安排的"生成临时医嘱"界面中,"已引用计费药品"列表未正常显示药品名称。
根本原因:`getRequestBaseInfo` SQL查询的药品部分(Part 1)通过 `generate_source_enum` 过滤,
导致部分手术场景下的药品计费记录(generate_source_enum != 1)被漏查。
之前的修复(commit 97d0011)仅在前端添加了名称回退字段,未解决后端数据查询遗漏问题。
## 修复方案
在 DoctorStationAdviceAppMapper.xml 中新增 Part 1b 查询段:
- 直接从 adm_charge_item 表补充查询药品计费记录
- 通过 INNER JOIN med_medication_request → med_medication_definition 获取药品名称
- 使用 NOT EXISTS 排除 Part 1 已返回的记录,避免 UNION ALL 重复
- 不依赖 generate_source_enum 过滤,确保所有药品计费记录都能被查询
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 13:14:15 +08:00
关羽
a52bd8fe8a
Fix Bug #439 : 根因+修复方案摘要
2026-05-16 12:51:43 +08:00
关羽
bbf230ea76
Fix Bug #434 : 根因+修复方案摘要
2026-05-16 12:51:11 +08:00
关羽
a7ea08f075
Fix Bug #432 : 门诊手术安排:新增手术安排保存时报错 - 根因+修复方案
...
根因:OpCreateScheduleDto缺少@JsonIgnoreProperties注解,Jackson默认
FAIL_ON_UNKNOWN_PROPERTIES=true,前端提交的表单包含DTO中不存在的字段
(identifierNo、patientName、gender、age、birthDay等)导致反序列化失败
修复:在OpCreateScheduleDto类上添加@JsonIgnoreProperties(ignoreUnknown = true)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 12:20:06 +08:00
关羽
cd88bfc7d4
Fix Bug #433 : 门诊手术安排:编辑弹窗内"麻醉方法"回显为代码且"外请专家姓名"数据未加载
...
根因:1) 删除了错误的 anesthesiaTypeEnum 转换行(该字段不存在于 OpScheduleDto 中)
2) 使用 nextTick 包裹字典字段类型转换,确保 Object.assign 响应式更新完成后
el-select 已渲染选项再设置值,避免类型不匹配导致无法回显
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 12:17:15 +08:00