Selamat siang para bridgingers. Tutorial ini lanjutan dari tutorial sebelumnya, yang baru datang silahkan masuk kesini dulu
Bridging INACBG5 dengan visual basic 6 dan SLIM PHP

Suatu ketika ada seseorang verifikator E-Klaim komplain karena bridging terakhirnya tidak masuk. Ceritanya ada revisi diagnosa, lalu dia merasa sudah menginput, tetapi hasil iur bayar di kasir tidak sesuai dengan hasil inputannya. Setelah diinvestigasi, ternyata dia nggak menginput lewat aplikasi bridging yang aku buat. Karena data yang tersimpan di database adalah data bridging dia yang pertama. Tapi dia bersikukuh dengan bukti hasil print klaim individual. Lah dia pakai bukti print klaim individual, padahal di aplikasi bridging belum aku tambahi fasilitas buat ngeprint!!!
Akhirnya dia ngaku kalau ngeditnya pakai aplikasi E-Klaim. Nah Loh...



Kembali ke Laptop, eh ke artikel. Thanks to team NCC yang sudah membuatkan web service untuk kami para bridgingers. Fasilitas cetak klaim individual ini bisa dibaca di pdf petunjuk teknis Aplikasi INA-CBG5 bab webservice di bagian Cetak Klaim.

Kodenya seperti berikut:

Cetak klaim:
{
 "metadata": {
 "method": "claim_print"
 },
 "data": {
 "nomor_sep": "16120507422"
 }
}
Response:
{
 "metadata": {
 "code": 200,
 "message": "Ok"
 },
 "data": “7c7uNsPO4uXsTpr9zCtiTrYdzMjmHxZIEjDobAoujnJvdO7UWTB
 eRr9wb8mtnd9+gnzForViUj6QtD9xVBTJFxz4N/DvR7IwT7RqdQ
 DsgFl5NnnWqZb/fNUKXQDQ+Q+e+yR48eo8bPF … dst”
 }

Hasil dari method claim_print adalah file pdf yang ter-encode dengan base 64 yang terdapat pada variable “data”. Silakan decode terlebih dahulu untuk mendapatkan

file pdf dalam bentuk binary untuk kemudian ditampilkan atau disimpan.

Seperti sudah dijelaskan disana, filenya ada divariabel "data". Variabel ini adalah file yang di encode dengan base 64. Nah kendalanya disini, soalnya banyak yang nggak paham apa itu base 64, termasuk aku (sambil ngacung). Inilah kenapa artikel ini aku tulis. Mungkin teman-teman yang lain juga belum tahu tentang encode base 64, jadi biar kalian nggak ndeso kayak aku, yuk kita pelajari bersama

Base 64 Encoding Decoding

Sebelum kita melangkah lebih jauh, pikir-pikirkan dulu, sebelum dirimu... hadeh malah nyanyi dangdut. Yang tahu lagunya pasti seumuran sama yang nyanyi :P.

Base64 encoding/decoding adalah metoda yang digunakan untuk melakukan penyandian (encoding) terhadap file binary menjadi string. dengan kata lain. Binary dirubah menjadi menjadi 7 bit karakter. 

Biar nggak terlalu panjang lebar, cukup sekian saja pembahasan soal base64. Intinya sih binary diencode menjadi string, nanti setelah sampai bisa dibalikin lagi ke sbinary.

Tehnik encoding sebenarnya sederhana

  1. Cari kode ASCII untuk masing-masing text
  2. Cari Bilangan binner 8 bit dari kode ASCII yang ada
  3. Gabungkan 8 bit menjadi 24 bit
  4. Pecah 24 bit menjadi 6 bit, sehingga akan menjadi 4 pecahan
  5. Masing-masing pecahan diubah menjadi nilai desimal
  6. jadikan nilai – nilai decimal tersebut menjadi indeks untuk memilih karakter penyusun dari base64 dan maksimal adalah 63 atau indeks ke 64
  7. Jika dalam proses encoding terdapat sisa pembagi, maka sebagai penggenap maka tambahkan karakter "=" sebagai karakter penggenap, sehingga kadang dalam string base64 ada dua karakter "="


PERSIAPAN

