@ssecd/jkn
Version:
JKN (BPJS) Bridging API untuk NodeJS
188 lines (187 loc) • 5.36 kB
JavaScript
import { VClaimBaseApi } from './base.js';
// TODO: make generic request and response data type as possible
export class Rujukan extends VClaimBaseApi {
/**
* Pencarian data rujukan berdasarkan nomor rujukan
*/
async cariByNomor(params) {
const paths = {
1: `/Rujukan/${params.nomor}`,
2: `/Rujukan/RS/${params.nomor}`
};
return this.send({
name: this.name + `Berdasarkan Nomor (${params.sumber})`,
path: paths[params.sumber],
method: 'GET'
});
}
/**
* Pencarian data rujukan berdasarkan nomor kartu peserta
*/
async cariByNoka(params) {
const paths = {
1: `/Rujukan/Peserta/${params.nomor}`,
2: `/Rujukan/RS/Peserta/${params.nomor}`
};
return this.send({
name: this.name + `Berdasarkan No. Kartu (${params.sumber})`,
path: paths[params.sumber],
method: 'GET'
});
}
/**
* Pencarian data rujukan berdasarkan nomor kartu peserta (Multi records)
*/
async cariByNokaMulti(params) {
const paths = {
1: `/Rujukan/List/Peserta/${params.nomor}`,
2: `/Rujukan/RS/List/Peserta/${params.nomor}`
};
return this.send({
name: this.name + `Berdasarkan No. Kartu (${params.sumber}) Multi`,
path: paths[params.sumber],
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/${params.kodePpk}/TglRujukan/${params.tanggal}`,
method: 'GET'
});
}
/**
* Data sarana rujukan
*/
async listSarana(params) {
return this.send({
name: this.name + 'List Sarana',
path: `/Rujukan/ListSarana/PPKRujukan/${params.kodePpk}`,
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/${params.nomor}`,
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/${params.jenis}/${params.nomor}`,
method: 'GET'
});
}
}