From 3d3ff82e249601428627a78a5916b8db8114dd68 Mon Sep 17 00:00:00 2001
From: suizihe <2958847195@qq.com>
Date: Mon, 10 Nov 2025 16:53:14 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8C=BB=E5=98=B1=E7=B1=BB?=
=?UTF-8?q?=E5=88=AB=E9=80=89=E6=8B=A9=E5=85=A8=E9=83=A8=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DoctorStationAdviceAppMapper.xml | 534 ++++++++++++------
1 file changed, 356 insertions(+), 178 deletions(-)
diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml
index 1daa048c..5b126360 100644
--- a/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml
+++ b/openhis-server-new/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml
@@ -41,188 +41,366 @@
abi.restricted_flag,
abi.restricted_scope
from (
-
- SELECT T1.tenant_id,
- 1 AS advice_type,
- T1.category_code AS category_code,
- T1.pharmacology_category_code AS pharmacology_category_code,
- T1.part_percent AS part_percent,
- T1.unit_conversion_ratio AS unit_conversion_ratio,
- T1.part_attribute_enum AS part_attribute_enum,
- T1.tho_part_attribute_enum AS tho_part_attribute_enum,
- T1.skin_test_flag AS skin_test_flag,
- T1.inject_flag AS inject_flag,
- T1.ID AS advice_definition_id,
- T1.NAME AS advice_name,
- T1.bus_no AS advice_bus_no,
- T1.py_str AS py_str,
- T1.wb_str AS wb_str,
- T1.yb_no AS yb_no,
- T1.merchandise_name AS product_name,
- 0 AS activity_type,
- T1.unit_code AS unit_code,
- T1.min_unit_code AS min_unit_code,
- T2.total_volume AS volume,
- T2.method_code AS method_code,
- T2.rate_code AS rate_code,
- T2.org_id AS org_id,
- T2.location_id AS location_id,
- CAST(T2.dose AS TEXT) AS dose,
- T2.dose_unit_code AS dose_unit_code,
- T3.NAME AS supplier,
- T3.id AS supplier_id,
- T1.manufacturer_text AS manufacturer,
- T5.id AS charge_item_definition_id,
- T5.instance_table AS advice_table_name,
- T6.def_location_id AS position_id,
- t1.restricted_flag AS restricted_flag,
- t1.restricted_scope AS restricted_scope
- FROM med_medication_definition AS t1
- INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
- AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
- LEFT JOIN adm_supplier AS T3
- ON T3.ID = T1.supply_id
- AND T3.delete_flag = '0'
- LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
- AND T5.delete_flag = '0'
- LEFT JOIN adm_organization_location AS T6
- ON T6.distribution_category_code = T1.category_code
- AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
- (CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
- WHERE T1.delete_flag = '0'
- AND T2.status_enum = #{statusEnum}
-
- AND 1 = 2
-
-
- AND T1.id IN
-
- #{itemId}
-
-
- AND T5.instance_table = #{medicationTableName}
-
+
+
+
+
+
+
+ SELECT T1.tenant_id,
+ 1 AS advice_type,
+ T1.category_code AS category_code,
+ T1.pharmacology_category_code AS pharmacology_category_code,
+ T1.part_percent AS part_percent,
+ T1.unit_conversion_ratio AS unit_conversion_ratio,
+ T1.part_attribute_enum AS part_attribute_enum,
+ T1.tho_part_attribute_enum AS tho_part_attribute_enum,
+ T1.skin_test_flag AS skin_test_flag,
+ T1.inject_flag AS inject_flag,
+ T1.ID AS advice_definition_id,
+ T1.NAME AS advice_name,
+ T1.bus_no AS advice_bus_no,
+ T1.py_str AS py_str,
+ T1.wb_str AS wb_str,
+ T1.yb_no AS yb_no,
+ T1.merchandise_name AS product_name,
+ 0 AS activity_type,
+ T1.unit_code AS unit_code,
+ T1.min_unit_code AS min_unit_code,
+ T2.total_volume AS volume,
+ T2.method_code AS method_code,
+ T2.rate_code AS rate_code,
+ T2.org_id AS org_id,
+ T2.location_id AS location_id,
+ CAST(T2.dose AS TEXT) AS dose,
+ T2.dose_unit_code AS dose_unit_code,
+ T3.NAME AS supplier,
+ T3.id AS supplier_id,
+ T1.manufacturer_text AS manufacturer,
+ T5.id AS charge_item_definition_id,
+ T5.instance_table AS advice_table_name,
+ T6.def_location_id AS position_id,
+ t1.restricted_flag AS restricted_flag,
+ t1.restricted_scope AS restricted_scope
+ FROM med_medication_definition AS t1
+ INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
+ AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
+ LEFT JOIN adm_supplier AS T3
+ ON T3.ID = T1.supply_id
+ AND T3.delete_flag = '0'
+ LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
+ AND T5.delete_flag = '0'
+ LEFT JOIN adm_organization_location AS T6
+ ON T6.distribution_category_code = T1.category_code
+ AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
+ (CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
+ WHERE T1.delete_flag = '0'
+ AND T2.status_enum = #{statusEnum}
+
+ AND 1 = 2
+
+
+ AND T1.id IN
+
+ #{itemId}
+
+
+ AND T5.instance_table = #{medicationTableName}
+ UNION ALL
+ SELECT T1.tenant_id,
+ 2 AS advice_type,
+ T1.category_code AS category_code,
+ '' AS pharmacology_category_code,
+ T1.part_percent AS part_percent,
+ 0 AS unit_conversion_ratio,
+ null AS part_attribute_enum,
+ null AS tho_part_attribute_enum,
+ null AS skin_test_flag,
+ null AS inject_flag,
+ T1.ID AS advice_definition_id,
+ T1.NAME AS advice_name,
+ T1.bus_no AS advice_bus_no,
+ T1.py_str AS py_str,
+ T1.wb_str AS wb_str,
+ T1.yb_no AS yb_no,
+ '' AS product_name,
+ 0 AS activity_type,
+ T1.unit_code AS unit_code,
+ T1.min_unit_code AS min_unit_code,
+ T1.SIZE AS volume,
+ '' AS method_code,
+ '' AS rate_code,
+ T1.org_id AS org_id,
+ T1.location_id AS location_id,
+ '' AS dose,
+ '' AS dose_unit_code,
+ T2.NAME AS supplier,
+ T2.id AS supplier_id,
+ T1.manufacturer_text AS manufacturer,
+ T4.id AS charge_item_definition_id,
+ T4.instance_table AS advice_table_name,
+ T5.def_location_id AS position_id,
+ 0 AS restricted_flag,
+ '' AS restricted_scope
+ FROM adm_device_definition AS T1
+ LEFT JOIN adm_supplier AS T2
+ ON T2.ID = T1.supply_id
+ AND T2.delete_flag = '0'
+ LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
+ AND T4.delete_flag = '0'
+ LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
+ AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
+ (CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
+ WHERE T1.delete_flag = '0'
+
+ AND T1.id IN
+
+ #{itemId}
+
+
+ AND T4.instance_table = #{deviceTableName}
+ AND T1.category_code = #{singleUse}
+ AND T1.status_enum = #{statusEnum}
+ UNION ALL
+ SELECT T1.tenant_id,
+ 3 AS advice_type,
+ T1.category_code AS category_code,
+ '' AS pharmacology_category_code,
+ 1 AS part_percent,
+ 0 AS unit_conversion_ratio,
+ null AS part_attribute_enum,
+ null AS tho_part_attribute_enum,
+ null AS skin_test_flag,
+ null AS inject_flag,
+ T1.ID AS advice_definition_id,
+ T1.NAME AS advice_name,
+ T1.bus_no AS advice_bus_no,
+ T1.py_str AS py_str,
+ T1.wb_str AS wb_str,
+ T1.yb_no AS yb_no,
+ '' AS product_name,
+ T1.type_enum AS activity_type,
+ '' AS unit_code,
+ '' AS min_unit_code,
+ '' AS volume,
+ '' AS method_code,
+ '' AS rate_code,
+ T1.org_id AS org_id,
+ T1.location_id AS location_id,
+ '' AS dose,
+ '' AS dose_unit_code,
+ '' AS supplier,
+ null AS supplier_id,
+ '' AS manufacturer,
+ T2.ID AS charge_item_definition_id,
+ T2.instance_table AS advice_table_name,
+ COALESCE(T3.organization_id, T1.org_id) AS position_id,
+ 0 AS restricted_flag,
+ '' AS restricted_scope
+ FROM wor_activity_definition AS T1
+ LEFT JOIN adm_charge_item_definition AS T2
+ ON T2.instance_id = T1.ID
+ AND T2.delete_flag = '0'
+ LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
+ AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
+ WHERE T1.delete_flag = '0'
+
+ AND T1.pricing_flag = #{pricingFlag}
+
+
+ AND T1.id IN
+
+ #{itemId}
+
+
+ AND T1.status_enum = #{statusEnum}
+ AND T2.instance_table = #{activityTableName}
+
+
+
+
+
+
+ SELECT T1.tenant_id,
+ 1 AS advice_type,
+ T1.category_code AS category_code,
+ T1.pharmacology_category_code AS pharmacology_category_code,
+ T1.part_percent AS part_percent,
+ T1.unit_conversion_ratio AS unit_conversion_ratio,
+ T1.part_attribute_enum AS part_attribute_enum,
+ T1.tho_part_attribute_enum AS tho_part_attribute_enum,
+ T1.skin_test_flag AS skin_test_flag,
+ T1.inject_flag AS inject_flag,
+ T1.ID AS advice_definition_id,
+ T1.NAME AS advice_name,
+ T1.bus_no AS advice_bus_no,
+ T1.py_str AS py_str,
+ T1.wb_str AS wb_str,
+ T1.yb_no AS yb_no,
+ T1.merchandise_name AS product_name,
+ 0 AS activity_type,
+ T1.unit_code AS unit_code,
+ T1.min_unit_code AS min_unit_code,
+ T2.total_volume AS volume,
+ T2.method_code AS method_code,
+ T2.rate_code AS rate_code,
+ T2.org_id AS org_id,
+ T2.location_id AS location_id,
+ CAST(T2.dose AS TEXT) AS dose,
+ T2.dose_unit_code AS dose_unit_code,
+ T3.NAME AS supplier,
+ T3.id AS supplier_id,
+ T1.manufacturer_text AS manufacturer,
+ T5.id AS charge_item_definition_id,
+ T5.instance_table AS advice_table_name,
+ T6.def_location_id AS position_id,
+ t1.restricted_flag AS restricted_flag,
+ t1.restricted_scope AS restricted_scope
+ FROM med_medication_definition AS t1
+ INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
+ AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
+ LEFT JOIN adm_supplier AS T3
+ ON T3.ID = T1.supply_id
+ AND T3.delete_flag = '0'
+ LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
+ AND T5.delete_flag = '0'
+ LEFT JOIN adm_organization_location AS T6
+ ON T6.distribution_category_code = T1.category_code
+ AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
+ (CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
+ WHERE T1.delete_flag = '0'
+ AND T2.status_enum = #{statusEnum}
+
+ AND 1 = 2
+
+
+ AND T1.id IN
+
+ #{itemId}
+
+
+ AND T5.instance_table = #{medicationTableName}
+
-
- UNION ALL
-
+ UNION ALL
-
- SELECT T1.tenant_id,
- 2 AS advice_type,
- T1.category_code AS category_code,
- '' AS pharmacology_category_code,
- T1.part_percent AS part_percent,
- 0 AS unit_conversion_ratio,
- null AS part_attribute_enum,
- null AS tho_part_attribute_enum,
- null AS skin_test_flag,
- null AS inject_flag,
- T1.ID AS advice_definition_id,
- T1.NAME AS advice_name,
- T1.bus_no AS advice_bus_no,
- T1.py_str AS py_str,
- T1.wb_str AS wb_str,
- T1.yb_no AS yb_no,
- '' AS product_name,
- 0 AS activity_type,
- T1.unit_code AS unit_code,
- T1.min_unit_code AS min_unit_code,
- T1.SIZE AS volume,
- '' AS method_code,
- '' AS rate_code,
- T1.org_id AS org_id,
- T1.location_id AS location_id,
- '' AS dose,
- '' AS dose_unit_code,
- T2.NAME AS supplier,
- T2.id AS supplier_id,
- T1.manufacturer_text AS manufacturer,
- T4.id AS charge_item_definition_id,
- T4.instance_table AS advice_table_name,
- T5.def_location_id AS position_id,
- 0 AS restricted_flag,
- '' AS restricted_scope
- FROM adm_device_definition AS T1
- LEFT JOIN adm_supplier AS T2
- ON T2.ID = T1.supply_id
- AND T2.delete_flag = '0'
- LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
- AND T4.delete_flag = '0'
- LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
- AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
- (CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
- WHERE T1.delete_flag = '0'
-
- AND T1.id IN
-
- #{itemId}
-
-
- AND T4.instance_table = #{deviceTableName}
- AND T1.category_code = #{singleUse}
- AND T1.status_enum = #{statusEnum}
-
+
+ SELECT T1.tenant_id,
+ 2 AS advice_type,
+ T1.category_code AS category_code,
+ '' AS pharmacology_category_code,
+ T1.part_percent AS part_percent,
+ 0 AS unit_conversion_ratio,
+ null AS part_attribute_enum,
+ null AS tho_part_attribute_enum,
+ null AS skin_test_flag,
+ null AS inject_flag,
+ T1.ID AS advice_definition_id,
+ T1.NAME AS advice_name,
+ T1.bus_no AS advice_bus_no,
+ T1.py_str AS py_str,
+ T1.wb_str AS wb_str,
+ T1.yb_no AS yb_no,
+ '' AS product_name,
+ 0 AS activity_type,
+ T1.unit_code AS unit_code,
+ T1.min_unit_code AS min_unit_code,
+ T1.SIZE AS volume,
+ '' AS method_code,
+ '' AS rate_code,
+ T1.org_id AS org_id,
+ T1.location_id AS location_id,
+ '' AS dose,
+ '' AS dose_unit_code,
+ T2.NAME AS supplier,
+ T2.id AS supplier_id,
+ T1.manufacturer_text AS manufacturer,
+ T4.id AS charge_item_definition_id,
+ T4.instance_table AS advice_table_name,
+ T5.def_location_id AS position_id,
+ 0 AS restricted_flag,
+ '' AS restricted_scope
+ FROM adm_device_definition AS T1
+ LEFT JOIN adm_supplier AS T2
+ ON T2.ID = T1.supply_id
+ AND T2.delete_flag = '0'
+ LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
+ AND T4.delete_flag = '0'
+ LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
+ AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
+ (CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
+ WHERE T1.delete_flag = '0'
+
+ AND T1.id IN
+
+ #{itemId}
+
+
+ AND T4.instance_table = #{deviceTableName}
+ AND T1.category_code = #{singleUse}
+ AND T1.status_enum = #{statusEnum}
+
-
- UNION ALL
-
+ UNION ALL
-
- SELECT T1.tenant_id,
- 3 AS advice_type,
- T1.category_code AS category_code,
- '' AS pharmacology_category_code,
- 1 AS part_percent,
- 0 AS unit_conversion_ratio,
- null AS part_attribute_enum,
- null AS tho_part_attribute_enum,
- null AS skin_test_flag,
- null AS inject_flag,
- T1.ID AS advice_definition_id,
- T1.NAME AS advice_name,
- T1.bus_no AS advice_bus_no,
- T1.py_str AS py_str,
- T1.wb_str AS wb_str,
- T1.yb_no AS yb_no,
- '' AS product_name,
- T1.type_enum AS activity_type,
- '' AS unit_code,
- '' AS min_unit_code,
- '' AS volume,
- '' AS method_code,
- '' AS rate_code,
- T1.org_id AS org_id,
- T1.location_id AS location_id,
- '' AS dose,
- '' AS dose_unit_code,
- '' AS supplier,
- null AS supplier_id,
- '' AS manufacturer,
- T2.ID AS charge_item_definition_id,
- T2.instance_table AS advice_table_name,
- COALESCE(T3.organization_id, T1.org_id) AS position_id,
- 0 AS restricted_flag,
- '' AS restricted_scope
- FROM wor_activity_definition AS T1
- LEFT JOIN adm_charge_item_definition AS T2
- ON T2.instance_id = T1.ID
- AND T2.delete_flag = '0'
- LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
- AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
- WHERE T1.delete_flag = '0'
-
- AND T1.pricing_flag = #{pricingFlag}
-
-
- AND T1.id IN
-
- #{itemId}
-
-
- AND T1.status_enum = #{statusEnum}
- AND T2.instance_table = #{activityTableName}
-
+
+ SELECT T1.tenant_id,
+ 3 AS advice_type,
+ T1.category_code AS category_code,
+ '' AS pharmacology_category_code,
+ 1 AS part_percent,
+ 0 AS unit_conversion_ratio,
+ null AS part_attribute_enum,
+ null AS tho_part_attribute_enum,
+ null AS skin_test_flag,
+ null AS inject_flag,
+ T1.ID AS advice_definition_id,
+ T1.NAME AS advice_name,
+ T1.bus_no AS advice_bus_no,
+ T1.py_str AS py_str,
+ T1.wb_str AS wb_str,
+ T1.yb_no AS yb_no,
+ '' AS product_name,
+ T1.type_enum AS activity_type,
+ '' AS unit_code,
+ '' AS min_unit_code,
+ '' AS volume,
+ '' AS method_code,
+ '' AS rate_code,
+ T1.org_id AS org_id,
+ T1.location_id AS location_id,
+ '' AS dose,
+ '' AS dose_unit_code,
+ '' AS supplier,
+ null AS supplier_id,
+ '' AS manufacturer,
+ T2.ID AS charge_item_definition_id,
+ T2.instance_table AS advice_table_name,
+ COALESCE(T3.organization_id, T1.org_id) AS position_id,
+ 0 AS restricted_flag,
+ '' AS restricted_scope
+ FROM wor_activity_definition AS T1
+ LEFT JOIN adm_charge_item_definition AS T2
+ ON T2.instance_id = T1.ID
+ AND T2.delete_flag = '0'
+ LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
+ AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
+ WHERE T1.delete_flag = '0'
+
+ AND T1.pricing_flag = #{pricingFlag}
+
+
+ AND T1.id IN
+
+ #{itemId}
+
+
+ AND T1.status_enum = #{statusEnum}
+ AND T2.instance_table = #{activityTableName}
+
+
+
+
) AS abi
${ew.customSqlSegment}