UNPKG

@ssecd/jkn

Version:

JKN (BPJS) Bridging API untuk NodeJS

245 lines (244 loc) 8.04 kB
import { BaseApi } from './base.js'; export class Antrean extends BaseApi { type = 'antrean'; /** * Melihat referensi poli yang ada pada Aplikasi HFIS */ async refPoli() { return this.send({ name: 'Referensi Poli', path: '/ref/poli', method: 'GET' }); } /** * Melihat referensi dokter yang ada pada Aplikasi HFIS */ async refDokter() { return this.send({ name: 'Referensi Dokter', path: '/ref/dokter', method: 'GET' }); } /** * Melihat referensi jadwal dokter yang ada pada Aplikasi HFIS */ async refJadwalDokter(params) { return this.send({ name: 'Referensi Jadwal Dokter', path: `/jadwaldokter/kodepoli/${params.poli}/tanggal/${params.tanggal}`, method: 'GET' }); } /** * Melihat referensi poli finger print */ async refPoliFp() { return this.send({ name: 'Referensi Poli Fingerprint', path: '/ref/poli/fp', method: 'GET' }); } /** * Melihat referensi pasien finger print */ async refPasienFp(params) { return this.send({ name: 'Referensi Pasien Fingerprint', path: `/ref/pasien/fp/identitas/${params.jenis}/noidentitas/${params.nomor}`, method: 'GET' }); } /** * Update jadwal dokter yang ada pada Aplikasi HFIS * * Catatan: * Data yang berhasil disimpan menunggu approval dari BPJS atau otomatis approve * jadwal dokter oleh sistem, misal pengajuan perubahan jadwal oleh RS diantara * jam 00.00 - 20.00 , kemudian alokasi approve manual oleh BPJS/cabang di jam * 20.01-00.00. Jika pukul 00.00 belum dilakukan approval oleh kantor cabang, * maka otomatis approve by sistem akan dilaksanakan setelah jam 00.00 dan yang * berubah-nya esoknya (H+1). * * @param data data jadwal update */ async updateJadwalDokter(data) { return this.send({ name: 'Update Jadwal Dokter', path: `/jadwaldokter/updatejadwaldokter`, method: 'POST', data }); } /** * Menambah Antrean RS * * @param data data antrean pasien */ async tambah(data) { return this.send({ name: 'Tambah Antrean', path: `/antrean/add`, method: 'POST', data }); } /** * Menambah Antrean Farmasi RS * * @param data data antrean pasien */ async tambahFarmasi(data) { return this.send({ name: 'Tambah Antrean Farmasi', path: `/antrean/farmasi/add`, method: 'POST', data }); } /** * Mengirimkan waktu tunggu atau waktu layan * * Catatan: * - Alur Task Id Pasien Baru: 1-2-3-4-5 (apabila ada obat tambah 6-7) * - Alur Task Id Pasien Lama: 3-4-5 (apabila ada obat tambah 6-7) * - Sisa antrean berkurang pada task 5 * - Pemanggilan antrean poli pasien muncul pada task 4 * - Cek in / mulai waktu tunggu untuk pasien baru mulai pada task 1 * - Cek in / mulai waktu tunggu untuk pasien lama mulai pada task 3 * - Agar terdapat validasi pada sistem RS agar alur pengiriman Task Id berurutan * dari awal, dan waktu Task Id yang kecil lebih dahulu daripada Task Id yang besar * (misal task Id 1=08.00, task Id 2= 08.05) * - jenisresep : Tidak ada/Racikan/Non racikan (jenisresep khusus untuk rs * yang sudah implementasi antrean farmasi. Jika belum/tidak kolom jenisresep * dapat dihilangkan) * * @param data data waktu antrean */ async updateWaktu(data) { return this.send({ name: 'Update Waktu Antrean', path: `/antrean/updatewaktu`, method: 'POST', data }); } /** * Membatalkan antrean pasien * * @param data kode booking dan keterangan */ async batal(data) { return this.send({ name: 'Batal Antrean', path: `/antrean/batal`, method: 'POST', data }); } /** * Melihat waktu task id yang telah dikirim ke BPJS */ async listTaskId(params) { return this.send({ name: 'List Waktu TaskId', path: `/antrean/getlisttask`, method: 'POST', data: { kodebooking: params.kodeBooking } }); } /** * Dashboard waktu per tanggal * * Catatan: * - Waktu Task 1 = Waktu tunggu admisi dalam detik * - Waktu Task 2 = Waktu layan admisi dalam detik * - Waktu Task 3 = Waktu tunggu poli dalam detik * - Waktu Task 4 = Waktu layan poli dalam detik * - Waktu Task 5 = Waktu tunggu farmasi dalam detik * - Waktu Task 6 = Waktu layan farmasi dalam detik * - Insertdate = Waktu pengambilan data, timestamp dalam millisecond * - Waktu server adalah data waktu (task 1-6) yang dicatat oleh server BPJS Kesehatan * setelah RS mengirimkan data, sedangkan waktu rs adalah data waktu (task 1-6) yang * dikirimkan oleh RS */ async dashboardPerTanggal(params) { return this.send({ name: 'Dashboard Per-Tanggal', path: `/dashboard/waktutunggu/tanggal/${params.tanggal}/waktu/${params.waktu}`, method: 'GET', skipDecrypt: true }); } /** * Dashboard waktu per bulan * * Catatan: * - Waktu Task 1 = Waktu tunggu admisi dalam detik * - Waktu Task 2 = Waktu layan admisi dalam detik * - Waktu Task 3 = Waktu tunggu poli dalam detik * - Waktu Task 4 = Waktu layan poli dalam detik * - Waktu Task 5 = Waktu tunggu farmasi dalam detik * - Waktu Task 6 = Waktu layan farmasi dalam detik * - Insertdate = Waktu pengambilan data, timestamp dalam millisecond * - Waktu server adalah data waktu (task 1-6) yang dicatat oleh server BPJS Kesehatan setelah * RS mengirimkan data, sedangkan waktu rs adalah data waktu (task 1-6) yang dikirimkan oleh RS * * @param params parameter berupa bulan, tahun, dan jenis waktu */ async dashboardPerBulan(params) { const bulan = String(params.bulan).padStart(2, '0'); return this.send({ name: 'Dashboard Per-Bulan', path: `/dashboard/waktutunggu/bulan/${bulan}/tahun/${params.tahun}/waktu/${params.waktu}`, method: 'GET', skipDecrypt: true }); } /** * Melihat pendaftaran antrean per tanggal * * @param tanggal tanggal pendaftaran antrean */ async perTanggal(tanggal) { return this.send({ name: 'Antrean Per-Tanggal', path: `/antrean/pendaftaran/tanggal/${tanggal}`, method: 'GET' }); } /** * Melihat pendaftaran antrean per kode booking * * @param kodeBooking kode booking yang didapat dari servis tambah antrean */ async perKodeBooking(kodeBooking) { return this.send({ name: 'Antrean Per-KodeBooking', path: `/antrean/pendaftaran/kodebooking/${kodeBooking}`, method: 'GET' }); } /** * Melihat pendaftaran antrean belum dilayani */ async belumDilayani() { return this.send({ name: 'Antrean Belum Dilayani', path: `/antrean/pendaftaran/aktif`, method: 'GET' }); } /** * Melihat pendaftaran antrean belum dilayani per poli per dokter per hari per jam praktik */ async belumDilayaniPredikat(params) { return this.send({ name: 'Antrean Belum Dilayani Per-(Poli, Dokter, Hari, dan Jam Praktik)', path: `/antrean/pendaftaran/kodepoli/${params.poli}/kodedokter/${params.dokter}/hari/${params.hari}/jampraktek/${params.jam}`, method: 'GET' }); } }