FHM09062601IBL - update CLAUDE.md: tambah list migration PDP dan catatan DOB VARCHAR

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sas.fajri
2026-06-11 13:46:08 +07:00
parent 49df769c58
commit 83bd46d521

View File

@@ -26,13 +26,16 @@ di-mask di kolom plain, nilai asli ada di kolom `_enc` (AES-256-GCM).
### Pola kolom PDP di m_patient
| Kolom plain | Isi plain | `_enc` | `_bidx` | Sumber bidx |
|---|---|---|---|---|
| `M_PatientName` | masked (`A*** B***`) | ✓ | ✓ | `M_PatientName` |
| `M_PatientHP` | masked | ✓ | ✓ | `M_PatientHP` |
| `M_PatientDOB` | masked | ✓ | ✓ | `M_PatientDOB` |
| `M_PatientIDNumber` | masked (`1234**...**09`) | ✓ | — | — |
| `M_PatientNIK` | plain (kosong/lama) | ✓ | ✓ | **`M_PatientIDNumber`** ← penting |
| Kolom plain | Tipe | Isi plain | `_enc` | `_bidx` | Sumber bidx |
|---|---|---|---|---|---|
| `M_PatientName` | VARCHAR | masked (`A*** B***`) | ✓ | ✓ | `M_PatientName` |
| `M_PatientHP` | VARCHAR | masked | ✓ | ✓ | `M_PatientHP` |
| `M_PatientDOB` | **VARCHAR(20)** | masked (`**-**-YYYY`) | ✓ | ✓ | `M_PatientDOB` (format d-m-Y) |
| `M_PatientIDNumber` | VARCHAR | masked (`1234**...**09`) | ✓ | — | — |
| `M_PatientNIK` | VARCHAR | plain (kosong/lama) | ✓ | ✓ | **`M_PatientIDNumber`** ← penting |
`M_PatientDOB` diubah ke `VARCHAR(20)` (dari DATE) agar nilai masked `**-**-YYYY` bisa tersimpan.
`_mask_dob($v)` menerima format `d-m-Y` dan mengembalikan `**-**-YYYY`.
**`M_PatientNIK_bidx` diisi dari `M_PatientIDNumber`**, bukan dari kolom `M_PatientNIK`.
Ini pola yang dipakai `ibl_registration/Patient.php` dan `Registrationv3.php`.
@@ -41,6 +44,16 @@ Search e[3] (format `Nama+HP+DOB+NIK`) menggunakan `JSON_CONTAINS(M_PatientNIK_b
Data lama yang disimpan sebelum pola ini diterapkan tidak akan punya `M_PatientNIK_bidx`
— perlu di-save ulang atau backfill script untuk bisa dicari by IDNumber.
### Daftar migration PDP yang sudah diterapkan
| File | Keterangan |
|---|---|
| `sql/manual_changes/2026-05-31-pdp-encrypt-columns.sql` | Tambah kolom `_enc` dan `_bidx` di m_patient, m_patientaddress, log tables |
| `sql/manual_changes/2026-05-31-pdp-update-triggers-enc.sql` | Update trigger untuk populate `_enc` |
| `sql/manual_changes/2026-06-08-pdp-fo-birt-sp-patient-print-cache.sql` | SP cache untuk BIRT |
| `sql/manual_changes/2026-06-11-alter-m-patient-dob-to-varchar.sql` | Ubah `M_PatientDOB` DATE → VARCHAR(20) |
| `sql/manual_changes/2026-06-11-alter-mcu-preregister-dob-to-varchar.sql` | Ubah `Mcu_PreregisterPatientsDOB` DATE → VARCHAR(20) |
### Pola wajib: PHP Proxy Stream
BIRT membaca dari tabel `patient_print_cache`. Cache harus di-populate PHP sebelum BIRT