UNPKG

@ssecd/jkn

Version:

JKN (BPJS) Bridging API untuk NodeJS

195 lines (194 loc) 5.58 kB
import { VClaimBaseApi } from './base.js'; // TODO: make generic request and response data type as possible export class Rujukan extends VClaimBaseApi { validateSumber(params) { if (![1, 2].includes(params.sumber)) throw new Error('Nilai sumber faskes harus 1 atau 2'); } /** * Pencarian data rujukan berdasarkan nomor rujukan */ async cariByNomor(params) { this.validateSumber(params); const paths = { 1: `/Rujukan/:nomor`, 2: `/Rujukan/RS/:nomor` }; return this.send({ name: this.name + `Berdasarkan Nomor (${params.sumber})`, path: [paths[params.sumber], params], method: 'GET' }); } /** * Pencarian data rujukan berdasarkan nomor kartu peserta */ async cariByNoka(params) { this.validateSumber(params); const paths = { 1: `/Rujukan/Peserta/:nomor`, 2: `/Rujukan/RS/Peserta/:nomor` }; return this.send({ name: this.name + `Berdasarkan No. Kartu (${params.sumber})`, path: [paths[params.sumber], params], method: 'GET' }); } /** * Pencarian data rujukan berdasarkan nomor kartu peserta (Multi records) */ async cariByNokaMulti(params) { this.validateSumber(params); const paths = { 1: `/Rujukan/List/Peserta/:nomor`, 2: `/Rujukan/RS/List/Peserta/:nomor` }; return this.send({ name: this.name + `Berdasarkan No. Kartu (${params.sumber}) Multi`, path: [paths[params.sumber], params], method: 'GET' }); } /** * Insert rujukan * * Catatan: * Untuk tipe rujukan `1` maka response adalah `null` */ async insert(data) { return this.send({ name: this.name + 'Insert', path: `/Rujukan/insert`, method: 'POST', data: { request: { t_rujukan: data } } }); } /** * Update data rujukan */ async update(data) { return this.send({ name: this.name + 'Update', path: `/Rujukan/update`, method: 'PUT', data: { request: { t_rujukan: data } } }); } /** * Hapus data rujukan */ async delete(data) { return this.send({ name: this.name + 'Hapus', path: `/Rujukan/delete`, method: 'DELETE', data: { request: { t_rujukan: data } } }); } /** * Insert rujukan khusus */ async insertKhusus(data) { return this.send({ name: this.name + 'Insert Rujukan Khusus', path: `/Rujukan/Khusus/insert`, method: 'POST', data }); } /** * Delete atau hapus rujukan khusus */ async deleteKhusus(data) { return this.send({ name: this.name + 'Hapus Rujukan Khusus', path: `/Rujukan/Khusus/delete`, method: 'POST', data: { request: { t_rujukan: data } } }); } /** * List data rujukan khusus */ async listKhusus(params) { return this.send({ name: this.name + 'List Rujukan Khusus', path: `/Rujukan/Khusus/List/Bulan/${params.bulan}/Tahun/${params.tahun}`, method: 'GET' }); } /** * Insert rujukan menggunakan versi 2.0 */ async insertV2(data) { return this.send({ name: this.name + 'Insert V2', path: `/Rujukan/2.0/insert`, method: 'POST', data: { request: { t_rujukan: data } } }); } /** * Update data rujukan menggunakan versi 2.0 */ async updateV2(data) { return this.send({ name: this.name + 'Update V2', path: `/Rujukan/2.0/Update`, method: 'PUT', data: { request: { t_rujukan: data } } }); } /** * Data spesialistik rujukan */ async listSpesialistik(params) { return this.send({ name: this.name + 'List Spesialistik Rujukan', path: ['/Rujukan/ListSpesialistik/PPKRujukan/:kodePpk/TglRujukan/:tanggal', params], method: 'GET' }); } /** * Data sarana rujukan */ async listSarana(params) { return this.send({ name: this.name + 'List Sarana', path: ['/Rujukan/ListSarana/PPKRujukan/:kodePpk', params], method: 'GET' }); } /** * Data rujukan keluar rumah sakit atau klinik utama */ async listKeluar(params) { return this.send({ name: this.name + 'List Rujukan Keluar Faskes', path: `/Rujukan/Keluar/List/tglMulai/${params.awal}/tglAkhir/${params.akhir}`, method: 'GET' }); } /** * Detail rujukan keluar rumah sakit atau klinik utama berdasarkan * nomor rujukan */ async keluarByNomor(params) { return this.send({ path: ['/Rujukan/Keluar/:nomor', params], method: 'GET' }); } /** * Jumlah SEP yang terbentuk berdasarkan nomor rujukan yang masuk ke * rumah sakit atau klinik utama */ async jumlahSep(params) { return this.send({ name: this.name + 'List Rujukan Keluar Faskes Berdasarkan No. Rujukan', path: ['/Rujukan/JumlahSEP/:jenis/:nomor', params], method: 'GET' }); } }