Bridging BPJS webservice dengan php

Bridging BPJS webservice dengan php fitur mencari diagnosa. BPJS (Badan Penyelengara Jaminan Sosial) adalah salah satu asuransi yang banyak dimiliki masyarakat Indonesia. Dengan cakupan claim yang banyak dan premi yang murah membuat BPJS cepat menyebar di Indonesia. Banyaknya klinik dan rumah sakit yang bekerjasama dengan BPJS membuat tim IT BPJS membuat webservice agar memudahkan komunikasi data rumah sakit dengan pihak BPJS. Webservice yang hingga penulis menulis artikel ini masih dipakai yaitu Webservice SEP v.2.1 bisa diakses melalui 

http://dvlp.bpjs-kesehatan.go.id:8081/devWslokalrest/

untuk referensi katalog webservice diatas dapat dilihat melalui

http://dvlp.bpjs-kesehatan.go.id:8081/katalogwssep

Bridging BPJS webservice dengan php updatelagi.com
Bridging BPJS webservice dengan php updatelagi.com



kali ini saya akan memberikan tutorial tentang bagaimana menggunakan bridging fitur pencarian diagnosa. Diagnosa nantinya digunakan untuk salah satu parameter dalam pembuatan SEP pada webservice fitur insert sep. Fitur pencarian ini dimaksutkan agar kode diagnosa menggunakan kode diagnosa milik BPJS (sesuai dengan yang dimiliki BPJS).

caranya adalah buat file diagnosa.php lalu isi file tersebut dengan script dibawah ini lalu ubah text cons-id warna hijau dengan cons-id yang diberikan BPJS dan text screetkey warna ungu ubah dengan screetkey yang diberikan BPJS. cons-id dan screetkey adalah seperti username dan password yang diberikan BPJS ketika klinik / rumahsakit bekerjasama dengan BPJS.

<?php
    $data = "cons-id";
    $secretKey = "screetkey";
    // Computes the timestamp
    date_default_timezone_set('UTC');
    $tStamp = strval(time()-strtotime('1970-01-01 00:00:00'));
    // Computes the signature by hashing the salt with the secret key as the key
    $signature = hash_hmac('sha256', $data."&".$tStamp, $secretKey, true);
    // base64 encode…
    $encodedSignature = base64_encode($signature);
    echo "X-cons-id: " .$data ." ";
    echo "X-timestamp:" .$tStamp ." ";
    echo "X-signature: " .$encodedSignature;
    $ch = curl_init();
    $headers = array(
      'X-cons-id: '.$data .'',
      'X-timestamp: '.$tStamp.'' ,
      'X-signature: '.$encodedSignature.'',
      'Content-Type:application/json',          
    );

curl_setopt($ch, CURLOPT_URL, "http://dvlp.bpjs-kesehatan.go.id:8081/devWslokalrest/diagnosa/ref/diagnosa/A04");
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 3);
    curl_setopt($ch, CURLOPT_HTTPGET, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $content = curl_exec($ch);
    $err = curl_error($ch);
    curl_close($ch);
    print_r($content);  
?>

jika script diatas terpotong baca juga copy yang bawah kemudian satukan pada file diagnosa.php lalu jalankan, hasil dari script diatas adalah

X - cons - id: cons - id X - timestamp: timestamp X - signature: signature {
    "metadata": {
        "code": "200",
        "message": "OK"
    },
    "response": {
        "count": "10",
        "limit": "10",
        "list": [{
            "kodeDiagnosa": "A04.0",
            "namaDiagnosa": "Enteropathogenic Escherichia coli infection"
        }, {
            "kodeDiagnosa": "A04.1",
            "namaDiagnosa": "Enterotoxigenic Escherichia coli infection"
        }, {
            "kodeDiagnosa": "A04.2",
            "namaDiagnosa": "Enteroinvasive Escherichia coli infection"
        }, {
            "kodeDiagnosa": "A04.3",
            "namaDiagnosa": "Enterohaemorrhagic Escherichia coli infection"
        }, {
            "kodeDiagnosa": "A04.4",
            "namaDiagnosa": "Other intestinal Escherichia coli infections"
        }, {
            "kodeDiagnosa": "A04.5",
            "namaDiagnosa": "Campylobacter enteritis"
        }, {
            "kodeDiagnosa": "A04.6",
            "namaDiagnosa": "Enteritis due to Yersinia enterocolitica"
        }, {
            "kodeDiagnosa": "A04.7",
            "namaDiagnosa": "Enterocolitis due to Clostridium difficile"
        }, {
            "kodeDiagnosa": "A04.8",
            "namaDiagnosa": "Other specified bacterial intestinal infections"
        }, {
            "kodeDiagnosa": "A04.9",
            "namaDiagnosa": "Bacterial intestinal infection, unspecified"
        }],
        "start": "0"
    }
}


Bridging BPJS webservice dengan php updatelagi.com
Bridging BPJS webservice dengan php updatelagi.com
seperti keterangan yang ada gambar diatas untuk mengunakan webservice ini dibutuhkan 3 parameter pada headers yaitu

  1. X-cons-id
    cons id adalah kode consumer yang diberikan oleh BPJS kepada klinik / RS yang sudah bekerja sama
  2. X-timestamp
    adalah waktu yang digenerate oleh client dengan format waktu Universal Coordinate Time (UTC)
  3. X-signature
    adalah pola yang digenerate oleh sistem client dengan HMAC-SHA256 dengan parameter cons-id, timestamp dan screet key
Method yang digunakan untuk memanggil webservice ini adalah GET dengan format json dengan parameter kode atau nama diagnosa. untuk url webservice fitur diagnosa ini menggunakan

http://dvlp.bpjs-kesehatan.go.id:8081/devWslokalrest/diagnosa/ref/diagnosa/(kode atau nama diagnosa)
*tanpa kurung

jika anda memiliki pertanyaan atau butuh bantuan silahkan kirimkan ke kolom komentar / kirim email ke juadoinfo@gmail.com

3 comments