Pembangunan Aplikasi Rekam Medis dengan Pemanfaatan

advertisement
Konferensi Nasional Sistem Informasi 2011
1.
Pendahuluan
Aliran informasi merupakan bagian
yang sangat penting dalam suatu perusahaan
maupun organisasi di berbagai bidang
termasuk kesehatan. Jika aliran informasi
tersendat maka dapat mempengaruhi proses
manajerial yang meliputi perencanaan,
koordinasi,
kepemimpinan
dan
pengendalian.
Hal
tersebut
dapat
menimbulkan penurunan kinerja. Kondisi
bottleneck atau penumpukan pekerjaan pada
satu bagian akan mengakibatkan proses
pelaporan dan layanan menjadi sangat
lambat.
Adanya jaringan komputer dapat
mengatasi hal tersebut. Jaringan komputer
dapat berperan mengintegrasikan data
sehingga dapat diolah dengan tepat oleh
komputer
terpusat
(server)
maupun
mengalirkan informasi secara lengkap dan
cepat ke terminal-terminal tujuan (client ),
secara kontinu dan teratur. Kehadiran
teknologi jaringan komputer tidak hanya
bermanfaat untuk mengalirkan informasi
tetapi juga dapat menghemat investasi dan
mengoptimalkan penggunaan perangkat
keras maupun perangkat lunaknya karena
jaringan komputer menyediakan fasilitas
untuk berbagi pakai semua peralatan yang
terhubung dalam lingkungan jaringan
tersebut. Penerapan jaringan komputer akan
mendukung adanya digitalisasi, otomatisasi
dan komputerisasi.
Proses aliran data dan pesan dalam
jaringan dapat terjadi melalui socket API
(Application
Programming
Interface).
Socket API merupakan middleware yang
menghubungkan komputer server dengan
komputer client.
Perkembangan
teknologi
dapat
meningkatkan kinerja dan memungkinkan
berbagai kegiatan dapat dilaksanakan
dengan cepat, tepat dan akurat, sehingga
akhirnya meningkatkan produktivitas[1].
Tidak
menutup
kemungkinan
pada
pengelolaan data di rumah sakit yang
diwujudnyatakan dengan aplikasi rekam
medis
yang
mampu
meningkatkan
pelayanan sebuah rumah sakit
Pada artikel ini dibahas pemanfaatan
socket API pada komunikasi antar aplikasi
rekam medis pada komputer client dan
server. Aplikasi ini dibuat untuk dapat
mengurangi beban kerja sub-bagian rekam
244
medis dalam menangani berkas rekam medis
dan meningkatkan pelayanan dari sebuah
rumah sakit.
2.
Arsitektur Client Server
Jaringan komputer adalah sebuah
sistem yang terdiri atas komputer dan
perangkat jaringan lainnya yang bekerja
bersama-sama untuk mencapai suatu tujuan
yang sama. Jaringan komputer memudahkan
proses pertukaran data serta informasi. LAN
menyediakan
jaringan
komunikasi
berkecepatan tinggi pada komputerkomputer dan terminal-terminal yang
dihubungkan satu sama lain dan terletak
pada beberapa tempat yang terpisah dan
biasanya tidak terlalu jauh, seperti bangunan
kantor, atau pabrik. LAN memungkinkan
suatu organisasi untuk menggunakan
pengolahan
data
terdistribusi
yang
menggunakan Personal Computer(PC) yang
dapat mengakses satu sama lain dan/atau ke
komputer host[3].
Arsitektur jaringan client server
merupakan model konektivitas pada jaringan
yang membedakan fungsi komputer sebagai
client
atau
server.
Arsitektur
ini
menempatkan sebuah komputer sebagai
server yang bertugas memberikan layanan
kepada terminal-terminal lain (client) yang
terhubung dalam sistem jaringan itu[4].
Pada dasarnya client server dibentuk
oleh tiga komponen dasar, yaitu client,
middleware, dan server. Secara sederhana,
hubungan anatar ketiga komponen tersebut
ditunjukkan pada Gambar 1.
Gambar 1. Komponen Dasar Client Server
Client merupakan terminal yang
digunakan oleh pengguna untuk meminta
layanan tertentu yang dibutuhkan. Disini
peran client adalah mengirimkan pesan
berupa permintaan layanan ke server.
Melalui terminal client ini, pengguna dapat
memasukkan data dan mengakses forum
untuk transaksi. Terminal client ini juga
Konferensi Nasional Sistem Informasi 2011
digunakan
untuk
menerima
hasil
pemrosesan yang diminta dari server.
Middleware merupakan komponen
perantara yang memungkinkan client dan
server untuk saling terhubung dan
berkomunikasi satu sam lain. Middleware
yang digunakan disini yaitu Socket
Application Programming Interface(API).
Middleware memiliki peran yang strategis
karena dengan adanya middleware maka
client dapat mengirimkan pesan atau
permintaan ke server, menerjemahkan pesan
dari client agar dapat dimengerti oleh server,
menerjemahkan hasil proses dari server agar
dapat dipahami oleh client dan mengirimkan
hasil proses yang telah diterjemahkan
kembali ke client. Server merupakan pihak
yang menyediakan layanan. Secara umum,
server berperan menerima pesan permintaan
layanan dari client, memproses permintaan
tersebut dan mengirimkan hasil permintaan
kepada client.
3.
Interkoneksi Socket API
Winsock atau windows socket
sebenarnya kepanjangan dari Windows
Sockets API (Application Programming
Interface) yang befungsi sebagai jembatan
untuk software aplikasi yang berhubungan
dengan network service terutama TCP/IP
pada sistem operasi Windows.
Socket
merupakan
mekanisme
komunikasi yang memungkinkan terjadinya
pertukaran data antar program atau proses
baik dalam satu mesin maupun antar mesin.
Pada setiap lingkungan sistem operasi yang
mampu berkomunikasi dengan protokol
TCP/IP, fasilitas socket selalu tersedia.
Socket adalah satu titik akhir dari
jalur komunikasi dua arah antara dua
program yang berjalan pada jaringan dengan
protokol TCP/IP atau UDP. Dalam kasus ini
digunakan protokol TCP/IP.
Socket terhubung pada sebuah nomor
port sehingga lapisan TCP dapat
mengidentifikasi sebuah aplikasi dimana
pengiriman data ditujukan (Gambar 2).
Gambar 2. Socket API [5]
Socket mengijinkan suatu proses unik
untuk berkomunikasi satu dengan yang lain,
memberitahukan proses mana untuk menulis
dan membaca, komunikasi socket dilakukan
pada mesin yang sama, jaringan dan
internet, selain itu komunikasi dua arah
membuatnya cocok untuk model client
server, socket dibentuk tahun 1980 oleh
Barkeley Unix Distribution[4].
Pada umumnya, sebuah server
merupakan sebuah komputer yang khusus
dan memiliki sebuah socket yang terhubung
pada sebuah nomor port yang khusus. Server
hanya menunggu socket untuk menerima
permintaan koneksi(request) dari sebuah
client(passive open). Client mengetahui
alamat IP server dan nomor port tempat
tersebut dihubungkan. Untuk membuat
koneksi permintaan, client mencoba untuk
melakukan koneksi dengan server pada
mesin server dan port(active open).
Apabila semuanya berjalan dengan
baik maka server menerima koneksi. Saat
penerimaan, server membuka socket baru
yang terhubung pada port yang berbeda.
Untuk dapat melanjutkan penerimaan dari
socket awal untuk koneksi permintaan saat
melayani kebutuhan client yang terhubung,
dibutuhkan sebuah socket baru dengan
nomor port yang beda. Pada sisi client, jika
koneksi diterima, sebuah socket berhasil
dibentuk dan client dapat menggunakan
socket tersebut untuk berkomunikasi dengan
server. Client dan server sekarang dapat
berkomunikasi untuk menulis atau membaca
dari socket tersebut. Untuk menangani
pertukaran informasi antara aplikasi server
dengan aplikasi client diperlukan server
socket pada sisi server dan client socket pada
sisi client.
245
Konferensi Nasional Sistem Informasi 2011
Server socket kurang lebih memiliki
event – event berikut untuk menangani
layanan pertukaran data.
1.Event onClientConnect()
Event ini berisi perintah untuk
memberitahukan bahwa ada client yang
melakukan koneksi ke server socket. Untuk
itu perlu dilakukan definisi alamat IP dengan
menambahkan variabel temp bertipe
AnsiString untuk menampung alamat IP
client yang terhubung.
Kode Program 1. Event onClientConnect()
AnsiString temp;
temp=Socket->RemoteAddress;
int i;
for(i=0;i<ssChat->Socket>ActiveConnections;i++)
{
ssChat->Socket>Connections[i]->SendText(temp+"
Terhubung");
}
MemoChat->Lines->Add(temp+"
Terhubung");
2.Event onClientDisconnect()
Sama
halnya
dengan
event
onClientConnect(), event ini uga digunakan
sebagai pemberitahuan bahwa ada client
yang melakukan pemutusan koneksi.
Perintah yang digunakan pada event ini
sama dengan yang ada pada event
onClientConnect(),
hanya
saja
kata
terhubung diganti dengan terputus.
3.Event onError()
Event onError() digunakan didalam
penanganan kesalahan atau error yang
mungkin terjadi. Kesalahan dapat saja
terjadi jika alamat IP client tidak berada
pada satu jaringan yang sama dengan alamat
IP server. Selain itu, jika client salah
mendefenisikan alamat IP server, hal ini
juga dapat menimbulkan error. Sehingga
event ini dibutuhkan untuk memunculkan
pesan error. Dengan menambahkan perintah
ShowMessage("Error.."); pada baris event
onError().
4.Event onRead()
Event onRead() digunakan dalam
proses pertukaran data. Isi dari event ini
tergantung pada jenis layanan apa yang
ditangani oleh server socket tersebut. Pada
aplikasi yang dibangun menggunkan tiga
server socket yang menangani layanan yang
berbeda-beda pula. Untuk itu isi dari ketiga
event onRead() pada tiap server socket
berbeda pula.
246
Event onRead() yang menangani
layanan chatting berisi perintah seperti yang
ditunjukkan pada Kode Program 2.
Dilakukan deklarasi variabel bertipe
AnsiString dan integer Variabel bertipe
AnsiString mendefenisikan alamat IP client
dan pesan yang dikirimkan dari client.
Sedangkan
variabel
bertipe
integer
digunakan
dalam
proses
perulangan(looping).
Kode Program 2. Perintah event onRead()
Server Socket Chat
int i;
AnsiString
temp,temp2;//untuk
temporarinya
temp=Socket->ReceiveText();
temp2=Socket->RemoteAddress;
for(i=0;i<ssChat->Socket>ActiveConnections;i++)
{
ssChat->Socket>Connections[i]->SendText(temp2+":
"+temp);
}
MemoChat->Lines-
Untuk server socket yang menangani
layanan rekam medis morbiditas, dalam
event onClientRead() dideklarasikan dua
puluh variabel bertipe AnsiString dan sebuah
variabel bertipe integer. Variabel bertipe
AnsiString digunakan untuk menampung
data rekam medis yang akan dilewatkan dari
client ke server. Variabel bertipe AnsiSting
antara lain, psn, f1, f2, f3, f4, f5, f6, f7, f8, f9,
f10, f11, f12, f13, f14, f15, f16, f17, f18, f19.
Variabel psn mendefenisikan pesan yang
akan diterima server socket dengan
menggunakan
fungsi
ReceiveText().
Sedangkan variabel f1 sampai f19 digunakan
dalam proses pengisian data-data rekam
medis kedalam database sesuai dengan
aturan yang dibuat. Variabel i bertipe
integer, mendefenisikan pesan ke berapa
yang akan dilewatkan, membantu dalam
proses perulangan (Kode Program 3).
Sedangkan untuk server socket yang
menangani layanan rekam medis hasil
kegiatan K.I.A berisi perintah yang hampir
sama dengan yang melayani data morbisitas.
Yang membedakan hanya jumlah data yang
terkait. Sehingga deklarasi variabel nya
harus disesuaikan dengan jumlah data yang
akan dimasukan dalam database.
Konferensi Nasional Sistem Informasi 2011
Kode Program 3.. Perintah event
OnClientRead() Server Socket Morbiditas
AnsiString
psn,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,
f11,f12,f13,f14,f15,f16,f17,f18,f19
;
psn=Socket->ReceiveText();
int i;
f1="";f2="";f3="";f4="";f5="";f6=""
5. Event onListen().
Event ini
;f7="";f8="";f9="";f10="";f11="";f1
digunakan
untuk memberitahukan saat
2="";f13="";f14="";f15="";f16="";f1
7="";f18="";f19="";
server
mendengar ada client yang
i=2;
melakukan
koneksi. Sehingga ditambahkan
while(psn[i]!='#')
perintah
seperti “ShowMessage("login
{
f1=f1+psn[i];
Berhasil..!!");”
maupun
i++;
“ShowMessage("login
Berhasil..!!");”
}
sesuai
i++; dengan kebutuhan.
Sedangkan
untuk client socket, kurang
.....
s/d
while(psn[i]!='>')
lebih
memiliki event-event sebagai berikut :
{ 1. Event onConnect()
f19=f19+psn[i];
Saat client berhasil melakukan
koneksi ke server maka perlu dilakukan
konfirmasi sebagai pemeberitahuan bahwa
client tersebut berhasil melakukan koneksi.
Untuk itu event ini berfungsi untuk
melakukan
hal
tersebut
dengan
menambahkan
perintah
berikut
“MemoChat->Lines->Add("Terhubung ke
Server..!!");”.
2. Event onError()
Sama halnya dengan pada server
socket, event ini dibutuhkan untuk
memunculkan
pesan
error.
Dengan
menambahkan
perintah
ShowMessage("Error.."); pada baris event
onError().
3. Event onRead()
Event onRead() disini ditambahkan
hanya pada client socket yang menangani
layanan chatting, dengan menambahkan
perintah
“MemoChat->Lines->Add(Socket>ReceiveText());” karena layanan rekam
medis tidak memerlukan event ini.
Untuk layanan rekam medis, perintahperintah untuk proses input data dimasukkan
ke dalam tombol saat event onClick(). Proses
pengiriman data ke server socket serta
proses input data dapat dilihat pada Kode
Program 4 untuk client socket yang
menangani data morbiditas serta Kode
Program 5 untuk client socket yang
menangani data kegiatan K.I.A.
Kode Program 4. Perintah Input Data
Morbiditas
csMorbiditas->Socket->
SendText("<INSERT#"+txtNo->Text+"#"+
cbBulan->Text+"#"+cbTahun>Text+"#"+txtNoDtd->Text+"#"+
txtNoTerperinci>Text+"#"+cbSebabSakit>Text+"#"+txtKasus1->Text+"#"+
txtKasus2->Text+"#"+txtKasus3>Text+"#"+txtKasus4->Text+"#"+
txtKasus5->Text+"#"+txtKasus6>Text+"#"+txtKasus7->Text+"#"+
txtKasus8->Text+"#"+txtLk>Text+"#"+txtPr->Text+"#"+
txtJumlahKasusBaru>Text+"#"+txtJmlKunjungan>Text+">");
Kode Program 5. Perintah Input Data
Kegiatan K.I.A
csKIA->Socket->
SendText("<INSERT#"+cbBulanKIA>Text+"#"+
cbTahunKIA->Text+"#"+cbPuskesmas>Text+"#"+cbDesa->Text+"#"+txtKi>Text+"#"+
txtK4->Text+"#"+txtBv>Text+"#"+txtB6->Text+"#"+
txtBid->Text+"#"+txtDr>Text+"#"+txtB2500->Text+"#"+
txtA2500->Text+"#"+txtNor>Text+"#"+txtVe->Text+"#"+
txtSc->Text+"#"+txtKeterangan>Text+">");
4.
Aplikasi Rekam Medis
Aplikasi server dimulai dengan login
pengguna untuk mengakses aplikasi server,
setelah berhasil kemudian dilanjutkan
dengan mengaktifkan server agar bisa
berkomunikasi dengan tiap client serta
membuka layanan. Setelah server socket
aktif, dapat dilakukan proses melihat data
rekam medis. Dalam kasus ini terdapat dua
data rekam medis rawat jalan yaitu data
keadaan morbiditas rawat jalan surveilans
terpadu Rumah Sakit dan data hasil kegiatan
K.I.A. Aplikasi server juga dapat melakukan
beberapa proses manipulasi data seperti cari
data dan hapus data berdasarkan bulan dan
tahun. Aplikasi ini juga menyediakan
layanan chatting sebagai fitur tambahan.
Setelah selesai digunakan pengguna dapat
melakukan proses logout untuk memutuskan
hubungan serta keluar dari sistem. Aliran
peristiwa yang terjadi pada sisi aplikasi
server ini ditunjukkan pada Gambar 4.
Adapun proses-proses yang terjadi pada
247
Konferensi Nasional Sistem Informasi 2011
aplikasi server yaitu lihat data, manipulasi
data serta chatting.
Client
Start
gagal
Login
Server
Start
Login
gagal
berhasil
menentukan
berhasil/tidak
Koneksi ke
Server
menentukan login
berhasil/tidak
berhasil
Pilih Data
Start Server
Pilih Data
Input Data
KIA
Input Data
Morbiditas
Lihat Data
Morbiditas
Lihat Data
KIA
Manipulasi Data
Morbiditas
Manipulasi
Data KIA
Chatting
Logout
Chatting
end
Logout
Gambar 5. Activity Diagram Aplikasi Client
End
Gambar 4. Activity Diagram aplikasi
server
Sama seperti pada apikasi server, pada
aplikasi client juga diawali dengan proses
login untuk memulainya. Setelah berhasil
melakukan proses login, maka dilanjutkan
dengan koneksi ke server agar dapat
berkomunikasi dalam jaringan serta
menerima layanan dari server. Setelah
terhubung ke server yang sesuai, maka dapat
dilakukan proses input data rekam medis.
Dalam kasus ini terdapat dua data rekam
medis rawat jalan yaitu data keadaan
morbiditas rawat jalan surveilans terpadu
Rumah Sakit dan data hasil kegiatan K.I.A.
Aplikasi client dapat melakukan proses input
data. Data yang dimasukkan aplikasi client
dapat diakses pada aplikasi server. Sama
halnya seperti aplikasi server, aplikasi ini
juga menyediakan layanan chatting sebagai
fitur tambahan. Setelah selesai digunakan
pengguna dapat melakukan proses logout
untuk memutuskan hubungan serta keluar
dari
sistem.
Aliran
peristiwa
ini
digambarkan oleh Gambar 5. Adapun
proses-proses yang terjadi pada aplikasi
client yaitu input data serta chatting.
248
Selain melakukan proses input data
pertukaran informasi antara server dengan
tiap aplikasi client juga dapat dilakukan
dengan melakukan chatting yang bersifat
broadcast (semua pesan yang dilewatkan
dapat dibaca oleh semua client yang
terkoneksi ke server). Gambaran hubungan
antara server dan client ditunjukkan pada
Gambar 6.
Login Client
Koneksi
Server
<<include>>
<<include>>
Input Data
Manipulasi Data
Client
Transfer Data
Login Server
Gambar 6. Use Case Cara Kerja Aplikasi
Gambar 7 memperlihatkan aliran –
aliran aktifitas yang terjadi pada objek
client, database dan server. Dimulai dari
login server, proses dibukanya layanan oleh
server, login pada sisi client, proses
meminta layanan dari client ke server
melalui permintaan koneksi client ke server,
proses pengisian data di sisi client, server
mengakses data yang telah dimasukan client
ke dalam database, proses manipulasi data
oleh server, sampai dengan logout sistem
oleh kedua aplikasi client dan server.
Gambar 8 merupakan sequence diagram
yang menggambarkan cara kerja aplikasi
Konferensi Nasional Sistem Informasi 2011
rekam medis dengan tiga objek yang saling
berinteraksi yaitu objek client, server serta
database.
Client
Database
Server
Start
Login
Server
berhasil
Login Client
gagal
menentukan
berhasil/gagal
Start Server
gagal
menentukan
berhasil/gagal
berhasil
Koneksi ke
Server
Data
tersimpan
Input Data
Lihat Data
Manipulasi
Data
Chat Client
Chat Server
Client
Logout
Server
Logout
end
Gambar 7. Activity Diagram Aplikasi
: Client
: Database
Pada aplikasi server terdapat tiga server
socket yang akan menangani tiap kasus yang
berbeda. Borland C++ builder yang
merupakan bahasa pemrograman yang
digunakan dalam pembuatan aplikasi telah
menyediakan tools yang dapat digunakan
sebagai perantara atau jembatan antara
aplikasi terdistribusi dalam hal ini, aplikasi
server dan aplikasi client. Tools tersebut
dapat
langsung
digunakan
dengan
menambahkan event-event yang diperlukan.
Pada aplikasi server ditambahkan tiga
buah server socket. Server socket yang
pertama menangani layanan chatting, server
socket yang kedua melayani layanan
pertukaran data Keadaan Morbiditas Rawat
Jalan dan server socket yang ketiga
menangani layanan pertukaran data Hasil
Kegiatan K.I.A. Untuk melakukan koneksi
ke server socket, client socket harus
mendefenisikan alamat IP server serta port
server yang dituju. Nomor port merupakan
alamat yang lebih spesifik untuk server
socket. Satu port melayani satu layanan.
Jadi, masing-masing server socket memiliki
nomor port yang berbeda-beda.
Aplikasi di sisi client dan server dibuat
agar nyaman digunakan (user friendly).
Antar muka aplikasi rekam medis yang
dibangun ditunjukkan oleh Gambar 9 –
Gambar 11.
: Server
1: Login Server( )
2: Start Server( )
3: Login Client( )
4: koneksi ke server( )
5: Input Data( )
6: Simpan Data( )
7: Lihat Data( )
Gambar 9. Antar Muka Lihat Data
8: Manipulasi Data( )
9: Chat Server( )
10: Chat Client( )
11: Logout Client( )
12: Logout Server( )
Gambar 8. Sequence Diagram Aplikasi
249
Konferensi Nasional Sistem Informasi 2011
Daftar Rujukan
Gambar 10. Antar Muka Input Data
Morbiditas
Gambar 11. Antar Muka Input Data K.I.A
5.
Kesimpulan
Pemanfaatan interkoneksi Socket API
sebagai middleware mampu menjembatani
dan menghubungkan dua aplikasi pada client
dan server sehingga keduanya dapat saling
melakukan pertukaran data. Pemanfaatan
server socket ini juga dapat mengoptimalkan
proses pertukaran data antar aplikasi, dalam
hal ini pada aplikasi rekam medis sehingga
proses penanganan berkas rekam medis
pasien rawat jalan dapat ditangani dengan
lebih baik.
250
[1] Werdiana, Wawan, 2002, Perkembangan
Teknologi Informasi di Indonesia, Peneliti
Pusat Penelitian Informatika Lembaga Ilmu
Pengetahuan Indonesia,
http://www.informatika.lipi.go.id/perkembanga
n-teknologi-informasi-di-indonesia/.
Diakses
tanggal 25 April 2009.
[2] Lammle, Todd, 2006, Introduction to Cisco ®
Networking Technologies Study Guide. Wiley
Publishing, Inc, USA.
[3] Sopandi, Dede, 2005, Instalasi dan Konfigurasi
Jaringan Komputer. Penerbit INFORMATIKA,
Bandung.
[4] Oetomo, dkk, 2006, Client Server dan Sistem
Terdistribusi. PenerbitANDI, Yogyakarta.
[5] Morgan, David, 2003, Linux Networking:
socket rogramming, basis for services,
http://homepage.smc.edu/morgan_david/cs70/i
mages/sockets.gif. Diakses tanggal 15 April
2009.
[6] Nugroho, Adi, 2005, Rational Rose untuk
Pemodelan Berorientasi Objek. Penerbit
INFORMATIKA, Bandung.
Download