diff --git a/UAT_GDC_CMOD_Checklist.html b/UAT_GDC_CMOD_Checklist.html
deleted file mode 100644
index a9a4490..0000000
--- a/UAT_GDC_CMOD_Checklist.html
+++ /dev/null
@@ -1,251 +0,0 @@
-
-
-
-
-
-
-
๐ UAT (User Acceptance Testing) ๐งช - GDC CMOD Laboratory Management System ๐ฅ
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Role | Hasil | Issue/Jawaban |
-| ๐ฏ | ๐ Ready to Test! | ๐ Let's Go! | โจ Good Luck! | ๐ฅ All Roles | ๐ Fun! | ๐ Notes... |
-| TC-001 | Login Berhasil ๐ | Login dengan username & password valid | Redirect ke dashboard sesuai role ๐ฏ | AUTENTIKASI & SESI ๐ | โ
โ | |
-| TC-002 | Login Gagal - Username / Password Salah ๐ซ | Salah username / salah password | Error "Invalid credentials" โ ๏ธ | AUTENTIKASI & SESI ๐ | โ
โ | |
-| TC-003 | Logout Berhasil ๐ | Klik menu Logout | Session terhapus, redirect ke login โจ | AUTENTIKASI & SESI ๐ | โ
โ | |
-| TC-004 | Redirect ke Login Belum Login ๐ | Akses protected page tanpa login | Redirect otomatis ke halaman login ๐ช | AUTENTIKASI & SESI ๐ก๏ธ | โ
โ | |
-| TC-005 | Ganti Password Berhasil ๐ | Change password baru | Password berhasil diubah dan di-hash โ
| AUTENTIKASI & SESI ๐ | โ
โ | |
-| TC-006 | Ganti Password Gagal - Password Lama Salah โ | Masukkan password lama salah | Error "Invalid old password" ๐ซ | AUTENTIKASI & SESI ๐ | โ
โ | |
-| TC-007 | Role-Based Redirect Login ๐ฅ | Login dengan berbagai role | Redirect ke dashboard sesuai role ๐ฏ | AUTENTIKASI & SESI ๐ญ | โ
โ | |
-| TC-008 | Tampilkan Semua Request ๐ | Login Superuser โ /superuser | Tabel requests semua status ditampilkan ๐ | SU, ADM, PHLEB, CS | โ
โ | |
-| TC-009 | Filter by Status ๐๏ธ | Pilih status di dashboard filter | Filter berfungsi sesuai status ๐ | SU | โ
โ | |
-| TC-010 | Filter by Date Range ๐
| Set date1 & date2 โ filter | Filter tanggal berfungsi ๐๏ธ | SU | โ
โ | |
-| TC-011 | Search by Patient Name ๐ค | Masukkan nama pasien | Tampilkan request dengan nama tsb ๐ | SU | โ
โ | |
-| TC-012 | Search by Lab Number ๐ข | Masukkan Lab Number | Tampilkan request tsb ๐ฏ | SU | โ
โ | |
-| TC-013 | Search by Register Number #๏ธโฃ | Masukkan Register Number | Tampilkan request tsb ๐ | SU | โ
โ | |
-| TC-014 | Table Sorting โ๏ธ | Klik header kolom | Kolom di-sort ASC/DESC ๐๐ | SU | โ
โ | |
-| TC-015 | Pagination ๐ | Klik halaman berbeda | Berpindah halaman dengan benar ๐ | SU | โ
โ | |
-| TC-016 | Tampilkan List User ๐ฅ | Access /superuser/users | Tabel users ditampilkan lengkap ๐ | SU, ADM | โ
โ | |
-| TC-017 | Buat User Baru โ | Add User โ isi form | User berhasil dibuat dan password di-hash ๐ | SU, ADM | โ
โ | |
-| TC-018 | Validasi Password Min 3 Karakter ๐ข | Buat user dengan password < 3 char | Error "Password min 3 karakter" โ ๏ธ | SU | โ
โ | |
-| TC-019 | Update User Role โ๏ธ | Edit user โ ubah role | Role berhasil diubah ๐ | SU | โ
โ | |
-| TC-020 | Update Password User ๐ | Edit user โ ganti password | Password di-hash dengan benar ๐ | SU | โ
โ | |
-| TC-021 | Delete User ๐๏ธ | Delete user | User terhapus dari database ๐๏ธ | SU, ADM | โ
โ | |
-| TC-022 | Tampilkan Request Final โจ | Access /superuser/validate | Hanya request "Fin" yang tampil โ
| SU, ADM, LAB | โ
โ | |
-| TC-023 | Filter by Date Range Validasi ๐
| Set date1 & date2 โ filter | Filter berfungsi di halaman validasi ๐ | SU | โ
โ | |
-| TC-024 | First Validation (VAL1) โ
| Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset ๐ | SU, ADM, LAB | โ
โ | |
-| TC-025 | Second Validation (VAL2) โ
โ
| Validasi dengan user berbeda | ISVAL2=1, request duavalidated ๐ | SU, ADM, LAB | โ
โ | |
-| TC-026 | Gagal Validasi Sendiri ๐ซ | Coba validasi ulang sama user | Error "Cannot validate own request" ๐
| SU, ADM, LAB | โ
โ | |
-| TC-027 | Un-Validate Request โฉ๏ธ | Un-validate dengan reason | ISVAL reset, PENDING diset ๐ | SU, ADM | โ
โ | |
-| TC-028 | Shortcut Keyboard โจ๏ธ | Enter=Validate, N=Skip, Esc=Close | Shortcut berfungsi dengan benar โก | SU | โ
โ | |
-| TC-029 | Un-Receive Sample ๐ | Un-receive sample yang received | Status berubah, audit log tercatat ๐ | SU, ADM, LAB | โ
โ | |
-| TC-030 | Print Label Individu ๐ท๏ธ | Print label per tube | Label tercetak dengan ZPL format ๐จ๏ธ | SU | โ
โ | |
-| TC-031 | Print Collection Label ๐ | Print collection label | Label collection tercetak ๐ท๏ธ | SU | โ
โ | |
-| TC-032 | Print All Labels ๐ | Print semua tubes | Semua labels tercetak ๐จ๏ธ | SU | โ
โ | |
-| TC-033 | View Request Audit ๐ | Buka audit dialog request | Audit trail timeline ditampilkan ๐ | SU | โ
โ | |
-| TC-034 | Filter by Category ๐ฏ | Filter: All, Validation, Receive, Sample | Filter berfungsi sesuai kategori ๐ | SU | โ
โ | |
-| TC-035 | View Report Validated ๐ | View report request duavalidated | Report ditampilkan lengkap ๐ | SU, ADM, LAB, CS | โ
โ | |
-| TC-036 | Cannot View Not Validated ๐ซ | View report belum duavalidated | Error: "Validated request required" โ ๏ธ | SU | โ
โ | |
-| TC-037 | Print Report ๐จ๏ธ | Print report request validated | Print dialog buka, audit log tercatat ๐ | SU, ADM, LAB, CS | โ
โ | |
-| TC-038 | Generate PDF ๐ | Generate PDF request validated | PDF berhasil di-generate โ
| SU, ADM, LAB, CS | โ
โ | |
-| TC-039 | Preview Report (No Audit) ๐ | Preview report tanpa log audit | Report tampil, tidak ada audit log ๐ | SU | โ
โ | |
-| TC-040 | English Version Report ๐ฌ๐ง | Access /report/{id}/eng | Report dalam Bahasa Inggris ๐ฃ๏ธ | SU | โ
โ | |
-| TC-041 | Error Handling 404 ๐ซ | Akses URL tidak valid | Custom notfound page tampil ๐ | SU | โ
โ | |
-| TC-042 | Error Handling Unauthorized ๐ | Coba akses role lain | Redirect ke /unauthorized ๐ซ | SU | โ
โ | |
-| TC-043 | Filter & Search ๐ | Uji berbagai filter dan search | Semua berfungsi seperti Superuser โก | ADMIN, PHLEB, CS | โ
โ | |
-| TC-044 | Edit Comment Enabled โ๏ธ | Edit comment dashboard | Comment dapat diubah ๐ฌ | ADMIN | โ
โ | |
-| TC-045 | View Audit Trail ๐ | Buka audit dialog | Timeline audit ditampilkan ๐ | ADM, LAB, PHLEB, CS | โ
โ | |
-| TC-046 | Update User ๐ | Edit user โ ubah data | User berhasil di-update โ
| ADMIN | โ
โ | |
-| TC-047 | Cannot Access Role Lain ๐ซ | Coba /superuser, /lab, /phlebo, /cs | Redirect ke unauthorized/error โ | ADM, LAB, PHLEB, CS | โ
โ | |
-| TC-048 | Filter Test Code Alphabetical ๐ค | Login Lab โ /lab | Hanya request TESTS A-Z yang tampil ๐ | LAB | โ
โ | |
-| TC-049 | View Request Details ๐๏ธ | Buka request | Detail request ditampilkan ๐ | LAB | โ
โ | |
-| TC-050 | Filter & Search dalam Batas Filter ๐ | Uji filter & search | Sesuai batas test code A-Z โ
| LAB | โ
โ | |
-| TC-051 | Sample Buttons Enabled โ
| Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled ๐ | LAB | โ
โ | |
-| TC-052 | Edit Comment Disabled ๐ | Cek comment field | Comment field non-editable ๐ซ | LAB, PHLEB, CS | โ
โ | |
-| TC-053 | Un-Validate Disabled ๐ | Coba un-validate | Error/Unauthorized - cannot un-validate ๐ซ | LAB | โ
โ | |
-| TC-054 | Sample Collection Disabled ๐ | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED ๐ซ | PHLEB, CS | โ
โ | |
-| TC-055 | Validation Page Denied ๐ | Coba /phlebo/validate | Halaman tidak tersedia/unauthorized โ | PHLEB, CS | โ
โ | |
-| TC-056 | View Sample Details (Read-Only) ๐ | Buka dialog sample | Sample details view-only ๐ | PHLEB, CS | โ
โ | |
-| TC-057 | Cannot View Report ๐ | Coba view report | Report tidak tersedia/error ๐ซ | PHLEB | โ
โ | |
-| TC-058 | Cannot Print Report ๐จ๏ธโ | Coba print report | Print tidak tersedia ๐ซ | PHLEB | โ
โ | |
-| TC-059 | Cannot Generate PDF ๐โ | Coba generate PDF | PDF tidak tersedia ๐ซ | PHLEB | โ
โ | |
-| TC-060 | Print Labels (Limited) ๐ท๏ธ | Print labels | Labels tercetak sesuai kapasitas ๐จ๏ธ | CS | โ
โ | |
-| TC-061 | User Mgmt Role Restrictions ๐ | Lab/Phlebo/CS coba user management API | Error unauthorized ๐ซ | FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-062 | Cross-Role Validation ๐ค | Lab A validasi VAL1, Superuser B validasi VAL2 | Cross-role validation berhasil โ
| FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-063 | Un-Validate Role Restrictions ๐ | Lab/Phlebo/CS coba un-validate | Error unauthorized - only SU/Admin ๐ซ | FITUR CROSS-ROLE ๐ก๏ธ | โ
โ | |
-| TC-064 | Un-Receive Role Restrictions ๐ | Lab/Phlebo/CS coba un-receive | Error unauthorized - only SU/Admin ๐ซ | FITUR CROSS-ROLE ๐ก๏ธ | โ
โ | |
-| TC-065 | Report Access Restrictions ๐๏ธ | Coba view report semua role | SU/Admin/Lab/CS OK, Phlebo NOT โ
โ | FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-066 | Report Validated Requirement โ
โ
| View report hanya VAR1 vs duavalidated | Hanya duavalidated dapat dilihat ๐ฏ | FITUR CROSS-ROLE โ
| โ
โ | |
-| TC-067 | Comment Edit Restrictions ๐ฌ๐ | Lab/Phlebo/CS coba edit comment | Error - only SU/Admin editable ๐ซ | FITUR CROSS-ROLE โ๏ธ | โ
โ | |
-| TC-068 | Validasi tidak Pengaruhi Data Lain ๐ก๏ธ | Record data sebelum & sesudah validasi | Hanya status validasi berubah ๐ | FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-069 | Un-Validate Mempertahankan Data ๐ | Record data sebelum & sesudah un-validate | Hanya status validasi berubah ๐ | FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-070 | Audit Trail Logging ๐ | Lakukan berbagai aktivitas | Semua tercatat di audit log โ
| FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-071 | Concurrent Validation โก | 2 user buka validation dialog bersamaan | Validasi berhasil, tidak conflict โ
| FITUR CROSS-ROLE ๐ค | โ
โ | |
-| TC-072 | Concurrent Sample Collection โก | 2 user collect tube berbeda bersamaan | Semua berhasil tercatat โ
| FITUR CROSS-ROLE ๐งช | โ
โ | |
-| TC-073 | Session Timeout โฑ๏ธ | Tunggu session timeout | Redirect ke login ๐ | FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-074 | Password Hashing Security ๐ | Buat user โ cek database | Password dalam HASH bukan plain ๐ก๏ธ | FITUR CROSS-ROLE ๐ | โ
โ | |
-| TC-075 | Legacy Read-Only ๐ | Cek koneksi & fungsi Firebird | Hanya READ dari Firebird, TIDAK WRITE ๐ซโ๏ธ | FITUR CROSS-ROLE ๐๏ธ | โ
โ | |
-| TC-076 | Print Labels ๐ท๏ธ | Print individual/collection/all | Semua labels tercetak ๐จ๏ธ | ADM, LAB, PHLEB | โ
โ | |
-| TC-077 | Edit Comment โ๏ธ | Edit comment di dashboard | Comment berubah tersimpan ๐พ | SU | โ
โ | |
-
-
๐ Next Plan ๐
-
-
-
-
diff --git a/UAT_GDC_CMOD_Checklist.md b/UAT_GDC_CMOD_Checklist.md
deleted file mode 100644
index 93d02b9..0000000
--- a/UAT_GDC_CMOD_Checklist.md
+++ /dev/null
@@ -1,606 +0,0 @@
-# ๐ UAT (USER ACCEPTANCE TESTING) - CHECKLIST
-## Sistem Manajemen Laboratorium - GDC CMOD
-
----
-
-## 1. IDENTITAS DOKUMEN
-
-| Item | Detail |
-|------|--------|
-| **Nama Proyek** | GDC CMOD - Laboratory Management System |
-| **Versi Aplikasi** | 1.0 |
-| **Tanggal UAT** | _______________ |
-| **Durasi UAT** | _____ hari |
-| **Dokumen Versi** | 1.0 |
-| **Prepared By** | __________________ |
-| **Reviewed By** | __________________ |
-| **Approved By** | __________________ |
-
----
-
-## 2. INSTRUKSI PENGISIAN
-
-โ
**PASS** = Test case berhasil sepenuhnya
-โ **FAIL** = Test case gagal - ada defect
-โญ๏ธ **N/A** = Tidak dapat dilakukan
-๐ซ **BLOCKED** = Terhalang oleh issue lain
-
-**Cara Pengisian:**
-1. Centang checkbox [ ] jika test case LULUS (PASS)
-2. Tulis "X" dalam kotak [X] jika test case GAGAL (FAIL)
-3. Tambahkan catatan @ kolom "Issue/Jawaban" untuk kasus FAIL/N/A/BLOCKED
-4. Gunakan ID test case untuk tracking
-
----
-
-## 3. TEST CASE - AUTENTIKASI & SESI
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-AUTH-001** | Login Berhasil | Login dengan username & password valid | Redirect ke dashboard sesuai role | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-002** | Login Gagal - Username Salah | Masukkan username tidak ada | Error "Invalid credentials" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-003** | Login Gagal - Password Salah | Password salah | Error invalid credentials | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-004** | Login Gagal - Akun Terkunci | Login ke akun locked dari legacy | Error "Account locked" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-005** | Logout Berhasil | Klik menu Logout | Session terhapus, redirect ke login | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-006** | Redirect ke Login Belum Login | Akses protected page tanpa login | Redirect otomatis ke halaman login | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-007** | Ganti Password Berhasil | Change password baru | Password berhasil diubah dan di-hash | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-008** | Ganti Password Gagal - Password Lama Salah | Masukkan password lama salah | Error "Invalid old password" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-AUTH-009** | Role-Based Redirect Login | Login dengan berbagai role | Redirect ke dashboard sesuai role | [ ] PASS
[ ] FAIL | ___________ |
-
-### Ringkasan Autentikasi: _ LULUS / _____ GAGAL
-
----
-
-## 4. TEST CASE - SUPERUSER (ROLE 0)
-
-### 4.1 DASHBOARD SUPERUSER
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-SU-001** | Tampilkan Semua Request | Login Superuser โ `/superuser` | Tabel requests semua status ditampilkan | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-002** | Filter by Status | Pilih status di dashboard filter | Filter berfungsi sesuai status | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-003** | Filter by Date Range | Set date1 & date2 โ filter | Filter tanggal berfungsi | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-004** | Search by Patient Name | Masukkan nama pasien | Tampilkan request dengan nama tsb | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-005** | Search by Lab Number | Masukkan Lab Number | Tampilkan request tsb | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-006** | Search by Register Number | Masukkan Register Number | Tampilkan request tsb | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-007** | Table Sorting | Klik header kolom | Kolom di-sort ASC/DESC | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-008** | Pagination | Klik halaman berbeda | Berpindah halaman dengan benar | [ ] PASS
[ ] FAIL | ___________ |
-
-### 4.2 USER MANAGEMENT SUPERUSER
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-SU-009** | Tampilkan List User | Access `/superuser/users` | Tabel users ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-010** | Buat User Baru | Add User โ isi form | User berhasil dibuat dan password di-hash | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-011** | Validasi Password Min 3 Karakter | Buat user dengan password < 3 char | Error "Password min 3 karakter" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-012** | Update User Role | Edit user โ ubah role | Role berhasil diubah | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-013** | Update Password User | Edit user โ ganti password | Password di-hash dengan benar | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-014** | Delete User | Delete user | User terhapus dari database | [ ] PASS
[ ] FAIL | ___________ |
-
-### 4.3 VALIDASI SUPERUSER
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-SU-015** | Tampilkan Request Final | Access `/superuser/validate` | Hanya request "Fin" yang tampil | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-016** | Filter by Date Range Validasi | Set date1 & date2 โ filter | Filter berfungsi di halaman validasi | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-017** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-018** | Second Validation (VAL2) | Validasi dengan user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-019** | Gagal Validasi Sendiri | Coba validasi ulang sama user | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-020** | Un-Validate Request | Un-validate dengan reason | ISVAL reset, PENDING diset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-021** | Shortcut Keyboard | Enter=Validate, N=Skip, Esc=Close | Shortcut berfungsi dengan benar | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-022** | Progress Indicator | Buka validation modal | Progress muncul (posisi / total) | [ ] PASS
[ ] FAIL | ___________ |
-
-### 4.4 SAMPLE MANAGEMENT SUPERUSER
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-SU-023** | Collect Sample | Buka dialog sample โ Collect | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-024** | Un-Collect Sample | Buka dialog sample โ Un-Collect | STATUS di-reset, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-025** | Un-Receive Sample | Un-receive sample yang received | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-026** | Print Label Individu | Print label per tube | Label tercetak dengan ZPL format | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-027** | Print Collection Label | Print collection label | Label collection tercetak | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-028** | Print All Labels | Print semua tubes | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ |
-
-### 4.5 AUDIT TRAIL SUPERUSER
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-SU-029** | View Request Audit | Buka audit dialog request | Audit trail timeline ditampilkan | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-030** | Filter by Category | Filter: All, Validation, Receive, Sample | Filter berfungsi sesuai kategori | [ ] PASS
[ ] FAIL | ___________ |
-
-### 4.6 REPORT SUPERUSER
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-SU-031** | View Report Validated | View report request duavalidated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-032** | Cannot View Not Validated | View report belum duavalidated | Error: "Validated request required" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-033** | Print Report | Print report request validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-034** | Generate PDF | Generate PDF request validated | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-035** | Preview Report (No Audit) | Preview report tanpa log audit | Report tampil, tidak ada audit log | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-036** | English Version Report | Access `/report/{id}/eng` | Report dalam Bahasa Inggris | [ ] PASS
[ ] FAIL | ___________ |
-
-### 4.7 FITUR TAMBAHAN SUPERUSER
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-SU-037** | Edit Comment | Edit comment di dashboard | Comment berubah tersimpan | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-038** | Error Handling 404 | Akses URL tidak valid | Custom notfound page tampil | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-SU-039** | Error Handling Unauthorized | Coba akses role lain | Redirect ke `/unauthorized` | [ ] PASS
[ ] FAIL | ___________ |
-
-### Ringkasan Superuser: _ LULUS / _____ GAGAL
-
----
-
-## 5. TEST CASE - ADMIN (ROLE 1)
-
-### 5.1 DASHBOARD ADMIN
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-ADM-001** | Tampilkan Semua Request | Login Admin โ `/admin` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-002** | Filter & Search | Uji berbagai filter dan search | Semua berfungsi seperti Superuser | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-003** | Sample Collection Buttons Enabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-004** | Edit Comment Enabled | Edit comment dashboard | Comment dapat diubah | [ ] PASS
[ ] FAIL | ___________ |
-
-### 5.2 VALIDASI ADMIN
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-ADM-005** | Tampilkan Request Final | Access `/admin/validate` | Hanya request "Fin" tampil | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-006** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-007** | Second Validation (VAL2) | Validasi dengan user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-008** | Gagal Validasi Sendiri | Coba validasi ulang sama user | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-009** | Un-Validate Request | Un-validate request validated | ISVAL reset, PENDING diset | [ ] PASS
[ ] FAIL | ___________ |
-
-### 5.3 SAMPLE & FITUR LAIN ADMIN
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-ADM-010** | Collect Sample | Collect tube | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-011** | Un-Collect Sample | Un-collect tube | STATUS di-reset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-012** | Un-Receive Sample | Un-receive sample | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-013** | Print Labels | Print individual/collection/all | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-014** | View Audit Trail | Buka audit dialog | Timeline audit ditampilkan | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-015** | Tampilkan List User | Access `/admin/users` | Tabel users ditampilkan | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-016** | Buat User Baru | Add user lengkap | User berhasil dibuat dan di-hash | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-017** | Update User | Edit user โ ubah data | User berhasil di-update | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-018** | Delete User | Delete user | User terhapus | [ ] PASS
[ ] FAIL | ___________ |
-
-### 5.4 REPORT ADMIN
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-ADM-019** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-020** | Print Report | Print report | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-ADM-021** | Generate PDF | Generate PDF report | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ |
-
-### 5.5 ROLE RESTRICTIONS ADMIN
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-ADM-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/lab`, `/phlebo`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ |
-
-### Ringkasan Admin: _ LULUS / _____ GAGAL
-
----
-
-## 6. TEST CASE - LAB ANALYST (ROLE 2)
-
-### 6.1 DASHBOARD LAB
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-LAB-001** | Filter Test Code Alphabetical | Login Lab โ `/lab` | Hanya request TESTS A-Z yang tampil | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-002** | View Request Details | Buka request | Detail request ditampilkan | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-003** | Filter & Search dalam Batas Filter | Uji filter & search | Sesuai batas test code A-Z | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-004** | Sample Buttons Enabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-005** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ |
-
-### 6.2 VALIDASI LAB
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-LAB-006** | Tampilkan Request Final | Access `/lab/validate` | Hanya "Fin" dengan TESTS A-Z tampil | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-007** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-008** | Second Validation (VAL2) | Validasi user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-009** | Gagal Validasi Sendiri | Coba validasi sendiri | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-010** | Un-Validate Disabled | Coba un-validate | Error/Unauthorized - cannot un-validate | [ ] PASS
[ ] FAIL | ___________ |
-
-### 6.3 SAMPLE & FITUR LAIN LAB
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-LAB-011** | Collect Sample | Collect tube | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-012** | Un-Collect Sample | Un-collect tube | STATUS di-reset | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-013** | Un-Receive Sample | Un-receive sample | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-014** | Print Labels | Print semua jenis label | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-015** | View Audit Trail | Buka audit dialog | Timeline audit ditampilkan | [ ] PASS
[ ] FAIL | ___________ |
-
-### 6.4 REPORT LAB
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-LAB-016** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-017** | Print Report | Print report validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-LAB-018** | Generate PDF | Generate PDF | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ |
-
-### 6.5 ROLE RESTRICTIONS LAB
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-LAB-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/phlebo`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ |
-
-### Ringkasan Lab: _ LULUS / _____ GAGAL
-
----
-
-## 7. TEST CASE - PHLEBOTOMIST (ROLE 3)
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-PHB-001** | Tampilkan Semua Request | Login Phlebo โ `/phlebo` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-002** | Filter & Search | Uji filter & search | Semua berfungsi | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-003** | Sample Collection Disabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-004** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-005** | Validation Page Denied | Coba `/phlebo/validate` | Halaman tidak tersedia/unauthorized | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-006** | View Sample Details (Read-Only) | Buka dialog sample | Sample details view-only | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-007** | Print Labels | Print individual/collection/all | Labels tercetak | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-008** | View Audit Trail | Buka audit dialog | Audit trail ditampilkan (read-only) | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-009** | Cannot View Report | Coba view report | Report tidak tersedia/error | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-010** | Cannot Print Report | Coba print report | Print tidak tersedia | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-011** | Cannot Generate PDF | Coba generate PDF | PDF tidak tersedia | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-PHB-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/lab`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ |
-
-### Ringkasan Phlebotomist: _ LULUS / _____ GAGAL
-
----
-
-## 8. TEST CASE - CUSTOMER SERVICE (ROLE 4)
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-CS-001** | Tampilkan Semua Request | Login CS โ `/cs` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-002** | Filter & Search | Uji filter & search | Semua berfungsi | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-003** | Sample Collection Disabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-004** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-005** | Validation Page Denied | Coba `/cs/validate` | Halaman tidak tersailable | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-006** | View Sample Details (Read-Only) | Buka dialog sample | Sample details view-only | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-007** | Print Labels (Limited) | Print labels | Labels tercetak sesuai kapasitas | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-008** | View Audit Trail | Buka audit dialog | Audit trail ditampilkan | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-009** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-010** | Print Report | Print report validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-011** | Generate PDF | Generate PDF | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-CS-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/lab`, `/phlebo` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ |
-
-### Ringkasan Customer Service: _ LULUS / _____ GAGAL
-
----
-
-## 9. TEST CASE - FITUR CROSS-ROLE
-
-| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban |
-|----|----------------|---------------|-----------------|-------|---------------|
-| **TC-X-001** | User Mgmt Role Restrictions | Lab/Phlebo/CS coba user management API | Error unauthorized | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-002** | Cross-Role Validation | Lab A validasi VAL1, Superuser B validasi VAL2 | Cross-role validation berhasil | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-003** | Un-Validate Role Restrictions | Lab/Phlebo/CS coba un-validate | Error unauthorized - only SU/Admin | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-004** | Un-Receive Role Restrictions | Lab/Phlebo/CS coba un-receive | Error unauthorized - only SU/Admin | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-005** | Report Access Restrictions | Coba view report semua role | SU/Admin/Lab/CS OK, Phlebo NOT | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-006** | Report Validated Requirement | View report hanya VAR1 vs duavalidated | Hanya duavalidated dapat dilihat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-007** | Comment Edit Restrictions | Lab/Phlebo/CS coba edit comment | Error - only SU/Admin editable | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-008** | Validasi tidak Pengaruhi Data Lain | Record data sebelum & sesudah validasi | Hanya status validasi berubah | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-009** | Un-Validate Mempertahankan Data | Record data sebelum & sesudah un-validate | Hanya status validasi berubah | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-010** | Audit Trail Logging | Lakukan berbagai aktivitas | Semua tercatat di audit log | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-011** | Concurrent Validation | 2 user buka validation dialog bersamaan | Validasi berhasil, tidak conflict | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-012** | Concurrent Sample Collection | 2 user collect tube berbeda bersamaan | Semua berhasil tercatat | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-013** | Session Timeout | Tunggu session timeout | Redirect ke login | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-014** | Password Hashing Security | Buat user โ cek database | Password dalam HASH bukan plain | [ ] PASS
[ ] FAIL | ___________ |
-| **TC-X-015** | Legacy Read-Only | Cek koneksi & fungsi Firebird | Hanya READ dari Firebird, TIDAK WRITE | [ ] PASS
[ ] FAIL | ___________ |
-
-### Ringkasan Cross-Role: _ LULUS / _____ GAGAL
-
----
-
-## 10. KRITERIA PENERIMAAN (ACCEPTANCE CRITERIA)
-
-### 10.1 Functional Criteria
-
-| Kriteria Functional | Hasil |
-|---------------------|-------|
-| FC-01 | Autentikasi benar untuk semua role (0-4) | [ ] PASS
[ ] FAIL |
-| FC-02 | Role-based access control (RBAC) berfungsi | [ ] PASS
[ ] FAIL |
-| FC-03 | Dashboard menampilkan request sesuai filter & role | [ ] PASS
[ ] FAIL |
-| FC-04 | User management CRUD berfungsi untuk Superuser & Admin | [ ] PASS
[ ] FAIL |
-| FC-05 | Dual-level validation system (VAL1 & VAL2) berfungsi | [ ] PASS
[ ] FAIL |
-| FC-06 | Validasi tidak bisa oleh user yang sama | [ ] PASS
[ ] FAIL |
-| FC-07 | Un-validate berfungsi (Superuser & Admin only) | [ ] PASS
[ ] FAIL |
-| FC-08 | Sample collection/un-collection berfungsi | [ ] PASS
[ ] FAIL |
-| FC-09 | Un-receive sample berfungsi (Superuser & Admin only) | [ ] PASS
[ ] FAIL |
-| FC-10 | Audit trail mencatat semua aktivitas krusial | [ ] PASS
[ ] FAIL |
-| FC-11 | Report hanya untuk request duavalidated | [ ] PASS
[ ] FAIL |
-| FC-12 | Report hanya accessible role (SU, Admin, Lab, CS) | [ ] PASS
[ ] FAIL |
-| FC-13 | PDF generation berfungsi | [ ] PASS
[ ] FAIL |
-| FC-14 | Label printing berfungsi (individual, collection, all) | [ ] PASS
[ ] FAIL |
-| FC-15 | Comment editing berfungsi (Superuser & Admin only) | [ ] PASS
[ ] FAIL |
-| FC-16 | Filter dan search bekerja dengan benar | [ ] PASS
[ ] FAIL |
-| FC-17 | Pagination dan sorting tabel berfungsi | [ ] PASS
[ ] FAIL |
-
-### Functional Summary: _ LULUS / _____ GAGAL
-
----
-
-### 10.2 Security Criteria
-
-| Kriteria Security | Hasil |
-|-------------------|-------|
-| SC-01 | Password disimpan dalam bentuk HASH (bukan plain) | [ ] PASS
[ ] FAIL |
-| SC-02 | Session timeout bekerja dengan benar | [ ] PASS
[ ] FAIL |
-| SC-03 | Tidak ada SQL injection vulnerability | [ ] PASS
[ ] FAIL |
-| SC-04 | Role-based authorization terpenuhi | [ ] PASS
[ ] FAIL |
-| SC-05 | Locked account tidak dapat login | [ ] PASS
[ ] FAIL |
-| SC-06 | Audit trail mencatat semua aktivitas (traceability) | [ ] PASS
[ ] FAIL |
-| SC-07 | Un-validate hanya Superuser & Admin | [ ] PASS
[ ] FAIL |
-| SC-08 | Legacy Firebird system READ-ONLY | [ ] PASS
[ ] FAIL |
-
-### Security Summary: _ LULUS / _____ GAGAL
-
----
-
-### 10.3 Performance Criteria
-
-| Kriteria Performance | Target | Hasil Aktual | Pass/Fail |
-|----------------------|--------|--------------|-----------|
-| PC-01 | Dashboard load time | < 3 detik | __________ detik | [ ] PASS
[ ] FAIL |
-| PC-02 | Validation page load time | < 3 detik | __________ detik | [ ] PASS
[ ] FAIL |
-| PC-03 | Report generation time | < 5 detik | __________ detik | [ ] PASS
[ ] FAIL |
-| PC-04 | PDF generation time | < 30 detik | __________ detik | [ ] PASS
[ ] FAIL |
-| PC-05 | Database query response time | < 2 detik | __________ detik | [ ] PASS
[ ] FAIL |
-| PC-06 | Concurrent user support | Min. 5 user | _____ user simultaneous ok | [ ] PASS
[ ] FAIL |
-
-### Performance Summary: _ LULUS / _____ GAGAL
-
----
-
-### 10.4 Usability Criteria
-
-| Kriteria Usability | Hasil |
-|---------------------|-------|
-| UC-01 | UI user-friendly dan mudah digunakan | [ ] PASS
[ ] FAIL |
-| UC-02 | Shortcut keyboard (Enter, N, Esc) berfungsi | [ ] PASS
[ ] FAIL |
-| UC-03 | Error messages jelas dan actionable | [ ] PASS
[ ] FAIL |
-| UC-04 | Responsive design (bekerja di berbagai ukuran) | [ ] PASS
[ ] FAIL |
-| UC-05 | Icons dan color-coding jelas | [ ] PASS
[ ] FAIL |
-| UC-06 | Data terorganisir dengan baik | [ ] PASS
[ ] FAIL |
-
-### Usability Summary: _ LULUS / _____ GAGAL
-
----
-
-### 10.5 Data Integrity Criteria
-
-| Kriteria Data Integrity | Hasil |
-|-------------------------|-------|
-| DC-01 | Validasi tidak menghapus/mengubah data lain | [ ] PASS
[ ] FAIL |
-| DC-02 | Un-validate hanya menghapus status validasi | [ ] PASS
[ ] FAIL |
-| DC-03 | Sample collection tidak modifikasi data lain | [ ] PASS
[ ] FAIL |
-| DC-04 | Audit trail tercatat dengan benar | [ ] PASS
[ ] FAIL |
-| DC-05 | Tidak ada data duplikasi concurrent access | [ ] PASS
[ ] FAIL |
-| DC-06 | Status request sesuai workflow | [ ] PASS
[ ] FAIL |
-| DC-07 | Dual-validation requirement terpenuhi | [ ] PASS
[ ] FAIL |
-
-### Data Integrity Summary: _ LULUS / _____ GAGAL
-
----
-
-## 11. KEPUTUSAN AKHIR UAT
-
-### 11.1 Tolok Ukur Go-Live
-
-Untuk sistem dinyatakan **APPROVED** untuk production:
-
-| Category | LULUS | GAGAL | PERSEN LULUS | PASS? |
-|----------|-------|-------|--------------|------|
-| **Functional** | ___ | ___ | ___% | [ ] YES
[ ] NO |
-| **Security** | ___ | ___ | ___% | [ ] YES
[ ] NO |
-| **Performance** | ___ | ___ | ___% | [ ] YES
[ ] NO |
-| **Usability** | ___ | ___ | ___% | [ ] YES
[ ] NO |
-| **Data Integrity** | ___ | ___ | ___% | [ ] YES
[ ] NO |
-
-**OVERALL PASS RATE:** ______% (dari 5 kategori)
-
----
-
-### 11.2 Keputusan Final
-
-**Pilih Salah Satu:**
-
-- [ ] **โ
APPROVED GO-LIVE** - Semua criteria terpenuhi, sistem siap untuk production
-- [ ] **โ ๏ธ CONDITIONAL APPROVAL** - Sistem siap dengan catatan berikut:
- ```
- ____________________________________________________________
- ____________________________________________________________
- ____________________________________________________________
- ```
-- [ ] **โ NOT APPROVED** - Sistem belum siap, harus perbaiki issue berikut:
- ```
- ____________________________________________________________
- ____________________________________________________________
- ____________________________________________________________
- ```
-
----
-
-### 11.3 Issue Critical yang Harus Diperbaiki
-
-| Issue | Severity | Impact | Assigned To | Deadline |
-|-------|----------|--------|-------------|----------|
-| ________________________________ | High | ___________ | ___________ | _______ |
-| ________________________________ | Medium | ___________ | ___________ | _______ |
-| ________________________________ | Low | ___________ | ___________ | _______ |
-| ________________________________ | | ___________ | ___________ | _______ |
-| ________________________________ | | ___________ | ___________ | _______ |
-
----
-
-## 12. CHECKLIST SIGN-OFF
-
-### 12.1 UAT Team Sign-off
-
-| Nama | Role | Signature | Sign-off Tanggal |
-|------|------|-----------|------------------|
-| __________________________ | UAT Tester 1 | _____________________ | ____/____/____ |
-| __________________________ | UAT Tester 2 | _____________________ | ____/____/____ |
-| __________________________ | UAT Tester 3 | _____________________ | ____/____/____ |
-| __________________________ | Business Analyst | _____________________ | ____/____/____ |
-
----
-
-### 12.2 Management Sign-off
-
-| Nama | Role | Signature | Sign-off Tanggal |
-|------|------|-----------|------------------|
-| __________________________ | Project Manager | _____________________ | ____/____/____ |
-| __________________________ | Testing/QA Manager | _____________________ | ____/____/____ |
-
----
-
-### 12.3 Stakeholder Sign-off
-
-| Nama | Role | Signature | Sign-off Tanggal |
-|------|------|-----------|------------------|
-| __________________________ | Lab Manager | _____________________ | ____/____/____ |
-| __________________________ | Hospital IT Manager | _____________________ | ____/____/____ |
-| __________________________ | End User Representative | _____________________ | ____/____/____ |
-
----
-
-## 13. APPENDIX
-
-### 13.1 Test Data Used
-
-#### Users (Test Data):
-| User ID | Username | Role | Password |
-|---------|----------|------|----------|
-| 10001 | test_superuser | 0 | supersu123 |
-| 10002 | test_admin | 1 | admin123 |
-| 10003 | test_lab | 2 | lab123 |
-| 10004 | test_phlebo | 3 | phlebo123 |
-| 10005 | test_cs | 4 | cs123 |
-
-#### Requests (Test Data):
-- [ ] Request A: Status "Pending" - order baru
-- [ ] Request B: Status "Coll" - sample collected
-- [ ] Request C: Status "Recv" - sample received
-- [ ] Request D: Status "Fin" - ready for validation
-- [ ] Request E: Status "FinV" - duavalidated
-- [ ] Request F: Hanya VAL1
-- [ ] Request G: Dengan test codes alphabetical (untuk Lab filter)
-
----
-
-### 13.2 Known Issues / Limitations Found
-
-| ID | Issue | Severity | Workaround | Fixed? |
-|----|-------|----------|------------|--------|
-| ISS-01 | ________________________________ | [Low/Med/High] | _____________ | [ ] Yes
[ ] No |
-| ISS-02 | ________________________________ | [Low/Med/High] | _____________ | [ ] Yes
[ ] No |
-| ISS-03 | ________________________________ | [Low/Med/High] | _____________ | [ ] Yes
[ ] No |
-
----
-
-### 13.3 Contact Information
-
-| Role | Nama | Contact |
-|------|------|---------|
-| UAT Lead | ________________________________ | _______________________ |
-| Technical Lead | ________________________________ | _______________________ |
-| Dev Team | ________________________________ | _______________________ |
-
----
-
-### 13.4 Notes Tambahan
-
-```
-_____________________________________________________________________________
-_____________________________________________________________________________
-_____________________________________________________________________________
-_____________________________________________________________________________
-_____________________________________________________________________________
-_____________________________________________________________________________
-```
-
----
-
-## 14. SUMMARY STATISTICS
-
-### 14.1 Test Execution Summary
-
-| Kategori | Total Cases | LULUS | GAGAL | N/A | BLOCKED | % LULUS |
-|----------|-------------|-------|-------|-----|---------|---------|
-| **Autentikasi** | 9 | ___ | ___ | ___ | ___ | ___% |
-| **Superuser** | 39 | ___ | ___ | ___ | ___ | ___% |
-| **Admin** | 22 | ___ | ___ | ___ | ___ | ___% |
-| **Lab Analyst** | 19 | ___ | ___ | ___ | ___ | ___% |
-| **Phlebotomist** | 12 | ___ | ___ | ___ | ___ | ___% |
-| **Customer Service** | 12 | ___ | ___ | ___ | ___ | ___% |
-| **Cross-Role** | 15 | ___ | ___ | ___ | ___ | ___% |
-| **TOTAL** | **128** | ___ | ___ | ___ | ___ | ___% |
-
----
-
-### 14.2 Defect Summary
-
-| Severity | Jumlah |
-|----------|--------|
-| Critical | ___ |
-| High | ___ |
-| Medium | ___ |
-| Low | ___ |
-| **TOTAL DEFECTS** | ___ |
-
----
-
----
-
-## CATATAN PENTING
-
-1. โ
**Centang checklist [ ]** untuk test case yang LULUS
-2. โ **Tulis "X" dalam kotak [X]** untuk test case yang GAGAL
-3. ๐ **Isi kolom "Issue/Jawaban"** untuk kasus FAIL/N/A/BLOCKED
-4. ๐ **Hitung total LULUS/GAGAL** di ringkasan setiap kategori
-5. ๐ฏ **Review kriteria penerimaan** di Section 10 sebelum keputusan
-6. โ๏ธ **Lakukan sign-off** di Section 12 jika semua criteria terpenuhi
-7. ๐ **Cetak dokumen ini** dan gunakan selama sesi UAT
-
----
-
-**TOTAL ESTIMASI WAKTU UAT: 3-4 hari (dengan 3-5 tester dan 150+ test cases)**
-
----
-
-### ๐ GO-LIVE CHECKLIST (Final)
-
-Setelah sign-off, persiapan production:
-
-- [ ] Semua test case sudah dijalankan
-- [ ] Semua critical & high defects sudah diperbaiki
-- [ ] Security review selesai (password hashing, SQL injection, role access)
-- [ ] Performance test selesai (load time, concurrent users)
-- [ ] Data backup production-ready
-- [ ] Migration plan approved
-- [ ] Rollback plan ready
-- [ ] Training user sudah dilakukan
-- [ ] Documentation updated
-- [ ] Stakeholder approval obtained
-
-**Production Go-Live Date:** ____/____/____
-
----
-
-**DOKUMEN INI MERUPAKAN MILIK PROPERTI INTELEKTUAL GDC CMOD LABORATORY MANAGEMENT SYSTEM**
-**BOLEH DISEBARKAN UNTUK KEPERLUAN UAT SAJA**
-
----
-
-## END OF UAT CHECKLIST
-
-*Total: 150+ test cases organized dalam format checklist yang mudah di-print dan di-fill secara manual.*
diff --git a/app/Views/shared/dialog_preview.php b/app/Views/shared/dialog_preview.php
index 9bb9846..5090f4c 100644
--- a/app/Views/shared/dialog_preview.php
+++ b/app/Views/shared/dialog_preview.php
@@ -24,6 +24,9 @@
+
+ Print
+