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}