Tuesday, April 24, 2018

Bridging Aplicares BPJS dengan PHP


Apa itu Aplicares?
Aplicares merupakan aplikasi yang dikembangkan oleh tim BPJS Kesehatan untuk memeriksa ketersediaan kamar atau tempat tidur di rumah sakit. Perlengkapan Aplicares disediakan oleh BPJS Kesehatan, dan peran rumah sakit disini hanya mengaturnya. Kebijakan tersebut berkaitan dengan laporan dari masyarakat bahwa pihak RS menyembunyikan keberadaan ruang rawat inap untuk pasien-pasien BPJS Kesehatan, agar dapat "dijual" dengan cara bayar umum. Untuk rumah sakit yang tidak menggunakan sistem aplicares ini, akan diberikan teguran tertulis, selanjutnya akan diberikan peringatan untuk penghentian perjanjian kerjasama dengan BPJS Kesehatan.

Lalu bagaimana cara menggunakan layanan dari sistem Aplicares ini?. Cara mengetahui ruang rawat inap yang tersedia dari rumah sakit dapat dicari oleh masyarakat melalui saluran internet dan  menggunakan ponsel android. Dengan begitu, masyarakat akan mendapatkan informasi secara real time dan akurat.

Kemudahan-kemudahan yang diberikan oleh BPJS Kesehatan memang sangat bermanfaat untuk pasien-pasien BPJS. Namun perlu diingat, petugas rumah sakit akan merasa keberatan jika harus menambah pekerjaan entri data ketersediaan ini setiap hari dalam interval waktu yang ditentukan.

Pada artikel kali ini saya akan membuat aplikasi otomatis untuk memperbarui ketersediaan data tempat tidur di rumah sakit dengan berbasis web aplikasi. Perkakas untuk membuat aplikasi yang akan kita buat menggunakan PHP, MySQL dan memanfaatkan Windows Task Scheduler.

Catatan: Agar aplikasi kita dapat berkomunikasi dengan webservice Aplicares, maka kita harus mengaktifkan HTTP API/CURL di CLI ("php_curl.dll") web server kita.


# 1 Membuat table baru pada MySQL Database
Table ini digunakan untuk menampung proses eksekusi dari event_scheduler kepunyaan MySQL, untuk contoh disini kita beri nama tabel nya bed_available_bpjs.




# 2 Membuat dan mengatur event dengan interval waktu setiap 10 menit
Event ini akan memproses atau meng-query data ketersediaan tempat tidur di rumah sakit dan kemudian hasilnya dimasukkan ke table bed_available_bpjs diatas. Contoh query disini sesuai dengan keadaan atau kondisi maupun table SIMRS di rumah sakit.




# 3 Membuat Script PHP
Syarat dari proses bridging dengan sistem Aplicares ini adalah rumah sakit harus  memiliki CONS_ID dan SECRET_KEY dari BPJS. Rumah sakit bisa mengirimkan surat ke kantor BPJS setempat mengenai kebutuhan bridging ini. Jika disetujui, maka pihak BPJS akan memberikan cons_id dan secret_key untuk proses pengembangan (development). Selanjutnya apabila proses pengembangan sudah dilakukan dan lolos melewati beberapa pengujian, maka kita bisa meminta cons_id dan secret_key untuk proses live (production).

Jika sudah memiliki cons_id dan secret_key, mari kita lakukan proses bridging dengan API Aplicares. Dibawah ini merupakan langkah selanjutnya yakni membuat skrip PHP :

  • config.php





  • create_bed_available_bpjs.php




- delete_bed_available_bpjs.php



- update_bed_available_bpjs.php



- view_bed_available_bpjs.php



Untuk menjalankan view_bed_available_bpjs.php, kita membutuhkan file yang bernama list.json. File JSON ini akan terisi otomatis datanya dari hasil generate API dan akan ditampilkan pada plugin grid yaitu DataTable.



Silahkan anda buat file dengan nama "list.json" pada direktori yang sama dengan file PHP lain sebelumnya diatas.

