@ssecd/jkn
Version:
JKN (BPJS) Bridging API untuk NodeJS
269 lines (268 loc) • 7.33 kB
JavaScript
import { VClaimBaseApi } from './base.js';
// TODO: make generic request and response data type as possible
export class SEP extends VClaimBaseApi {
/**
* Buat SEP
*/
async insert(data) {
return this.send({
name: this.name + 'Insert',
path: `/SEP/1.1/insert`,
method: 'POST',
data: { request: { t_sep: data } }
});
}
/**
* Update SEP
*
* @returns nomor SEP
*/
async update(data) {
return this.send({
name: this.name + 'Update',
path: `/SEP/1.1/Update`,
method: 'PUT',
data: { request: { t_sep: data } }
});
}
/**
* Hapus SEP
*/
async delete(data) {
return this.send({
path: `/SEP/Delete`,
method: 'DELETE',
data: { request: { t_sep: data } }
});
}
/**
* Detail data SEP berdasarkan nomor SEP
*/
async cari(params) {
return this.send({
name: this.name + 'Hapus',
path: `/SEP/${params.nomor}`,
method: 'GET'
});
}
/**
* Detail data SEP terakhir berdasarkan nomor rujukan
*/
async cariByRujukan(params) {
return this.send({
name: this.name + 'Cari',
path: `/Rujukan/lastsep/norujukan/${params.nomorRujukan}`,
method: 'GET'
});
}
/**
* Insert SEP V2.0
*/
async insertV2(data) {
return this.send({
name: this.name + 'Insert V2',
path: `/SEP/2.0/insert`,
method: 'POST',
data: { request: { t_sep: data } }
});
}
/**
* Update SEP V2.0
*
* @returns nomor SEP
*/
async updateV2(data) {
return this.send({
name: this.name + 'Update V2',
path: `/SEP/2.0/update`,
method: 'PUT',
data: { request: { t_sep: data } }
});
}
/**
* Hapus SEP V2.0
*
* @returns nomor SEP
*/
async deleteV2(data) {
return this.send({
name: this.name + 'Hapus V2',
path: `/SEP/2.0/delete`,
method: 'DELETE',
skipDecrypt: true,
data: { request: { t_sep: data } }
});
}
/**
* Pencarian data potensi SEP sebagai Suplesi Jasa Raharja
*/
async suplesiJasaRaharja(params) {
return this.send({
name: this.name + 'Suplesi Jasa Raharja',
path: `/sep/JasaRaharja/Suplesi/${params.nomorKartu}/tglPelayanan/${params.tanggalPelayanan}`,
method: 'GET'
});
}
/**
* Pencarian data SEP Induk Kecelakaan Lalu Lintas
*/
async dataIndukKecelakaan(params) {
return this.send({
name: this.name + 'Data Induk Kecelakaan',
path: `/sep/KllInduk/List/${params.nomorKartu}`,
method: 'GET'
});
}
/**
* Pengajuan SEP
*
* @returns nomor kartu peserta
*/
async pengajuan(data) {
return this.send({
name: this.name + 'Pengajuan Penjamin',
path: `/Sep/pengajuanSEP`,
method: 'POST',
data: { request: { t_sep: data } }
});
}
/**
* Approval pengajuan SEP
*
* @returns nomor kartu peserta
*/
async approvalPengajuan(data) {
return this.send({
name: this.name + 'Approval Pengajuan',
path: `/Sep/aprovalSEP`,
method: 'POST',
data: { request: { t_sep: data } }
});
}
/**
* Data persetujuan SEP
*/
async listPersetujuan(params) {
const bulan = String(params.bulan || 0).padStart(2, '0');
return this.send({
name: this.name + 'List Approval',
path: `/Sep/persetujuanSEP/list/bulan/${bulan}/tahun/${params.tahun}`,
method: 'GET'
});
}
/**
* Update tanggal pulang SEP
*/
async updateTanggalPulang(data) {
// TODO: clarify response type because in doc is invalid
return this.send({
name: this.name + 'Update Tanggal Pulang',
path: `/Sep/updtglplg`,
method: 'PUT',
data: { request: { t_sep: data } }
});
}
/**
* Update tanggal pulang V2.0
*/
async updateTanggalPulangV2(data) {
return this.send({
name: this.name + 'Update Tanggal Pulang V2',
path: `/SEP/2.0/updtglplg`,
method: 'PUT',
data: { request: { t_sep: data } }
});
}
/**
* Data update tanggal pulang
*/
async listTanggalPulang(params) {
const bulan = String(params.bulan || 0).padStart(2, '0');
const filter = params.filter || '';
return this.send({
name: this.name + 'List Update Tanggal Pulang',
path: `/Sep/updtglplg/list/bulan/${bulan}/tahun/${params.tahun}/${filter}`,
method: 'GET'
});
}
/**
* Pencarian nomor SEP untuk aplikasi Inacbg 4.1
*/
async inacbg(params) {
return this.send({
name: this.name + 'INACBG',
path: `/sep/cbg/${params.nomor}`,
method: 'GET',
skipDecrypt: true
});
}
/**
* Data SEP internal
*/
async listInternal(params) {
return this.send({
name: this.name + 'List Internal',
path: `/SEP/Internal/${params.nomor}`,
method: 'GET'
});
}
/**
* Hapus SEP internal
*
* @returns nomor SEP
*/
async deleteInternal(data) {
return this.send({
name: this.name + 'Hapus Internal',
path: `/SEP/Internal/delete`,
method: 'DELETE',
data: { request: { t_sep: data } }
});
}
/**
* Status fingerprint pasien per tanggal pelayanan
*/
async fingerPrint(params) {
return this.send({
name: this.name + 'Status Fingerprint',
path: `/SEP/FingerPrint/Peserta/${params.nomorKartu}/TglPelayanan/${params.tanggal}`,
method: 'GET'
});
}
/**
* Data peserta fingerprint
*/
async listFingerPrint(params) {
return this.send({
name: this.name + 'List Fingerprint',
path: `/SEP/FingerPrint/List/Peserta/TglPelayanan/${params.tanggal}`,
method: 'GET'
});
}
/**
* Data random questions
*/
async listRandomQuestions(params) {
return this.send({
// TODO: solve error endpoint not found
name: this.name + 'List Random Question',
path: `/SEP/FingerPrint/randomquestion/faskesterdaftar/nokapst/${params.nomorKartu}/tglsep/${params.tanggal}`,
method: 'GET'
});
}
/**
* Kirim jawaban dari random questions
*
* @returns
* - `"True"` jika jawaban benar
* - `"False"` jika jawaban salah
*/
async sendRandomQuestionAnswers(data) {
return this.send({
name: this.name + 'Post Random Question',
path: `/SEP/FingerPrint/randomanswer`,
method: 'POST',
data: { request: { t_sep: data } }
});
}
}