fix(821 【住院护士站-出院管理】待处理执行单列表过滤规则错误,错误引入了药品(中成药)医嘱): 调整住院护理站执行单查询逻辑

移除原药品医嘱查询逻辑,新增注释说明待处理执行单仅展示非药品医嘱,药品相关查询由单独方法处理
This commit is contained in:
wangjian963
2026-06-29 14:17:05 +08:00
parent 42c6bdba76
commit 8de3c9f4c6

View File

@@ -497,149 +497,8 @@
ii.performer_check_id,
ii.category_code,
ii.org_name
FROM ((SELECT T1.encounter_id,
T1.tenant_id,
#{medMedicationRequest} AS advice_table,
T1.id AS request_id,
T1.effective_dose_start AS start_time,
T1.effective_dose_end AS end_time,
T1.practitioner_id AS requester_id,
T1.create_time AS request_time,
T1.skin_test_flag AS skin_test_flag,
T1.infusion_flag AS inject_flag,
T1.group_id AS group_id,
T1.performer_check_id,
T2."name" AS advice_name,
T2.id AS item_id,
T3.total_volume AS volume,
T1.lot_number AS lot_number,
T1.quantity AS quantity,
T1.unit_code AS unit_code,
T1.status_enum AS request_status,
T1.method_code AS method_code,
T1.rate_code AS rate_code,
T1.dose AS dose,
T1.dose_unit_code AS dose_unit_code,
al1.id AS position_id,
al1."name" AS position_name,
T1.dispense_per_duration AS dispense_per_duration,
T2.part_percent AS part_percent,
ccd."name" AS condition_definition_name,
T1.therapy_enum AS therapy_enum,
T1.sort_number AS sort_number,
T1.execute_num,
af.day_times,
ae.bus_no,
ap."name" AS patient_name,
al2."name" AS bed_name,
ap.gender_enum,
ap.birth_date,
ap.id AS patient_id,
fc.contract_name,
diagnosis.condition_names,
pra."name" AS admitting_doctor_name,
personal_account.balance_amount,
personal_account.id AS account_id,
T2.category_code,
COALESCE(ao.name, al1."name") AS org_name
FROM med_medication_request AS T1
LEFT JOIN med_medication_definition AS T2
ON T2.id = T1.medication_id
AND T2.delete_flag = '0'
LEFT JOIN med_medication AS T3
ON T3.medication_def_id = T2.ID
AND T3.delete_flag = '0'
LEFT JOIN adm_location AS al1
ON al1.id = T1.perform_location
AND al1.delete_flag = '0'
LEFT JOIN adm_organization AS ao
ON ao.id = T1.perform_org
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
AND ccd.delete_flag = '0'
LEFT JOIN adm_frequency af
ON af.rate_code = T1.rate_code
AND af.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON ae.id = T1.encounter_id
AND ae.class_enum = #{imp}
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_encounter_location ael
ON ae.id = ael.encounter_id
AND ael.delete_flag = '0'
AND ael.status_enum = #{active}
AND ael.form_enum = #{bed}
LEFT JOIN adm_location al2
ON ael.location_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.encounter_flag = 1
AND aa.delete_flag = '0'
LEFT JOIN fin_contract fc
ON aa.contract_no = fc.bus_no
AND fc.delete_flag = '0'
LEFT JOIN (SELECT aed.encounter_id,
STRING_AGG(ccd.name, ', ') AS condition_names
FROM adm_encounter_diagnosis aed
INNER JOIN cli_condition cc
ON cc.id = aed.condition_id
AND cc.delete_flag = '0'
INNER JOIN cli_condition_definition ccd
ON ccd.id = cc.definition_id
AND ccd.delete_flag = '0'
WHERE aed.delete_flag = '0'
GROUP BY aed.encounter_id) AS diagnosis
ON ae.id = diagnosis.encounter_id
LEFT JOIN adm_encounter_participant aep
ON ae.id = aep.encounter_id
AND aep.delete_flag = '0'
AND aep.status_enum = #{active}
AND aep.type_code::text = #{admittingDoctor}::text
LEFT JOIN adm_practitioner pra
ON aep.practitioner_id = pra.id
AND pra.delete_flag = '0'
LEFT JOIN (SELECT aa.id,
aa.encounter_id,
(aa.balance_amount -
COALESCE(SUM(CASE
WHEN aci.status_enum IN (#{billed}, #{billable})
THEN aci.total_price
ELSE 0 END), 0) +
COALESCE(SUM(CASE
WHEN aci.status_enum = #{refunded}
THEN aci.total_price
ELSE 0 END), 0)) AS balance_amount
FROM adm_account aa
LEFT JOIN adm_charge_item aci
ON aa.encounter_id = aci.encounter_id
AND aa.delete_flag = '0'
WHERE aa.type_code = #{personalCashAccount}
AND aa.delete_flag = '0'
GROUP BY aa.id,
aa.encounter_id,
aa.balance_amount) AS personal_account
ON personal_account.encounter_id = ae.id
WHERE T1.delete_flag = '0'
AND T1.refund_medicine_id IS NULL
AND T1.status_enum != #{stopped}
AND T1.status_enum != #{dispenseCompleted}
AND T1.generate_source_enum = #{doctorPrescription}
AND CASE
WHEN T1.status_enum = #{draft}
THEN T1.performer_check_id IS NOT NULL
ELSE 1 = 1 END
ORDER BY T1.status_enum,
T1.sort_number,
T1.group_id)
UNION
(SELECT T1.encounter_id,
<!-- 待处理执行单只展示非药品医嘱;药品取/退药由 getPendingMedication 单独查询。 -->
FROM (SELECT DISTINCT T1.encounter_id,
T1.tenant_id,
#{worServiceRequest} AS advice_table,
T1.id AS request_id,
@@ -776,7 +635,7 @@
THEN T1.performer_check_id IS NOT NULL
ELSE 1 = 1 END
AND T1.refund_service_id IS NULL
ORDER BY T1.status_enum)) AS ii
ORDER BY T1.status_enum) AS ii
${ew.customSqlSegment}
</select>
<select id="selectPerformRecordList" resultType="com.healthlink.his.web.common.dto.PerformRecordDto">
@@ -812,4 +671,4 @@
</foreach>
</if>
</select>
</mapper>
</mapper>