Bridging BPJS webservice dengan php fitur cari poli

Setelah sebelumnya pada postingan Bridging BPJS webservice dengan php fitur cari diagnosa ada yang request untuk fitur cari poli kini saya akan membuat tutorial fitur cari poli. Untuk tutorial webservice yang lengkap, parameter apa saja yang diperlukan, url mana yang dituju dan method apa yang digunakan dapat anda lihat pada

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


Bridging BPJS webservice dengan php fitur cari poli updatelagi.com
Bridging BPJS webservice dengan php fitur cari poli updatelagi.com

untuk fitur cari poli dari webservice bpjs ini sangat dibutuhkan ketika nanti kita akan menggunakan fitur pembuatan sep / bridging sep bpjs dengan simrs. Nama poli yang ada pada webservice bpjs sangat mungkin berbeda dengan yang ada pada simrs atau database anda sehiingga fitur ini sangat diperlukan.

cara untuk menggunakan fitur cari poli dengan webservice BPJS adalah yang pertama silahkan anda buat file dengan nama caripoli.php. Jangan lupa unsur utama dalam komunikasi dengan webservice BPJS yaitu cons id dan screet key. masukkan script berikut kedalam file caripoli.php.
<?php
    $data = "cons id";
    $secretKey = "screet key";
    // 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/poli/ref/poli");
    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);   
