Fix Bug #503: 【住院发退药】发药明细与发药汇总单数据触发时机不一致,存在业务脱节风险
根因分析: - 发药明细单查询(selectEncounterInfoListPage)直接从 med_medication_dispense 表查询, 护士执行医嘱后立即显示记录 - 发药汇总单查询从 wor_supply_request 表查询,只有护士执行"汇总发药申请"后才创建记录 - 两者数据源不同导致明细单先显示、汇总单后显示的业务脱节问题 修复方案: 1. 在明细单查询中增加 EXISTS 子查询,仅显示已通过汇总发药申请流程创建的就诊记录 (通过 med_medication_dispense.summary_no 关联 wor_supply_request.bus_no) 2. 将已汇总状态(status_enum=8, SUMMARIZED)纳入明细单的状态过滤条件,确保汇总申请提交后 明细单能正常显示对应的就诊记录 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -96,14 +96,22 @@
|
|||||||
INNER JOIN med_medication_request AS T5
|
INNER JOIN med_medication_request AS T5
|
||||||
ON T4.med_req_id = T5.id
|
ON T4.med_req_id = T5.id
|
||||||
AND T5.delete_flag = '0'
|
AND T5.delete_flag = '0'
|
||||||
WHERE <if test="statusEnum == null">
|
WHERE EXISTS (
|
||||||
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
|
SELECT 1 FROM wor_supply_request wsr
|
||||||
|
WHERE wsr.type_enum = 3
|
||||||
|
AND wsr.delete_flag = '0'
|
||||||
|
AND wsr.bus_no = T4.summary_no
|
||||||
|
AND T4.summary_no IS NOT NULL
|
||||||
|
AND T4.summary_no != ''
|
||||||
|
)
|
||||||
|
AND <if test="statusEnum == null">
|
||||||
|
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared},8)
|
||||||
</if>
|
</if>
|
||||||
<if test="statusEnum == 3">
|
<if test="statusEnum == 3">
|
||||||
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
|
T4.status_enum IN (#{inProgress},#{preparation},#{prepared},8)
|
||||||
</if>
|
</if>
|
||||||
<if test="statusEnum == 4">
|
<if test="statusEnum == 4">
|
||||||
T4.status_enum = #{completed}
|
T4.status_enum IN (#{completed},8)
|
||||||
</if>
|
</if>
|
||||||
) AS ii
|
) AS ii
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
|
|||||||
Reference in New Issue
Block a user