关羽
ede95be8f3
Fix Bug #461 : 执行科室配置-项目名称回显为ID码,前后端类型不一致导致匹配失败
...
根因:ActivityDefinition.id 未加 @JsonSerialize,后端序列化为 JS Number(大数精度丢失),
而 OrgLocQueryDto.activityDefinitionId 有 ToStringSerializer 序列化为 String。
前端 === 严格比较 Number !== String,导致 filteredOptions 匹配失败。
修复:
1. ActivityDefinition.id 添加 @JsonSerialize(using = ToStringSerializer.class)
2. 前端 getAllImplementDepartment 中 value 转为 String() 统一类型
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 18:25:20 +08:00
关羽
55f0c91a80
Fix Bug #461 : 根因+修复方案摘要
2026-05-16 18:17:00 +08:00
关羽
1e4fa2d22a
Fix Bug #455 : 门诊医生站-医嘱:开立诊疗医嘱时执行科室默认获取逻辑有误且显示为原始ID
...
根因:setValue 中调用 findOrgNameById 时 organization 树数据尚未加载完成(异步竞态),
导致 findOrgNameById 返回空字符串,el-tree-select 无法解析 orgId 对应的名称,显示原始ID。
修复:1. 将 getOrgList 改为返回缓存的 Promise,可被 await
2. 在 setValue 的诊疗医嘱分支中 await getOrgList(),确保 org 树加载完成后再查找科室名称
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 18:16:19 +08:00
赵云
37baa20163
Fix Bug #434 : 门诊手术安排:编辑弹窗中"切口类型"字段未正确回显数据
...
根因:getSurgeryScheduleDetail SQL中 os.* 包含 os.incision_level(NULL),
与 cs.incision_level AS "incisionLevel" 产生列名冲突,MyBatis resultType
映射时将NULL值覆盖实际数据,导致前端form.incisionType为undefined。
修复:将 os.* 替换为显式列选择(排除os.incision_level),确保incisionLevel
只被 cs.incision_level 映射一次。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 18:05:34 +08:00
赵云
c1162af5ea
Fix Bug #434 : 根因+修复方案摘要
2026-05-16 17:51:54 +08:00
赵云
d04400587e
Fix Bug #434 : 门诊手术安排:编辑弹窗中"切口类型"字段未正确回显数据
...
根因:OpSchedule实体缺失incisionLevel字段,导致BeanUtils.copyProperties无法复制该字段到实体,保存时数据丢失。
修复:在OpSchedule实体中添加incisionLevel字段,移除OpScheduleDto中的重复定义(改为继承)。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 17:28:13 +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
赵云
3ab3ddbdf1
Fix Bug #428 : 根因+修复方案摘要
2026-05-16 12:11:12 +08:00
关羽
d2cb02eeef
Fix Bug #401 : 门诊完诊审计日志错误:div_log 表中 pool_id 与 slot_id 存值与设计规范不符
...
根因:queueWasAlreadyCompleted 条件限制导致队列已由分诊台完诊时,
医生站完诊不写 div_log 审计日志,造成审计记录缺失。
数据库12条COMPLETE记录中6条pool_id/slot_id为NULL(50%)。
修复:移除 queueWasAlreadyCompleted 条件限制,确保每次完诊操作
都生成审计日志;保留 queueWasAlreadyCompleted 日志用于排查。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 12:11:01 +08:00
赵云
8850689f1f
Fix Bug #426 : 门诊医生站-检查开立:已选择列表应支持树形展开,显示套餐明细(项目/数量/单价)
...
根因: Element Plus el-table 懒加载模式下,tree-props.hasChildren 要求行数据
包含 hasChildren: true 才能显示展开箭头。所有创建套餐项的代码路径都设置了
isPackage: true 和 packageId,但未设置 hasChildren 属性。
修复: 在 7 处代码路径中补充 hasChildren 属性设置。
2026-05-16 12:02:35 +08:00
关羽
4c7d362946
Fix Bug #403 : 住院医生工作站:应用医嘱组套后,药品明细字段内容丢失未正确引入表格
...
组套应用时数据预处理缺失部分关键字段(doseUnitCode_dictText/positionName/
injectFlag/skinTestFlag),导致父组件构建行数据时无法获取完整信息。
在orderGroupDrawer的processed item中显式补充这些字段。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-16 11:57:54 +08:00
51ae3aad29
bug524 [门诊/医生个人报卡管理] 传染病报告卡保存后数据回显失败:病例分类、日期及分型字段为空
2026-05-15 18:16:12 +08:00
d984b89967
bug432 门诊手术安排:新增手术安排保存时报错
2026-05-15 18:14:44 +08:00
wangjian963
b9aabd53ce
Fix Bug 505505 【业务逻辑缺陷】药品医嘱已由药房发药,护士仍能在“医嘱校对”模块执行“退回”操作
...
[门诊手术安排]“手术申请查询”弹窗底部,分页组件与界底部元素重叠,影响操作。
2026-05-15 17:34:29 +08:00
关羽
73ed5e1d33
Fix Bug #534 : 【手术管理-门诊手术安排】点击"签发"按钮抛出异常,导致业务中断
...
修复两个问题:
1. prescriptionlist.vue 签发时 organizationId 可能为 undefined,添加回退值确保后端接收有效值
2. index.vue 计费弹窗缺少 generateSourceEnum 参数传递,导致 getListInfo 查询时无法正确过滤手术计费项目
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-15 17:00:11 +08:00
关羽
d3cd122656
Fix Bug #536 : [门诊手术安排]"手术申请查询"弹窗底部,分页组件与界面底部元素重叠,影响操作。
...
根因:弹窗 body 无高度约束,窗口缩小时内容溢出导致分页与 footer 重叠。
修复:为弹窗添加 max-height: 75vh + overflow-y: auto 约束,分页与 footer 增加间距和分隔线。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-15 16:29:42 +08:00
荀彧
0930fbae93
Fix Bug #535 : 【住院护士站-医嘱校对】已校验过的医嘱错误显示于"未校对"列表中,导致数据状态联动失效
...
根因:后端 getInpatientAdvicePage 方法中将 requestStatus 置为 null,
未按前端 tab 传入的状态值过滤,导致无论切换哪个 tab 都返回全部医嘱。
SQL 中的 CASE 条件仅处理 DRAFT 状态的 performer_check_id 校验,
并未按 request_status 字段过滤。
修复:保存 requestStatus 后,在查询结果集上按 requestStatus 手动过滤,
与 exeStatus 的过滤方式保持一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-15 16:26:17 +08:00
关羽
cace025d14
Fix Bug #533 : 【门诊手术安排-计费】添加药品费用项目保存提示成功,但列表页未同步显示计费药品项目
...
根因:DoctorStationAdviceAppServiceImpl 中 handMedication/handDevice/handService 方法
硬编码 generateSourceEnum=1(医生开立),但前端手术计费传入 generateSourceEnum=6,
查询时按 6 过滤导致找不到记录。
修复:1. GenerateSource 枚举新增 SURGERY_BILLING(6)
2. 8处 setGenerateSourceEnum 改为优先使用 DTO 的 generateSourceEnum,
空时回退到 DOCTOR_PRESCRIPTION
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-15 16:09:29 +08:00
关羽
91f29bf693
Fix Bug #533 : 【门诊手术安排-计费】添加药品费用项目保存提示成功,但列表页未同步显示计费药品项目
...
根因:手术计费弹窗中 prescriptionlist 组件的 generateSourceEnum prop 被硬编码为 1,
但保存时 handleSaveSign 将 generateSourceEnum 设为 6(手术计费)。
保存后调用 getListInfo 刷新列表时,用 generateSourceEnum=1 查询,
后端返回 generateSourceEnum=6 的数据不匹配,导致列表为空。
修复:移除硬编码的 :generateSourceEnum="1" prop,
让组件通过 sourceBillNo 过滤即可正确显示保存的手术计费项目。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-15 15:58:39 +08:00
a6337ae397
fix bug249:手术管理-》门诊手术安排:【新增手术安排】-》【查找】在门诊医生站已【删除】作废的手术申请单在查询界面还能查询出来
2026-05-15 15:44:36 +08:00
赵云
c2e089c0d2
Fix Bug #532 : 【手术管理】点击"查看"或"编辑"按钮弹出 SQL 语法报错。
...
根因:getSurgeryScheduleDetail SQL 查询中引用了 fc.contract_name AS feeType,
但 fc (fin_contract) 表从未被 JOIN,导致 SQL 语法错误。
修复:删除未关联表的 fc.contract_name 字段,保留已有的 os.fee_type AS feeType。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-15 15:42:02 +08:00
Ranyunqiao
e65f12125b
403 住院医生工作站:应用医嘱组套后,药品明细字段内容丢失未正确引入表格 521 [住院医生站-临床医嘱-检查申请] 手工选择执行科室后,保存仍提示“未找到项目执行的科室” 528 [住院医生工作站-检查申请] 修改申请单成功后,弹窗未自动关闭且列表数据未自动刷新 531 [住院医生站-临床医嘱-检查] 检查申请单打开数据没有正常加载
2026-05-15 14:20:30 +08:00
Ranyunqiao
12d0733c0c
Merge remote-tracking branch 'origin/develop' into develop
2026-05-15 09:44:38 +08:00
Ranyunqiao
610fff704a
bug 470 494
2026-05-15 09:44:26 +08:00
wangjian963
0aa7dd9b82
Revert "Merge remote-tracking branch 'origin/develop' into develop"
...
This reverts commit 5946c1ea4b , reversing
changes made to 8d905c9844 .
2026-05-15 09:33:35 +08:00
wangjian963
5946c1ea4b
Merge remote-tracking branch 'origin/develop' into develop
2026-05-15 09:26:51 +08:00
wangjian963
8d905c9844
Reapply "Fix Bug #489-regression: [住院护士站-医嘱处理] UNION加SELECT DISTINCT后NULL列类型推断失败导致接口异常"
...
This reverts commit 49fc905316 .
2026-05-15 09:23:13 +08:00
wangjian963
49fc905316
Revert "Fix Bug #489-regression: [住院护士站-医嘱处理] UNION加SELECT DISTINCT后NULL列类型推断失败导致接口异常"
...
This reverts commit 4e7e79d9c0 .
2026-05-15 09:19:02 +08:00
关羽
3ee09b22c7
Fix Bug #511 : [住院医生工作站-临床医嘱] 护士退回的医嘱在医生站双击无法进入编辑模式,导致无法修改重发
...
- 使用 Number() 做 statusEnum 类型转换并用 === 严格比较,避免前后端类型不一致导致双击无响应
- 使用 splice 替代直接赋值更新 prescriptionList,确保 Vue 响应式系统能正确触发渲染更新
- 使用 nextTick 包裹 expandOrder 设置,确保数据更新后再设置展开状态,保证 el-table 正确识别 row-key
- 增加 findIndex 返回 -1 时的错误处理,给用户可见提示而非静默失败
2026-05-15 01:28:18 +08:00
关羽
6b4f897b9c
Fix Bug #509 : [门诊医生站-手术申请] 提交申请后列表未实时刷新展示数据,且提示语需优化
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-15 01:09:52 +08:00