Pada kenyataannya saat go live, file yang dibutuhkan oleh kita hanya "update_bed_available_bpjs.php" saja. Tetapi dikarenakan saat proses pengembangan semua fungsi dari mulai create, update, delete dan view harus berhasil saat diuji dan dijadikan syarat testing oleh Tim BPJS yang selanjutnya pihak rumah sakit dapat meminta cons_id dan secret_key untuk production.


# 4 Implementasi
Seperti yang sudah saya sampaikan diatas, kita akan memanfaatkan Windows Task Scheduler untuk menjalankan skrip PHP dan schedule ini akan kita setting untuk dijalankan setiap 5 menit sekali.

Untuk kebutuhan itu, saya membuat sebuah file.bat. File inilah yang akan di eksekusi oleh Task Scheduler kepunyaan Windows.




Jika perintah bat file diatas tidak berjalan, silahkan buka file update_bed_available_bpjs.php dan perhatikan pada bagian include.


Hapus baris tersebut dan diganti dengan code/script dari config.php.

Bagaimana apakah berhasil? Apabila mengalami kesulitan atau masih bingung, silahkan posting pada komentar dibawah.

Link Demo: http://cadambasolution.com/cadambaaplicares/

Jika ingin berniat membeli App yang sudah jadi dan Source Code untuk Bridging Aplicares BPJS atau ingin penyesuaian dengan database SIMRS Anda, silahkan hubungi ke :
Email : medicalsoftwareengineer@gmail.com
Senang dapat membantu. :)


Salam,

ITRumahSakit.com

23 komentar

irwan said...

Maaf saya pernah membuat bridging ini tapi setelah diinstal ulang cons id nya lupa gak disampan..cara meminta lagi gimana ya?

Administrator said...

Bisa hubungi IT BPJS yang kemarin komunikasi saat memintanya Pak. Jika tidak memungkinkan kirim surat ke BPJS setempat Pak atas nama RS dan dengan sertakan alasannya. Kalau menurut saya, jika sebelumnya memang Bapak sudah terbit cons_id untuk production(bukan cons_id develop yaa) kemarin, seharusnya tinggal kontak saja IT BPJS nya, untuk di infokan ulang bisa via WA atau email dikirim olehnya.

irwan said...

maaf pak kalau di run munculnya
"Empty reply from server"
errornya karena apa ya pak?
terimakasih

Administrator said...

Maaf Pak Fransiskus baru reply,
Ini saat run yang mana ya? Script yang di artikel saya atau script kepunyaan Bapak sendiri yang pernah buat?

Anonymous said...

"Empty reply from server" saat saya menjalankan create_bed_available_bpjs.php
errornya karena apa ya pak?

Administrator said...

"Empty reply from Server", biasanya ini karena hasil curl ke Web Service BPJS tidak berhasil. Pastikan URL web service nya sudah benar, dan cons_id yang digunakan masih aktif.
Jika cons_id yang digunakan masih level development punya batas/expired 1 tahun Pak.

Andi said...

saya mau naya pak, kalau responnya {"metadata":{"code":401,"message":"Unauthorized, invalid signature"}} itu kenapa ya ? terimakasih sebelumnya;

Unknown said...

invalid signature.
ini pake dvlp apa api atau new-api ya kok bnyk yg blg langsung ke live aja
tapi jenis consID yg diberikan tester

irwan said...

pak yg buat bat filenya saya gagal..hehehehe

Omad said...

Kuluar begini pak scrip creat bed, mohon solusinya

{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}{"metadata":{"code":401,"message":"Unauthorized, invalid signature"}}

Agus Istanto said...

Maz Admin, saya mau tanya, list.json saya sudah keluar data-data ruang, cuma tidak mau tampil di view_bed_available_bpjs.php kenapa ya?, info kalau di create_bed_available_bpjs.php sudah muncul data berhasil disimpan...terimakasih sebelumnya.

Administrator said...

