UNPKG

@ssecd/jkn

Version:

JKN (BPJS) Bridging API untuk NodeJS

269 lines (268 loc) 7.33 kB
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 } } }); } }