Tool yang digunakan masih sama dengan yang kemarin. Bedanya di Visual Basic 6 ada tambahan modul untuk decode base64. Kemudian Jangan lupa ada aplikasi pembaca file pdf yang terinstall bukan yang portable. Saya pakai foxit reader.


Source code vb6 dan webservice php yang pernah aku upload di Bridging INACBG5 dengan visual basic 6 dan SLIM PHP.

Langkah pertama - Tambahkan Service Cetak di Web Service BridgingInaCBG

Tambahkan service cetak klaim di web service. Buka folder BridgingInaCBG.
Pada index.php, tambahkan service untuk cetak klaim 
Berikut ini kodenya:

Function cetak($request, $response, $args) {
        $nosep = $request->getParsedBody()['nosep'];
        //echo $nosep;
        $json = '{
        "metadata":{
        "method":"claim_print"
    },
    "data":{
        "nomor_sep":"'.$nosep.'"
    }
        }';

        $json = mc_encrypt ($json, getKey());
        $ch = curl_init(getUrlWS());
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $result = curl_exec($ch);
        curl_close($ch);
    $result = str_replace ('----BEGIN ENCRYPTED DATA----', '', $result);
    $result = str_replace ('----END ENCRYPTED DATA----', '', $result);
    $result = mc_decrypt (getKey(), $result);
    $data = json_decode ($result, true);
    $response->write($result);
    $response->write($result);
    return $response;

}

Langkah Kedua - Buka Source Code Visual Basic 6

Buka file source code simulasi visual basic 6, kalau belum punya download saja diartikel ini

http://www.martinsetiawan.com/2017/03/bridging-ina-cbg5-simrs-dengan-visual_56.html

Langkah Ketiga - Tambahkan Modul Enc64

Modul ini aku dapat dari internet, Aku mohon maaf banget wahai creator modul, aku lupa alamat webnya, kalau nggak salah sih ngambil di forum diskusi. Kalau ada yang pernah nemu bisa menghubungiku, biar aku bisa menambahkan kredit creator modulnya di blog ini.

Masukkan Modul Enc64. Klik Kanan pada windows project explorer 

Kemudian akan terbuka form Add Module. Klik Open
Ganti nama modul menjadi Enc64,


Kemudian masukkan kode dibawah ini:

Option Explicit

Private Const clOneMask = 16515072          '000000 111111 111111 111111
Private Const clTwoMask = 258048            '111111 000000 111111 111111
Private Const clThreeMask = 4032            '111111 111111 000000 111111
Private Const clFourMask = 63               '111111 111111 111111 000000

Private Const clHighMask = 16711680         '11111111 00000000 00000000
Private Const clMidMask = 65280             '00000000 11111111 00000000
Private Const clLowMask = 255               '00000000 00000000 11111111

Private Const cl2Exp18 = 262144             '2 to the 18th power
Private Const cl2Exp12 = 4096               '2 to the 12th
Private Const cl2Exp6 = 64                  '2 to the 6th
Private Const cl2Exp8 = 256                 '2 to the 8th
Private Const cl2Exp16 = 65536              '2 to the 16th

