Rancang Bangun Aplikasi Instalasi Rawat Inap dengan Paradigma Pengembangan Terintegrasi Menggunakan Enterprise Service Bus (ESB) Bambang Setiawan, Radityo Prasetianto Wibowo, Sofyan Rachman Jurusan Sistem Informasi, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember, Surabaya, Indonesia
Abstrak Rumah sakit umum pada umumnya telah memiliki unit pelayanan terpadu seperti Unit Gawat Darurat (UGD), Farmasi, Instalasi Rawat Inap (IRNA) , Instalasi Rawat Jalan (IRJA), dan beberapa layanan yang lainnya. Setiap titik pelayanan dari rumah sakit tersebut biasanya memiliki aplikasi tersendiri yang memungkinkan tidak adanya integritas data sehingga tidak valid apabila data digunakan pada aplikasi lainnya. Oleh karena itu diperlukan rancangan dan aplikasi Instalasi Rawat Inap (IRNA) yang dapat terintegrasi dengan aplikasi dari unit pelayanan yang ada di rumah sakit. Metode yang digunakan untuk mengintegrasikan aplikasi dengan aplikasi lain adalah dengan menggunakan teknologi Webservice dan Enterprise Service Bus (ESB) . dengan menggunakan teknologi soap . ESB mengintegrasikan semua aplikasi yang ada dengan cara menerima permintaan pesan yang dikirim menggunakan webservice kemudian permintaan pesan akan diteruskan ke aplikasi yang sesuai. Hasil yang dicapai dari Tugas Akhir ini adalah aplikasi Instalasi Rawat Inap yang terintegrasi dengan modul Rekam Medis, Instalasi Rawat Jalan dan Point of Sales yang terdapat pada Sistem Informasi Rumah Sakit. Fitur aplikasi Instalasi Rawat Inap yang membutuhkan web servis dari aplikasi lain adalah fitur daftar pasien dan fitur pemberian tindakan. Hanya saja penerapan web service pada jpaController akan semakin memperlambat waktu load pada halaman aplikasi. Key Words: Instalasi Rawat Inap, Web Service , Enterprise Service Bussines.
1. Pendahuluan Beragam rumah sakit di indonesia ini pada umumnya telah memiliki sebuah sistem informasi untuk menunjang segala macam kegiatan bisnis yang ada pada rumah sakit. Hanya saja kebanyakan rumah sakit hanya membangun sebuah sistem informasi berdasarkan kebutuhan bisnis pada sebuah titik tertentu sehingga apabila rumah sakit ingin mengembangkan bisnisnya
maka membutuhkan rekayasa ulang yang akan menghabiskan banyak waktu dan biaya. Rumah sakit umum rata – rata memiliki berbagai layanan terpadu seperti Unit Gawat Darurat, Farmasi, Instalasi Rawat Inap, Instalasi Rawat Jalan, dan beberapa layanan yang laiinya. Dengan banyaknya unit layanan tersebut apabila masing – masing unit bisnis tersebut memiliki sebuah sistem informasi yang berdiri sendiri tanpa terintegrasi dengan unit bisnis yang lainnya maka waktu yang dibutuhkan untuk menjalankan sebuah proses bisnis akan sangat lama. Oleh karena itu rumah sakit memerlukan sebuah rancangan dan aplikasi yang terintegrasi dengan masing - masing unit bisnis yang lainnya. Berdasarkan sebuah paper yang membahas permasalahan yang terkait dengan integrasi sebuah sistem dalam rumah sakit, disebutkan bahwa dengan munggunakan framework Organic Healthcare Information System (OHIS) yang sifatnya “organic” maka setiap modul aplikasi yang ada maupun yang belum di implementasikan dapat diintegrasikan dengan modul modul yang lainnya. Dasar teknologi pada framework OHIS adalah Service-Oriented Architecture (SOA). Hanya saja terdapat sebuah permasalahan lain yang muncul yaitu pada saat pengembangan software dilakukan oleh vendor pembangun software yang berbeda maka terdapat kemungkinan standard data yang berbeda sehingga data tidak akan bisa diterjemahkan untuk kelanjutan proses yang dilakukan aplikasi unit bisnis yang lain. Oleh karena itu untuk mengatasi hal tersebut, terdapat sebuah teknologi yang mampu menerjemahkan setiap tenologi integrasi data – data yang ada dapat dibaca oleh masing – masing aplikasi yang terhubung. Teknologi tersebut bernama Enterprise Service Bus (ESB).
2. Tinjauan Pustaka Dalam pembangunan aplikasi, digunakan beberapa dasar dari beberapa sumber bacaan.
A. Framework OHIS OHIS adalah suatu framework yang memberikan solusi alternatif bagi pengembangan sistem informasi rumah sakit dengan hanya membuat desain perangkat lunak sebagai modul service dan membuat database untuk tiap modul untuk bisa mengimplementasikannya(Mahananto, P.W., N.A., & E.R., 2010). Dengan diterapkannya OHIS, pengembang bisa melakukan pembangunan aplikasi dimulai dari yang kecil ataupun menerapkan yang sudah kompleks sekalipun dikarenakan sudah adanya standar framework dalam penulisan kode pada setiap aplikasi baru yang akan dibuat. Selain itu, juga terdapat dukungan framework SOA didalam OHIS yang menggunakan teknologi webservice yang mampu mengintegrasikan antar modul pada framework OHIS. Hal yang juga penting pada framework ini adalah adanya service locator,service loader, dan service requester yang memungkinkan untuk terjadinya integrasi antar modul, seperti yang terdapat pada gambar 1 :
pemrograman maupun berjalan di platform apa saja Berikut adalah komponen yang terdapat dalam web service :
Simple Object Access Protocol (SOAP) SOAP merupakan suatu format standar dari XML yang dapat diterjemahkan oleh web service untuk melakukan proses request dan response antara klien dan server web service yang menggunakan protokol Hypertext Transfer Protocol (HTTP) sebagai protokol pengiriman datanya.
Web Service Definition Language (WSDL) WSDL merupakan suatu dokumen dalam format XML yang berisikan penjelasan suatu informasi detail dari web service. Jadi untuk bisa mengakses suatu web service dibutuhkan terlebih dahulu alamat wsdl dari web service tersebut agar bisa digunakan. Di dalam WSDL sendiri dijelaskan method-mehod apa yang bisa dipanggil, apa saja parameternya yang dibutuhkan dalam melakukan request, apa saja hasil respon setelah melakukan request dan juga termasuk tipe data yang dibutuhkan saat melakukan request dan tipe data yang dikembalikan saat respon dilakukan. (Christensen, 2001)
C. Enterprise Service Bus Gambar 1 Arsitektur Framework OHIS.
B. Web Service
Teknologi web service memberikan kemudahan untuk mengakses informasi dari berbagai sumber tanpa mempedulikan database apa yang digunakan oleh server yang memberikan informasi kepada aplikasi yang menjadi klien web service tersebut. Web service sebenarnya adalah kumpulan dari fungsi dan method yang terletak pada suatu server web service yang dapat di request oleh klien dengan memanggil method yang disediakan oleh server web service, klien sendiri bisa bebas dikembangkan menggunakan bahasa
ESB adalah infrastruktur perangkat lunak yang berlaku sebagai lapisan perantara dari middleware yang menjembatani persyaratan yang tidak bisa dipenuhi oleh webservice, seperti : • Integrasi antar webservice dan teknologi middleware yang berbeda, • Tingkat keamanan, ketergantungan dan robustness yang tinggi • Kontrol dan pengelolaan dari komunikasi dan servis dari webservice Gambar 2 adalah arsitektur aplikasi apabila sudah terdapat ESB sebagai lapisan perantara:
Tahapan ini menghasilkan informasi mengenai proses bisnis dari IRNA yang nantinya akan diterapkan dalam aplikasi IRNA. Hasil dari tahapan ini menjadi acuan dalam pembuatan aplikasi.
3.3. Perancangan desain sistem.
Gambar 2 Arsitektur umum aplikasi setelah menggunakan ESB.
3. Pembahasan Pembangunan aplikasi Instalasi Rawat Inap yang selanjutnya disebut dengan IRNA dilakukan dengan menggunakan tools Netbeans, Framework ZK untuk membuat tampilan aplikasi, SOAP untuk webservice dan WSO2 sebagai esb yang nantinya menjadi jembatan komunikasi antar aplikasi instalasi rawat inap dengan aplikasi lainnya. Dalam pembangunan aplikasi IRNA ini dilakukan beberapa tahapan, yaitu: • • • • •
•
Studi literatur dan pembahasan Survey dan pengambilan diperlukan. Perancangan desain system Standarisasi web service Pembuatan aplikasi o Implementasi aplikasi o Implementasi webservice o Impelentasi esb Pengujian sistem
Tahapan ini menghasilkan 1) GUI Storyboard yang digunakan sebagai acuan untuk jalannya aplikasi IRNA dilihat dari desain tampilannya, 2) Domain model yang menunjukkan objek-objek yang digunakan dalam pembangunan aplikasi, 3) Diagram dan deskripsi use case yang menunjukkan alur yang mungkin terjadi ketika menggunakan aplikasi, 4) Diagram sequence yang menunjukkan jalannya aplikasi dilihat dari sisi aplikasi, 5) Test case merupakan rancangan yang digunakan dalam tahapan pengujian aplikasi dari sisi fungsional.
3.4. Standarisasi web service Pada tahapan ini menghasilkan katalog servis yang berisi kebutuhan data aplikasi IRNA dari aplikasi lain dan kebutuhan data dari aplikasi lain dari aplikasi IRNA. Pada tabel 1 dibawah ini adalah contoh dari hasil pembahasan standarisasi webservice. Tabel 1. Servis katalog pada aplikasi IRNA.
dokumen
yang
3.1. Studi literatur Studi literatur yang dilakukan dalam pembuatan tugas akhir ini adalah pembelajaran dan pemahaman literatur yang berkaitan dengan permasalahan yang ada. Beberapa yang akan dipelajari seperti cara membuat webservice, contoh sistem informasi rumah sakit, membuat sistem informasi menggunakan Java Persistance API (JPA), ZK, dan teknologi pendukung lainnya. Literatur didapatkan dari banyak sumber seperti buku, video tutorial dan halaman website.
3.2. Survey dan pengambilan dokumen yang diperlukan
Server Servis
Servis
Flow Servis
Keteranga n
-Token (ip, code) -getListPasien -logout -(token)
Servis untuk mendapatka n list data pasien Mengirimk an data tindakan medis atau tindakan pengobatan yang dilakukan terhadap pasien
Aplika si Rekam Medis
List data pasien
Aplika si Point of Sales
addPelayana nIrna
-Token (ip, code) AddPelayananI RNA() -logout (token)
Aplika si Human Resour ces
Login
Token (ip, code) Login (username, password, ip) Logout
3.5. Pembuatan Aplikasi
Hasil dari tahapan sebelumnya digunakan dalam tahapan pembuatan aplikasi ini.
3.5.1. Implementasi aplikasi •
Struktur kelas tampilan Pada implementasi pengembangan aplikasi Instalasi Rawat Inap (IRNA) penulis menggunakan ZK. Fungsi kelas antar muka adalah sebagai membuat tampilan aplikasi yang nantinya akan digunakan oleh pengguna aplikasi. Gambar 3 menunjukkan salah satu contoh kelas tampilan yang digunakan.
Gambar 5. Contoh penerapan esb.
3.6. Pengujian sistem Tahapan ini meluputi 2 tahapan pengujian yaitu 1) uji coba fungsional aplikasi menggunakan test case yang telah dibuat sebelumnya 2) uji coba non fungsional dengan menguji performa dari system. Hasil dari uji coba fungsional adalah aplikais telah menunjukkan pemenuhan kebutuhan fungsional. Gambar 3. Contoh potongan kode kelas tampilan.
3.5.2. Implementasi webservice Pembuatan servis pada aplikasi ini mengikuti servis katalog yang sudah dibahas pada bab sebelumnya. Berikut salah satu contoh potongan kode pada implementasi web servis sebagai server dapat dilihat pada gambar 4.
Gambar 4. Contoh potongan kode untuk implementasi webservice
Uji coba Non Fungsional atau uji coba performa sistem. Untuk uji coba performa ini dilakukan terlebih dahulu dengan menggunakan Apache Benchmark untuk mendapatkan halaman yang memiliki request time paling lama, kemudian halaman yang paling lambat tersebut diuji lagi dengan menggunakan fitur yang ada pada Netbeans 6.8 yaitu profiler project. Dengan menggunakan fitur ini, dapat terlihat method mana yang membuat load time menjadi lama, sehingga bisa dilakukan optimasi lebih lanjut pada method atau fungsi tersebut. Berikut pada tabel 5-3 adalah hasil uji performa dengan Apache Benchmark pada aplikasi IRJA. Setting yang dilakukan pada saat melakukan uji coba adalah menggunakan parameter –n sebesar 1000 yang artinya total request yang dilakukan adalah 1000 request, sedangkan untuk parameter –c diubah-ubah mulai dari 10 sampai 100 untuk bisa mendapatkan grafik dari halaman yang paling sedikit request per second nya : Tabel 2. Tabel hasil uji coba request per second.
3.5.3. Implementasi esb Sesuai dengan tujuan pada tugas akhir ini, aplikasi rawat inap akan diintegrasikan dengan aplikasi lain menggunakan teknologi Enterprise Service Bus (ESB). Fungsi ESB adalah untuk melakukan pengintegrasian antar aplikasi yang ada melalui webservice antar aplikasi.Pada gambar 5 dibawah ini adalah salah satu contoh penerpan esb pada aplikasi.
Request per Second (ms)
Nama Halama n
10 concur rent user
50 concur rent user
100 concurr ent user
1000 concurr ent user
Halama n Login
12.231
42.373
56.20
95.49
3. Halama n Pasien
12.201
51.76
56.253
82.24
Penerapan webservis pada method jpaController akan memperlambat waktu load pada halaman aplikasi.
5. Daftar Pustaka
Halama n Anamne sa
11.661
50.93
61.153
84.38
Halama n tindak an
11.881
51
61.504
96.69
Berdasarkan data pada tabel 2 dapat diambil kesimpulan bahwa halaman yang paling banyak memakan resource adalah halaman pasien karena memiliki request per second paling rendah dan time per request paling tinggi. Oleh karena itu halaman pasien akan kembali di uji performa menggunakan Netbeans profiler untuk mendapatkan method atau fungsi yang menyebabkan kelambatan request. Setelah dilakukan uji coba kedua untuk mengetahui penyebab kelambatan request menggunakan netbeans profiler menghasilkan analisis method yang membuat aplikasi berjalan lambat adalah jpaController pada method findPasienEntities. Hal ini disebabkan oleh banyaknya data yang di ambil dari database mencapai 5000 data dalam satu kali request dan langsung di binding ke dalam tabel yang terdapat pada halaman pasien. Solusi yang dapat digunakan untuk mengatasi permasalahan ini adalah menggunakan limit pengambilan data pada database. Dapat diambil analisis juga apabila web service dilakukan pada method findPasienEntities ini maka dapat dimungkinkan waktu load aplikasi akan semakin lama karena dari invocation nya saja, untuk method ini sangat sering diakses, karena apabila dilakukan web service maka akan terjadi waktu tambahan untuk mengambil data dan menginputkan data pada database daripada mengakses langsung lewat database IRNA
4. Kesimpulan Dari pembahasan di atas, dapat diambil beberapa kesimpulan sebagai berikut. 1. Aplikasi Instalasi Rawat Inap yang dibangun dapat terintegrasi dengan modul Rekam Medis dan Point of Sales, dan Instalasi Rawat Inap. 2. Fitur aplikasi IRNA yang membutuhkan servis dari modul lain adalah fitur daftar pasien dan pemberian tindakan.
[1]Doug Rosenberg, Matt Stephens. Use Case Driven Object Modeling with UML Theory and Practice. [2]Holil Noor Ali, A., P.W., Radityo., Er, Mahendrawati., & Nisafani, A. S. (n.d.). Restructuring Components of Integrated Health Information System In Outpatient and Inpatient Departement Using Service Oriented Architecture. [3]Kemastuti, E., Noor Ali, A. H., & Mahananto, F. (n.d.). Pembangunan Modul Rawat Inap (IRNA) Dan Pengintegrasian Dalam Purwarupa Sistem Informasi Rumah Sakit Terpadu (SIRST) Berbasis SOA. [4]Kurniawan, H. (2008, Januari 22). Sistem Pengolahan Data Rawat Inap / Sistem Pengolahan Data Sensus Harian Rawat Inap. Retrieved Januari 16, 2011, from Hakapress Berbagi Sesuatu: http://heryant.web.ugm.ac.id/artikel2.php?pageNum_rk=1 &totalRows_rk=15&id=37 [5]Mahananto, F., P.W, Radityo., Holil N.A, A., & Er, Mahendrawati. (n.d.). OHIS : SOA Based Grow-able Healthcare Information System. [6]Raja. (u.d.). article: 5-introduction-to-javapersistence-apijpa-1. Hämtat från javabeat: http://www.javabeat.net/articles/5-introduction-to-javapersistence-apijpa-1.html den 30 december 2010 [7]W3School. (n.d.). Introduction to Web Services. Retrieved from W3School: http://www.w3schools.com/webservices/ws_intro.asp