Add dashboard sync for generatedata

This commit is contained in:
sas.fajri
2026-04-29 09:51:55 +07:00
parent c0f0caad9e
commit c5b92649bd
3 changed files with 2524 additions and 0 deletions

View File

@@ -163,6 +163,28 @@ $db['cpone_corporate'] = array(
'save_queries' => TRUE
);
$db['cpone_dashboard'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'admin',
'password' => 'Sasone!102938',
'database' => 'cpone_dashboard',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['cpone_log'] = array(
'dsn' => '',
'hostname' => 'localhost',

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
# 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.