Membuat Service Pendaftaran Online dan Antrian Operasi Untuk BPJS

Assalamualaikum wr. wb



Demi meningkatkan kualitas pelayanan JKN, BPJS membuat fitur booking online dan monitor jadwal operasi. Namun karena transaksi yang dipakai adalah transaksi yang berjalan di fasilitas kesehatan, maka BPJS pun mewajibkan fasilitas kesehatan yang bekerja sama dengannya membuat web api yang bisa diakses oleh mereka. Tentunya sesuai dengan standart mereka juga.

Alat dan bahan

Alat dan bahan yang dibutuhkan antara lain:

1. Niat dan Doa
Setiap perbuatan baik, awalilah dengan niat yang menggebu dan jangan lupa memohon pada yang kuasa supaya kita dimudahkan dalam membangun sistem ini.

2. Web Server.
Karena service pendaftaran menggunakan web service, maka kita membutuhkan web service. Dalam sharing ini aku menggunakan PHP, kalau kamu mau download aplikasi web service dari blogku, suatu keharusan dan kewajiban menggunakan web server yang sudah terinstall service PHP.

3. Versi PHP Minimal 5.6
Saat aplikasi ini dibuat, aku masih menggunakan slim versi 3 awal. dan slim versi 3 awal ini dibuat diatas php versi 5. Tapi insyaallah aplikasi ini bisa berjalan di PHP 7 keatas.

4. SLIM PHP FRAMEWORK
Aplikasi ini aku bangun dengan menggunakan framwork SLIM PHP microframework. Slim PHP adalah framework khusus untuk membuat web service yang sangat populer. Selain ukurannya yang kecil. Dalam beberapa benchmark, SLIM PHP memiliki keunggulan di execution time dan mampu menghandle banyak request lebih banyak dari mini framework tetangga yang juga sangat populer.



