Bridging INA-CBG5 SIMRS dengan visual basic 6 dan PHP (PART 3) Mengakses Web Service Rest Dari Visual Basic 6
LAMAN TERKAIT
Pada Posting ini aku memberi satu contoh memanggil service dari Web service penghubung yang sudah kita buat. Maaf kalau cuma memberi satu contoh kasus soalnya susah mmotong kode yang terlanjur ada di production. Jadi aku kasih contoh yang paling mudah dipanggil.
Untuk Service yang lainnya cara memanggilnya sama saja
1. Dowload VBJSON di http://www.ediy.co.nz/vbjson-json-parser-library-in-vb6-xidc55680.html
2. Ekstrak VBJSON
3. Kopi file cStringBuilder.cls, cJSONScript.cls, JSON.bas ke folder project Bridging INACBG Visual Basic 6
4. Buka Visual Basic 6
5. Masukkan Class module cStringBuilder.cls dan cJSONScrip.cls ke project.
- Klik kanan di project, pilih add -> Class Module
- Klik Existing
- Pilih Class modul cJSONScripts
- Lakukan Cara yang sama untuk CStringBuilder.cls
6. Masukkan Modul JSON.bas
- Klik kanan di Project Explorer, Pilih Module
- Pilih Exiting -> JSON.bas
7 Tambahkan reference "Microsoft Winhttp service"
- Klik Menu Project -> Reference, Beri Checklist pada Microsoft Winhttp Service, Version 5.1. Klik OK
8. Buat Class Module BuatKlaimINACBG
- Klik Kanan di Project Explorer, Pilih Add->Class Modules, Klik Class Modules, Klik Open
- Beri nama "BuatKlaimPasienINACBG"
8. Masukkan kode dibawah ini di class BuatKalimPasienINACBG
Private mNomorKartu As String
Private mNomorSEP As String
Private mNoRM As String
Private mNamaPasien As String
Private mTgl_Lahir As String
Private mGender As String
Private mServer As String
Public mPatien_Id As String
Public mAdmission_Id As String
Public mHospital_admission_Id As String
Public ServerCode As String
Public ServerMessage As String
Public PesanDuplikat As String
Property Get NomorKartu() As String
NomorKartu = mNomorKartu
End Property
Property Let NomorKartu(Value As String)
mNomorKartu = Value
End Property
Property Get NomorSEP() As String
NomorSEP = mNomorSEP
End Property
Property Let NomorSEP(Value As String)
mNomorSEP = Value
End Property
Property Get NoRM() As String
NoRM = mNoRM
End Property
Property Let NoRM(Value As String)
mNoRM = Value
End Property
Property Get NamaPasien() As String
NamaPasien = mNamaPasien
End Property
Property Let NamaPasien(Value As String)
mNamaPasien = Value
End Property
Property Get Tgl_Lahir() As String
Tgl_Lahir = mTgl_Lahir
End Property
Property Let Tgl_Lahir(Value As String)
mTgl_Lahir = Value
End Property
Property Get Gender() As String
Gender = mGender
End Property
Property Let Gender(Value As String)
mGender = Value
End Property
Property Get Server() As String
Server = mServer
End Property
Property Let Server(Value As String)
mServer = Value
End Property
Public Function getData()
Dim Result As String
Dim tPost As String
Dim p As Object
tPost = "nokartu=" & Me.NomorKartu & "&nosep=" & Me.NomorSEP & "&norm=" & Me.NoRM & "&namapasien=" & Me.NamaPasien & "&tgllahir=" & Format(Me.Tgl_Lahir, "yyyy-MM-dd 00:00:00") & "&jeniskelamin=" & Me.Gender
Dim sUrl As String
Dim response As String
Dim xmlhttp As WinHttp.WinHttpRequest
sUrl = "http://" & Me.Server & "/BuatKlaimBaru"
Set xmlhttp = New WinHttp.WinHttpRequest
xmlhttp.Open "POST", sUrl, False
xmlhttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.Send tPost
If xmlhttp.Status = "200" Then
response = xmlhttp.ResponseText
Set xmlhttp = Nothing
Result = response
Set p = JSON.parse(Result)
ServerMessage = p.Item("metadata").Item("message")
ServerCode = p.Item("metadata").Item("code")
If ServerCode = "200" Then
mPatien_Id = p.Item("response").Item("patient_id")
mAdmission_Id = p.Item("response").Item("admission_id")
mHospital_admission_Id = p.Item("response").Item("hospital_admission_id")
Call MsgBox("Pembuatan Klaim Baru Berhasil")
frmDetailPasienInaCBG.cmdIsiDataKlaim.SetFocus
Else
If ServerCode = "400" Then
PesanDuplikat = "Nama Pasien " & p("duplicate")(1).Item("nama_pasien") & vbNewLine & "NoRM = " & p("duplicate")(1).Item("nomor_rm") & " Tanggal = " & p("duplicate")(1).Item("tgl_masuk")
Call MsgBox("Duplikasi Pasien " & vbNewLine & "Nama Pasien " & p("duplicate")(1).Item("nama_pasien") & vbNewLine & "NoRM = " & p("duplicate")(1).Item("nomor_rm") & " Tanggal = " & p("duplicate")(1).Item("tgl_masuk"))
Exit Function
End If
End If
Else
Call MsgBox("SERVER ERROR", vbOKOnly)
Exit Function
End If
End Function
9. Buat Form Baru
Buat Form dengan isi
Label 6 buah
text box 1 line 6 buah
text box multi line 1 buat (untuk menampilkan response)
commandbox
Tata form supaya terlihat seperti dibawah ini:
Beri Caption dan nama textbox sesuai dengan labelnya, Untuk Lebih jelasnya lihat gambar diatas
lalu masukkan kode berikut di command Button
Dim tt As BuatKlaimPasienINACBG
Set tt = New BuatKlaimPasienINACBG
tt.NomorKartu = txtNoKartu.Text
tt.NomorSEP = txtNoSEP.Text
tt.NoRM = txtNoRM.Text
tt.Tgl_Lahir = txtTglLahir.Text
tt.Gender = txtJK.Text
tt.Server = "192.168.7.201/BridgingInaCBG"
tt.getData
10. Test Program
Jalankan program
Coba masukkan data seperti dibawah ini
- Klik Buat Klaim Pasien INACBG
Pada bahasan sebelumnya sudah saya tulis kalau key dari Bridging INACBG ini adalah nosep. Bila Bridging INACBG mendeteksi adanya double SEP maka akan keluar Pesan seperti ini:
Kalau berhasil pesannya seperti ini:
Demikianlah contoh mengakses web service dan JSON di Visual basic 6. Contoh source ini bisa di download di
https://drive.google.com/file/d/0B1NbkNRwjYEyVFNmWFdJWUZ5OG8/view?usp=sharing
kalau untuk menampilkan data bukan duplikasi bagaimana ya ya
ReplyDeletemenggunakan model yang -> p("duplicate")(1).Item("nama_pasien") tidak bisa, krn ini format untuk data yg ada duplikasi
saya gunakan untuk fungsi get_claim_data
untuk ambil data get_data_claim
ReplyDeletetariftotal = p.Item("response").Item("data").Item("grouper").Item("response").Item("cbg").Item("tariff")
dengan perintah diatas bisa didapatkan tarif klaim
tarifadd = p.Item("response").Item("data").Item("grouper").Item("response").Item("cbg").Item("add_payment_amt")
tapi dengan perintah diatas kok tidak muncul hasil padahal kolom add_payment_amt ini berisi data, apakah ada pengaturan setting function yang membatasi panjang perintah???
Sy cek dulu mas, waktu web service ini dibuat, kayaknya belum ada parameter add_payment_amt. Insyaallah akan sy buat artikel lain yg lebih lengkap. Terima kasih sudah mampir.
DeleteSudah saya bantu trace pak. hasilnya sudah saya kirim lewat WA. Terima kasih sudah mampir. Semoga sukses bridgingnya
Deleteterima kasih pak martin, semoga selalu diberikan kesehatan, panjang umur, berkah rejeki, keselamatan dan kebahagiaan,
ReplyDeleteatas berbagi ilmunya, dan saya ingin belajar ya pak
Sama2 pak, semoga sukses
DeletePAK MARTIN, saya download lalu saya coba running tp error, muncul pesan "a connection with the server could not be established", sperti salah nama servernya
ReplyDeleteSepertinya salah alamat servernya
DeleteTerima kasih mas...
ReplyDeleteterus teranga sampean iki programmer yang sangat baik hati.. Cara dan codingnya disharing semua.
Ijin baca dan download...
Semoga sukses selalu mas..
Sama2 pak, tujuannya memang untuk membantu teman2 yg lain, kalau ada masalah di bridging bs langsung kontak sy
Deleteassalamualaikum..
ReplyDeletemas, mau nanya, untuk Request Cetak Klaim decode di v6 nya bagaimana??
suwun..
Ada di artikel lain, cari artikelnya lewat menu sitemap
DeleteAda di postingan sy yg lain pak, lebih baru dari postingan ini. Intinya sih json dari ws didecode base64 coba di cari di web ini
ReplyDeletesipp..udh ktm postingannya.. suwun..
Deleteoia mas.. barangkali tahu, untuk request informasi special cmg (code, description, type & tariff) seperti apa requestnya..
ReplyDeleteBaca juknis mas wkwkw
Deletekok link nya rusak gan itu,
ReplyDeleteWe're sorry. You can't access this item because it is in violation of our Terms of Service.
terimakasih
Disapu sama google gan. Googlenya galak. Tinggalin email saja, nanti tak kirim
Deleteterimakasih pak, artikel ini sangat membantu..
ReplyDeleteizin ngulik skrip API nya
Sama2 pak, feel free to ask
Deletemohon maaf pak bisa kirim email apa tidak yaa
ReplyDeleteke dianrh77@gmail.com
terimakasih sebelumnya
Mohon maaf pak, gak bisa di download lagi aplikasinya
ReplyDeletemas..bisa kirim ke aapermana035@gmail.com.. makasih
ReplyDeletemohon file demonya untuk artikel json vb6 ke email andhikoeswoyo@gmail.com
ReplyDeletematurnuwun sebelumnya pak
saya baru belajar koneksi api untuk vb6, jika berkenan mohon share ke email smkn4fauzan@gmail.com nggih pak
ReplyDelete