1 Pengembangan Web Service Transformasi Data Kesehatan Berbasis OpenEHR Menjadi Standar Health Level Seven (HL7) OpenEHR2HL7 HIS Gunadarma A. Muslim, ...
Pengembangan Web Service Transformasi Data Kesehatan Berbasis OpenEHR Menjadi Standar Health Level Seven (HL7) “OpenEHR2HL7 HIS Gunadarma”
A. Muslim, A. B. Mutiara, M. Rifki. H, S. Puspitodjati, T. Oswari
KATA PENGANTAR
Puji syukur kepada Allah SWT yang telah memberikan rahmat, hidayah,
pencerahan, dan kekuatan sehingga Buku Pengembangan berikut Petunjuk Penggunaan Situs Open HL7 Gunadarma ini dapat diselesaikan dengan lancar. Buku ini merupakan penjelasan Pengembangan Web Service Transformasi Data Kesehatan Berbasis Open EHR Menjadi Standar Health Level Seven (HL7) (OpenEHR to HL7).
Buku Pengembangan dan Petunjuk Penggunaan situs Open HL7 Gunadarma ini
berisikan i) landasan teori, metode, analisa dan perancangan situs Open HL7 Gunadarma dan ii) semua panduan untuk menggunakan fasilitas‐fasilitas yang tersedia dalam situs. Situs ini menyediakan fasilitas‐fasilitas yang dapat digunakan menampilkan data pasien baik dalam format OpenEHR atau HL7.
Akhirnya, kami menyadari bahwa Buku Pengembangan berikut Petunjuk
Penggunaan Situs OpenEHR2HL7 Gunadarma ini masih kurang sempurna dalam mengakomodir semua yang dapat dilakukan oleh situs itu sendiri dan keinginan pengguna. Oleh karenanya segala kritik yang membangun dan saran untuk perbaikan dan kebaikan sangat kami harapkan. Semoga buku pengembangan dan panduan ini dapat membantu pengguna dalam i) memahami prinsip Open EHR dan HL7 dan ii) mengoperasikan situs Open HL7 Gunadarma ini. Depok, November 2013 Penulis A. Muslim, A. B. Mutiara, M. Rifki. H, S. Puspitodjati, T. Oswari
DAFTAR PUSTAKA........................................................................................
42
4 | OpenEHR2HL7 HIS Gunadarma
BAB I. PENDAHULUAN Sekarang ini perkembangan teknologi informasi cukup pesat. Penggunaan komputer sebagai salah satu sarana penunjang dalam suatu sistem dapat memberikan hasil yang lebih baik untuk output sebuah sistem, apabila sistem yang dibuat telah berjalan dengan baik.
Sistem Informasi Kesehatan (SIK) merupakan suatu sistem yang dibutuhkan
oleh semua masyarakat untuk melakukan rekam medis data kesehatan. Sistem Informasi Kesehatan diperlukan untuk menjalankan upaya kesehatan dan mengatur agar upaya pengelolaan data kesehatan efektif dan efisien. Oleh karena itu, data informasi yang akurat, pendataan cermat dan keputusan tepat kini menjadi suatu kebutuhan Komunikasi antar sistem informasi di dunia kesehatan saat ini harus menjadi perhatian yang utama untuk para penyedia layanan medis [19].
Secara umum perangkat lunak Sistem Informasi Kesehatan (SIK) sudah banyak,
aplikasi yang dibuat bisa dikatakan sama namun apabila kita lihat lebih detail dan lebih teknis, hampir bisa dikatakan semua jenis perangkat lunak tersebut berbeda‐beda sesuai dengan kebutuhan atau permintaan pemilik institusi kesehatan tersebut. Hal ini dapat menimbulkan masalah jika suatu saat institusi kesahatan tersebut saling bertukar data atau informasi, belum lagi jika harus bertukar data dengan institusi non‐kesehatan, seperti misalnya perusahaan asuransi dengan bank dan lain lain. Untuk itulah diperlukan suatu “jembatan” yang akan menjembatani pertukaran data dan informasi diantara beberapa institusi yang berbeda terfokus pada Sistem Informasi Kesehatan [16].
Untuk meminimalisir perbedaan standar data antara Sistem Informasi
Kesehatan maka dibutuhkan suatu sistem yang menggunakan standarisasi kesehatan international antara lain OpenEHR standar kesehatan berasal dari Eropa dan Health Level Seven (HL7) standar kesehatan berasal dari Amerika, kedua standarisasi ini sudah mendapat pengakuan international sehingga banyak negara sudah menggunakannya, akan tetapi akan terjadi kesulitan apabila ada pasien yang mempunyai standar rekam medis OpenEHR ingin pindah ke rumah sakit yang mempunyai standar rekam medis HL7. Oleh karena itu dibutuhkan suatu web service yang bisa menjadi “jembatan” dalam menghubungkan kedua standarisasi tersebut. Web service tersebut nantinya akan merubah data rekam medis yang menggunakan standarisasi medis OpenEHR menjadi 5 | OpenEHR2HL7 HIS Gunadarma
HL7 dengan mengubah data menjadi pesan HL7 (HL7 Message) yang dapat diharapkan dapat membantu proses pertukaran data elektronik atau dikenal dengan EDI (Electronic Data Interchange), pesan yang dikirimkan nanti bisa diakses oleh pasien/petugas rumah sakit yang sudah mempunyai hak akses. Web service adalah sebuah sofware aplikasi yang tidak terpengaruh oleh platform, ia akan menyediakan informasi yang dapat diakses oleh pengguna yang telah diberikan hak akses . Web service biasanya digunakan sebagai “jembatan” untuk menghubungkan dua buah entitas yang berbeda. Web Services digunakan pada saat kita akan mentransformasi object yang terpisah dalam satu ruang lingkup yang menjadi satu (dalam sebuah institusi), sehingga tingkat keamanan data dapat ditangani dengan baik. Selain itu web Service juga lebih mudah dalam process penyebarannya, karena tidak memerlukan registrasi khusus ke dalam sistem operasi[9]. OpenEHR adalah adalah standar informatika terbuka untuk spesifikasi kesehatan yang menggambarkan manajemen dan penyimpanan, pencarian dan pertukaran
data
kesehatan
dicatatan
kesehatan
elektronik (EHR). Dalam
openEHR, semua data kesehatan seseorang disimpan dalam satu riwayat hidup, vendor bersifat independen, dan berpusat pada satu orang. Spesifikasi openEHR dipelihara oleh openEHR Foundation , yang mendukung penelitian terbuka, pengembangan, dan pelaksanaan EHRs . OpenEHR juga mencakup informasi dan model layanan untuk rekam medis elektronik, demografi, alur kerja klinis dan archetype [15]. HL7 (Health Level Seven) adalah salah satu dari beberapa standar ANSI (American National Standards Institute), yang telah terakreditasi oleh SDO (Standards Developing Organizations), standarisasi ini dipakai khususnya untuk bidang atau area Sistem Informasi Kesehatan. HL7 tidak mengembangkan aplikasi perangkat lunak kesehatan atau Sistem Informasi Kesehatan melainkan hanya mengembangkan konsep, metodologi, spesifikasi dan standar yang akan memungkinkan beberapa aplikasi perangkat lunak kesehatan yang berbeda dapat bertukar data satu dengan yang lainnya, secara konseptual hal ini disebut dengan istilah Electronics Data Interchange (EDI). Pada HL7 terdapat standar pesan ORU (Observation Result), ADT (Patient Administration) dan PAC (Patient Care). ORU (Observation Result) adalah standar pesan HL7 yang berisi hasil observasi dari data rekam medis pasien, hasil dari pesan ini biasanya diterima oleh laboratorium untuk proses uji klinis. ADT (Patient 6 | OpenEHR2HL7 HIS Gunadarma
Administration) merupakan standar pesan HL7 yang berisi tentang data demografi pasien dan kunjungan pasien yang ada pada sistem kesehatan. Pada pesan HL7 juga terdapat pesan PAC (Patient Care) yang berisi tentang masalah klinis pasien. Semua pesan HL7 menggunakan format XML sebagai sarana pertukaran data yang ada pada suatu web services. Sebagai perwujudan untuk memberikan standarisasi data informasi kesehatan berbasis Health Level Seven. Dibuatlah suatu web service Sistem Informasi Kesehatan berbasis HL7 (Health Level Seven). Aplikasi ini dibuat dengan harapan dapat memberikan standarisasi data kesehatan (Healthcare Information System) berbasis HL7 (Health Level Seven) sehingga diharapkan proses pertukaran data atau informasi kesehatan menjadi lebih terstruktur.
Adapun metode yang dilakukan pada pengembangan aplikasi ini yaitu dengan : 1) Studi literature Mencari referensi dan mengumpulkan data dari buku‐buku tentang Health Level Seven dan juga informasi tentang Health Level Seven di internet. 2) Perancangan aplikasi Menentukan alur aplikasi, desain dan fitur apa saja yang ada didalam aplikasi ini. 3) Pengkodean aplikasi Melakukan proses pembuatan pengkodean program sesuai dengan perancangan aplikasi. 4) Pengujian program dan unit testing Menguji form yang ada berjalan dengan baik atau tidak pada pada Sistem Operasi Windows 7 menggunakan localhost. 5) Penerapan program dan pemeliharaan Menerapkan program yang telah diuji sebelumnya secara online. Setelah itu dilakukan pemeliharaan berkala terhadap website. 6) Perangkat keras yang digunakan Dalam menerapkan dari rancangan yang telah dijelaskan sebelumnya dibutuhkan beberapa perangkat keras untuk menyajikan aplikasi ini. Adapun alat‐alat yang dibutuhkan adalah: 1) Satu unit komputer atau PC 2) Satu buah laptop untuk bertindak sebagai web service 7 | OpenEHR2HL7 HIS Gunadarma
7) Perangkat lunak yang digunakan Dalam menerapkan rancangan yang telah dibuat, dibutuhkan beberapa perangkat lunak untuk membuat web service HL7 yaitu: 1) Bahasa Pemrograman PHP Dalam hal ini digunakan PHP versi 5. 2) Sistem Operasi Untuk penggunaan sistem operasi dapat digunakan Windows XP (32‐bit) atau Vista (32 atau 64 bit), Windows 7 ,Mac OS X 10.4.8 atau diatasnya, dan Linux. 3) Integrated Development Environment (IDE) Netbeans 7.3.1 Untuk memudahkan dalam pengembangan aplikasi, maka digunakan IDE karena memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Adapun dalam pengembangan ini digunakan Netbeans dikarenakan telah mendukung framework codeigniter. 4) XAMPP XAMPP adalah suatu perangkat yang menghubungkan tiga aplikasi dalam satu paket yaitu Apache,Mysql dan PHPMyAdmin. XAMPP bersifat open source sehingga bebas untuk digunakan. Untuk selengkapnya tahapan‐tahapan di atas akan dijelaskan pada Bab III Metode, Analisis dan Perancangan. 8 | OpenEHR2HL7 HIS Gunadarma
BAB II. KAJIAN PUSTAKA 2.1.
Web Service
World Wide Web Consortium (W3C) adalah organisasi yang mengembangkan
standar‐standar dalam dunia web, mendefinisikan web service sebagai perangkat lunak sistem yang dirancang untuk mendukung interaksi antara mesin dengan mesin melalui jaringan. Web service merupakan aplikasi yang dibuat agar dapat dipanggil atau diakses oleh aplikasi lain melalui internet maupun intranet dengan menggunakan XML/JSON sebagai format pengiriman pesan[18]. 2.2.
OpenEHR
OpenEHR merupakan spesifikasi standar terbuka dalam informatika kesehatan
yang menggambarkan manajemen dan penyimpanan, pencarian dan pertukaran data kesehatan dalam rekam medis elektronik. OpenEHR dikembangkan pada negara bagian Eropa, dalam OpenEHR, semua data kesehatan untuk seseorang disimpan dalam satu riwayat hidup, vendor bersifat independen, dan berpusat pada satu orang. Spesifikasi OpenEHR mencakup informasi dan model layanan untuk rekam medis elektronik, demografi, alur kerja klinis dan archetype. 2.3.
Health Level Seven (HL7)
Health Level Seven (HL7) adalah sebuah organisasi nonprofit yang terlibat dalam
pengembangan standar interoperabilitas informasi kesehatan internasional. HL7 juga mengacu pada beberapa standar tertentu yang dibuat oleh organisasi, misalnya HL7 v2x, v3.0, HL7 RIM.
HL7 dan anggota‐anggotanya memberikan kerangka standar untuk pertukaran,
integrasi, berbagi dan pengambilan informasi kesehatan elektronik. Standar V2x, yang mendukung managemen praktek klinis, pengiriman dan evaluasi pelayanan kesehatan, adalah yang paling umum digunakan di dunia.
HL7 adalah komunitas internasional ahli materi kesehatan dan ilmuan informasi
berkolaborasi untuk menciptakan standar untuk pertukaran, managemen dan integrasi informasi kesehatan elektronik. HL7 mempromosikan penggunaan standar informasi seperti dalam organisasi kesehatan untuk meningkatkan efisiensi dan efektifitas penyampaian informasi kesehatan untuk kepentingan semua. 9 | OpenEHR2HL7 HIS Gunadarma
2.4.
Electronic Data Interchange
Electronic Data Interchange adalah metode untuk saling bertukar data bisnis
atau transaksi secara elektronik melalui jaringan komputer. Secara formal EDI didefinisikan oleh International Data Exchange Association (IDEA) sebagai “transfer data terstruktur dengan format standard yang telah disetujui yang dilakukan dari satu sistem komputer ke sistem komputer yang lain dengan menggunakan media elektronik”. EDI memiliki standarisasi pengkodean transaksi perdagangan, sehingga organisasi komersial tersebut dapat berkomunikasi secara langsung dari satu sistem komputer yang satu ke sistem komputer yang lain tanpa memerlukan hardcopy, faktur, serta terhindar dari penundaan, kesalahan yang tidak disengaja dalam penanganan berkas dan intervensi dari manusia. 2.5.
REST Web Service
REST adalah salah satu jenis web service yang menerapkan konsep perpindahan
antar state. State disini dapat digambarkan seperti jika browser meminta suatu halaman web, maka server akan mengirimkan state halaman web yang sekarang ke browser. Bernavigasi melalui link yang disediakan sama halnya dengan mengganti state dari halaman web. Begitu pula REST bekerja, dengan bernavigasi melalui link HTTP untuk melakukan aktivitas tertentu, seakan‐akan terjadi perpindahan state satu sama lain. Perintah HTTP yang bisa digunakan adalah fungsi GET, POST, PUT atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML/JSON tanpa ada protokol pemaketan data, sehingga informasi yang diterima lebih mudah dibaca dan diparsing disisi client. REST merupakan teknologi terbaru dalam web service tetapi secara filosofi lebih lama dibandingkan dengan SOAP, REST menegaskan bahwa protocol yang sudah ada diweb cukup untuk membuat web service yang kuat tanpa membutuhkan toolkit atau desain yang rumit. 10 | OpenEHR2HL7 HIS Gunadarma
BAB III. METODE, ANALISIS DAN PERANCANGAN 3.1. Metode
Pembuatan web service HL7 dilakukan menggunakan metode pengembangan
rekayasa perangkat lunak Waterfall. Awalnya dilakukan perencanaan dan analisa kebutuhan data tentang standarisasi pesan HL7 kemudian merancang sistem yang akan dibangun seperti apa navigasi, sistem basis data dan desain tampilannya. Setelah proses rancangan dibuat, baru masuk kepada penulisan kode program diikuti dengan unit testing, tahap selanjutnya yaitu pengujian program apakah semua pesan HL7 yang dihasilkan sudah sesuai dengan standar pesan HL7. Tahap terakhir dilakukan pemeliharaan web service HL7.
Gambar 3.1 Tahap Metode Waterfall [15]. 3.2 Perencanaan Tahap awal pembuatan web service HL7 ini adalah perencanaan yang mengacu pada rumusan masalah yang telah dibahas di bab sebelumnya. Perencanaan dalam pembuatan aplikasi ini adalah yaitu : 1) Aplikasi yang dibuat berbasis web service 2) Pada aplikasi terdapat dua hak akses yaitu user dan administrator. 3) Tabel yang ada pada web service ini merupakan hasil dari parsing data dari website OpenEHR dan bersifat live update. 4) Hasil dari pesan HL7 bisa diambil siapa saja tanpa harus membuka website. 5) Penyimpanan data yang dibutuhkan oleh aplikasi menggunakan database MySQL. 11 | OpenEHR2HL7 HIS Gunadarma
6) Web service yang terdapat pada aplikasi ini menggunakan JSON dengan metode REST dan XML untuk pesan HL7 7) Untuk mengambil data dari website openEHR digunakan fungsi CURL pada php. 3.3
Analisa Pesan Health Level Seven (HL7)
Pesan HL7 pada implementasinya digunakan sebagai proses pertukaran data
elektronik, contohnya antara laboratorium dengan bagian perawatan, menggunakan sebuah standar pesan yang telah dipakai dibeberapa rumah sakit, contohnya Amerika, Jepang dan Australia. Health Level Seven (HL7) telah menyediakan standar pesan yang berbasis XML, pada setiap pesan HL7 terdapat syarat agar pesan yang diterima oleh sistem pada rumah sakit mengetahui bahwa itu adalah pesan HL7. Isi pesan HL7 dibagi menjadi segment dan field, satu buah segment terdiri dari beberapa field. Berdasarkan pada standar pesan, pada setiap pesan HL7 terdapat satu buah segment yang wajib ada yaitu Message Header (MSH), pada MSH terdapat 3 buah field yang merupakan tanda bahwa itu adalah sebuah pesan HL7 yaitu MSH.1 dan MSH.2. Pesan yang ditampilkan pada web service HL7 ini hanyalah ORU_01 dan ADT_01. Berikut contoh field MSH dalam bentuk XML. <MSH.1>| <MSH.2>^~\& <MSH.3> GHH LAB <MSH.4> ELAB‐3
Pada contoh pesan MSH tersebut, setiap nama field yang ada dalam segment
berada didalam tanda < > dan > , struktur tersebut merupakan struktur XML untuk mendeskripsikan jenis data/nama yang nantinya akan berada didalam tag XML . Isi dari field dituliskan diantara tanda > < , berarti ^~\& merupakan isi dari field MSH.2 pada segment MSH. Masing‐masing segment pesan HL7 mempunyai arti sendiri contohnya MSH, PV1 dan OBX. Field yang ada pada pesan HL7 mempunyai deskripsi nama yang berbeda berikut contoh field untuk segment MSH. Gambar 3.2 merupakan contoh 12 | OpenEHR2HL7 HIS Gunadarma
segment dan field HL7.
Gambar 3.2 Segment dan Field PID [21].
Untuk mengubah data dari standar openEHR menjadi standar pesan HL7 maka
dibutuhkan data pasien dari tabel database yang ada pada website openEHR. Data pasien yang diambil dari website openEHR berbentuk JSON untuk parsing data. Gambar 3.3 merupakan parsing data pasien dari website OpenEHR.
Gambar 3.3 Parsing Data Pasien.
Proses perubahan menjadi pesan HL7 hanya berdasarkan penyocokan antara
nama field di pesan HL7 dan nama field yang ada pada tabel openEHR. Misalkan pada segment PID, field 5 berisi patient name, maka pada tabel openEHR dicocokan dengan nama pasien. Misalkan pada standar data openEHR yang terdapat pada gambar 3.3 terdapat field nama_pasien, untuk merubah standarisasi data dari openEHR ke HL7 maka pada field HL7 dicari field yang ada didalam segment yang menunjukan bahwa field tersebut berisi nama pasien. Field tersebut ada pada segment PID gambar 3.2 baris ke‐5 (Patient Name). Setelah sesuai baru dilakukan proses perubahan standar data dari openEHR ke HL7. 13 | OpenEHR2HL7 HIS Gunadarma
3.4
Struktur Navigasi Struktur navigasi yang digunakan pada web service HL7 adalah struktur navigasi
composit (campuran). Struktur navigasi sistem yang dibuat merupakan struktur navigasi untuk user. Gambar 3.4 merupakan struktur navigasi aplikasi.
Gambar 3.4 Struktur Navigasi Aplikasi 3.5 Pemodelan Sistem Pada tahap ini digunakan UML, penggunaan UML untuk memudahkan dalam membuat model untuk semua jenis aplikasi perangkat lunak, khususnya aplikasi yang ditulis menggunakan bahasa pemrograman yang berorientasi objek. UML yang dibuat yaitu usecase diagram, sequence diagram dan activity diagram. 3.5.1 Usecase Diagram Aplikasi Usecase diagram digunakan untuk menjelaskan interaksi antara pemakai (actor) dalam menggunakan aplikasi. Gambar 3.5 merupakan rancangan usecase diagram.
14 | OpenEHR2HL7 HIS Gunadarma
Gambar 3.5 Rancangan Usecase Diagram
Pada usecase diagram diatas, dijelaskan bahwa aplikasi ini memiliki 1 aktor (user)
dan 4 buah Use Case. Pertama akan muncul user mendaftarkan diri terlebih dahulu di website openEHR Gunadarma. Setelah itu user baru bisa masuk ke dalam menu utama website HL7, dengan login menggunakan akun yang telah terdaftar pada openEHR Gunadarma, selanjutnya user tinggal melihat pasien mana yang ingin dilihat data HL7‐ nya, kemudian user bisa mendapatkan data HL7 pasien tersebut. Aplikasi HL7 ini memang terintegrasi dengan website openEHR, sehingga pengguna harus terdaftar terlebih dahulu pada website openEHR. 3.5.2 Sequence Diagram
Diagram sequence menjelaskan bagaimana user berinteraksi dengan objek yang
ada pada website dalam hal ini adalah halaman website. Gambar 3.6 merupakan rancangan sequence diagram website.
15 | OpenEHR2HL7 HIS Gunadarma
Gambar 3.6 Rancangan Sequence Diagram
Pada gambar 3.6, diagram sequence menjelaskan ketika user pertama kali
membuka halaman website, pada halaman index terdapat beberapa penjelasan tentang website user bisa memilih penjelasan apa yang diinginkan selanjutnya apabila user ingin mengambil pesan HL7, maka user masuk ke halaman login. Pada halaman login user memasukan username dan password sesuai dengan yang telah terdaftar pada aplikasi openEHR. Apabila login berhasil, maka akan muncul menu utama (home), yang terdiri dari menu data pasien, cari pasien dan logout. Selanjutnya apabila user telah mencari data pasien yang ingin diambil dalam bentuk pesan HL7 maka website akan melakukan encoding dalam bentuk XML, selanjutnya user akan mendapatkan pesan HL7 dalam format XML. 3.5.3 Activity Diagram
Diagram activity menjelaskan proses dan urutan aktivitas pengguna dari web
service HL7. Gambar 3.7 merupakan rancangan activity diagram.
16 | OpenEHR2HL7 HIS Gunadarma
Gambar 3.7 Rancangan Sequence Diagram
Pada gambar 3.7 menggambarkan aktivitas pada website yang dibagi menjadi
user dan administrator. Administrator pada website ini hanya menambahkan pertanyaan dan jawaban yang ada pada halaman faq yang berada pada halaman index, selain itu juga melihat pertanyaan, saran atau kritik dari pengguna website yang dinamakan buku tamu. User melakukan aktivitas dari mulai login sampai mendapatkan pesan HL7 dalam bentuk XML. 3.6
Perancangan Basis Data
Pada tahap perancangan basis data ini digunakan sebuah database dengan nama
openHL7 yang dibuat menggunakan software MySQL sebagai database management system (DBMS) dan PhpMyAdmin sebagai Graphic User Interface (GUI) untuk mempermudah dalam perancangan tabel yang ada pada database tersebut. 3.6.1 Pembuatan Basis Data
Database untuk web service HL7 ini mengacu pada database yang ada pada website openEHR. Software DBMS MySQL digunakan untuk pembuatan database yang telah tersedia pada PhpMyadmin. 1)
Untuk mengakses MySQL, pertama‐tama kita harus mengaktifkan server xampp pada menu xampp control panel.
17 | OpenEHR2HL7 HIS Gunadarma
Gambar 3.8 XAMPP Contol Panel 2) Setelah server running, barulah kita membuat databasenya. Untuk pembuatan database pada MySQL, penulis menggunakan Phpmyadmin yang ditampilkan melalu jendela Mozila Firefox. Cara untuk mengkoneksinya dengan menulis address :http://localhost/Phpmyadmin. Gambar 3.9 merupakan tampilan halaman utama phpmyadmin.
Gambar 3.9 Halaman Utama Phpmyadmin 3) Setelah Phpmyadmin aktif, maka kita dapat membuat database tanpa harus membuat perintah SQL‐nya karena Phpmyadmin dibuat dengan menu dan instruksi yang mempermudah user dalam membuat database. Pertama dibuat nama databasenya “db_HL7” pada menu create new database, klik create. Gambar 3.10 merupakan tampilan tabel create database.
18 | OpenEHR2HL7 HIS Gunadarma
Gambar 3.10 Tampilan tabel setelah kita create Untuk membuat tabel cukup dengan menulis nama tabel dan jumlah field yang akan dibuat pada menu create new tabel on database db_HL7 dan field dilanjutkan dengan penamaan masing‐masing field beserta tipe data dan constraintnya. Setelah tabel terbentuk, untuk memasukkan data cukup menekan insert new row. 3.6.2 Perancangan Tabel Basis Data Dalam perancangan tabel ini menggunakan MySQL untuk mengolah dan menyimpan datanya. Sementara untuk perancangan database menggunakan PhpMyAdmin. Struktur tabel yang ada pada website openhl7gunadarma ini sama seperti pada aplikasi website openEHR tetapi ada sebagian tabel yang ditambahkan untuk kepentingan administrator website selain itu, semua tabel yang berfungsi sebagai penghasil pesan HL7 bersifat live update, jadi ketika user pada website openEHR memasukan data baru maka data tabel yang ada pada website openhl7gunadarma ini otomatis akan terupdate Struktur tabel pada struktur basis data tersebut akan ditampilkan dengan bentuk tabel sebagai berikut: 19 | OpenEHR2HL7 HIS Gunadarma
Tabel 3.1 tmst_pasien
Pada tabel 3.1 merupakan paparan dari tabel yang berisi informasi pasien secara umum pada aplikasi openhl7gunadarma, primary key pada tabel ini yaitu kd_pasien, akan menjadi akar dari relasi ke tabel lain sehinga pada tabel lain dia menjadi foreign key. Tabel ini otomatis terisi apabila seseorang telah mendaftarkan pasien baru pada website openEHR.
Tabel 3.2 tmst_kartupasien
Pada tabel 3.2 merupakan paparan dari tabel yang berisi informasi kartu pasien pada aplikasi openhl7gunadarma, tabel kartu pasien ini . Tabel ini otomatis terisi apabila seseorang telah membuat kartu pasien baru pada website openEHR. 20 | OpenEHR2HL7 HIS Gunadarma
Tabel 3.3 tmst_observasi
Pada tabel 3.3 merupakan paparan dari tabel yang berisi informasi observasi pasien, ini dibuat ketika user selesai melakukan konsultasi dengan dokter. Tabel ini otomatis terisi apabila user telah melakukan konsultasi dokter pada pada website openEHR. Tabel 3.4 tmst_evaluasi
Pada tabel 3.4 merupakan paparan dari tabel yang berisi informasi evaluasi dari status pasien seperti diagnosis, review dan lainnya. Tabel ini otomatis terisi apabila user telah melakukan data baru pada website openEHR. Tabel 3.5 tmst_riwayat
21 | OpenEHR2HL7 HIS Gunadarma
Pada tabel 3.5 merupakan paparan dari tabel yang berisi informasi riwayat pasien, tabel ini berisi riwayat pasien seperti informasi apakah pasien merokok, alergi dari pasien, dan sebaginya. Tabel ini otomatis apabila user telah mengisi riwayat pasien pada pada website openEHR. Selain itu juga terdapat beberapa tabel referensi yang menjadi relasi dari tabel‐ tabel utama, fungsinya untuk membuat struktur tabel menjadi lebih sistematis juga bisa menghindari kesalahan pada saat memasukan data. Tabel referensi ini diawali dengan tref. Berikut ini beberapa tabel referensi yaitu : Tabel 3.6 tref_agama
Pada tabel 3.6 merupakan paparan dari tabel yang berisi berbagai macam agama yang ada di Indonesia. Tabel 3.7 tref_asuransi
22 | OpenEHR2HL7 HIS Gunadarma
Pada tabel 3.7 merupakan paparan dari tabel yang berisi berbagai macam asuransi yang ada pada sistem asuransi di Indonesia, pada saat ini baru ada dua buah asuransi yaitu askes dan jamsostek. Tabel 3.8 tref_jekel
Pada tabel 3.8 merupakan paparan dari tabel yang berisi jenis kelamin untuk pasien. Tabel 3.9 tref_penanganan
Pada tabel 3.9 merupakan paparan dari tabel yang berisi penanganan medis yang dilakukan pada website openEHR. Tabel 3.10 tref_spesialis
Pada tabel 3.10 merupakan paparan dari tabel yang berisi dokter spesialis yang ada pada website openEHR. Tabel 3.11 tref_status
Pada tabel 3.11 merupakan paparan dari tabel yang berisi status pernikahan untuk pasien. 23 | OpenEHR2HL7 HIS Gunadarma
Tabel 3.12 tref_statuskartupasien
Pada tabel 3.12 merupakan paparan dari tabel yang berisi status ketika pasien sedang melakukan pemeriksaan. Tabel 3.13 tref_tipelayanan
Pada tabel 3.13 merupakan paparan dari tabel yang berisi layanan yang ada pada rumah sakit. 3.7
Perancangan Halaman
Untuk membuat website ini terlihat sederhana, menarik dan mudah dimengerti
oleh pengguna diperlukan desain antarmuka (interface). Desain antarmuka harus dilakukan agar karena berhubungan langsung dengan pengguna, yaitu segaa sesuatu yang dilihat oleh pengguna. Dalam sebuah website desain antarmuka merupakan unsur penting, karena disitulah pengguna bisa berinteraksi. 3.7.1 Halaman Beranda
Pada halaman beranda ini terdapat header yang berisi tentang content apa saja
yang pada halaman beranda ini yaitu penjelasan HL7, petunjuk pengguna, faq, tentang kami, dan kontak. Desain interface pada halaman ini menggunakan teknik scroll, jadi ketika pengguna memilih menu FAQ, halaman ini akan bergeser ke bawah. Gambar 3.11 merupakan rancangan tampilan halaman beranda.
24 | OpenEHR2HL7 HIS Gunadarma
Masuk Menu Utama
Gambar 3.11 Rancangan Tampilan Halaman Beranda 3.7.2 Halaman Login Menu Utama
Website HL7 ini pada dasarnya terintegrasi dengan website opeltgunasys, untuk
itu bila pengguna ingin masuk ke menu utama website HL7 ini, pengguna harus mendaftarkan diri terlebih dahulu di website opeltgunasys, setelah itu masukan username dan password yang telah terdaftar pada website opeltgunasys untuk login. Gambar 3.12 merupakan rancangan tampilan halaman menu utama.
Gambar 3.12 Rancangan Tampilan Halaman Login Menu Utama 25 | OpenEHR2HL7 HIS Gunadarma
3.7.3 Halaman Menu Utama
Setelah login berhasil, maka pengguna akan masuk ke halaman utama. Pada
halaman ini pengguna bisa melihat data pasien yang sudah terdaftar dalam website opelgunasys, data pasien yang ada pada website ini secara otomatis diperbaharui ketika kita membuka halaman utama dan setiap 10 detik, fungsinya agar tidak terjadi perbedaan data pasien, karena informasi bisa berubah kapan saja. Selain itu disediakan fungsi cari pasien, apabila ada pengguna yang kesulitan mencari secara berurutan data pasien, pengguna cukup memasukan kategori dan kata kunci kemudian nanti sistem akan mencari, apabila tidak ada maka tidak akan ada data yang muncul di tabel. Gambar 3.13 merupakan rancangan tampilan halaman menu utama.
Gambar 3.13 Rancangan Tampilan Halaman Menu Utama 3.7.4 Perancangan Pesan HL7
Pada tahap ini dijelaskan tentang proses pembuatan pesan dari data openEHR
menjadi pesan HL7, Untuk membuat data yang berasal dari openEHR menjadi standar pesan HL7 dibutuhkan data pasien yang berasal dari openEHR, data pasien yang dibutuhkan harus selalu data yang terbaru (live update). Seperti sudah dijelaskan pada tahap analisa pesan HL7, proses pembuatan pesan HL7 berdasarkan penyocokan nama field pada segment HL7 dengan nama field pada tabel database. Gambar 3.14 merupakan proses penyocokan field.
26 | OpenEHR2HL7 HIS Gunadarma
Gambar 3.14 Proses Penyocokan Field
Apabila terjadi field yang dibutuhkan pada HL7 akan tetapi data yang dibutuhkan
tidak ada pada tabel openEHR maka field tersebut dikosongkan terlebih dahulu.
Setelah nama field cocok, maka field dari tabel yang ada pada website openEHR
dirubah menjadi standar HL7.Gambar 3.15 merupakan field nama pada HL7.
Gambar 3.15 Field Nama Pasien pada Pesan HL7
Proses penyocokan nama field dilakukan secara manual, yaitu melihat satu
persatu field yang ada pada tabel openEHR dan HL7. 3.7.5 Perancangan kode program HL7 Message Tahap ini merupakan tahap membuat tampilan yang sesuai dengan perancangan tampilan website selain itu juga menerangkan proses pembuatan HL7 Message. Kode program yang digunakan menggunakan PHP dan HTML yang digabung ke dalam sebuah framework yaitu CodeIgniter.
Untuk membuat struktur yang sama dengan struktur elemen HL7, pertama
dibuat sebuah libraries dengan nama HL7_coder.php. Berikut potongan skrip HL7_coder.php.
27 | OpenEHR2HL7 HIS Gunadarma
class HL7_coder { var $field_separator //== field separator var $component_separator //== component separator var $repetition_separtor //== repetition separator var $subcomponent_separator //==subcomponent separator var $escape_character //== escape character
Kode diatas membuat sebuah class HL7_coder yang akan menghasilkan encode
setiap segmen di HL7. Terdapat 5 buah variable yang digunakan sebagai syarat HL7 Message yaitu, field separator ( | ), component separator ( ^ ) , repetition separator ( ~ ), subcomponent separator ( & ) dan escape character ( \ ). Setelah itu kita deskripsikan terlebih dahulu field apa saja yang ada setiap elemen HL7, misalkan elemen EVN. Berikut potongan skrip untk encode EVN
Pada kode diatas digunakan array untuk mendeskripsikan field apa saja yang
akan ditampilkan, fungsi array ini nantinya mempermudah dalam membuat perulangan untuk menghasilkan HL7 Message nantinya. Setelah membuat function untuk membuat pesan XML, yang diberi nama encode_xml. Berikut potongan skrip function encode_xml.
Pada fungsi tersebut digunakan sebuah fungsi php yaitu explode yang fungsinya
untuk memecah/memisahkan sebuah string menjadi elemen‐elemen array[13]. Explode digunakan untuk memecah setiap field separator agar menjadi elemen array yang digunakan untuk memisahkan setiap field dari HL7 Message. Setelah menjadi elemen array kemudian variabel tersebut digunakan untuk membuat tag string ( < > ) yang diberi kondisi, nantinya fungsi ini akan dipanggil pada file controller yang diberi nama HL7. Berikut potongan skrip HL7.
'') ? UcWords($pasien->id_status) : ''; $this->HL7_coder->encode_toxml('PID', $pid_str); id agama != '') ? UcWords($pasien->id agama) : '';
Skrip diatas yang akan membuat tag XML sesuai dengan library HL7_coder.
Fungsi encode_xml yang ada pada file HL7_coder dipanggil diikuti dengan nama tagnya yang haru dideklarasikan terlebih dahulu, apabila tidak dideklarasikan maka akan dianggap kosong, kondisi ini dibuat menggunakan fungsi isset pada php. File controller ini nantinya akan dipasang pada file view sebagai link dengan menggunakan fungsi anchor. Berikut potongan skrip untuk memanggil file HL7.
31 | OpenEHR2HL7 HIS Gunadarma
session->userdata('username'); //kalo data tidak ada didatabase if (empty($query)) { echo "
Data tidak tersedia
"; } else { $no = 1; foreach ($query as $row) { // Konversi Tanggal ke FOrmat Bahasa indonesia $tgl = date('d-m-Y', strtotime($row->tgl_lahir)); $hr_tgl = "$tgl"; ?>
kd_pasien; ?>
nama_pasien; ?>
nama_jekel; ?>
kd_pasien.'&uid='.md5($user),
'ENCODE',
array('target'
=>
'_blank')); ?>
echo
anchor(site url()
.
3.7.6 Perancangan kode program login web service dan live update web service. 3.7.6.1
Login Web Service
Pada web service HL7 ini user yang bisa mengakses informasi HL7 ini hanya user
yang sudah terdaftar pada website openEHR. Oleh karena itu dibutuhkan suatu metode yang dinamakan web service, untuk menangkap data login dibutuhkan fungsi curl pada php yang digunakan untuk mengakses resource dari dan ke suatu server. Gambar 3.5 merupakan hasil parsing dari website openEHR.
Gambar 3.15 Hasil Parsing Data JSON 32 | OpenEHR2HL7 HIS Gunadarma
Setelah mendapatkan hasil parsing JSON dari website openEHR kemudian kita
masukan link parsing tersebut ke dalam kode curl. Berikut potongan skrip untuk mengambil data dari website openEHR. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/ehealth/api/akun/$username"); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_NOBODY, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE); $head = curl_exec($ch); curl_close($ch); $data = json_decode($head, true);
Pada potongan skrip tersebut, hasil parsing dari website yang berupa json
dirubah menjadi array dengan fungsi json_decode. Pada website openEHR untuk password digunakan fungsi crypt pada php. Berikut potongan skrip untuk login web service. if ($this->form_validation->run()==TRUE){ if ($data != null) {if ($username && crypt($password, $data['password']) == $data['password']) { $session_data = array ( 'username' => $data['username'], 'logged_in' => TRUE ); $obj=&get_instance(); $obj->session->set_userdata($session_data); redirect('web'); } else { $this->session->set_flashdata('pesan','Username Anda Belum Terdaftar!'); redirect('home/login');} } else { "data tidak ada"; } } else { $this->session->set_flashdata('pesan','Username Anda Belum Terdaftar!'); }
33 | OpenEHR2HL7 HIS Gunadarma
3.7.7.2
Live Update Web Service
Pada web service HL7 ini, semua data terintegrasi dengan website openEHR.
Misalkan ketika ada user pada website openEHR menambahkan data pasien terbaru maka data pasien pada web service HL7 ini juga ikut bertambah tanpa harus ditambahkan secara manual, sistem ini dinamakan live update web service yang menggunakan JSON sebagai parsing data kemudian CURL sebagai fungsi untuk mengambil data yang diparsing. Cara yang digunakan hampir sama seperti login web service hanya saja disini data yang didapat langsung dicocokan dengan data yang ada pada database web service HL7. Gambar 3.5 merupakan hasil parsing data pasien dari website openEHR.
Gambar 3.16 Hasil Parsing Data Pasien
Untuk membuat otomatis update, maka dibutuhkan kondisi perulangan yang
menggunakan array yang dihasilkan dari json_decode. Berikut potongan skrip untuk kondisi perulangan.
Selanjutnya tinggal menentukan kondisi yaitu ketika data yang ada pada parsing
ada yang sama dengan data yang ada pada database HL7 maka data yang sama tersebut tidak diperbarui sedangkan data yang berbeda diperbarui agar sesuai dengan data yang terbaru. Berikut potongan skrip untuk update data. $sql = $this->live_update_model->getPasien($kd_pasien); if ($sql != null) { $this->live_update_model>updatePasien($id_pasien,$kd_pasien,$nama_pasien,$nama_ibu,$tgl_ reg, $telp_kerja,$tel_rumah,$kode_pos,$alamat,$bangsa,$id_agama,$id_s tatus,$id_asuransi, $id_jekel,$tgl_lahir,$tgl_buat,$tgl_modif); } else { $this->live_update_model>insertPasien($kd_pasien,$kd_pasien,$nama_pasien,$nama_ibu,$tgl_ reg,$telp_kerja, $tel_rumah,$kode_pos,$alamat,$bangsa,$id_agama,$id_status,$id_as uransi,$id_jekel,$tgl_lahir, $tgl_buat,$tgl_modif); } } }
35 | OpenEHR2HL7 HIS Gunadarma
BAB IV. PANDUAN APLIKASI OPEN HL7 GUNADARMA Berikut ini adalah panduan penggunaan untuk aplikasi Open HL7 Gunadarma. 4.1. Tampilan Beranda
Pada halaman beranda terdapat sub‐menu yang menjelaskan perihal yang ada pada website, seperti penjelasan HL7 , petunjuk pengguna, FAQ, tentang kami dan kontak. Apabila petunjuk pengguna dan FAQ belum memenuhi pertanyaan pengguna, maka bisa menggunakan fasilitas kontak yang akan dibaca oleh administrator. 4.2. Tampilan Penjelasan HL7
Pada halaman ini dijelaskan tentang apa itu HL7 secara umum, selain itu web service ini juga terintegrasi dengan 3 aplikasi lainnya yaitu openEHR, E‐Expert dan Semantic Web. 36 | OpenEHR2HL7 HIS Gunadarma
4.3. Tampilan Menu Panduan Penggunaan
Pada menu ini terdapat panduan untuk menggunakan web service HL7 secara
keseluruhan. 4.4. Tampilan Menu FAQ
Pada menu FAQ, ditampilkan pertanyaan yang mungkin akan sering ditanyakan oleh pengguna, pertanyaan dan jawaban yang ada pada FAQ dimasukan oleh administrator website.
37 | OpenEHR2HL7 HIS Gunadarma
4.5. Tampilan Tentang Kami
Pada halman ini diceritakan tentang pembuat web service HL7 serta 3 website
lainnya yang terintegrasi. 4.6. Tampilan Menu Kontak Kami
Pada halaman ini pengguna bisa mengirimkan pertanyaan kepada administrator websie, yang nantinya akan dibalas melalui e‐mail yang telah dicantumkan pada form alamat e‐mail.. 38 | OpenEHR2HL7 HIS Gunadarma
4.7. Tampilan Menu Login
Untuk mengakses web service HL7 ini, pengguna harus mendaftarkan akun terlebih dahulu di website openehr Indonesia. Akun yang telah dibuat bisa digunakan untuk mengakses data yang ada pada website HL7. 4.8. Tampilan Menu Dashboard User
Halaman dashboard ini tampil apabila pengguna telah login kedalam aplikasi.
Pada dashboard ini terdapat menu Beranda, Data Pasien, Cari Pasien dan Logout. 39 | OpenEHR2HL7 HIS Gunadarma
4.9. Tampilan Menu Data Pasien
Pada menu data pasien ini, semua data yang tampil adalah data pasien yang ada
pada website openEHR karena aplikasi ini terintegrasi dengan openEHR. 4.10. Tampilan Menu Cari Pasien
Pada halaman ini, pengguna bisa mencari data pasien dengan kata kunci nama
atau kode pasiennya. 40 | OpenEHR2HL7 HIS Gunadarma
4.11. Tampilan Pesan HL7 XML
Tampilan XML diatas merupakan hasil pesan HL7 yang akan muncul apabila pengguna memilih ENCODE, semua struktur pesan HL7 yang ada pada halaman ini disesuaikan dengan standar HL7 International. 4.12. Tampilan Menu Admin FAQ
Menu FAQ Administrator ini digunakan untuk menambahkan FAQ yang akan muncul pada halaman beranda. 41 | OpenEHR2HL7 HIS Gunadarma
4.13. Tampilan Admin Kontak
Halaman ini digunakan administrator untuk membaca pesan yang dikirim oleh pengguna menggunakan form kontak yang ada pada halaman beranda.
42 | OpenEHR2HL7 HIS Gunadarma
DAFTAR PUSTAKA [1]
Aditya Rizki. Rest vs Soap Web Service. http://www.adityarizki.net/2012/06/web‐service‐soap‐vs‐rest‐mana‐yang‐ lebih‐baik/. Tanggal akses: 23 Juli 2013.
[2]
ADT Message HL7. http://www.hl7standards.com/blog/2006/10/05/what‐is‐ an‐adt‐message/. Tanggal akses : 15 Juli 2013.
[3]
Aries Muslim. 2012. “Standarisasi Sistem Informasi Kesehatan Berjenjang Open E‐Health Gunadarma Information System, Mewujudkan Layanan Kesehatan Prima”. Disertasi. Depok: Universitas Gunadarma.
[4]
B. Very Christioko, M.Kom. “Penjelasan Framework CodeIgniter”. From http://bernard‐very.com/?p=538. Tanggal akses: 25 Juli 2013.
[5]
Betha Sidik. 2012. “Pemrograman Web PHP”. Bandung: Informatika.
[6]
HL7 Field and Segment. 2012. http://jwenet.net/notebook/1777/1250.html. Tanggal akses : 1 Agustus 2013.
[7]
HL7 Manual Book. 2000. Health Level Seven Technical Manual. New York: 2000.
[8]
HL7 Website. http://www.HL7.org. Tanggal akses: 25 Juni 2013.
[9]
Julio Adisantoso. “Penjelasan Web Service”. http://julio.skpm.ipb.ac.id/index.php/curhat/7‐webservice. Tanggal akses: 23 Agustus 2013.
[10]
Oru Message HL7. http://www.hl7standards.com/blog/2006/10/05/what‐is‐ an‐oru‐message/. Tanggal akses: 15 Juli 2013.
[11]
Pertukaran Data Elektronik. Wikipedia. http://id.wikipedia.org/wiki/Pertukaran_data_elektronik. Tanggal akses: 20 Agustus 2013
[12]
Php Function Explode. 2013. http://php.net/manual/en/function.explode.php. Tanggal Akses: 19 Juli 2013
[13]
Web Service Rest. http://elib.unikom.ac.id/files/disk1/520/jbptunikompp‐gdl‐ egiadtyapr‐25969‐6‐unikom_e‐i.pdf. Tanggal akses: 1 Agustus 2013
[14]
Restful Web Service. 2013. https://www.ibm.com/developerworks/webservices/library/ws‐ restful/ 25/07/2013
43 | OpenEHR2HL7 HIS Gunadarma
[15]
R Asrita. 2012 . “Website Rekam Medis Elektronik”. Journal. Depok: Universitas Gunadarma
[16]
Ronald T Gultom. 2010. “Konsep Standarisasi Protokol untuk Bidang Health Care Information”. Journal.
[17]
Waterfall Model.2013 . http://en.wikipedia.org/wiki/Waterfall_model. Tanggal akses: 5 Agustus 2013
[18]
Web Service http://gdp.globus.org/gt3‐tutorial/multiplehtml/ch01s02.html. Tanggal akses 29 Juli 2013.
[19]
Westbrook. 2010. “Communication Between Hospital Information System”. http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1579411/. Tanggal akses 29 Juli 2013.
[20]
Wiwit Siswoutomo. 2013. Membangun Web Service Open Source Menggunakan PHP. Jakarta: Elex Media Computindo.