100 手术安排界面:增加【医嘱】按钮弹出门诊术中临时医嘱生成界面

This commit is contained in:
Ranyunqiao
2026-04-10 15:01:26 +08:00
parent 74e28be0b0
commit d052d268f5
9 changed files with 1314 additions and 265 deletions

View File

@@ -483,7 +483,9 @@
T1.based_on_id AS based_on_id,
T1.category_enum AS category_enum,
T1.encounter_id AS encounter_id,
T1.patient_id AS patient_id
T1.patient_id AS patient_id,
'med_medication_definition' AS advice_table_name,
T1.medication_id AS advice_definition_id
FROM med_medication_request AS T1
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
AND T2.delete_flag = '0'
@@ -494,7 +496,7 @@
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
LEFT JOIN cli_condition AS cc ON cc.id = T1.condition_id AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd ON ccd.id = cc.definition_id
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0 AND T1.generate_source_enum = #{generateSourceEnum}
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -504,6 +506,58 @@
AND T1.refund_medicine_id IS NULL
ORDER BY T1.status_enum,T1.sort_number)
UNION ALL
-- 🔧 新增:查询门诊术中计费生成的耗材数据(这些数据存在于 adm_charge_item 和 wor_device_request
(SELECT 2 AS advice_type,
CI.service_id AS request_id,
CI.service_id || '-ci-dev' AS unique_key,
'' AS prescription_no,
CI.enterer_id AS requester_id,
CI.entered_date AS request_time,
CASE WHEN CI.enterer_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
NULL AS content_json,
NULL AS skin_test_flag,
NULL AS inject_flag,
NULL AS group_id,
CID.charge_name AS advice_name,
'' AS volume,
NULL AS lot_number,
CI.quantity_value AS quantity,
CI.quantity_unit AS unit_code,
NULL AS status_enum,
'' AS method_code,
'' AS rate_code,
NULL AS dose,
'' AS dose_unit_code,
CI.id AS charge_item_id,
CI.unit_price AS unit_price,
CI.total_price AS total_price,
CI.status_enum AS charge_status,
DR.perform_location AS position_id,
AL.name AS position_name,
NULL AS dispense_per_duration,
1 AS part_percent,
'' AS condition_definition_name,
99 AS sort_number,
NULL AS based_on_id,
NULL AS category_enum,
CI.encounter_id AS encounter_id,
CI.patient_id AS patient_id,
'adm_device_definition' AS advice_table_name,
CI.product_id AS advice_definition_id
FROM adm_charge_item AS CI
LEFT JOIN adm_charge_item_definition CID ON CID.id = CI.definition_id AND CID.delete_flag = '0'
LEFT JOIN wor_device_request DR ON DR.id = CI.service_id AND DR.delete_flag = '0'
LEFT JOIN adm_location AS AL ON AL.id = DR.perform_location AND AL.delete_flag = '0'
WHERE CI.delete_flag = '0'
AND CI.service_table = 'wor_device_request'
<if test="historyFlag == '0'.toString()">
AND CI.encounter_id = #{encounterId}
</if>
<if test="historyFlag == '1'.toString()">
AND CI.patient_id = #{patientId} AND CI.encounter_id != #{encounterId}
</if>
ORDER BY CI.entered_date)
UNION ALL
(SELECT 2 AS advice_type,
T1.id AS request_id,
T1.id || '-2' AS unique_key,
@@ -538,7 +592,9 @@
T1.based_on_id AS based_on_id,
T1.category_enum AS category_enum,
T1.encounter_id AS encounter_id,
T1.patient_id AS patient_id
T1.patient_id AS patient_id,
'adm_device_definition' AS advice_table_name,
T1.device_def_id AS advice_definition_id
FROM wor_device_request AS T1
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
AND T2.delete_flag = '0'
@@ -590,7 +646,9 @@
T1.based_on_id AS based_on_id,
T1.category_enum AS category_enum,
T1.encounter_id AS encounter_id,
T1.patient_id AS patient_id
T1.patient_id AS patient_id,
'wor_activity_definition' AS advice_table_name,
T1.activity_id AS advice_definition_id
FROM wor_service_request AS T1
LEFT JOIN wor_activity_definition AS T2
ON T2.ID = T1.activity_id