93 lines
2.7 KiB
SQL
93 lines
2.7 KiB
SQL
-- 诊断:门诊划价检索不出诊疗项目的问题
|
||
-- 问题描述:在门诊划价页面,检索不出诊疗项目
|
||
|
||
-- 1. 检查是否有诊疗项目定义数据
|
||
SELECT
|
||
COUNT(*) as total_count,
|
||
COUNT(CASE WHEN delete_flag = '0' THEN 1 END) as active_count,
|
||
COUNT(CASE WHEN delete_flag != '0' THEN 1 END) as deleted_count
|
||
FROM wor_activity_definition;
|
||
|
||
-- 2. 检查是否有收费项目(诊疗项目类型)
|
||
SELECT
|
||
T1.id,
|
||
T1.encounter_id,
|
||
T1.context_enum,
|
||
T1.product_id,
|
||
T1.status_enum,
|
||
T1.delete_flag,
|
||
T2.id as activity_def_id,
|
||
T2.name as activity_name,
|
||
T2.delete_flag as activity_delete_flag
|
||
FROM adm_charge_item AS T1
|
||
LEFT JOIN wor_activity_definition AS T2
|
||
ON T1.context_enum = 'ACTIVITY' -- 诊疗项目类型
|
||
AND T1.product_id = T2.id
|
||
AND T2.delete_flag = '0'
|
||
WHERE T1.context_enum = 'ACTIVITY'
|
||
AND T1.delete_flag = '0'
|
||
LIMIT 20;
|
||
|
||
-- 3. 检查是否有诊疗项目定义,但收费项目中的product_id无法匹配
|
||
SELECT
|
||
'诊疗项目定义存在,但收费项目无法匹配' as issue_type,
|
||
COUNT(*) as count
|
||
FROM wor_activity_definition wad
|
||
WHERE wad.delete_flag = '0'
|
||
AND NOT EXISTS (
|
||
SELECT 1
|
||
FROM adm_charge_item aci
|
||
WHERE aci.context_enum = 'ACTIVITY'
|
||
AND aci.product_id = wad.id
|
||
AND aci.delete_flag = '0'
|
||
);
|
||
|
||
-- 4. 检查收费项目中的诊疗项目,但定义表中没有对应数据
|
||
SELECT
|
||
'收费项目存在,但诊疗项目定义缺失' as issue_type,
|
||
COUNT(*) as count
|
||
FROM adm_charge_item aci
|
||
WHERE aci.context_enum = 'ACTIVITY'
|
||
AND aci.delete_flag = '0'
|
||
AND NOT EXISTS (
|
||
SELECT 1
|
||
FROM wor_activity_definition wad
|
||
WHERE wad.id = aci.product_id
|
||
AND wad.delete_flag = '0'
|
||
);
|
||
|
||
-- 5. 检查某个具体就诊的诊疗项目(替换encounterId为实际值)
|
||
-- SELECT
|
||
-- T1.encounter_id,
|
||
-- T1.id as charge_item_id,
|
||
-- T1.context_enum,
|
||
-- T1.product_id,
|
||
-- T1.status_enum,
|
||
-- T2.id as activity_def_id,
|
||
-- T2.name as activity_name,
|
||
-- T2.delete_flag as activity_delete_flag,
|
||
-- CASE
|
||
-- WHEN T2.id IS NULL THEN '诊疗项目定义不存在或已删除'
|
||
-- WHEN T2.delete_flag != '0' THEN '诊疗项目定义已删除'
|
||
-- ELSE '正常'
|
||
-- END as status
|
||
-- FROM adm_charge_item AS T1
|
||
-- LEFT JOIN wor_activity_definition AS T2
|
||
-- ON T1.context_enum = 'ACTIVITY'
|
||
-- AND T1.product_id = T2.id
|
||
-- WHERE T1.encounter_id = :encounterId -- 替换为实际的encounterId
|
||
-- AND T1.context_enum = 'ACTIVITY'
|
||
-- AND T1.delete_flag = '0'
|
||
-- AND T1.status_enum IN (1, 2, 3, 4, 5, 6); -- PLANNED, BILLABLE, BILLED, REFUNDING, REFUNDED, PART_REFUND
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|