@ssecd/jkn
Version:
JKN (BPJS) Bridging API untuk NodeJS
279 lines (278 loc) • 7.51 kB
JavaScript
import { VClaimBaseApi } from './base.js';
// TODO: make generic request and response data type as possible
export class SEP extends VClaimBaseApi {
/**
* Buat SEP
*
* @deprecated Gunakan {@link insertV2}
*/
async insert(data) {
return this.send({
name: this.name + 'Insert',
path: `/SEP/1.1/insert`,
method: 'POST',
data: { request: { t_sep: data } }
});
}
/**
* Update SEP
*
* @deprecated Gunakan {@link updateV2}
* @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
*
* @deprecated Gunakan {@link deleteV2}
*/
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/:nomor', params],
method: 'GET'
});
}
/**
* Detail data SEP terakhir berdasarkan nomor rujukan
*/
async cariByRujukan(params) {
return this.send({
name: this.name + 'Cari',
path: ['/Rujukan/lastsep/norujukan/:nomorRujukan', params],
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/:nomorKartu/tglPelayanan/:tanggalPelayanan', params],
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/:nomorKartu', params],
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
*
* @deprecated Gunakan {@link updateTanggalPulangV2}
*/
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) {
return this.send({
name: this.name + 'List Update Tanggal Pulang',
path: [
'/Sep/updtglplg/list/bulan/:bulan/tahun/:tahun/:filter?',
{ ...params, bulan: String(params.bulan || 1).padStart(2, '0') }
],
method: 'GET'
});
}
/**
* Pencarian nomor SEP untuk aplikasi Inacbg 4.1
*/
async inacbg(params) {
return this.send({
name: this.name + 'INACBG',
path: ['/sep/cbg/:nomor', params],
method: 'GET',
skipDecrypt: true
});
}
/**
* Data SEP internal
*/
async listInternal(params) {
return this.send({
name: this.name + 'List Internal',
path: ['/SEP/Internal/:nomor', params],
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/:nomorKartu/TglPelayanan/:tanggal', params],
method: 'GET'
});
}
/**
* Data peserta fingerprint
*/
async listFingerPrint(params) {
return this.send({
name: this.name + 'List Fingerprint',
path: ['/SEP/FingerPrint/List/Peserta/TglPelayanan/:tanggal', params],
method: 'GET'
});
}
/**
* Data random questions
*/
async listRandomQuestions(params) {
return this.send({
name: this.name + 'List Random Question',
path: [
'/SEP/FingerPrint/randomquestion/faskesterdaftar/nokapst/:nomorKartu/tglsep/:tanggal',
params
],
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 } }
});
}
}