Public Function Encode64(sString As String) As String

    Dim bTrans(63) As Byte, lPowers8(255) As Long, lPowers16(255) As Long, bOut() As Byte, bIn() As Byte
    Dim lChar As Long, lTrip As Long, iPad As Integer, lLen As Long, lTemp As Long, lPos As Long, lOutSize As Long
    
    For lTemp = 0 To 63                                 'Fill the translation table.
        Select Case lTemp
            Case 0 To 25
                bTrans(lTemp) = 65 + lTemp              'A - Z
            Case 26 To 51
                bTrans(lTemp) = 71 + lTemp              'a - z
            Case 52 To 61
                bTrans(lTemp) = lTemp - 4               '1 - 0
            Case 62
                bTrans(lTemp) = 43                      'Chr(43) = "+"
            Case 63
                bTrans(lTemp) = 47                      'Chr(47) = "/"
        End Select
    Next lTemp

    For lTemp = 0 To 255                                'Fill the 2^8 and 2^16 lookup tables.
        lPowers8(lTemp) = lTemp * cl2Exp8
        lPowers16(lTemp) = lTemp * cl2Exp16
    Next lTemp

    iPad = Len(sString) Mod 3                           'See if the length is divisible by 3
    If iPad Then                                        'If not, figure out the end pad and resize the input.
        iPad = 3 - iPad
        sString = sString & String(iPad, Chr(0))
    End If

    bIn = StrConv(sString, vbFromUnicode)               'Load the input string.
    lLen = ((UBound(bIn) + 1) \ 3) * 4                  'Length of resulting string.
    lTemp = lLen \ 72                                   'Added space for vbCrLfs.
    lOutSize = ((lTemp * 2) + lLen) - 1                 'Calculate the size of the output buffer.
    ReDim bOut(lOutSize)                                'Make the output buffer.
    
    lLen = 0                                            'Reusing this one, so reset it.
    
    For lChar = LBound(bIn) To UBound(bIn) Step 3
        lTrip = lPowers16(bIn(lChar)) + lPowers8(bIn(lChar + 1)) + bIn(lChar + 2)    'Combine the 3 bytes
        lTemp = lTrip And clOneMask                     'Mask for the first 6 bits
        bOut(lPos) = bTrans(lTemp \ cl2Exp18)           'Shift it down to the low 6 bits and get the value
        lTemp = lTrip And clTwoMask                     'Mask for the second set.
        bOut(lPos + 1) = bTrans(lTemp \ cl2Exp12)       'Shift it down and translate.
        lTemp = lTrip And clThreeMask                   'Mask for the third set.
        bOut(lPos + 2) = bTrans(lTemp \ cl2Exp6)        'Shift it down and translate.
        bOut(lPos + 3) = bTrans(lTrip And clFourMask)   'Mask for the low set.
        If lLen = 68 Then                               'Ready for a newline
            bOut(lPos + 4) = 13                         'Chr(13) = vbCr
            bOut(lPos + 5) = 10                         'Chr(10) = vbLf
            lLen = 0                                    'Reset the counter
            lPos = lPos + 6
        Else
            lLen = lLen + 4
            lPos = lPos + 4
        End If
    Next lChar
    
    If bOut(lOutSize) = 10 Then lOutSize = lOutSize - 2 'Shift the padding chars down if it ends with CrLf.
    
    If iPad = 1 Then                                    'Add the padding chars if any.
        bOut(lOutSize) = 61                             'Chr(61) = "="
    ElseIf iPad = 2 Then
        bOut(lOutSize) = 61
        bOut(lOutSize - 1) = 61
    End If
    
    Encode64 = StrConv(bOut, vbUnicode)                 'Convert back to a string and return it.
    
End Function

Public Function Decode64(sString As String) As String

    Dim bOut() As Byte, bIn() As Byte, bTrans(255) As Byte, lPowers6(63) As Long, lPowers12(63) As Long
    Dim lPowers18(63) As Long, lQuad As Long, iPad As Integer, lChar As Long, lPos As Long, sOut As String
    Dim lTemp As Long

    sString = Replace(sString, vbCr, vbNullString)      'Get rid of the vbCrLfs.  These could be in...
    sString = Replace(sString, vbLf, vbNullString)      'either order.

    lTemp = Len(sString) Mod 4                          'Test for valid input.
    If lTemp Then
        Call Err.Raise(vbObjectError, "MyDecode", "Input string is not valid Base64.")
    End If
    
    If InStrRev(sString, "==") Then                     'InStrRev is faster when you know it's at the end.
        iPad = 2                                        'Note:  These translate to 0, so you can leave them...
    ElseIf InStrRev(sString, "=") Then                  'in the string and just resize the output.
        iPad = 1
    End If
     
    For lTemp = 0 To 255                                'Fill the translation table.
        Select Case lTemp
            Case 65 To 90
                bTrans(lTemp) = lTemp - 65              'A - Z
            Case 97 To 122
                bTrans(lTemp) = lTemp - 71              'a - z
            Case 48 To 57
                bTrans(lTemp) = lTemp + 4               '1 - 0
            Case 43
                bTrans(lTemp) = 62                      'Chr(43) = "+"
            Case 47
                bTrans(lTemp) = 63                      'Chr(47) = "/"
        End Select
    Next lTemp

    For lTemp = 0 To 63                                 'Fill the 2^6, 2^12, and 2^18 lookup tables.
        lPowers6(lTemp) = lTemp * cl2Exp6
        lPowers12(lTemp) = lTemp * cl2Exp12
        lPowers18(lTemp) = lTemp * cl2Exp18
    Next lTemp

    bIn = StrConv(sString, vbFromUnicode)               'Load the input byte array.
    ReDim bOut((((UBound(bIn) + 1) \ 4) * 3) - 1)       'Prepare the output buffer.
    
    For lChar = 0 To UBound(bIn) Step 4
        lQuad = lPowers18(bTrans(bIn(lChar))) + lPowers12(bTrans(bIn(lChar + 1))) + _
                lPowers6(bTrans(bIn(lChar + 2))) + bTrans(bIn(lChar + 3))           'Rebuild the bits.
        lTemp = lQuad And clHighMask                    'Mask for the first byte
        bOut(lPos) = lTemp \ cl2Exp16                   'Shift it down
        lTemp = lQuad And clMidMask                     'Mask for the second byte
        bOut(lPos + 1) = lTemp \ cl2Exp8                'Shift it down
        bOut(lPos + 2) = lQuad And clLowMask            'Mask for the third byte
        lPos = lPos + 3
    Next lChar

    sOut = StrConv(bOut, vbUnicode)                     'Convert back to a string.
    If iPad Then sOut = Left$(sOut, Len(sOut) - iPad)   'Chop off any extra bytes.
    Decode64 = sOut

