diff --git a/pages/AdminKlinikRuang/[kodeKlinik].vue b/pages/AdminKlinikRuang/[kodeKlinik].vue
index a1b1872..d65d0c2 100644
--- a/pages/AdminKlinikRuang/[kodeKlinik].vue
+++ b/pages/AdminKlinikRuang/[kodeKlinik].vue
@@ -10,7 +10,8 @@
/>
-
+
mdi-clock-outline
Tidak Ada Antrian
@@ -280,28 +256,39 @@ const displayedRuang = computed(() => {
return numA - numB
})
- // Split by tipeLayanan
- const pemeriksaanAwalQueues = allQueues.filter(q => q.tipeLayanan === 'Pemeriksaan Awal')
- const tindakanQueues = allQueues.filter(q => q.tipeLayanan === 'Tindakan')
+ // Split by tipeLayanan berdasarkan tipeLayanan terakhir yang dipanggil
+ // Pasien yang dipanggil akan muncul di kolom sesuai tipeLayanan terakhir yang dipanggil
+ // Jika pasien dipanggil untuk Pemeriksaan Awal, muncul di kolom Pemeriksaan Awal
+ // Jika pasien dipanggil untuk Tindakan, muncul di kolom Tindakan (dan hilang dari Pemeriksaan Awal)
+ const pemeriksaanAwalQueues = allQueues.filter(q => {
+ // Gunakan tipeLayanan (yang diupdate saat dipanggil) untuk menentukan kolom
+ return q.tipeLayanan === 'Pemeriksaan Awal';
+ });
+ const tindakanQueues = allQueues.filter(q => {
+ // Gunakan tipeLayanan (yang diupdate saat dipanggil) untuk menentukan kolom
+ return q.tipeLayanan === 'Tindakan';
+ })
// Get current and next queues for each tipeLayanan
// Current queue is the one with status 'di-loket' and matching tipeLayanan
+ // Jika ada pasien baru yang dipanggil, akan menggantikan pasien sebelumnya di kolom tersebut
const getCurrentAndNext = (queues, tipeLayanan) => {
// Find current: pasien dengan status 'di-loket' dan tipeLayanan yang sesuai
- // Sort by lastCalledAt untuk mendapatkan yang terakhir dipanggil
+ // Sort by lastCalledAt untuk mendapatkan yang terakhir dipanggil (yang baru dipanggil akan menggantikan yang lama)
const currentCandidates = queues.filter(q =>
q.status === 'di-loket' && q.tipeLayanan === tipeLayanan
).sort((a, b) => {
const timeA = a.lastCalledAt ? new Date(a.lastCalledAt) : new Date(a.createdAt || 0)
const timeB = b.lastCalledAt ? new Date(b.lastCalledAt) : new Date(b.createdAt || 0)
- return timeB - timeA
+ return timeB - timeA // Yang terakhir dipanggil di atas
})
+ // Ambil yang terakhir dipanggil sebagai current (menggantikan yang sebelumnya)
const current = currentCandidates.length > 0 ? currentCandidates[0] : null
- // Next queues: exclude current patient
+ // Next queues: exclude current patient dan pasien dengan status 'di-loket' (yang sudah dipanggil)
const next = queues.filter(q =>
q.no !== current?.no &&
- (q.status === 'waiting' || q.status === 'di-loket')
+ q.status === 'waiting' // Hanya yang waiting (belum dipanggil)
).slice(0, 3) // Show max 3 next queues
return { current, next }
}
diff --git a/stores/navItems1.ts b/stores/navItems1.ts
index 45a6652..3c5d05e 100644
--- a/stores/navItems1.ts
+++ b/stores/navItems1.ts
@@ -24,7 +24,6 @@ const defaultNavItems: NavItem[] = [
// badge: "3",
},
{ id: 4, name: "Admin Loket", icon: "mdi-account-supervisor-outline", path: "/AdminLoket" },
- { id: 5, name: "Admin Klinik", icon: "mdi-text-box-plus-outline", path: "/AdminKlinik" },
{ id: 6, name: "Admin Klinik Ruang", icon: "mdi-door-open", path: "/AdminKlinikRuang" },
{ id: 7, name: "Admin Penunjang", icon: "mdi-plus-box-outline", path: "/AdminPenunjang" },
{ id: 8, name: "Buat Antrean", icon: "mdi-account-multiple-plus-outline", path: "/BuatAntrean" },