@Andi : Jika error nya Unauthorized, invalid signature, itu biasanya karena jam belum WIB, karena siganture yang kita generate kan dipengaruhi juga oleh jam di komputer yang menjalankan script. Atau ada kesalahan lain, misal cons_id dan secret key sudah tidak aktif.


@Unknown : pastinya ke develop dahulu Pak. Karena kan harus lewati UAT dahulu

@irwan : Wah gagalnya dimana tuh Pak?

@Omad : jawabannya sama seperti @Andi


@Agus Istanto : Wah selamat kalau sudah berhasil ya, Kalau di View nya sih itu biasanya dari format json nya Pak. Format nya begini bukan:

{"data":[{"lastupdate":"25 Jan 2019 01:24:45:780","tersediapriawanita":0,"kapasitas":4,"namaruang":"Walet","namakelas":"VIP","koderuang":"46","tersedia":3,"rownumber":1,"tersediawanita":0,"tersediapria":0,"kodekelas":"VIP"},{"lastupdate":"25 Jan 2019 01:24:45:167","tersediapriawanita":0,"kapasitas":12,"namaruang":"Seriti","namakelas":"KELAS I","koderuang":"39","tersedia":5,"rownumber":2,"tersediawanita":0,"tersediapria":0,"kodekelas":"KL1"},{"lastupdate":"25 Jan 2019 01:24:44:620","tersediapriawanita":0,"kapasitas":4,"namaruang":"Rajawali","namakelas":"UTAMA","koderuang":"33","tersedia":4,"rownumber":3,"tersediawanita":0,"tersediapria":0,"kodekelas":"UTM"}]}

Agus Istanto said...

@Maz Admin : Betul list.json keluar seperti itu,

o..iya maz Admin, klo saya kirim dari localhost komputer saya untuk create,update dan delete sudah sukses merubah data diaplicares dvlp ujicoba saya, cuma setelah koding saya upload di hosting online ada koding yang ditolak oleh dvlp aplicares center nya, berikut infonya "Failed to connect to dvlp.bpjs-kesehatan.go.id port 8888: Connection refused" kira-kira apa ada koding yang salah ya?terimakasih.

anto said...

saat creater_bed muncul error masalahnya dimana



{"metadata":{"code":401,"message":"Service Expired"}}{"metadata":{"code":401,"message":"Service Expired"}}

Unknown said...


Apakah Aplicares bisa di Briding dengan Visual Basic 6.0, Terima Kasih

RM. Fuad (Pangeran Nato) said...

keluar warning ini ketika klik ketersediaan aplicare

DataTables warning: table id=tbl-wsdata - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1

mohon solusinya pak

Administrator said...

@Agus Istanto, itu karena dari hosting, biasanya mem-blok port tertentu. Termasuk port yang disediakan pada WS Aplicares.

@anto Itu karena sudah di tutup untuk cons_id nya oleh BPJS. Minta lagi saja.

@Unknown Bisa. Tergantung anda/programmer yang coding kan.

@RM. Fuad (Pangeran Nato) itu di upload di HOSTING? Jika iya, karena dari hosting, biasanya mem-blok port tertentu. Termasuk port yang disediakan pada WS Aplicares. Bisa juga, karena cons_id sudah expired/ kosong.

Only One said...
This comment has been removed by the author.
Only One said...

Pakai yg dvlp udah berhasil, cuman pas mau live pake yg new-api malah ada notif "Unauthorized ..... :((

Anonymous said...

ini codenya kok too many request? bisa diperlihatkan lagi thx

Anonymous said...

itu yg delete query knp pas dijalankan jadinya kedelete semua kamar ya? tq

faisal said...

Punya saya dijalankan kok pesannya "Empty reply from server" semua ya.
Bagaimana cara cek consid nya apakah sudah aktif atau belum mas?

Administrator said...

Untuk yang mau bertanya atau ada kendala, silahkan kirim via email.
Agar disampaikan kronologisnya bahkan bisa disertai screenshot. Karena saya tidak bisa balas satu persatu masing2 kendala tanpa adanya informasi yang jelas dari anda. Terimakasih.
Salam IT Rumah Sakit. :)