Files
BE_CPONE/docs_summarydashboard_generate_dashboard.md
2026-04-29 09:53:37 +07:00

47 lines
2.0 KiB
Markdown

# Summarydashboard Generate -> cpone_dashboard
## Tujuan
- Hasil generate dari controller `summarydashboard/Generatedata` ikut masuk ke `cpone_dashboard`.
- Re-generate per `Mgm_McuID` harus idempotent: data lama untuk `Mgm_McuID` terkait dibersihkan lalu diisi ulang.
- Simpan jejak generate ke tabel `mcu_generate` setiap kali proses sinkronisasi dijalankan.
## Aturan Data
1. Tidak ada truncate global pada tabel hasil dashboard.
2. Scope selalu per `Mgm_McuID`.
3. Untuk kasus koreksi hasil (kelainan awal ada lalu hilang), data dashboard harus ikut terkoreksi (tanpa residue lama).
## Struktur Tabel di `cpone_dashboard`
- `mcu_generate`
- menyimpan riwayat generate: `Mgm_McuID`, `GenerateDate`, metadata project.
- `kelainan_details`
- tabel baru (versi dashboard) sebagai snapshot detail kelainan.
- `kelainan_summary`
- tabel baru (versi dashboard) sebagai ringkasan kelainan.
- `mcu_result_all`
- tabel baru (versi dashboard) sebagai gabungan hasil pemeriksaan.
Semua tabel dashboard menyimpan:
- `Mgm_McuID` (untuk scope regenerate)
- `Mcu_GenerateID` (relasi ke run generate)
- `Mcu_ProjectID` (opsional, diisi jika mapping dari `mcu_project` ditemukan)
## Flow Eksekusi Sinkronisasi
1. Validasi `Mgm_McuID` dan setup `mcu_number` aktif.
2. Resolve `Mcu_ProjectID` dari tabel `mcu_project` (dinamis berdasarkan kolom yang tersedia).
3. Insert row ke `mcu_generate` -> dapat `Mcu_GenerateID`.
4. Delete data lama pada 3 tabel dashboard untuk `Mgm_McuID` tersebut.
5. Insert ulang dari `cpone_corporate`:
- `kelainan_details` berdasarkan `Numbering` aktif.
- `kelainan_summary` berdasarkan `Mcu_KelainanMgm_McuID`.
- `mcu_result_all` berdasarkan `Mcu_ResultAllMgm_McuID`.
6. Commit transaksi.
## Catatan Implementasi
- Sinkronisasi dashboard dipanggil setelah generate utama selesai:
- `generate_kelainan_lab`
- `generate_kelainan_nonlab`
- `generate_kelainan_fisik`
- `generate_all_results`
- `summary_kelainan_sepuluh`
- Diproteksi dengan helper agar tidak duplikatif.