?>
simpan script diatas pada file caripoli.php lalu jalankan, hasil dari script diatas adalah
X - cons - id: cons - id X - timestamp: 1517460914 X - signature: phIZvw / EU / beTleBdN2PvdpPqtS2HODABg6VBmaifNc = {
    "metadata": {
        "code": "200",
        "message": "OK"
    },
    "response": {
        "count": "83",
        "limit": "83",
        "list": [{
            "kdPoli": "AKP",
            "nmPoli": "AKP Akupuntur"
        }, {
            "kdPoli": "ALG",
            "nmPoli": "ALG Alergi"
        }, {
            "kdPoli": "ANA",
            "nmPoli": "ANA Poli Anak"
        }, {
            "kdPoli": "ANU",
            "nmPoli": "ANU Anuscopy"
        }, {
            "kdPoli": "APT",
            "nmPoli": "APT APOTIK"
        }, {
            "kdPoli": "ASM",
            "nmPoli": "ASM ASM"
        }, {
            "kdPoli": "BDS",
            "nmPoli": "BDS BDS"
        }, {
            "kdPoli": "BED",
            "nmPoli": "BED Poli Bedah"
        }, {
            "kdPoli": "BSY",
            "nmPoli": "BSY Bedah Syaraf"
        }, {
            "kdPoli": "CAN",
            "nmPoli": "CAN CAN"
        }, {
            "kdPoli": "CAP",
            "nmPoli": "CAP Unit Pelayanan CAPD"
        }, {
            "kdPoli": "CTS",
            "nmPoli": "CTS CT Scan"
        }, {
            "kdPoli": "DBM",
            "nmPoli": "DBM Diabetes Melitus"
        }, {
            "kdPoli": "DRH",
            "nmPoli": "DRH Darah"
        }, {
            "kdPoli": "ECO",
            "nmPoli": "ECO Echo"
        }, {
            "kdPoli": "EKG",
            "nmPoli": "EKG Rekam Jantung"
        }, {
            "kdPoli": "ELK",
            "nmPoli": "ELK ELK"
        }, {
            "kdPoli": "END",
            "nmPoli": "END Endokrin"
        }, {
            "kdPoli": "ESW",
            "nmPoli": "ESW ESWL"
        }, {
            "kdPoli": "FIS",
            "nmPoli": "FIS Fisioterapi"
        }, {
            "kdPoli": "GAS",
            "nmPoli": "GAS Gastro"
        }, {
            "kdPoli": "GER",
            "nmPoli": "GER Geriatri"
        }, {
            "kdPoli": "GIG",
            "nmPoli": "GIG Poli Gigi"
        }, {
            "kdPoli": "GIN",
            "nmPoli": "GIN Ginjal"
        }, {
            "kdPoli": "GIZ",
            "nmPoli": "GIZ Gizi"
        }, {
            "kdPoli": "GP1",
            "nmPoli": "GP1 Gigi"
        }, {
            "kdPoli": "GTS",
            "nmPoli": "GTS GILA "
        }, {
            "kdPoli": "HAM",
            "nmPoli": "HAM HAM"
        }, {
            "kdPoli": "HCU",
            "nmPoli": "HCU High Care Unit"
        }, {
            "kdPoli": "HDL",
            "nmPoli": "HDL Hemodialisa"
        }, {
            "kdPoli": "HEM",
            "nmPoli": "HEM Hematologi"

        }, {
            "kdPoli": "HEP",
            "nmPoli": "HEP Hepatologi"
        }, {
            "kdPoli": "ICU",
            "nmPoli": "ICU Intensive Care Unit"
        }, {
            "kdPoli": "IGD",
            "nmPoli": "IGD Instalasi Gawat Darurat"
        }, {
            "kdPoli": "IKA",
            "nmPoli": "IKA Ilmu Kesehatan Anak"
        }, {
            "kdPoli": "INF",
            "nmPoli": "INF INSTALASI FARMASI"
        }, {
            "kdPoli": "INT",
            "nmPoli": "INT Poli Penyakit Dalam"
        }, {
            "kdPoli": "IPD",
            "nmPoli": "IPD Ilmu Penyakit Dalam"
        }, {
            "kdPoli": "IRM",
            "nmPoli": "IRM Installasi Rehabilitasi Medik"
        }, {
            "kdPoli": "IVP",
            "nmPoli": "IVP Intravena Pydografi"
        }, {
            "kdPoli": "JAN",
            "nmPoli": "JAN Poli Jantung"
        }, {
            "kdPoli": "JIW",
            "nmPoli": "JIW Poli Penyakit Jiwa"
        }, {
            "kdPoli": "JWA",
            "nmPoli": "JWA Jiwa Anak"
        }, {
            "kdPoli": "JWD",
            "nmPoli": "JWD Jiwa Dewasa"
        }, {
            "kdPoli": "KLT",
            "nmPoli": "KLT Poli Kulit"
        }, {
            "kdPoli": "KOL",
            "nmPoli": "KOL KOL"
        }, {
            "kdPoli": "LAB",
            "nmPoli": "LAB Laboratorium"
        }, {
            "kdPoli": "LAI",
            "nmPoli": "LAI Lain-Lain"
        }, {
            "kdPoli": "MAT",
            "nmPoli": "MAT Poli Penyakit Mata"
        }, {
            "kdPoli": "MRI",
            "nmPoli": "MRI MRI"
        }, {
            "kdPoli": "NUK",
            "nmPoli": "NUK Radioterapi\/Nuklir"
        }, {
            "kdPoli": "OBG",
            "nmPoli": "OBG Poli Obstetri\/Gyn."
        }, {
            "kdPoli": "OKM",
            "nmPoli": "OKM OKM"
        }, {
            "kdPoli": "OPT",
            "nmPoli": "OPT OPTIK"
        }, {
            "kdPoli": "ORT",
            "nmPoli": "ORT ORT"
        }, {
            "kdPoli": "OTL",
            "nmPoli": "OTL OTL"
        }, {
            "kdPoli": "PAR",
            "nmPoli": "PAR Poli Paru-paru"
        }, {
            "kdPoli": "PAT",
            "nmPoli": "PAT PAT"
        }, {
            "kdPoli": "PKM",
            "nmPoli": "PKM PUSKESMAS"
        }, {
            "kdPoli": "PMI",
            "nmPoli": "PMI PMI"
        }, {
            "kdPoli": "PPK",
            "nmPoli": "PPK PPK"
        }, {
            "kdPoli": "PSI",
            "nmPoli": "PSI PSI"
        }, {
            "kdPoli": "PSK",
            "nmPoli": "PSK PSK"
        }, {
            "kdPoli": "PUL",
            "nmPoli": "PUL Pulmonologi"
        }, {
            "kdPoli": "R12",
            "nmPoli": "R12 Boneseah"
        }, {
            "kdPoli": "RAA",
            "nmPoli": "RAA Radiologi Anak"
        }, {
            "kdPoli": "RAD",
            "nmPoli": "RAD Radiologi"
        }, {
            "kdPoli": "RAT",
            "nmPoli": "RAT Radioterapi"
        }, {
            "kdPoli": "REM",
            "nmPoli": "REM REM"
        }, {
            "kdPoli": "RHM",
            "nmPoli": "RHM Rheumatologi"
        }, {
            "kdPoli": "RO2",
            "nmPoli": "RO2 RO2"
        }, {
            "kdPoli": "SAR",
            "nmPoli": "SAR Poli Penyakit Saraf"
        }, {
            "kdPoli": "SPC",
            "nmPoli": "SPC SPC"
        }, {
            "kdPoli": "TAK",
            "nmPoli": "TAK TAK"
        }, {
            "kdPoli": "THT",
            "nmPoli": "THT Poli Telinga\/Hidung\/Tenggorok"
        }, {
            "kdPoli": "TON",
            "nmPoli": "TON TON"
        }, {
            "kdPoli": "TRD",
            "nmPoli": "TRD Treadmil Test"
        }, {
            "kdPoli": "TUM",
            "nmPoli": "TUM TUM"
        }, {
            "kdPoli": "UGD",
            "nmPoli": "UGD Unit Gawat Darurat"
        }, {
            "kdPoli": "URE",
            "nmPoli": "URE URE"
        }, {
            "kdPoli": "URF",
            "nmPoli": "URF URF"
        }, {
            "kdPoli": "URO",
            "nmPoli": "URO URO"
        }, {
            "kdPoli": "USG",
            "nmPoli": "USG USG"
        }],
        "start": "0"
    }
}

yang perlu diperhatikan dalam script diatas yaitu berbeda dengan cari diagnosa yang menggunakan parameter fitur cari poli tidak menggunakan parameter. Untuk url yang ditujupun berbeda dengan fitur cari diagnosa yaitu mengarah ke {base url}/{service name}/poli/ref/poli. Saya menyarankan untuk menyimpan kdpoli dan nmpoli kedalam database dan melakukan syncronasi secara berkala agar selalu update. caripoli.php dapat dijalankan pada aplikasi server seperti apache dll. untuk mengetahui apa itu x-cons-id, x-timestamp dan x-signatur anda dapat membuka postingan sebelumnya.

jika anda memiliki pertanyaan dan artikel ini bermanfaat atau membutuhkan bantuan silahkan kirimkan ke kolom komentar / mengirim email ke juadoinfo@gmail.com

0 comments