Contoh memulai interoperabilitas sistem informasi klinik dengan platform SATUSEHAT menggunakan bahasa pemrograman Singkong


Untuk dapat membangun interoperabilitas dengan SATUSEHAT, partner perlu melakukan registrasi dan mengikuti langkah-langkah yang diperlukan.

Dalam menunggu proses verifikasi, kita dapat menggunakan environment sandbox. Contoh ini mengasumsikan kita memiliki akses ke API key sandbox, sebagai berikut:


Access token

Dengan client key dan secret key tersebut, kita akan mendapatkan access token yang perlu dilewatkan pada setiap request. Kita siapkan fungsi get_token untuk mendapatkan token yang dimaksud:

load_module("json")

var client_key = "CLIENT_KEY"
var secret_key = "SECRET_KEY"

var oauth_base_url = "https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1"
var base_url = "https://api-satusehat-stg.dto.kemkes.go.id/fhir-r4/v1"

var get_token = fn() {
    var c = "/accesstoken?grant_type=client_credentials"
    var u = oauth_base_url + c
    var d = "client_id=" + client_key + "&client_secret=" + secret_key
    var h = {
        "Content-Type": "application/x-www-form-urlencoded"
    }
    var t = 60000
    var r = http_post(u, d, t, h)
    if (r == null) {
        return null
    }
    var j = json_parse(r[2])
    if (is(j, "HASH")) {
        return j["access_token"]
    }
    return null
}

Catatan:

Contoh pemanggilan fungsi adalah sebagai berikut:

var token = get_token()
println(token)


Encounter

Contoh berikutnya adalah pencarian encounter berdasarkan subjek. Encounter didefinisikan sebagai interaksi pasien dengan fasilitas pelayanan kesehatan (fasyankes). Dalam rawat jalan misalnya, sebagaimana dibahas dalam dokumentasi SATUSEHAT, rangkaian kegiatan mulai dari awal berkunjung sampai selesai, beserta informasi lainnya.

Berikut adalah contoh fungsi get_encounter, yang membutuhkan argumen berupa STRING access token dan subjek. Variabel base_url merujuk pada definisi variabel sebelumnya. Modul json diasumsikan telah diload seperti contoh access token sebelumnya.

var get_encounter = fn(t, p) {
    var c = "/Encounter?subject=" + p
    var u = base_url + c
    var h = {
        "Authorization": "Bearer " + t
    }
    var t = 60000
    var r = http_get(u, t, h)
    if (r == null) {
        return {}
    }
    var j = json_parse(r[2])
    if (is(j, "HASH")) {
        return j
    }
    return {}
}

Contoh pemanggilan fungsi adalah sebagai berikut (pastikanlah variabel token telah berisi token yang didapatkan dengan fungsi get_token):

var encounter = get_encounter(token, "SUBJEK")
println(encounter)

Sampai di sini, mari kita berlatih untuk bekerja dengan Consent, yang akan disajikan dalam tutorial berikutnya. Bacalah dokumentasi SATUSEHAT untuk informasi selengkapnya.

Terima kasih telah membaca tutorial ini.