- Tambah .env loader di index.php untuk IBL_ENCRYPT_KEY dan IBL_ENCRYPT_SEARCH_KEY
- Library Ibl_encryptor: AES-256-GCM encrypt/decrypt + trigram blind index untuk partial search
- SQL migration: tambah kolom _enc dan _bidx di 16 tabel (m_patient, m_patientaddress, hasil lab, log)
- Script backup_pdp_tables.sh: backup tabel terdampak sebelum migrasi
- Script migrate_encrypt_patient.php: enkripsi batch 178K data PII pasien
- Script migrate_encrypt_results.php: enkripsi data medis hasil lab dan log
- Patient.php: search via trigram blind index, add_new/edit enkripsi sebelum save
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- generate_location dipindah ke luar trans_begin/commit agar order tidak rollback
- _do_generate_location_for_stations() diextract, iterasi semua station tanpa abort
- deteksi NO_MAPPING (loc_id null) sebelum INSERT
- location_warning ditambahkan ke response sukses (opsional untuk FE)
- endpoint retry_location untuk generate ulang lokasi yang belum terbentuk
- tiap kegagalan station dicatat ke error_log_order
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>