diff --git a/cpone-dashboard/db/migrations/018_fix_patient_active_sync.sql b/cpone-dashboard/db/migrations/018_fix_patient_active_sync.sql index 371bef2..12cb568 100644 --- a/cpone-dashboard/db/migrations/018_fix_patient_active_sync.sql +++ b/cpone-dashboard/db/migrations/018_fix_patient_active_sync.sql @@ -12,6 +12,9 @@ -- 4. Kolom PK di INSERT INTO mcu_checkinout diperbaiki dari Mcu_CheckinoutCheckinoutID -- (tidak ada) menjadi Mcu_CheckinoutID, sesuai skema cpone_dashboard.mcu_checkinout -- yang sebenarnya. +-- 5. Mcu_ProjectTotalParticipant tidak lagi ikut m.Mgm_McuTotalParticipant (field target +-- manual di source yang bisa 0/belum diisi), melainkan dihitung langsung dari COUNT +-- baris aktif di cpone.mcu_preregister_patients untuk project tsb. DROP PROCEDURE IF EXISTS sp_generate_dashboard_data; @@ -33,9 +36,16 @@ BEGIN m.Mgm_McuID, m.Mgm_McuCorporateID, c.CorporateName, m.Mgm_McuNumber, m.Mgm_McuLabel, m.Mgm_McuM_BranchID, m.Mgm_McuStartDate, m.Mgm_McuEndDate, m.Mgm_McuIsActive, - m.Mgm_McuTotalParticipant, NOW() + COALESCE(pp.total, 0), NOW() FROM cpone.mgm_mcu m LEFT JOIN cpone.corporate c ON c.CorporateID = m.Mgm_McuCorporateID + LEFT JOIN ( + SELECT Mcu_PreregisterPatientsMgm_McuID AS mcu_id, COUNT(*) AS total + FROM cpone.mcu_preregister_patients + WHERE Mcu_PreregisterPatientsMgm_McuID = p_mcu_id + AND Mcu_PreregisterPatientsIsActive = 'Y' + GROUP BY Mcu_PreregisterPatientsMgm_McuID + ) pp ON pp.mcu_id = m.Mgm_McuID WHERE m.Mgm_McuID = p_mcu_id ON DUPLICATE KEY UPDATE Mcu_ProjectCorporateName = VALUES(Mcu_ProjectCorporateName),