End Function

Langkah ke Empat - Buat Class Modul Cetak Klaim

Buat Class Modul baru, caranya klik kanan di jendela explore project, kemuduan pilih Add=>Class Modulules


ganti nama class modul menjadi CetakKlaim,

Lalu Masukkan Kode dibawah ini

Private mNomorSEP As String
Private mServer As String

Public mData As String

Property Get NomorSEP() As String
    NomorSEP = mNomorSEP
End Property
Property Let NomorSEP(Value As String)
    mNomorSEP = Value
End Property
Property Get Server() As String
    Server = mServer
End Property
Property Let Server(Value As String)
    mServer = Value
End Property
Public Function cetak()
    Dim Result As String
    Dim tPost As String
    Dim p As Object
    Dim response As String
    Dim xmlhttp As WinHttp.WinHttpRequest
    Dim sUrl As String
   
    tPost = "nosep=" & Me.NomorSEP
    sUrl = "http://" & Me.Server & "/cetak"

    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
            mData = p.Item("data")
            Dim s_enc As String
            s_enc = Decode64(mData)
            Dim judulfile As String
            judulfile = App.Path & "\" & Me.NomorSEP & ".pdf"
            Call FileWriteBinary(s_enc, judulfile)
            ShellExecute MDIUtama.hWnd, vbNullString, judulfile, vbNullString, vbNullString, vbNormalFocus
        Else
            Call MsgBox("SERVER ERROR " & ServerCode, vbOKOnly)
        End If
    End If
    
End Function
Function FileWriteBinary(vData As Variant, sFileName As String, Optional bAppendToFile As Boolean = True) As Boolean
    Dim iFileNum As Integer, lWritePos As Long
    
    On Error GoTo ErrFailed
    If bAppendToFile = False Then
        If Len(Dir$(sFileName)) > 0 And Len(sFileName) > 0 Then
            'Delete the existing file
            VBA.Kill sFileName
        End If
    End If
    
    iFileNum = FreeFile
    Open sFileName For Binary Access Write As #iFileNum
    
    If bAppendToFile = False Then
        'Write to first byte
        lWritePos = 1
    Else
        'Write to last byte + 1
        lWritePos = LOF(iFileNum) + 1
    End If
    
    Put #iFileNum, lWritePos, vData
    Close iFileNum
    
    FileWriteBinary = True
    Exit Function

ErrFailed:
    FileWriteBinary = False
    Close iFileNum
    Debug.Print Err.Description
End Function

Langkah Kelima - Buat Form Cetak

Buat Form baru untuk tombol cetak. Buat text box untuk memasukkan NoSEP, beri nama txtNoSEP. dan 1 tombol untuk mencetak, cmdCetak

