解决合并冲突
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
<select id="getAdviceBaseInfo" resultType="com.openhis.web.doctorstation.dto.AdviceBaseDto">
|
||||
SELECT abi.tenant_id,
|
||||
abi.advice_type,
|
||||
abi.bus_no,
|
||||
abi.category_code,
|
||||
abi.pharmacology_category_code,
|
||||
abi.part_percent,
|
||||
@@ -39,8 +40,10 @@
|
||||
abi.advice_table_name,
|
||||
abi.position_id,
|
||||
abi.restricted_flag,
|
||||
abi.restricted_scope
|
||||
abi.restricted_scope,
|
||||
abi.dosage_instruction
|
||||
from (
|
||||
<<<<<<< HEAD
|
||||
<!-- 改进SQL逻辑,确保所有情况都能正确处理,避免空的FROM子查询 -->
|
||||
<!-- 当adviceTypes包含4或不在1-3范围内时,或者adviceTypes为空/null时,查询所有类型 -->
|
||||
<choose>
|
||||
@@ -401,6 +404,206 @@
|
||||
</if>
|
||||
</otherwise>
|
||||
</choose>
|
||||
=======
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
(SELECT
|
||||
DISTINCT ON (T1.ID)
|
||||
T1.tenant_id,
|
||||
1 AS advice_type,
|
||||
T1.bus_no AS bus_no,
|
||||
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,
|
||||
T1.dosage_instruction AS dosage_instruction
|
||||
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' AND T5.status_enum = #{statusEnum}
|
||||
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}
|
||||
<if test="pricingFlag ==1">
|
||||
AND 1 = 2
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T5.instance_table = #{medicationTableName}
|
||||
)
|
||||
</if>
|
||||
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2) or adviceTypes.contains(3)">UNION ALL</if>
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2)">
|
||||
(SELECT
|
||||
DISTINCT ON (T1.ID)
|
||||
T1.tenant_id,
|
||||
2 AS advice_type,
|
||||
T1.bus_no AS bus_no,
|
||||
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,
|
||||
'' AS dosage_instruction
|
||||
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' AND T4.status_enum = #{statusEnum}
|
||||
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'
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T4.instance_table = #{deviceTableName}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
)
|
||||
</if>
|
||||
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(2)">
|
||||
<if test="adviceTypes == null or adviceTypes.contains(3)">UNION ALL</if>
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes == null or adviceTypes.contains(3)">
|
||||
(SELECT
|
||||
DISTINCT ON (T1.ID)
|
||||
T1.tenant_id,
|
||||
3 AS advice_type,
|
||||
T1.bus_no AS bus_no,
|
||||
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,
|
||||
T3.organization_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope,
|
||||
'' AS dosage_instruction
|
||||
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' AND T2.status_enum = #{statusEnum}
|
||||
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'
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.pricing_flag = #{pricingFlag}
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
)
|
||||
</if>
|
||||
>>>>>>> upstream/develop
|
||||
) AS abi
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
@@ -492,6 +695,17 @@
|
||||
AND (CURRENT_TIME :: TIME ( 6 ) BETWEEN aol.start_time AND aol.end_time)
|
||||
</select>
|
||||
|
||||
<select id="getTakeDeviceLocationId" resultType="long">
|
||||
SELECT aol.def_location_id AS location_id
|
||||
FROM adm_organization_location AS aol
|
||||
INNER JOIN adm_encounter AS ae ON ae.organization_id = aol.organization_id
|
||||
WHERE aol.delete_flag = '0'
|
||||
AND aol.distribution_category_code = #{distributionCategoryCode}
|
||||
AND ae.ID = #{encounterId}
|
||||
AND aol.start_time <= CURRENT_TIME
|
||||
AND aol.end_time >= CURRENT_TIME
|
||||
</select>
|
||||
|
||||
<select id="getChildCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
||||
SELECT
|
||||
T1.definition_id,
|
||||
@@ -524,7 +738,7 @@
|
||||
FROM
|
||||
adm_charge_item_definition
|
||||
WHERE
|
||||
delete_flag = '0'
|
||||
delete_flag = '0' AND status_enum = #{statusEnum}
|
||||
<if test="chargeItemDefinitionIdList != null and !chargeItemDefinitionIdList.isEmpty()">
|
||||
AND id IN
|
||||
<foreach collection="chargeItemDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
@@ -537,6 +751,7 @@
|
||||
(SELECT 1 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-1' AS unique_key,
|
||||
T1.prescription_no AS prescription_no,
|
||||
T1.practitioner_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.practitioner_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
@@ -573,7 +788,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
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0 AND T1.generate_source_enum = #{generateSourceEnum}
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
@@ -586,6 +801,7 @@
|
||||
(SELECT 2 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-2' AS unique_key,
|
||||
'' AS prescription_no,
|
||||
T1.requester_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
@@ -619,7 +835,7 @@
|
||||
ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
|
||||
T3.service_table = #{WOR_DEVICE_REQUEST}
|
||||
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
@@ -632,6 +848,7 @@
|
||||
(SELECT 3 AS advice_type,
|
||||
T1.id AS request_id,
|
||||
T1.id || '-3' AS unique_key,
|
||||
'' AS prescription_no,
|
||||
T1.requester_id AS requester_id,
|
||||
T1.create_time AS request_time,
|
||||
CASE WHEN T1.requester_id = #{practitionerId} THEN '1' ELSE '0' END AS biz_request_flag,
|
||||
@@ -665,7 +882,7 @@
|
||||
LEFT JOIN adm_charge_item AS T3 ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
|
||||
T3.service_table = #{WOR_SERVICE_REQUEST}
|
||||
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
|
||||
AND T1.based_on_table is null
|
||||
AND T1.parent_id IS NULL
|
||||
AND T1.refund_service_id IS NULL
|
||||
@@ -690,16 +907,56 @@
|
||||
</select>
|
||||
|
||||
<select id="getActivityBindDevice" resultType="com.openhis.web.doctorstation.dto.ActivityBindDeviceDetailDto">
|
||||
SELECT item_no AS activity_id,
|
||||
dev_act_id AS device_id,
|
||||
quantity,
|
||||
unit_code
|
||||
FROM tmp_activity_device
|
||||
WHERE delete_flag = '0'
|
||||
AND status_enum = #{status}
|
||||
AND type_code = '2'
|
||||
AND dev_act_table = #{tableName}
|
||||
AND item_no = #{activityId}
|
||||
SELECT tcd.item_no AS activity_id,
|
||||
tcd.dev_act_id AS device_id,
|
||||
tcd.quantity,
|
||||
tcd.unit_code,
|
||||
CASE
|
||||
WHEN tcd.unit_code = adde.min_unit_code THEN
|
||||
tcd.quantity
|
||||
ELSE tcd.quantity * adde.part_percent
|
||||
END AS min_unit_code_quantity,
|
||||
CASE
|
||||
WHEN tcd.unit_code = adde.min_unit_code THEN
|
||||
tcd.unit_code
|
||||
ELSE adde.min_unit_code
|
||||
END AS min_unit_code
|
||||
FROM tmp_activity_device AS tcd
|
||||
LEFT JOIN adm_device_definition AS adde ON adde.ID = CAST(tcd.dev_act_id AS BIGINT)
|
||||
AND adde.delete_flag = '0'
|
||||
WHERE tcd.delete_flag = '0'
|
||||
AND tcd.status_enum = #{status}
|
||||
AND tcd.type_code = '2'
|
||||
AND tcd.dev_act_table = #{tableName}
|
||||
AND tcd.item_no = #{activityId}
|
||||
</select>
|
||||
|
||||
<select id="getOrderBindInfo" resultType="com.openhis.web.doctorstation.dto.OrderBindInfoDto">
|
||||
SELECT tad.dev_act_id AS order_definition_id,
|
||||
tad.quantity AS quantity,
|
||||
tad.unit_code AS unit_code,
|
||||
sdd.dict_label AS unit_code_name,
|
||||
CASE
|
||||
WHEN tad.dev_act_table = 'adm_device_definition' THEN
|
||||
adm.NAME
|
||||
WHEN tad.dev_act_table = 'wor_activity_definition' THEN
|
||||
wor.NAME
|
||||
ELSE NULL
|
||||
END AS order_definition_name
|
||||
FROM tmp_activity_device AS tad
|
||||
LEFT JOIN adm_device_definition AS adm ON tad.dev_act_table = 'adm_device_definition'
|
||||
AND tad.dev_act_id = adm.
|
||||
ID
|
||||
LEFT JOIN wor_activity_definition AS wor ON tad.dev_act_table = 'wor_activity_definition'
|
||||
AND tad.dev_act_id = wor.
|
||||
ID
|
||||
LEFT JOIN sys_dict_data AS sdd ON sdd.dict_value = tad.unit_code
|
||||
AND sdd.dict_type = 'unit_code'
|
||||
AND sdd.status = '0'
|
||||
WHERE tad.delete_flag = '0'
|
||||
AND tad.status_enum = #{status}
|
||||
AND tad.type_code = #{typeCode}
|
||||
AND tad.item_no = #{itemNo}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -57,6 +57,7 @@
|
||||
T1.dispense_per_duration AS dispense_per_duration,
|
||||
T1.chinese_herbs_dose_quantity AS chinese_herbs_dose_quantity,
|
||||
T1.suffering_flag AS suffering_flag,
|
||||
T1.dosage_instruction AS dosage_instruction,
|
||||
T2.part_percent AS part_percent,
|
||||
ccd.name AS condition_definition_name
|
||||
FROM med_medication_request AS T1
|
||||
@@ -69,7 +70,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 = 1
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1 AND T1.generate_source_enum = #{generateSourceEnum}
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
@@ -122,7 +123,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 = 1
|
||||
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 1 AND T1.generate_source_enum = #{generateSourceEnum}
|
||||
<if test="historyFlag == '0'.toString()">
|
||||
AND T1.encounter_id = #{encounterId}
|
||||
</if>
|
||||
|
||||
@@ -23,7 +23,8 @@
|
||||
T10.register_time,
|
||||
T10.reception_time,
|
||||
T10.practitioner_user_id,
|
||||
T10.jz_practitioner_user_id
|
||||
T10.jz_practitioner_user_id,
|
||||
T10.bus_no
|
||||
from
|
||||
(
|
||||
SELECT T1.tenant_id AS tenant_id,
|
||||
@@ -48,6 +49,7 @@
|
||||
T1.create_time AS register_time,
|
||||
T1.reception_time AS reception_time,
|
||||
T1.organization_id AS org_id,
|
||||
T8.bus_no AS bus_no,
|
||||
CASE
|
||||
WHEN T9.patient_id IS NOT NULL THEN 1
|
||||
ELSE 0
|
||||
@@ -59,6 +61,7 @@
|
||||
ON T1.ID = T4.encounter_id AND T4.type_code = #{participantType}
|
||||
AND T4.status_enum = #{activityStatus}
|
||||
AND T4.delete_flag = '0'
|
||||
AND T1.status_enum = #{encounterStatus}
|
||||
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_participant AS aep ON T1.ID = aep.encounter_id
|
||||
AND aep.type_code = #{participantType2}
|
||||
@@ -75,8 +78,11 @@
|
||||
T1.delete_flag = '0'
|
||||
<!-- 当前登录账号ID 和 当前登录账号所属的科室ID 用于控制数据权限 -->
|
||||
<if test="userId != null and currentUserOrganizationId != null">
|
||||
AND ( T5.user_id = #{userId}
|
||||
OR (T1.organization_id = #{currentUserOrganizationId}) )
|
||||
AND (
|
||||
(T4.encounter_id IS NOT NULL AND T5.user_id = #{userId})
|
||||
OR
|
||||
(T4.encounter_id IS NULL AND T1.organization_id = #{currentUserOrganizationId})
|
||||
)
|
||||
</if>
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.status_enum != #{encounterStatus}
|
||||
|
||||
Reference in New Issue
Block a user