@ssecd/jkn
Version:
JKN (BPJS) Bridging API untuk NodeJS
245 lines (244 loc) • 8.04 kB
JavaScript
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'
});
}
}