Ini contoh tampilannya, sangat sederhana, jauh sekali dari kesan indah atau mawar




 Dim ct As CetakKlaim
    Set ct = New CetakKlaim
    ct.NomorSEP = txtNoSEP.Text
    'Ganti IpServer Lokal dengan server lokalmu
    ct.Server = "ipserverlokal/BridgingInaCBG"
    ct.cetak


Langkah KeEnam - Semoga Berhasil

Okay aplikasinya sudah siap. Terima kasih sudah mampir disini, silahkan Mencoba dan jangan lupa kalau ada yang ingin ditanyakan tanyakanlah. Insyaallah aku bantu semampuku.


Sumber:
Tentang base64 : https://lailatoel.wordpress.com/2012/09/20/cara-kerja-base64-encoding-decoding/

Debian 9 Cover

Debian telah mengeluarkan sistem operasi terbarunya penerus Debian Jessie. Tepatnya pada tanggal 17 Juni 2017. Dari press releasenya. Debian 9 didedikasikan kepada founder Debian Ian Murdock yang meninggal pada tanggal 28 Desember 2015. Ian Murdock adalah founder Debian. Ian mulai mengembangkan debian sejak tahun 1993. Selain mengembangkan Debian, Ian juga ikut dalam project-project open source lainnya. Ian Murdock memiliki jasa dan sejarah yang panjang dalam dunia open source. Meski Ian Murdock telah tiada, namun nama Ian akan selalu terukir dihati para pelaku open source, Selain karena sumbangsihnya dalam dunia opensource, Nama Ian selalu terukir di Nama "Debian". Karena nama Debian sendiri sebenarnya adalah kombinasi nama Ian Murdock dengan kekasihnya Debra Lynn.

Sebenarnya aku termasuk pengguna loyal windows, karena pekerjaanku lebih banyak memakai windows ketimbang linux. Namun sudah sekitar 5 bulanan aku mencoba memakai linux. Debian adalah distro linux yang sangat aku remondasikan. Sistem operasi debian sangat stabil dan ringan. Saat ini aku memakai ubuntu (loh???). Bukan karena Ubuntu lebih bagus dari Debian. Yang namanya distro, pasti punya plus minus. Apalagi Ubuntu dibuat dari debian juga. Tapi kalau memakai ubuntu laptopku jadi cepat panas, beberapa teman juga bilang pakai ubuntu boros battery (kalau ini aku nggak bisa komentar, soalnya batteryku sudah mati). Namun Ubuntu punya komunitas yang sangat besar dan koleksi package yang sangat banyak. FYI Ubuntu memiliki fasilitas membuat repo sendiri dengan ppa jadi pengguna bisa memiliki repo sendiri. Cukup ngobrolin Ubuntunya, lets get back to Debian 9.

Kode Nama Debian 9

Debian 9 memiliki code name Strech. Seperti nama-nama distribusi sebelumnya, Seperti rilis sebelumya, debian menggunakan nama-nama karakter di film Toy Story. Kali ini debian 9 juga menggunakan nama dari salah satu karakter di film Toy Story, yaitu si gurita ungu yang bernama "Strech".


Yang Baru Di Debian 9


  • Linux Kernel menggunakan seri 4.9 LTS
  • Tool Digital Forensik baru
  • PHP versi 7 menggantikan PHP 5
  • Mariadb menggantikan MySQL
  • GNU GCC 6 menjadi default kompiler
  • Python 3.5 
  • 15346 package baru dari total 51687 package
Whats New on Debian 9


Untuk detailnya releasenya kamu bisa melihat di https://www.debian.org/releases/stable/amd64/release-notes/ch-about.en.html


Kamu juga bisa mengunduh Installernya di https://www.debian.org/distrib/
Pilih package sesuai spek komputermu.

Pilihan Image installer Debian

Aku lagi mau nyoba, jadi belum bisa buat testimoni tentang Debian 9, ntar kapan-kapan aku update lagi. See ya




RSUD KRMTWONGSONEGORO adalah rumah sakit daerah kebanggaan milik Kota Semarang. Salah satu tujuan pendirian rumah sakit ini adalah untuk memberikan pelayanan kesehatan yang memadai untuk warga Kota Semarang, meski RSUD KRMT WONGSONEGORO juga dapat menerima pasien dari kota lain seperti Demak, Nggubug dan sekitarnya.

