Menggabungkan berkas klaim dengan Visual Basic 6
Salah satu syarat melakukan pengklaiman ke BPJS adalah mengirimkan berkas klaim dalam satu pdf. Berkas klaim berisi SEP, Resume Pasien, Struk Pelayanan, Hasil Penunjang Medis dan sebagainya. Sejatinya file-file tersebut digenerate terpisah, baik melalui sistem ataupun scan manual. Sebenarnya bisa saja kita menggabungkan file pdf tersebut saat melakukan scanning dokumen, tapi bagaimana jika file-file tersebut sudah digenerate/keluar melalui aplikasi SIMRS. Nah, disini aku akan membagikan tips menggabungkan berkas klaim dengan Visual Basic 6.
beberapa langkah yang kita lakukan adalah:
Buat Folder Induk
Membuat folder induk, semua file dimasukkan kedalam satu folder. Misalnya folder by No SEP atau No Pendaftaran. Untuk memudahkan dalam memilih file yang digabung, alangkah baiknya kalau digabung dalam 1 folder. Sehingga user tidak perlu mimilih file-file apa yang digabungkan. Cara ini menyingkat waktu dan memudahkan user, tapi tidak bagi kamu programmernya hahaha.
Beri No Urut Di Depan Nama File
Berilah no urut didepan nama file sesuai dengan urutan berkas yang dikirim ke BPJS, misalnya
1.SEP.pdf
2.Resume.pdf
3.StrukPelayanan.pdf
4.HasilLaborat.pdf
5.HasilRadiologi.pdf
etc ...
Pemberian nomor ini numerik didepan nama file supaya berkas pdf yang kita gabungkan urutannya bisa sesuai dengan urutan yang dikehendaki BPJS. Lagi-lagi supaya user lebih mudah. Kamu programmer? silahkan berpusing ria.
Install Aplikasi PDFtk Server
Tentang PDFtk Server
Time to Ngoding
Textbox Asal File
Textbox Nama File Output
Tombol Pilih Folder Asal
Tombol Gabungkan File
Option Explicit | |
Private Const BIF_RETURNONLYFSDIRS = 1 | |
Private Const BIF_DONTGOBELOWDOMAIN = 2 | |
Private Const BIF_EDITBOX = &H10 | |
Private Const BIF_NEWDIALOGSTYLE = &H40 | |
Private Const MAX_PATH = 260 | |
Private Declare Function SHBrowseForFolder Lib _ | |
"shell32" (lpbi As BrowseInfo) As Long | |
Private Declare Function SHGetPathFromIDList Lib _ | |
"shell32" (ByVal pidList As Long, ByVal lpBuffer _ | |
As String) As Long | |
Private Declare Function lstrcat Lib "kernel32" _ | |
Alias "lstrcatA" (ByVal lpString1 As String, ByVal _ | |
lpString2 As String) As Long | |
Private Type BrowseInfo | |
hWndOwner As Long | |
pIDLRoot As Long | |
pszDisplayName As Long | |
lpszTitle As Long | |
ulFlags As Long | |
lpfnCallback As Long | |
lParam As Long | |
iImage As Long | |
End Type | |
Private Sub cmdGabungkanFIle_Click() | |
Shell ("pdftk " & txtFolderAsal.Text & "/*.pdf cat output " & App.Path & "/output/" & txtFileOutput.Text & ".pdf") | |
Call MsgBox("Tersimpan di " & App.Path & "\output\" & txtFileOutput.Text & ".pdf") | |
End Sub | |
Private Sub cmdPilihFolder_Click() | |
'============================= | |
Dim lpIDList As Long | |
Dim sBuffer As String | |
Dim sTitle As String | |
Dim tBrowseInfo As BrowseInfo | |
sTitle = "Find Directory" | |
With tBrowseInfo | |
.hWndOwner = Me.hWnd | |
.lpszTitle = lstrcat(sTitle, "") | |
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN _ | |
+ BIF_EDITBOX + BIF_NEWDIALOGSTYLE | |
End With | |
lpIDList = SHBrowseForFolder(tBrowseInfo) | |
If (lpIDList) Then | |
sBuffer = Space(MAX_PATH) | |
SHGetPathFromIDList lpIDList, sBuffer | |
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1) | |
txtFolderAsal.Text = sBuffer | |
End If | |
End Sub | |
Private Sub Form_Load() | |
txtFileOutput.Text = "" | |
End Sub |
ReplyDeleteWonderful beat ! D.
I have bookmarked it in my google bookmarks.D.
ReplyDeleteYour writing style has been amazed me. D.
ReplyDeleteThank you, very great article. D.
ReplyDeleteThere are so many choices out there that I'm totally confused .. D.
ReplyDeleteAny suggestions? Many thanks!D.
ReplyDeleteGreat blog here! Also your web site loads up very fast! D.
ReplyDeleteThanks for sharing such a wonderful post.
ReplyDeleteExcellent and nice post. It will beneficial for everyone.
ReplyDeleteI must thank you for the efforts you’ve put in writing this blog.
ReplyDeleteI’ll oftimes be once more to learn to read much more, many thanks that information
ReplyDeleteNow I fianlly found which I actually want.
ReplyDeleteThanks for your excellent blog and giving great kind of information.
ReplyDelete