47 lines
2.0 KiB
Markdown
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.
|