Persiapan

Prasyarat rumah sakit

Yang harus ada sebelum SIMRS bisa mengirim data. Sebagian hanya bisa diurus rumah sakit dan memakan waktu berminggu-minggu — urutannya dimulai dari yang paling lama.

1. Legal & kelembagaan

  • PKS RS–BPJS yang aktif — beserta kode PPK rumah sakit. Kode PPK disuntikkan gateway ke setiap SEP dan tidak pernah dikirim dari SIMRS — tanpa kode itu tersimpan, SEP tidak bisa diterbitkan.
  • Akun Trust Mark BPJS — di portal Trust Mark BPJS Kesehatan, disertai surat permohonan bridging ber-kop rumah sakit dan ditandatangani direktur.
  • Kode fasyankes Kemenkes — terdaftar dan mutakhir di registrasi fasyankes.
  • Organisasi di SatuSehat Platform — beserta verifikasi dokumen — SK atau izin operasional, NPWP, dan surat kuasa bila pengurusan dikuasakan kepada kami.
  • Perjanjian pemrosesan data — ditandatangani sebelum data pribadi mengalir. Rumah sakit sebagai pengendali, SatuRS sebagai prosesor. Templatnya sudah terbit di halaman DPA.

2. Kredensial yang diserahkan

Diserahkan sekali dan disimpan hanya di dalam credential vault — tidak pernah di basis data, variabel lingkungan, maupun log.

  • BPJS VClaim — cons_id, secret, user_key, dan base URL lengkap dengan prefix /vclaim-rest.
  • BPJS Antrean — cons_id, secret, user_key, dan base URL dengan prefix /antreanrs.
  • BPJS Aplicares — cons_id, secret, user_key, dan base URL dengan prefix /aplicaresws.
  • SatuSehat — client_id, client_secret, dan organization_id — ketiganya sekaligus. Memasangkan organization_id staging dengan secret production mengarsipkan resource ke fasyankes yang salah.

3. Jaringan

  • Keluar dari SIMRS — HTTPS ke api.saturs.id, TLS 1.2 ke atas. Tidak ada port lain yang perlu dibuka.
  • IP publik SIMRS — diserahkan sebagai CIDR untuk allowlist per tenant.
  • IP egress gateway — harus didaftarkan pada pengajuan BPJS rumah sakit — BPJS mengikat kredensial pada alamat yang terdaftar. Alamatnya kami berikan saat onboarding.
  • Endpoint webhook — opsional: URL HTTPS yang dapat kami hubungi. Tanpa itu, SIMRS memantau status dengan polling.

4. Data & pemetaan

Bagian ini yang paling sering menahan go-live, karena tidak ada yang bisa dicari di registri mana pun — semuanya bergantung pada apa yang sudah dipakai rumah sakit.

  • Satu Location SatuSehat per poli — membawa kode poli yang memang sudah dikeluarkan SIMRS. Tidak ada registri nasional untuk kode ini: apa pun yang dipakai SIMRS itulah kodenya, dan kami mendaftarkan satu Location untuk tiap poli saat onboarding. Ini bukan kdPoli BPJS, yang berlaku nasional dan hanya mengatur SEP dan Antrean.
  • NIK dokter terverifikasi di SISDMK — dipetakan lewat sistem nakes-his-number. NIK yang belum terdaftar menghasilkan SS_PRACTITIONER_UNRESOLVED — perbaikannya pendaftaran, bukan mengirim ulang.
  • NIK pasien — dipetakan ke nomor IHS lewat sistem ihs-number.
  • Kode diagnosa dan prosedur — ICD-10 untuk tiap diagnosa, ICD-9-CM untuk tiap prosedur.
  • Nomor registrasi unik per kunjungan — no_registrasi adalah kunci yang dipakai mencocokkan pengiriman ulang, berapa lama pun jaraknya.
  • Waktu ber-offset — RFC3339 dengan offset, misalnya 2026-08-12T08:00:00+07:00. Waktu lokal tanpa offset menggeser kunjungan tujuh jam tanpa galat apa pun.

5. Kesiapan SIMRS

  1. Simpan request_id yang dikembalikan setiap pengiriman kunjungan bersama data kunjungannya.
  2. Bangkitkan satu Idempotency-Key (UUID) per kunjungan, simpan bersamanya, dan jangan pernah membangkitkannya ulang di dalam blok retry.
  3. Baca status dan retry_scheduled bersamaan — salah satunya saja tidak menjawab apakah masih akan ada percobaan berikutnya.
  4. Bila memakai webhook, verifikasi tanda tangan atas body mentah sebelum JSON di-parse.
  5. Perbarui JWT sebelum umur 15 menitnya habis, bukan pada setiap panggilan.
  6. Tangani 429 dengan menunggu sesuai header Retry-After.