RSUD KRMT WONGSONEGORO adalah rumah sakit tipe B yang terus berkembang dan berupaya meningkatkan pelayanan agar selalu bisa menjadi andalan pada pelayanan kesehatan khusunya untuk warga kota Semarang. Dan menjadi Rumah Sakit kebanggaan warga Semarang.

Dilihat dari kepesertaan pasien RSUD KRMT WONGSONEGORO. Jumlah pasien terbanyak di RSUD KRMT WONGSONEGORO adalah pasien JKN (ex Jamsostek, ASKES, Jamkesmas) yang dikelola oleh BPJS. Untuk Peserta JKN NON PBI bisa memilih kelas yang lebih tinggi dari kelas yang dijamin oleh BPJS. Tentunya ada perhitungan iur bayar yang harus dibayarkan oleh pasien. Lalu bagaimana cara menghitung iur bayarnya? apakah semua pasien tahu cara perhitungan iur bayar?

INA-CBG/EKLAIM


INA-CBG adalah singkatan dari Indonesia Case Base Group. INA-CBG adalah standart yang ditetapkan oleh pemerintah yang menjadi acuan bagi penyelenggara jaminan kesehatan pemerintah. Peraturan ini mengikat pada penyelenggara asuransi (BPJS), fasilitas kesehatan yang bekerja sama (rumah sakit, puskesmas, dokter keluarga) dan pihak-pihak yang terkait.

Cara penghitungan INA-CBG adalah sistem pembayaran/poenghitungan tarif secara "paket", berdasarkan penyakit yang diderita oleh pasien.
Rumah sakit akan menerima pembayaran berdasarkan rata-rata biaya yang dikeluarkan untuk diagnosis/kelompok penyakit tertentu.
Pengelompokan penyakit berdasarkan diagnosa dan tindakan yang dilakukan oleh medis yang kemudian dirumuskan dengan metode (Case Base Group). Lebih detailnya, perhitungan tarif INA-CBG didasarkan pada data-data dibawah ini:
1. Diagnosa ICD 10 (Diagnosa Penyakit) dan ICD 9 (Diagnosa Tindakan) Pasien (data ini akan digabungkan dengan formula tertentu dan akan bermutasi menjadi kode CBG (case base group))
3. Regional Daerah Rumah Sakit
4. Kualifikasi Rumah Sakit

Ketetapan INA-CBG ini diatur oleh Peraturan Menteri Kesehatan No. 76 Tahun 2016. Permenkes ini menjabarkan secara detail tentang penerapan Pelayanan Kesehatan untuk pelaku Jaminan Kesehatan Pemerintah.
Kamu bisa mendownloadnya disini Permenkes No. 64 Tahun 2016

INA-CBG dikembangkan dari sistem casemix yang dikembangkan oleh UNU IIGH (The United Nations University-International Institute for Global Health). Dan dari tambahan kata INA didepan kata CBG kita bisa tahu bahwa sistem casemix ini dibuat khusus untuk Indonesia.


Perlukah Pasien Mengetahui Tarif INA-CBG?

Sebenarnya pasien tidak menjadi masalah bila pasien tidak mengetahui tarif INA-CBG, apalagi tarif klaim baru bisa diketahui setelah dokter memberikan diagnosa akhir. Selanjutnya petugas klaim akan memasukkan data-data diagnosa tersebut ke aplikasi yang telah disediakan oleh pemerintah, yaitu aplikasi E-KLAIM.

Aplikasi E-Klaim digunakan oleh semua penyelenggara kesehatan. Sehingga bisa dipastikan tidak ada perbedaan standart antara penyelenggara asuransi dan penyelenggara kesehatan.


Pentingkah mengetahui perhitungan iur bayar?

Pasien berhak mendapatkan informasi tentang biaya perawatan dan jumlah yang harus dibayarkan oleh pasien.  Untuk pasien iur bayar di tempat saya berkerja (RSUD KRMT WONGSONEGORO). untuk pasien iur bayar biasanya sudah tertera informasi pembayarannya, baik total tagihan perawatan, jumlah dijamin, perhitungan iur bayar juga sudah disertakan. Hal ini untuk memberikan informasi yang dibutuhkan oleh pasien terkait pembayaran rumah sakit.

