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