Fix Bug #457: 门诊收费:已签发的手术类医嘱在门诊收费列表中不显示项目名称
根因分析:手术类收费项的 context_enum = 6 (SURGERY),但 SQL 查询的 CASE 语句
只匹配 context_enum = #{activity} (值=3),导致手术类医嘱无法匹配任何 CASE 分支,
item_name 返回 NULL。
修复方案:在 selectEncounterPatientPrescription 和 selectEncounterPatientPrescriptionWithPrice
两个查询的 item_name/yb_no/item_id CASE 语句中增加 context_enum = 6 (手术) 的匹配分支:
- product_table = 'cli_surgery' 时从 cli_surgery 表获取手术名称
- product_id = 0 且 service_table = 'wor_service_request' 时从 content_json 获取医嘱名称
- 其他情况从 wor_activity_definition 获取名称
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -96,6 +96,9 @@
|
|||||||
T8.contract_name,
|
T8.contract_name,
|
||||||
CASE
|
CASE
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.surgery_name
|
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.surgery_name
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_table = 'cli_surgery' THEN T9.surgery_name
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN COALESCE(wsr.content_json::json->>'adviceName', T2."name")
|
||||||
|
WHEN T1.context_enum = 6 THEN T2."name"
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN COALESCE(wsr.content_json::json->>'adviceName', T2."name")
|
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN COALESCE(wsr.content_json::json->>'adviceName', T2."name")
|
||||||
WHEN T1.context_enum = #{activity} THEN T2."name"
|
WHEN T1.context_enum = #{activity} THEN T2."name"
|
||||||
WHEN T1.context_enum = #{medication} THEN T3."name"
|
WHEN T1.context_enum = #{medication} THEN T3."name"
|
||||||
@@ -103,6 +106,9 @@
|
|||||||
END AS item_name,
|
END AS item_name,
|
||||||
CASE
|
CASE
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN NULL
|
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN NULL
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_table = 'cli_surgery' THEN NULL
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN NULL
|
||||||
|
WHEN T1.context_enum = 6 THEN T2.yb_no
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN NULL
|
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN NULL
|
||||||
WHEN T1.context_enum = #{activity} THEN T2.yb_no
|
WHEN T1.context_enum = #{activity} THEN T2.yb_no
|
||||||
WHEN T1.context_enum = #{medication} THEN T3.yb_no
|
WHEN T1.context_enum = #{medication} THEN T3.yb_no
|
||||||
@@ -110,6 +116,9 @@
|
|||||||
END AS yb_no,
|
END AS yb_no,
|
||||||
CASE
|
CASE
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.id
|
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.id
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_table = 'cli_surgery' THEN T9.id
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN 0
|
||||||
|
WHEN T1.context_enum = 6 THEN T2.id
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN 0
|
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN 0
|
||||||
WHEN T1.context_enum = #{activity} THEN T2.id
|
WHEN T1.context_enum = #{activity} THEN T2.id
|
||||||
WHEN T1.context_enum = #{medication} THEN T3.id
|
WHEN T1.context_enum = #{medication} THEN T3.id
|
||||||
@@ -212,6 +221,9 @@
|
|||||||
T8.contract_name,
|
T8.contract_name,
|
||||||
CASE
|
CASE
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.surgery_name
|
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.surgery_name
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_table = 'cli_surgery' THEN T9.surgery_name
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN COALESCE(wsr.content_json::json->>'adviceName', T2."name")
|
||||||
|
WHEN T1.context_enum = 6 THEN T2."name"
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN COALESCE(wsr.content_json::json->>'adviceName', T2."name")
|
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN COALESCE(wsr.content_json::json->>'adviceName', T2."name")
|
||||||
WHEN T1.context_enum = #{activity} THEN T2."name"
|
WHEN T1.context_enum = #{activity} THEN T2."name"
|
||||||
WHEN T1.context_enum = #{medication} THEN T3."name"
|
WHEN T1.context_enum = #{medication} THEN T3."name"
|
||||||
@@ -219,6 +231,9 @@
|
|||||||
END AS item_name,
|
END AS item_name,
|
||||||
CASE
|
CASE
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN NULL
|
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN NULL
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_table = 'cli_surgery' THEN NULL
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN NULL
|
||||||
|
WHEN T1.context_enum = 6 THEN T2.yb_no
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN NULL
|
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN NULL
|
||||||
WHEN T1.context_enum = #{activity} THEN T2.yb_no
|
WHEN T1.context_enum = #{activity} THEN T2.yb_no
|
||||||
WHEN T1.context_enum = #{medication} THEN T3.yb_no
|
WHEN T1.context_enum = #{medication} THEN T3.yb_no
|
||||||
@@ -226,6 +241,9 @@
|
|||||||
END AS yb_no,
|
END AS yb_no,
|
||||||
CASE
|
CASE
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.id
|
WHEN T1.context_enum = #{activity} AND T1.product_table = 'cli_surgery' THEN T9.id
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_table = 'cli_surgery' THEN T9.id
|
||||||
|
WHEN T1.context_enum = 6 AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN 0
|
||||||
|
WHEN T1.context_enum = 6 THEN T2.id
|
||||||
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN 0
|
WHEN T1.context_enum = #{activity} AND T1.product_id = 0 AND T1.service_table = 'wor_service_request' THEN 0
|
||||||
WHEN T1.context_enum = #{activity} THEN T2.id
|
WHEN T1.context_enum = #{activity} THEN T2.id
|
||||||
WHEN T1.context_enum = #{medication} THEN T3.id
|
WHEN T1.context_enum = #{medication} THEN T3.id
|
||||||
|
|||||||
Reference in New Issue
Block a user