# Panduan Alur Pemrosesan Pasien - Admin Klinik Ruang

## Overview
Halaman Admin Klinik Ruang digunakan untuk mengelola antrian pasien di setiap ruang klinik. Pasien yang sudah dibuat antrean klinik ruang dari Admin Loket atau Admin Klinik akan muncul di halaman ini untuk di-generate tiket baru.

## Alur Pemrosesan Pasien

### 1. Daftar Pasien Perlu Generate Tiket
- Pasien yang sudah dibuat antrean klinik ruang dari **Admin Loket** atau **Admin Klinik** akan muncul di bagian "DAFTAR PASIEN PERLU GENERATE TIKET"
- Pasien dikelompokkan berdasarkan **ruang** yang telah dipilih sebelumnya oleh admin
- Hanya menampilkan **nomor antrian** untuk menghemat tempat
- Klik ikon **mata (👁️)** untuk melihat detail lengkap pasien
- Klik tombol **"Generate"** untuk mengisi field generate tiket dengan nomor antrian pasien tersebut

### 2. Generate Tiket Baru
- Setelah klik tombol "Generate", nomor antrian pasien akan otomatis terisi di field "Masukan Barcode"
- Atau scan barcode/nomor antrian pasien secara manual di field "Masukan Barcode" lalu tekan **Enter**
- Sistem akan menampilkan dialog untuk memilih:
  - **Ruang**: Pilih ruang tujuan (jika ada beberapa ruang)
  - **Tipe Layanan**: Pilih antara "Pemeriksaan Awal" atau "Tindakan"
- Setelah konfirmasi, sistem akan generate nomor antrian baru:
  - **PA001, PA002, ...** untuk Pemeriksaan Awal
  - **TD001, TD002, ...** untuk Tindakan
- Nomor antrian baru akan di-generate otomatis per ruang dan tipe layanan

### 3. Proses Antrian
- Setelah generate tiket, pasien akan muncul di antrian sesuai **tipe layanan** (Pemeriksaan Awal atau Tindakan)
- Klik **"Proses Antrian Berikutnya"** untuk memproses antrian pertama yang menunggu
- Atau klik langsung pada **card pasien** untuk memproses pasien tertentu

### 4. Panggil & Proses Pasien
- Pasien yang sedang diproses akan muncul di bagian **"SEDANG DIPROSES"**
- Admin dapat:
  - **Pilih Tipe Layanan**: Ubah antara "Pemeriksaan Awal" atau "Tindakan" dengan klik tombol
  - **Panggil**: Klik tombol "Panggil" untuk memanggil pasien (dapat dipanggil berkali-kali)
  - **Selesai**: Tandai pasien selesai diproses
  - **Terlambat**: Tandai pasien terlambat
  - **Pending**: Tandai pasien pending

### 5. Panggil Antrian Berikutnya
- Untuk setiap tipe layanan (Pemeriksaan Awal/Tindakan), admin dapat memanggil antrian berikutnya
- Klik tombol **"Panggil"** di header section setiap tipe layanan
- Pasien dapat dipanggil **berkali-kali** tanpa batas
- Pasien yang dipanggil akan muncul di layar **Anjungan Klinik Ruang**

## Tips & Catatan Penting

### Tips:
- ✅ Pasien yang sudah dibuat antrean klinik ruang akan **otomatis dikelompokkan** berdasarkan ruang yang dipilih
- ✅ Nomor antrian baru (PA/TD) akan di-generate **otomatis per ruang dan tipe layanan**
- ✅ Setiap pasien dapat dipanggil **berkali-kali tanpa batas**
- ✅ Informasi pasien yang dipanggil akan muncul di **layar Anjungan Klinik Ruang**
- ✅ Gunakan tombol **"Generate"** untuk mempercepat proses generate tiket

### Catatan:
- Pasien yang sudah di-generate tiket akan pindah dari "Daftar Pasien Perlu Generate Tiket" ke antrian sesuai tipe layanan
- Status pasien dapat berubah: waiting → di-loket → processed
- Setiap ruang memiliki antrian terpisah untuk Pemeriksaan Awal dan Tindakan

## Struktur Data Pasien

### Pasien Belum Generate Tiket:
- `processStage`: "klinik" atau "klinik-ruang"
- `tipeLayanan`: null (belum ada)
- `ruang`: nama ruang yang dipilih
- `nomorRuang`: nomor ruang
- `status`: "waiting", "di-loket", "terlambat", atau "pending"

### Pasien Sudah Generate Tiket:
- `processStage`: "klinik-ruang"
- `tipeLayanan`: "Pemeriksaan Awal" atau "Tindakan"
- `noAntrian`: format "PA001" atau "TD001" + info klinik dan ruang
- `status`: "waiting", "di-loket", "terlambat", atau "pending"

## Fitur Utama

1. **Scan Barcode**: Auto-detect barcode dengan mengabaikan huruf di depan (jika ada)
2. **Generate Tiket**: Generate nomor antrian baru per ruang dan tipe layanan
3. **Panggil Pasien**: Panggil pasien berkali-kali tanpa batas
4. **Lihat Detail**: Lihat detail lengkap pasien dengan klik ikon mata
5. **Kelola Antrian**: Proses, selesai, terlambat, atau pending pasien
6. **Pisah Tipe Layanan**: Antrian terpisah untuk Pemeriksaan Awal dan Tindakan

## Troubleshooting

**Q: Pasien tidak muncul di daftar?**
A: Pastikan pasien sudah dibuat antrean klinik ruang dari Admin Loket/Admin Klinik dan ruang yang dipilih sesuai.

**Q: Nomor antrian tidak ter-generate?**
A: Pastikan sudah memilih ruang dan tipe layanan di dialog, lalu klik "Buat Antrean".

**Q: Pasien tidak bisa dipanggil?**
A: Pastikan pasien sudah di-generate tiket dan status-nya "waiting" atau "di-loket".

**Q: Pasien muncul di ruang yang salah?**
A: Pastikan ruang yang dipilih saat create antrean klinik ruang sesuai dengan ruang yang diinginkan.