Perhitungan Iur Bayar NON VIP

Untuk penghitungan iur bayar Kelas Non VIP, yang dihitung adalah selisih tarif INA-CBG kelas yang ditempati dikurangi tarif INA-CBG kelas hak peserta (kelas yang dijamin)

 TARIF INACBG KELAS RAWAT -   TARIF INA-CBG KELAS HAK





Perhitungan Iur Bayar Naik kelas VIP

Perhitungan Naik Kelas VIP adalah maksimal 75% dari Tarif INA-CBG Kelas 1. Cara menghitungnya dengan mencari tarif INA-CBG Kelas 1 kemudian dikali 75%.

Perhitungan Peserta dibawah Kelas I ke VIP, maka  dihitung terlebih dahulu selisih tarif INA-CBG Kelas ditanggung Ke tarif INA-CBG Kelas I.
Kemudian ditambahkan dengan maksimal 75% tarif INA-CBG kelas 1






Perhitungan Tarif naik Kelas BPJS, Sumber: kompasiana.com


Perhitungan Iur Bayar Naik kelas VVIP DAN PRESIDENT SUIT

Perhitungan naik kelas VVIP dan President Suit yang berlaku di RSUD KRMT WONGSONEGORO Kota Semarang adalah 

IUR BAYAR = TOTAL BIAYA PELAYANAN - TARIF KLAIM (DIJAMIN)

Perhitungan ini berlaku baik untuk naik kelas VVIP maupun President Suit. 





*Penetapan tarif ini dapat berubah sewaktu-waktu tanpa pemberitahuan.

Demikian informasi mengenai perhitungan tarif IUR Bayar Peserta JKN di RSUD KRMT WONGSONEGORO, semoga informasi ini dapat berguna .

Tentang Petya

Pada tanggal 27 Juni 2017 mulai muncul laporan tentang kehadiran infeksi Ransomeware Petya di beberapa daerah di Eropa. Infeksi pertama terjadi di Ukraina. kabarnya virus ini melumpuhkan bank-bank dan maskapai penerbangan. Ransomeware ini sebenarnya sudah ada sejak lama, Dari microsoft didapatkan informasi virus ini pertama kali terlaporkan tanggal 28 Maret 2016 sebagai Ransom:win32/Petya. 
Virus Petya yang beredar saat ini adalah varian baru/versi terbaru dari Ransom:win32/Petya. Pada Petya sebelumnya virus hanya menginfeksi satu komputer. Pada versi terbaru ini sudah ditambahkan kemampuan menggandakan diri/menginfeksi komputer lain melalui jaringan komputer.

Cara Penyebaran 

Penyebaran awal Ransomeware Petya biasanya berupa link dari email yang akan mengarahkan kita untuk mendownload dan mengeksekusi program virus tanpa kita sadari. Selanjutnya Petya akan melakukan hal-hal seperti ini:
Menggunakan credential atau session yang aktif.
Menggunakan File sharing untuk menggandakan diri ke komputer lain di satu jaringan
Menggunakan celah keamanan SMB (Seperti virus Ransomeware WannaCry) untuk menyebarkan virus ke komputer lain.

Petya menempatkan tool untuk dumping credential karena banyak user yang sering login sebagai loka admin sehingga memiliki akses level yang sama dengan komputer lain di satu jaringan. Seperti yang kita tahu, hak akses administrator adalah segalanya bagi sebuah sistem operasi. Hal ini yang menjadikannya mudah untuk menyebar dan dieksekusi di komputer lain yang ada pada satu jaringan.
Setelah Petya mendapatkan akses level admin. Dengan segera dia akan melakukan scanning ke jaringan pada port tcp/139 dan port tcp/445.
Untuk komputer server atau domain controller. Petya akan memanggil dhcpEnumSubnets() untuk mendapatkan data-data komputer yang terhubung dengan domain kontroller.
Setelah Petya mendapatkan data-data komputer yang terhubung ke jaringan. Dia akan menyebarkan dirinya dengan cara menggandakan diri (copy) ke seluruh jaringan dengan credential yang sudah dicurinya.

