Coder Social home page Coder Social logo

ssecd / jkn Goto Github PK

View Code? Open in Web Editor NEW
12.0 0.0 10.0 1022 KB

JKN (BPJS) Bridging API Client untuk NodeJS

Home Page: https://www.npmjs.com/package/@ssecd/jkn

License: MIT License

TypeScript 100.00%
bpjs jkn mobile-jkn nodejs vclaim vclaim-encrypted vclaim-rest antrean-bpjs bpjs-bridging

jkn's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jkn's Issues

Implement Antrean FKTP

Web service Antrean JKN for FKTP. See docs here /trust-mark/main.html#/mitra/katalog/afktpws/wsbpjs.

Consent

Pengembangan library ini bertujuan untuk mempermudah developer lain dalam melakukan integrasi atau bridging aplikasi dengan web service BPJS namun pengembangan ini akan membuat web service BPJS menjadi terbuka dan dapat diakses oleh siapa pun. Sementara baik mitra fasilitas kesehatan maupun vendor pengembang aplikasi harus memiliki akun untuk dapat mengakses web service BPJS melalui platform TrustMark dan pembuatan akun tersebut memerlukan izin dari BPJS Kesehatan.

Kami telah melakukan pencarian untuk aturan khusus yang berlaku bagi pengembang library, baik di mesin pencarian maupun di situs TrustMark itu sendiri namun tidak menemukan informasi yang relevan. Kami juga telah mengajukan pertanyaan di forum yang disediakan oleh BPJS, namun sayangnya tidak ada tanggapan yang diberikan. Berikut ini adalah tangkapan layar pertanyaan yang kami sampaikan.

image

image

image

Link diskusi: https://t.me/c/1673837525/33014

Oleh karena itu, saat ini kami berasumsi bahwa tidak ada aturan khusus yang mengatur pengembangan library untuk web service BPJS ini, sehingga kami melanjutkan pengembangan library tersebut dengan sah.

Beberapa library serupa atau aplikasi:

Support request timeout

Saat ini, setiap request ke service JKN, reqeust akan ditunggu selamanya hingga service JKN memberi response.

Add services status helper

Akan sangat membantu untuk memonitoring status services seperti mengetahui lama waktu response dari setiap service

Web APIs polyfill

Module seperti fetch belum tersedia di Nodejs versi lawas. Kondisikan untuk membuat polyfill untuk memperluas dukungan versi Nodejs. Lihat ini sebagai referensi.

FAQ

Kumpulan pertanyaan dan jawaban terkait bridging baik alur maupun teknis.
Silakan merujuk ke sini.

Migrate to Bun?

Bun telah merilis versi stabilnya. Bun sudah menjadi paket lengkap, selain runtime juga memiliki package manager, bundler yang mendukung Typescript out of the box, dan Test runner.

Scenario test

Misalnya skenario pembuatan SEP pada API VClaim yang dimulai dari pengecekan data Rujukan

Exposed config should be readonly

Property configuration yang diekpos saat ini dapat dimodifikasi langsung, misalnya:

jkn.configuration.ppkCode = 'example'

Sebaiknya dijadikan readonly property.

Mobile JKN: "Gagal Terhubung ke server RS"

Pesan "Gagal Terhubung ke server RS" yang muncul di aplikasi Mobile JKN biasanya terjadi oleh beberapa sebab:

  • Web service faskes error atau crash saat Mobile JKN melakukan request.
  • Web service faskes tidak mengirim kode status sukses atau 200 pada response header (bukan response body).
    Pada standarnya, web service akan memberikan kode status pada header sesuai dengan kondisi response, misalnya saat validasi input tidak valid umumnya web service akan mengirim kode status 400 (Bad Request) atau saat data yang di-request tidak ditemukan web service akan mengirim kode status 404 (Not Found) dan seterusnya. Namun untuk web service Mobile JKN setiap response dari web service faskes harus mengirimkan kode status pada header dengan kode sukses (200) dalam kondisi apapun tanpa terkecuali namun dengan tetap menyesuaikan kode status pada body sesuai dengan spesifikasi di TrustMark, misalnya untuk response ambil antrean, kode status pada response body 200 jika berhasil, 201 jika gagal, dan 202 jika pasien baru.
  • Web service faskes tidak menggunakan SSL atau SSL sudah expired.
  • Web service faskes memberikan response terlalu lama.
    Mobile JKN membatasi lamanya waktu request selama 15 detik. Jika web service faskes tidak meresponse selama waktu yang disebut maka akan dianggap gagal terhubung.
  • IP JKN terblokir oleh server/hosting/provider web service faskes

Remap request & response

Ada banyak sekali property pada request atau response dari web service BPJS yang tidak menggunakan standar penamaan property, case yang bercampur, tidak konsisten, dan akan memberikan spelling warning pada editor. Salah satu contohnya:

image

Property kdpoli pada tangkap layar di atas misalnya adalah property untuk kode poli yang akan di-map menjadi kodePoli atau setidaknya kdPoli.

Proposed solution

  • Remap property yang tidak standar (tentu akan menimbulkan breaking change)
  • Map property yang tidak standar tanpa menghapus property tersebut dan memberi saran pada komentar kode

Abbility to override base urls

Jika suatu saat terjadi perubahan base url dari BPJS atau user ingin menggunakan proxy server, ini akan sangat berguna.

Provide a way to invalidate config on cluster mode

Saat menjalankan server Node dengan mode cluster, hanya cluster yang menjalankan invalidateConfig() yang akan menerapkan perubahan konfigurasi sementara cluster lain tidak mengetahui perubahan tersebut.

Proposed solution

  • Expose boolean flag untuk menandai bahwa konfigurasi perlu diperbarui dan biarkan user menentukan nilainya.
  • Gunakan model versi konfigurasi yang dinaikan saat terjadi perubahan

Debug option for Rekam Medis API

Add an option to output debug information either to the console or to a file, but only in development mode.

debug?: 'console' | 'file'

Export request & response type

Pada implementasi library ini tidak terdapat type yang didefinisikan khusus untuk setiap request dan response web service, type ditulis langsung pada method-method class module. Pada kasus tertentu developer memerlukan type dari request atau response seperti:

const sep: VClaimSEPRequest = { /* ... */ }

Proposed solution

  • Definisikan type setiap API dan methods
  • Definisikan generic type setiap API yang dapat mengakses type dari method melalu nama property atau method

Cache response

Beberapa endpoint yang sangat jarang terjadi perubahan datanya sebaiknya di-cache untuk mempercepat response.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.