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

2.0 KiB

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.