Setelah itu dia akan mencoba mengeksekusi/menjalankan dirinya secara remote lewat PSEXEC atau WMIC tool.

Petya akan mencuri credential yang valid menggunakan fungsi CredEnumerateW untuk mendapatkan semua data credential pengguna yang ada di penyimpanan credential. 
Jika ditemukan credential dengan nama awal “TERMSRV/” dan tipenya diset 1 (generik), maka petya akan menggunakan credential ini untuk menggandakan diri di jaringan.

Kode Petya yang bertanggung jawab mengakses \\Admin$ di komputer lain. Sumber Microsoft
Petya juga menggunakan WMIC (Windows Management Instrumentation Command-line) untuk mencari remote sharing (menggunakan NetEnum/NetAdd) untuk menyebar/menggandakan diri ke komputer lain. Petya akan menggunakan duplikasi token dari user aktif saat ini atau menggunakan kombinasi user dan password (membaca dari dumping credential).

Mallware/Virus Petya mengeksekusi komputer lain secara remote dengan WMIC
Menggunakan eksploit Eternal Blue dan Eternal Romance.
Ransomeware Petya juga menggunakan bug pada SMB seperti halnya yang digunakan oleh Ransomeware WannaCry. Selain itu Petya juga menggunakan eksploit Eternal Romance untuk melakukan penyebaran ke komputer lain. Dua bug eksploit ini sudah ditambal oleh microsoft pada security update MS17-010 pada tanggal 14 Maret 2017. Kalau komputermu sudah diupdate setelah tanggal 14 Maret 2017 berarti kamu bisa merasa lega.

Sumber: MicrosoftPort 


Tindakan Pencegahan 

  1. Hal utama yang harus kamu lakukan untuk menangkal serangan virus Petya adalah dengan menjaga Sistem Operasi Windows-mu selalu diupdate secara berkala dan selalu up to date. Up to date ini bukan mengacu ke versi windowsnya ya, tetapi mengacu ke update-tan patch dari microsoft.
  2. Disable SMB v1. Karena mallware/virus ini menggunakan celah pada SMB v1, maka jalan paling pas untuk menekan jumlah kelahiran virus ini adalah dengan mendisable SMB v1. Cara menonaktifkan SMB v1 bisa dilihat disini Microsoft Knowledge Base Article 2696547
  3. Memblok Port 139 dan 445. Cara ini tidak saya rekomendasikan karena saya butuh port ini tetap aktif. Port 139 dan 445 digunakan untuk sharing file dijaringan. Kalau kamu nggak butuh fitur ini, ada baiknya port ini dimatikan.
  4. Anti virus yang up to date. Pastikan database virus aplikasi anti virus dikomputermu selalu up to date. Jangan anti virusnya yang selalu up to date, tapi data virusnya nggak pernah diupdate

 Kesimpulan

Gaung Ransomeware Petya di Indonesia memang tidak sedasyat Ransomeware WannaCry. Penyebaran Ransomeware Petya memang tidak semasif Ransomeware WannaCry. Selain itu patch yang telah dilakukan pada saat WannaCry muncul sudah membantu menangkal Ransomeware Petya.
Berbeda dengan WannaCry yang kabarnya sempat menyerang 2 rumah sakit di Indonesia. Sampai saat ini belum ada laporan tentang serangan mallware/virus Petya di Indonesia. Semoga saja virus ini memang benar tidak sampai ke Indonesia, bukan karena orang-orang di Indonesia lagi cuti bersama saat serangan ini datang.

Hal paling utama juga adalah, usahakan menggunakan windows asli, bukan bajakan. Karena hanya windows asli yang bisa diupdate. Jangan karena biar kekinian ikut-ikutan install windows bajakan. Saya pribadi di kantor menggunakan windows asli. Laptop keseharian saya dirumah juga sempat pakai windows asli (bundling). Namun karena partisinya rusak, akhirnya saya install ulang dan saat ini saya memakai linux kubuntu sebagai sistem operasinya. Kelebihan dari menggunakan komputer linux  adalah kamu tidak perlu khawatir sama ransomeware dan sejenisnya :)

Sumber: blog Microsoft technet: New ransomware, old techniques: Petya adds worm capabilities