Karena SLIM PHP Framework yang aku pakai cukup jadul. Kalau kamu download slim skeleton saat ini, struktur foldernya sudah lebih modern, pakai folder public ala-ala laravel (meskipun yang pakai folder public bukan hanya laravel, tapi pertama kali aku melihat penggunaan folder public di framework laravel. Oleh karena itu aku menyarankan kamu langsung download saja source code bridging nya di

https://gitlab.com/vbcupu/web-service-simrs-aplicare

Setelah didownload, sekarang exract foldernya. kamu akan melihat susunan folder seperti ini :


Semua file yang berhubungan dengan bridging ada di folder src, silahkan masuk ke folder src:

db.php

     setting db adalah tempat bernaungnya setting-setting yang berhubungan dengan database. plus   setting login untuk BPJS. Karena aku mengikuti struktur aplikasi ditempatku, disitu ada beberapa parameter koneksi database.

Koneksi mysql ada di getConnectionMYSQL()
Koneksi sqlserver ada di getConnectionSQLSERVER()

Setting username dan password untuk bpjs:

ganti xxxxx di kolom user dan password yang mau kamu berikan ke BPJS.

Setting.php

     file setting.php adalah file yang berisi settinga untuk SLIM PHP, termasuk juga module JWT. Setting untuk JWT bisa kamu lihat disini:
exp = expired time, waktu untuk mengatur jangka waktu token berlaku. aku pakai setting 10 menit.
secret = key rahasia untuk menggenerate token

middleware.php

middleware kalau diartikan dalam bahasa Indonesia adalah module tengah. Modul ini akan dijalankan terlebih dahulu sebelum masuk ke aplikasi inti.
Mengapa perlu ada setting di middleware? karena tidak semua end point menggunakan middleware. Untuk memudahkan pengembangan aplikasi ini, aku membuat rule api yang berada dalam group "api" akan dilindungi dengan token, api selain didalam group "api" tidak menggunakan token.
Untuk kebutuhan itu, aku setting disini:

 $app->add(new Slim\Middleware\JwtAuthentication([
        "path"=> '/api', <--- hanya folder api yang dilindungi token
        "secure"=>false,
        "attribute"=>"decoded_token_data", 
        "header" => "X-Token",
        "regexp" => "/(.*)/",            
        "algorithm"=>["HS256"],
        "secret"=>$settings['jwt']['secret'],    <-- ambil secret key dari file setting    
        "error"=>function($req, $res, $args) {
            $data["status"] = "error";
            $data["message"] = $args["message"];
            return $res
            ->withHeader("Content-Type", "application/json")
            ->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
        }

routes.php
Kemudian kodingan api ada di file routes.php

26 comments for "Membuat Service Pendaftaran Online dan Antrian Operasi Untuk BPJS"

  1. sangat membantu , terima kasih kak

    ReplyDelete
  2. Slim itu kalau sudah dijalankan composernya, jadinya berapa MB Pak?

    ReplyDelete
    Replies
    1. aku pribadi nggak ngistall lewat composer mas, soalnya males ngikuti model framework kekinian, Kalau corenya slim framework cuma 164 kb

      Delete
  3. pak ada contoh struktur databasenya dak pak ,untuk bahas skripsi pak,mohon bantuannya soalnya saya kesulitan untuk mempelajari alur kodingannya pak

    ReplyDelete
  4. Selamat pagi mas Martin.. aplikasi yang sama, utk yang berbasis VB 6 apakah sudah mengembangkan mas ? bisa minta bantuan source code basic nya.. terima kasih..

    ReplyDelete
    Replies
    1. Antrian online BPJS harus pakai web service pak, vb6 kan aplikasi desktop. nggak bisa untuk membuat web service.

      Delete
  5. selamat sore pak martin, mau tanya bagaimana cra utk sinkronkan web service ini dengan data program RS yg dibuat dengan vb6?

    ReplyDelete
  6. bisa di jelaskan langkah-langkah untuk tester api nya bagaimana?

    ReplyDelete
    Replies
    1. untuk ngetest pakai rest api client seperti postman atau insomia

      Delete
  7. assalamualaikum, ijin bertanya..
    untuk versi 2 kan itu generate tokennya beda, username password di header, itu caranya gmn ya? terima kasih ilmunya, sangat membantu :)

    ReplyDelete
    Replies
    1. Waalaikum salam, cuma beda di pengambilan data. Di slim sudah ada fungsinya, kalau nggak salah $request->headers(). Hasilnya berupa array

      Delete
  8. Ijin bertanya mas martin, kalau untuk coding diatas header x-token ditambah dengan x-username itu gimana ya caranya, terimakasih mas, pencerahan mas martin sangan membantu..

    ReplyDelete
  9. assalammu'alaikum wr wb, pak .. bisa minta script mentahnya ga (phpnya) untuk antrian online bpjs v2 nya..? mohon bantuannya donk.. ? minta tolong kirim adamsyair3@gmail.com

    ReplyDelete
    Replies
    1. Waalaikum salam. Mohon maaf sy tidak menyediakan source antrol. Sy lihat di github sudah banyak yg upload. Sy lebih suka mas Adam berusaha membuat sendiri, insyaallah sy bantu

      Delete
    2. assalamualaikum. izin bertanya mas martin
      alamat github untuk antrol versi 2 apa bisa di share? makasih banyak atas infonya

      Delete
    3. Waalaikum salam, antrol v2 sangat terkait dengan SIMRS, mohon maaf saya tidak bisa mengupload source codenya

      Delete
  10. Selamat siang, terima kasih mas martin setiawan tutorialnya sangat membantu pendaftaran online RS bisa ditambahi anjungan pendaftaran mandiri lebih mantap ini. sukses terus mas...

    ReplyDelete
  11. untuk sistem antrian di BPJS itu apakan mobile-jkn yg request ke sistem kita atau sebaliknya sistem kita yg request ke BPJS untuk mendapatkan nomor antrian ?
    karena di sistem kita sudah ada service antrian
    mohon pencerahannya mas martin karena di dokumentasinya trustmark bpjs kurang jelas

    ReplyDelete

Post a Comment