Pesan error "Gagal Terhubung ke server RS" di MJKN memang cukup sering muncul dan bikin pusing, apalagi kalau sedang ada pasien yang butuh dilayani. Sebenarnya pesan ini muncul bukan tanpa sebab. Ada beberapa kemungkinan yang bisa jadi penyebabnya. Berikut ini saya coba uraikan satu per satu beserta rekomendasi solusinya.


1. Web Service Faskes Error atau Crash

Penyebab: Web service di rumah sakit atau faskes mengalami error atau crash pas saat aplikasi MJKN mengirimkan request. Bisa karena bug di kode, beban server yang tiba-tiba tinggi, atau bahkan karena service tidak auto restart saat crash atau setelah sekian lama jalan.


Solusi: Pastikan web service faskes berjalan dengan stabil. Monitor secara berkala apakah service masih hidup atau tidak. Kalau perlu, pasang auto-restart mechanism (misalnya menggunakan supervisor, systemd, atau PM2 kalau pakai Node.js) supaya service otomatis nyala lagi kalau tiba-tiba mati.


2. Response Header Tidak Mengembalikan Kode Status 200

Penyebab: Ini yang paling sering jadi jebakan. MJKN mengharuskan setiap response dari web service faskes mengirimkan kode status 200 pada response header, bukan di response body. Pada standar HTTP biasa, web service akan mengirim kode status header yang sesuai dengan kondisi response, misalnya 400 (Bad Request) kalau validasi input gagal, atau 404 (Not Found) kalau data tidak ditemukan, dan lain sebagainya. Tapi khusus untuk MJKN, aturannya berbeda: kode status header harus selalu 200 dalam kondisi apapun, tidak peduli response-nya sukses atau gagal. Untuk membedakan antara sukses dan gagal, kode status yang sebenarnya ditempatkan di response body, mengikuti spesifikasi dari TrustMark. Contohnya pada response ambil antrean: kode status di body 200 berarti berhasil, 201 berarti gagal, dan 202 berarti pasien baru.


Solusi: Cek implementasi web service faskes, pastikan response header selalu mengembalikan status 200. Jangan sampai tanpa sengaja masih menggunakan pola HTTP standar yang mengembalikan status code sesuai kondisi error (biasanya bawaan framework). Simpan status code asli di body response sesuai spesifikasi TrustMark. Ini adalah syarat mutlak yang harus dipenuhi. Dengan selalu mengembalikan kode 200, pesan error yang muncul di MJKN akan lebih spesifik sesuai kondisi sebenarnya, bukan pesan generik "Gagal Terhubung ke server RS".


3. SSL/TLS Tidak Terpasang atau Sudah Expired

Penyebab: MJKN mewajibkan koneksi menggunakan HTTPS. Kalau web service faskes masih pakai HTTP biasa, atau sertifikat SSL-nya sudah kedaluwarsa (expired), maka koneksi akan ditolak dan muncul error seperti ini.


Solusi: Pasang SSL certificate di server web service faskes. Pastikan sertifikatnya masih berlaku dan jangan sampai expired. Pasang pengingat atau otomatisasi perpanjangan sertifikat (misalnya pakai Let's Encrypt dengan cronjob) supaya tidak kelupaan.


4. Response Terlalu Lama (Timeout)

Penyebab: MJKN memberikan batas waktu tunggu (timeout) selama 15 detik untuk setiap request. Kalau web service faskes lambat dalam memberikan response, entah karena koneksi database lambat, proses bisnis yang berat, atau server yang kewalahan, maka setelah 15 detik MJKN akan menganggap koneksi gagal dan menampilkan pesan "Gagal Terhubung ke server RS".


Solusi: Optimasi web service faskes agar bisa meresponse dalam waktu kurang dari 15 detik. Beberapa hal yang bisa dilakukan:

  • Optimasi query database.
  • Kurangi beban proses yang tidak perlu saat request masuk.
  • Scale up (Vertikal atau Horizontal) server kalau memang diperlukan.
  • Kalau prosesnya memang berat, pertimbangkan pakai mekanisme antrean (queue) agar response bisa dikembalikan lebih cepat.


5. IP JKN Terblokir oleh Server / Hosting / Provider

Penyebab: Alamat IP dari server MJKN terblokir oleh firewall di sisi server/hosting/provider web service faskes. Bisa karena aturan keamanan yang terlalu ketat, atau karena ada percobaan akses mencurigakan dari range IP yang kebetulan sama.


Solusi: Koordinasikan dengan tim infrastruktur atau penyedia hosting/server faskes. Minta untuk whitelist IP address dari server MJKN. Pastikan tidak ada aturan firewall yang memblokir koneksi dari IP tersebut. Kalau perlu, lakukan pengecekan log firewall untuk melihat apakah ada koneksi yang di-drop.


Penutup

Kalau semua penyebab di atas sudah diperiksa dan solusinya sudah diterapkan tapi error masih muncul, bisa jadi masalahnya ada di sisi infrastruktur yang lebih kompleks. Dalam kasus seperti itu, sebaiknya hubungi tim teknis BPJS Kesehatan atau cek group Monev BPJS barangkali memang sedang ada gangguan nasional.


Semoga tulisan ini membantu rekan-rekan di faskes yang sedang berjuang menghadapi error MJKN. Selamat mencoba!


Sumber: