TUGAS AKHIR
DISUSUN OLEH :
DEPARTEMEN ELEKTO
FAKULTAS TEKNIK UNIVERSITAS
HASANUDDIN MAKASSAR
2017
LEMBAR PENGESAHAN
TRANSAKSI LAYANAN MEDIS REAL-TIME DENGAN
MENGGUNAKAN SMART CARD UNTUK MENDUKUNG PERAN
SMART CAMPUS
Pembimbing 1, Pembimbing 2,
Dr. Eng. Ir. Hj. Dewiani, M.T. Dr. Eng. Elyas Palantei, S.T., M.Eng.
NIP. 196910261994122001 NIP. 19690201 199412 1 001
i
KATA PENGANTAR
Alhamdulillah, tiada kata yang lebih pantas terucap selain Puji syukur
Kehadirat Allah SWT, yang telah meridhai , memberi jalan dan memberi
kesehatan sehingga penyususunan Tugas Akhir dengan judul “Transaksi
Layanan Medis Real-Time dengan Menggunakan Smart card untuk
Mendukung Peran Smart Campus” dapat diselesaikan.
Peneliti menyadari bahwa tugas akhir ini masih memiliki kekurangan dan
belum dapat dikatakan sempurna, tetapi sebagai manusia biasa yang penuh dengan
keterbatasan, inilah yang terbaik yang dapat peneliti persembahkan. Oleh karena
itu, saran dan kritik yang bersifat membangun akan peneliti pertimbangkan untuk
penyempurnaanya.
Kedua orang tua dan seluruh keluarga yang selama ini senantiasa
memberikan doa, dorongan, perhatian dan dukungan bagi peneliti.
Dr. Eng. Ir. Hj. Dewiani, M.T. selaku Pembimbing 1 dan Dr. Eng.
Elyas Palantei, S.T, M.Eng selaku Pembimbing 2 yang telah
membimbing, memberikan saran, dan perbaikan dalam penyusunan
Tugas Akhir ini.
Teruntuk staf Departemen Teknik Elektro yang selalu membantu
dalam hal persuratan dan selalu memberikan motivasi agar peneliti
cepat menyelesaikan Tugas Akhir ini.
ii
Teman-teman Teknik Elektro angkatan 2013 khususnya konsentrasi
Teknik Telekomunikasi dan Informasi yang selalu mendukung dan
memberikan saran serta kritik dalam penyusunan Tugas Akhir ini.
Harapan peneliti semoga Tugas Akhir ini berguna dan memberikan hal
yang bermanfaat bagi siapa saja yang membacanya. Demikian Tugas Akhir ini
disusun oleh peneliti, apabila ada kata-kata yang kurang berkenan dan banyak
terdapat kekurangan, peneliti memohon maaf.
Peneliti
iii
ABSTRAK
TRANSAKSI LAYANAN MEDIS REAL-TIME DENGAN
MENGGUNAKAN SMART CARD UNTUK MENDUKUNG PERAN
SMART CAMPUS
Misa Amira Azwar1
Sitti Wahyuni Artini2
iv
ABSTRACT
Advances in information technology today, has made various approaches and one
of them is in the field of health. To improve health services, telemedicine systems
will be designed to integrate patient data management and electronic check
payments. To maximize this health service system evenly, then in this Final
Project a system is made by using smart card which is integrated with Unhas
Clinic web site.
Smart cards that researchers used are based on the Consortium Smart Card
Indonesia iRFC v 1.0. While to design the web site researchers used PHP
programming language, the creation of MySQL database and Apache web server
that responsible for the request-response HTTP which has been combined in an
application called XAMPP. So it formed a system by using smart card which can
save patients medical record and can perform electronic payment transaction (e-
payment).
There are 10 people have been registered as patients in the Web Site System of
Unhas Clinic where 2 of them are insurance patients and have successfully
completed the examination. In addition, on the examination process at the Web
Site of Unhas Clinic can be done at short distance (0 Km) and long distance (20,3
Km) by using Wireless Fidelity (Wi-fi) network operating system (uplink: 2,94
Mbps; downlink: 20.37 Mbps) and cellular networks such as Simpati (uplink: 6.14
Mbps; downlink: 8.01 Mbps) and XL (uplink: 8.06 Mbps; downlink: 2.29 Mbps)
with fast connectivity.
v
DAFTAR ISI
vi
III.3 Perancangan Perangkat Keras........................................................................ III-7
III.4 Perancangan Perangkat Lunak dan Penginstallasian XAMPP ................... III-8
III.5 Perancangan Basis Data……. ......................................................................... III-14
vii
DAFTAR GAMBAR
viii
DAFTAR TABEL
Tabel 4.2 Pengujian Sistem Web Site Klinik Unhas Selain Peneliti……………….. IV-22
Tabel 4.5 Perbandingan Kelebihan Sistem Web Site Klinik Unhas dengan
ix
BAB I
PENDAHULUAN
I-1
dalam ruang berbeda antara tenaga medis dan pasien dikenal dengan istilah
telemedis (telemedicine).
I-2
service yang terintegrasi dengan smart card guna memperkuat peran smart
campus dalam hal memudahkan mahasiswa Fakultas Teknik Gowa Universitas
Hasanuddin memeriksakan kesehatan mereka tanpa harus mengunjungi Rumah
Sakit Umum Pendidikan Universitas Hasanuddin yang berada di Tamalanrea
Makassar. Adapun judul dari tugas akhir kali ini adalah Transaksi Layanan
Medis Real-Time dengan Menggunakan Smart card untuk Mendukung Peran
Smart Campus.
I-3
1. Merancang sistem monitoring kesehatan jarak jauh berbasis web service
yang terintegrasi dengan smart card dengan manajemen database yang
baik.
2. Merancang sistem pembayaran pemeriksaan dengan menggunakan e-
payment yang berbasis smart card.
I-4
2. Proses pembayaran e-payment hanya menggunakan smart card dan
transaksi top-up saldonya menggunakan uang tunai.
3. Perancangan sistem ini menggunakan smart card dengan spesifikasi iRFC
1.0 yang terhubung dengan Web Site Klinik Unhas.
4. Sistem operasi jaringan yang digunakan untuk mengakses Web Site Klinik
Unhas adalah jaringan seluler yaitu Simpati dan XL serta Wireless Fidelity
(Wi-fi)
1. Studi Literatur
2. Pembuatan Sistem
3. Pengujian sistem
Tahap akhir dari penelitian ini adalah menguji coba sistem untuk
mengetahui kesalahan dan kekurangan pada sistem agar dapat dilakukan
perbaikan dan penyempurnaan sistem.
I-5
BAB I PENDAHULUAN
Bab ini membahas tentang teori serta fakta-fakta yang diambil seabgai
bahan referensi terkait dengan penelitian yang dilakukan yang berguna dalam
pembangunan system nantinya.
Dalam bab ini akan dijelaskan mengenai hasil penelitian, masalah, dan
pemecahannya.
BAB V PENUTUP
Pada bab ini berisi tentang kesimpulan dari hasil penelitian yang diperoleh
pada bab sebelumnya dan saran-saran yang dapat berguna dalam pengembangan
dari sistem pada tugas akhir ini di masa akan datang.
I-6
BAB II
TINJAUAN PUSTAKA
II.1.1. Telemedicine
II-1
walaupun masih dalam tingkat yang terbatas. Sehingga sangat perlu untuk
mengembangkan teknologi telemedicine ini untuk keperluan dan kepentingan
pasien itu sendiri. Karena Indonesia adalah negara kepulauan maka teknologi
telemedicine sangat diperlukan sekali.
Web server adalah software yang menjadi tulang belakang dari world wide
web (www) yang pertama kali tercipta sekitar tahun 1980an. Web server
menunggu permintaan dari client yang menggunakan browser seperti Netscape
Navigator, Internet Explorer, Mozilla Firefox, dan program browser lainnya. Jika
ada permintaan dari browser, maka web server akan memproses permintaan itu
kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke
browser.
Data ini mempunyai format yang standar, disebut dengan format SGML
(Standar General Markup Language). Data yang berupa format ini kemudian
akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut.
Contohnya, bila data yang dikirim berupa gambar, browser yang hanya mampu
menampilkan teks (misalnya Links) tidak akan mampu menampilkan gambar
tersebut, dan jika ada akan menampilkan alternatifnya saja.
II-2
Web server untuk berkomunikasi dengan client-nya (web browser)
mempunyai protokol sendiri, yaitu HTTP (hypertext transfer protocol). Dengan
protokol ini, komunikasi antar web server dengan client-nya dapat saling
dimengerti dan lebih mudah. Seperti telah dijelaskan diatas, format data pada
world wide web adalah SGML. Tapi para pengguna internet saat ini lebih banyak
menggunakan format HTML (hypertext markup language) karena penggunaannya
lebih sederhana dan mudah dipelajari [8] .
II.1.5. PHP
PHP adalah singkatan dari Personal Home Page yang merupakan bahasa
standar yang digunakan dalam dunia website. PHP adalah bahasa pemrograman
yang berbentuk script yang diletakkan didalam web server. PHP dapat diartikan
sebagai Hypertext Preeprocessor. Ini merupakan bahasa yang hanya dapat
berjalan pada server yang hasilnya dapat ditampilkan pada klien. Interpreter PHP
dalam mengeksekusi kode PHP pada sisi server disebut serverside, berbeda
dengan mesin maya Java yang mengeksekusi program pada sisi klien (client-
server) [10].
II.1.6. MySQL
II-3
sama lain atau dapat berdiri sendiri, sehingga mudah diakses. MySQL merupakan
database yang awalnya hanya berjalan pada sistem Unix dan Linux. Seiring
berjalannya waktu dan banyaknya peminat yang menggunakan database ini,
MySQL merilis versi yang dapat diinstal pada hampir semua platform, termasuk
Windows. Lisensi dari MySQL adalah freeware yang artinya pengguna dapat
mendownload dan menggunakannya tanpa harus membayar [10].
a. Select
Operasi ini digunakan untuk mendaftar semua atribut yang diinginkan sebagai
hasil suatu query.
b. From
Operasi ini mencatat semua relasi yang di”scan” dalam evaluasi suatu query.
c. Where
Operasi ini terdiri dari sebuah predikat yang menyangkut atribut-atribut dari relasi
yang muncul dalam klausa from [11].
II-4
satu media teknologi informasi yang modern, telah menyebar dan berkembang
pesat dalam segala aspek kehidupan masyarakat di Indonesia dan seluruh dunia.
Tak terkecuali dalam bidang perekonomian. Dengan adanya transaksi elektronik
atau e-payment memudahkan dalam hal transaksi secara cepat dan tepat [12].
Smart card sering disebut sebagai chip card atau integrated circuit (IC)
card . Definisi chip card sendiri yaitu kategori umum yang mencakup smart card
dan memory card. Smart card adalah plastic card yang mengandung memory chip
dan microprocessor.
Kartu ini bisa menambah, menghapus, mengubah informasi yang
terkandung. Keunggulannya adalah smart card tidak perlu mengakses database di
server karena sudah ada sebagian terkandung di kartu. Sedangkan memory card
dipasangi memory silicon tanpa microprocessor.
Fungsi dasar suatu smart card adalah untuk mengidentifikasi card holder ke
sistem komputer. Cardholder disini adalah pemilik asli kartu tersebut. Identifikasi
ini menyangkut otentifikasi organisasi yang membuat kartu tersebut dan
cardholder dan hak aksesnya.
Beberapa hal yang harus dipertimbangkan dalam metode identifikasi kartu
adalah apakah kartu dapat :
Mengkonfirmasi identitas cardholder sebelum mengakses data
II-5
Memberikan data untuk konfirmasi ke alat eksternal, sistem atau
perorangan.
Menyediakan data ke sistem tanpa pengecekan orang yang
menggunakan.
Untuk itu harus didefinisikan tingkat keamanan yang diperlukan. Tingkat
keamanan paling tinggi, sedang, atau hanya cukup untuk mengatasi pencuri amatir
saja.
Berdasarkan kategorinya smart card dapat dibagi menjadi 2 jenis, yaitu
contact dan contactless
1. Contact Smart card
Pada jenis contact membutuhkan sentuhan fisik antara kartu dengan
reader agar dapat terhubung. Dimana kartu dimasukkan ke dalam
reader agar reader bersentuhan dengan conductive contact plate
pada permukaan kartu.
2. Contactless Smart card
Pada jenis contactless tidak dibutuhkan sentuhan fisik agar kartu
dengan reader dapat terhubung. Hal ini karena komunikasi yang
terjadi antara kartu dengan reader menggunakan frekuensi radio.
II-6
Tabel 2.1 Spesifikasi Data Identitas
II-7
No Item Keterangan Format Contoh
II-8
No Item Keterangan Format Contoh
II-9
No Item Keterangan Format Contoh
Spesifikasi data ini disusun dari hasil penggabungan konsep, model dan
pemetaan yang diambil dari protokol transaksi perbankan ISO8583 dan data
identitas standar ICAO 9303-4. Definisi yang dipergunakan terdiri dari 2 (dua)
model yaitu Fix-Length dan Header-Length. Fix-Length menyimpan data dengan
panjang yang sudah ditentukan. Apabila data lebih pendek dari panjang field akan
diisi dengan karakter spasi. Header-Length menyimpan data sejumlah Header-
nya. Di dalam spesifikasi ini, Header-Length yang digunakann adalah
menggunakan 2 (LLVAR) s/d 4 (LLLLVAR) digit numerik yang
merepresentasikan panjang data pada field tersebut. Walaupun Header-Length
memungkinkan untuk mendefinisikan panjang data yang sangat banyak, tetap
dilakukan pembatasan panjang data khususnya untuk foto dan sidik jari .
II-10
spesifikasi akses data identitas yang telah disepakati oleh Konsorsium Smart card
Indonesia [13] :
3 Nomor Identitas
Max (353 Bytes) Penulisan
membutuhkan
4 Nama Lengkap SAM (Issuer)
untuk melakukan
Pembacaan
5 Kode Organisasi otentikasi
membutuhkan
sebelum menulis
SAM (Acquirer)
data ke dalam
6 Nama Sekolah / untuk melakukan
kartu
Universitas / Lembaga otentikasi
Pendidikan sebelum
pembacaan data
7 Nama Fakultas / Kelas dari dalam kartu
9 Peran
II-11
No Item APDU (READ) APDU (WRITE) Contoh
II-12
No Item APDU (READ) APDU (WRITE) Contoh
16 Issue Date
(Max 238 Bytes) Penulisan
membutuhkan
SAM (Issuer)
untuk melakukan
Pembacaan
otentikasi
membutuhkan
sebelum menulis
SAM (Acquirer)
data ke dalam
untuk melakukan
kartu
otentikasi
sebelum
pembacaan data
dari dalam kartu
II-13
No Item APDU (READ) APDU (WRITE) Contoh
MF ini sengaja
dipisah dengan
data lainnya untuk
membatasi
perubahan data
yang dapat
dilakukan oleh
Acquirer (dengan
pengiriman
APDU secara
online dari Issuer
ke Acquirer, Lihat
Bagian 5.3)
II-14
No Item APDU (READ) APDU (WRITE) Contoh
Penulisan
membutuhkan
SAM (Issuer)
untuk melakukan
otentikasi
sebelum menulis
data ke dalam
kartu
II-15
II.2 Penelitian Transaksi Layanan Kesehatan Berbasis Smart Card
JUDUL
PENELITI TAHUN HASIL PENELITIAN
PENELITIAN
II-16
Berdsarkan tabel perbandingan beberapa penelitian di atas, maka peneliti
akan membuat suatu perancangan web site untuk memudahkan pengiriman data
pasien dari klinik Fakultas Teknik Gowa ke Rumah Sakit Umum Pendidikan
Universitas Hasanuddin yang berada di Tamalanrea Makassar yang juga
dilengkapi dengan sistem billing dengan memanfaatkan smart card sebagai alat
pembayaran layanan kesehatan.
II-17
BAB III
METODE PENELITIAN
III-1
MASALAH
DI SISI RUMAH SAKIT
1. Terdapat banyak antrian pasien sehingga membuat waktu pemeriksaan menjadi
tidak efisien.
2. Antrian yang panjang biasanya disebabkan karena ketidakpastian jadwal dokter
berada di Rumah Sakit.
3. Transaksi biaya pemeriksaan terkadang juga menimbulkan antrian dan
menimbulkan ketidaktepatan admin dalam menghitung biaya pemeriksaan yang
terkadang kalkulasi biaya pemeriksaan masih bersifat manual.
4. Data riwayat pasien terkadang masih ada yang berbentuk kertas.
DI SISI PASIEN
1. Pasien yang berada diluar daerah sehingga jarak Rumah Sakit yang cukup jauh
dari tempat tinggal pasien.
2. Biaya transportasi yang cukup mahal khususnya masyarakat yang berada
didaerah.
SOLUSI
Merealisasikan sebuah web site yang didalamnya sudah terdapat data pasien, data dokter
maupun data poli. Web site tersebut juga terintegrasi dengan smart card guna sebagai alat
transaksi pembayaran layanan kesehatan agar pasien dapat berkonsultasi dan memeriksa
kesehatan dengan dokter walaupun tidak berada dalam suatu ruangan yang sama.
PROSES
Perancangan web site dengan menggunakan bahasa pemograman PHP, pembuatan
database MySQL dan Apache web server yang bertanggung jawab pada request-response
HTTP.
HASIL
Pengujian sistem, analisa dan kesimpulan
III-2
III.2 Perancangan Sistem Layanan Medis Kampus
Mulai
Perancangan website
Konfigurasi website
dengan smart card
Membuat database
untuk website
Ya
Pembuatan laporan
Selesai
III-3
Gambar 3.1 Flowchart Perancangan Sistem
III-4
pasien di klinik, pertugas medis dalam hal ini berlaku juga sebagai admin
melayani pasien dengan cara meminta smart card dan memasukkannya pada
reader untuk mengakses data pasien pada website Klinik Unhas.
III-5
Mulai
A
Pasien melakukan
pembayaran tagihan
Pasien datang ke klinik pemeriksaan di website
RSUP
Petugas medis di
klinik menginput
parameter hasil
Mengisi form Apakah pasien pernah pemeriksaan
pasien baru di Tidak melakukan p emeriksaan di pasien di website
klin ik RSUP
website RSUP ?
Ya Dokter di RSUP
menerima dan
memeriksa hasil
pemeriksaan di
Validasi kartu pasien klinik melalui
Pasien telah memiliki akun website RSUP
dengan RFID reader
Tidak
Dokter
menginput hasil
diagnosa pasien
klinik di website
Data valid? RSUP
Ya
Pasien menerima
hasil diagnosa
dari dokter
Pasien memilih melalui website
jenis RSUP
pemeriksaan di
website RSUP
selesai
Ya
III-6
III.3 Perancangan Perangkat Keras
III-7
informasi tentang identitas pemegang kartu baik secara fisik yang tercetak
pada kartu maupun yang tersimpan di dalam chip yang berfungsi sebagai
tempat penyimpanan dan pengolahan data spesifik pemilik kartu tersebut
dan memiliki sifat sangat rahasia. Smart card yang kami rancang akan
berisi data-data pemegang kartu seperti identitas, rekam medis, serta saldo
kartu. Smart card yang digunakan pada penelitian ini adalah smart card
yang berstandar pada konsorsium smart card v. 1.0
Software yang dibutuhkan selama tahap pengembangan sistem ini antara lain:
III-8
Dalam memudahkan peneliti untuk merancang dan membuat sistem, maka
digunakan software XAMPP. XAMPP adalah perangkat lunnak bebas yang
mendukung banyak sistem operasi dan mempunyai fungsi sebagai server yang
berdiri sendiri (localhost). XAMPP terdiri dari program MySQL database,
Apache HTTP Server, dan penerjemah ditulis dalam bahasa pemograman PHP
dan Perl. Untuk menginstall perangkat lunak XAMPP, terlebih dahulu buka
halaman website https://www.apachefriends.org/index.html pada browser. Setelah
itu pilih XAMPP for Windows untuk memulai proses download.
III-9
2. Untuk pengguna Windows, akan muncul jendela pop up sebagai peringatan
tentang User Account Control (UAC) yang aktif pada sistem. Klik “OK”
untuk melanjutkan proses instalasi.
5. Memilih komponen yang ingin diinstall. Pilih pilihan default dan klik “Next”.
III-10
6. Pilih folder untuk menyimpan file XAMPP dalam PC. Klik “Next” untuk
melanjutkan.
7. Setelah itu akan muncul jendela seperti di bawah ini. Klik “Next” untuk
melanjutkan.
III-11
8. Klik “Next” untuk memulai proses penginstallan XAMPP pada PC.
9. Setelah itu tunggu beberapa saat sampai proses instalasi selesai. Klik “Next”
untuk melanjutkan.
III-12
10. Ketika proses instalasi selesai maka akan muncul jendela seperti di bawah ini.
Klik “Finish”.
III-13
12. Klik kanan pada ikon XAMPP dan pilih “Run as Administrator” untuk
menjalankan aplikasi XAMPP, setelah itu akan muncul jendela seperti di
bawah ini.
Nomor;
III-14
Field Name; berisi nama-nama field apa saja yang ada pada setiap halaman
web site. Contoh tabel untuk halaman Admin, terdapat id admin, nama,
alamat, date of birth, sex, telp, email, status, password, dan foto.
Tipe data; berisi tipe data masing-masing field. Tipe data yang dipakai
pada penelitian kali ini adalah sebagai berikut.
- Varchar adalah tipe data untuk menampung data yang bertipe karakter
atau alphabetic (a-z).
- Integer atau sering di singkat Int adalah tipe data yang digunakan untuk
menampung data yang bertipe angka atau numeric (0-9).
- Date adalah tipe data yang digunakan untuk menampung data yang
bertipe tanggal, bulan, dan tahun.
- Text adalah tipe data yang bisa diisi dengan kombinasi nilai antara
alphabetic dan numeric.
Range; berisi panjang karakter masing-masing field. Contoh untuk field
nama terdapat 50 karakter yang dapat diisi.
field dari basis data untuk admin dapat dilihat seperti gambar di atas yang mana
nantinya field tersebut akan dipakai untuk meregister atau mendaftar admin baru
pada sistem web site Klinik Unhas.
III-15
Tabel 3.2 Basis Data untuk Parameter Pemeriksaan Darah
III-16
4 Divisi varchar 50
5 alamat varchar 200
6 Dob Date
7 Sex varchar 20
8 Telp varchar 12
9 Email varchar 50
10 Status varchar 6
11 Password varchar 100
12 foto text
Ketika admin ingin mendaftarkan dokter baru ke dalam sistem maka admin akan
mengisi informasi-informasi dokter tersebut seperti yang ada pada tabel basis
dokter di atas.
III-17
3 Id_pasien varchar 11
4 Nama varchar 50
5 Tanggal Date
6 Bayar Date
7 Pemeriksaan Varchar 50
8 Kesimpulan Text
9 Total Varchar 20
10 status varchar 10
Ketika pasien telah selesai melakukan pemeriksaan maka data-data pemeriksaan
pasien tersebut akan tersimpan di halaman riwayat pasien yang mana di dalamnya
tertera jelas kode pemeriksaan, id pasien, nama pasien, tanggal pemeriksaan, total
bayar, kesimpulan dokter, nama pemeriksaan, hingga status.
III-18
Tabel basis data untuk pemeriksaan tensi digunakan untuk mengisi parameter
pemeriksaan tensi jika pasien memilih pemeriksaan tersebut.
III-19
40 ketLeukosit text
41 ketSilinder_Hyalin text
42 ketSilinder_Lain_lain text
43 ketEphitel_Gepeng text
44 ketEphitel _Transitional text
45 ketEphitel_Tubulus_Ginjal text
46 ketBakteri text
47 ketKristal_Normal text
48 ketKristal_Abnormal text
49 ketLain_Lain text
Tabel basis data untuk pemeriksaan urine digunakan untuk mengisi parameter
pemeriksaan urine jika pasien memilih pemeriksaan tersebut.
III-20
BAB IV
Untuk membuat sebuah sistem Web Site Klinik Unhas terlebih dahulu
dibuatlah source code yaitu util.php dan spesifikasi konsorsium.php (lihat pada
lampiran halaman 54-63) yang memiliki tujuan dalam hal pembacaan smart card.
Setelah kedua source code utama yaitu util.php dan spesifikasi konsorsium.php
dibuat, maka dilakukanlah pembuatan source code lainnya yang bertujuan untuk
menampilkan halaman-halaman Web Site Klinik Unhas. Berikut adalah gambaran
halaman Web Site Klinik Unhas setelah sebelumnya dilakukan perancangan
sistem dan untuk source codenya dapat dilihat pada bagian lampiran halaman 1-
53:
IV-1
Gambar 4.1 Halaman Utama Klinik Unhas
IV-2
Gambar 4.3 Menu Utama Tanpa Ada Smart Card
IV-3
Rekam Medis
Tampilan halaman web site rekam medis ditujukan untuk melihat
pemeriksaan-pemeriksaan yang telah dilakukan pasien. Di tampilan
halaman tersebut berisikan kode pemeriksaan, nama, tanggal check up,
status, dan detail. Kolom status berfungsi untuk melihat status
pemeriksaan pasien apakah sudah lunas, belum lunas ataukah sudah
selesai. Sedangkan kolom detail untuk melanjutkan pemeriksaan.
Jenis-Jenis Pemeriksaan
Dalam halaman ini, terdapat jenis-jenis pemeriksaan yang pasien
dapat pilih seperti suhu tubuh, tensi, darah, urine, sakit kepala, sakit
perut/lambung, asma, batuk/tenggorokan, muntah/berak, diare, nyeri dada,
alergi, dan jenis pemeriksaan emergency. Pada jenis pemeriksaan
emergency ini, dapat dipilih jika pasien memang dalam keadaan darurat
yang membutuhkan petolongan segera. Dan pasien dapat membayar biaya
pengobatannya setelah dilakukan penanganan oleh petugas medis atau
dokter.
IV-4
Gambar 4.6 Jenis-Jenis Pemeriksaan
IV-5
Top Up
Di halaman Menu Utama Web Site Klinik, terdapat Rekam Medis
pasien dengan berbagai menu tambahan seperti Riwayat, Tindakan dan
Top Up. Menu Top Up itu sendiri bertujuan untuk menambah saldo pada
kartu sesuai keinginan pemegang smart card. Untuk saat ini, jika pasien
ingin menambahkan saldo smart card maka harus menggunakan uang
tunai yang dibayar pada petugas administrasi di Klinik Unhas Gowa.
Invoice
Halaman Invoice merupakan Struk Pembayaran dari jenis
pemeriksaan yang telah dilakukan. Invoice ini dapat dicetak maupun tidak,
tergantung kebutuhan pasien.
IV-6
Gambar 4.9 Invoice
IV-7
Admin Baru
Gambar 4.11 merupakan halaman untuk pendaftaran petugas
administrasi baru. Di halaman ini, admin akan mengisi nama petugas
administrasi baru, alamat, tanggal lahir, jenis kelamin, nomor telepon atau
handphone, email dan foto. Sedangkan untuk penomoran ID akan terisi
secara otomatis dari sistem.
Data Admin
Pada halaman Data Admin akan muncul data-data petugas
administrasi Klinik Unhas yang akan bertanggung jawab dalam
mengoperasikan Web Site Klinik Unhas. Di halaman ini hanya akan
muncul kolom nama, alamat, tanggal lahir, nomor telepon, dan detail.
IV-8
Gambar 4.12 Data Admin
Pasien Baru
Untuk mendaftarkan pasien baru, akan muncul halaman seperti ini.
Di dalam halaman pasien baru, data-data yang diperlukan seperti kode
institusi, NIM/NIK/NIDN/NO.Passport, asuransi, peran, nama, kode
organisasi, nama universitas, nama fakultas, nama program studi, foto,
alamat, tanggal lahir, jenis kelamin, email, tinggi, berat, nomor telepon,
dan email. Sebelum mengklik tombol register, pastikan reader dan smart
card sudah tersambung. Sementara untuk pilihan SAM Card Reader dan
USER Card Reader diubah menjadi ACS ACR1281 1S Dual Reader ICC
0. Jika pasien baru yang memiliki NIM/NIK/NIDN/NO.Passport yang
sama dengan pasien yang telah terdaftar maka pasien baru tersebut tidak
dapat melanjutkan pendaftaran.
IV-9
Gambar 4.13 Pasien Baru
Data Pasien
Pada halaman Data Pasien akan muncul data-data pasien Klinik
Unhas. Di halaman ini hanya akan muncul kolom id, nama pasien, alamat,
tanggal lahir, jenis kelamin, nomor telepon, tanggal registrasi, dan detail.
Kolom detail ini berfungsi untuk melihat riwayat rekam medis pasien.
IV-10
Tampilan Rekam Medis pada Halaman Web Pasien
Pada saat pasien telah login di halaman web site www.klinik-
unhas.com, tampilan Rekam Medis adalah yang paling utama ditampilkan.
Halaman ini berisiskan profile pasien dan rekam medis pasien. Dimana
pada rekam medis terdapat kolom kode pemeriksaan, nama, tanggal check
up, status, dan action. Kolom status berfungsi untuk mengetahui status
pemeriksaan pasien dan status yang terlihat hanya pemeriksaan yang telah
selesai. Sedangkan kolom action terdapat detail yang berfungsi untuk
melihat hasil pemeriksaan, hasil diagnosa pasien dari petugas medis dan
dokter, serta resep dokter.
Tampilan Hasil Pemeriksaan dan Resep Dokter pada Halaman Web Pasien
Di halaman ini, pasien akan melihat seluruh hasil pemeriksaan baik yang
dilakukan di dalam klinik dan juga hasil diagnosa dari dokter serta resep
dokter. Pasien tidak memiliki akses untuk mengubah apapun hasil
pemeriksaan dan resep dokter.
IV-11
Gambar 4.16 Tampilan Hasil Pemeriksaan dan Resep Dokter pada
Halaman Web Pasien
Tampilan Ubah Password pada Halaman Web Pasien
Pada halaman ini pasien dapat mengganti password yang terdiri
atas kolom sandi lama, sandi baru, dan ulangi sandi baru.
IV-12
Tampilan Konsultasi Dokter pada Halaman Web Pasien
Di halaman konsultasi dokter, pasien dapat berkonsultasi dengan
admin atau petugas medis yang sedang berada di klinik. Selain itu halaman
ini juga berfungsi jika pasien membutuhkan pertolongan cepat oleh
petugas medis atau dalam kondisi darurat pasien tidak dapat melakukan
pemeriksaan ke klinik, pasien cukup mengetik pesan dan admin beserta
petugas medis lainnya akan segera menuju lokasi pasien.
Dokter Baru
Gambar 4.19 merupakan halaman untuk Pendaftaran Dokter Baru.
Di halaman ini, admin akan mengisi nama dokter baru, alamat, tanggal
lahir, jenis kelamin, nomor telepon atau no. hp, email dan foto. Sedangkan
untuk penomoran ID akan terisi secara otomatis oleh sistem.
IV-13
Gambar 4.19 Dokter Baru
Data Dokter
Pada halaman Data Dokter akan muncul data-data dokter yang
akan bertugas memeriksa pasien-pasien di Klinik Unhas. Di halaman ini
hanya akan muncul kolom id, nama dokter, alamat, tanggal lahir dan
nomor telepon.
IV-14
Tampilan Data Pasien pada Halaman Web Dokter
Gambar 4.21 Merupakan tampilan halaman utama web klinik
setelah dokter melakukan login. Di halaman web ini yang pertama terlihat
ialah data pasien yang telah terdaftar pada Web Site Klinik Unhas sehingga
memudahkan dokter memilih pasien mana yang akan diperiksa
kesehatannya. Dokter hanya perlu mengklik tombol detail pada nama
pasien yang ingin diperiksa.
IV-15
Gambar 4.22 Tampilan Riwayat Medis Pasien pada Halaman Web Dokter
IV-16
Gambar 4.23 Tampilan halaman pemeriksaan petugas medis di klinik unhas
IV-17
Gambar 4.25 Tampilan Catatan Dokter Pada Halaman Web Dokter
IV-18
IV.2 Alur Sistem Transaksi Di Web Site Klinik Unhas
Gambaran alur sistem transaksi layanan medis di Klinik Unhas yang bertempat di
Gowa adalah sebagai berikut :
Sisi Admin
1. Klik kanan pada ikon XAMPP, lalu pilih Run As Administrator. Setelah
itu pilih Start pada Apache dan MySQL. Lihat pada Gambar 3.5 Installasi
XAMPP.
2. Admin mengakses web site Klinik Unhas yaitu www.klinik-unhas.com
yang tampilan halaman utamanya dapat dilihat pada Gambar 4.1 halaman
IV-2. Admin mengisi kolom ID dan password serta bagian perannya
memilih “administrasi” untuk sign in. Lihat pada Gambar 4.1 Halaman
Utama Klinik Unhas.
3. Pasien menyerahkan smart card pada Admin, lalu admin akan menscan
smart card tersebut dengan menggunakan reader ACS Unified MSI 4060.
Setelah itu data pasien akan terbaca pada menu utama web site seperti
pada Gambar 4.4 halaman IV-3. Pasien akan dibantu admin memilih jenis
pemeriksaan pada bagian tindakan, lalu mengklik Periksa pada bagian
bawah halaman web. Lihat pada Gambar 4.11 halaman IV-8.
4. Setelah itu akan muncul halaman invoice seperti Gambar 4.12. Invoice ini
merupakan rincian biaya pemeriksaan yang telah dipilih oleh pasien. Lalu
klik Bayar untuk melanjutkan pemeriksaan.
5. Setelah melakukan proses pembayaran, klik rekam medis di bagian kiri
pada halaman menu, lalu akan muncul tampilan seperti Gambar 4.5
halaman IV-4. Klik detail pada bagian action untuk melanjutkan proses
pemeriksaan.
6. Setelah dilakukan pemeriksaan, petugas medis akan mengisi kolom
parameter pemeriksaan dan kesimpulan hasil yang dapat dilihat pada
Gambar 4.6 halaman IV-5. Lalu klik Simpan dan pemeriksaan telah
selesai. Jika pasien ingin mencetak hasil pemeriksaannya dapat mengklik
print all.
IV-19
7. Apabila pasien belum pernah melakukan pemeriksaan di Klinik Unhas
sebelumnya, maka admin akan mendaftarkan pasien tersebut terlebih
dahulu sebelum melakukan pemeriksaan dengan cara klik bagian Pasien
Baru lalu mengisi form seperti pada Gambar 4.13 halaman IV-10. Untuk
melanjutkan pemeriksaan, maka melakukan kembali step nomor 3-6.
8. Jika pasien yang bersangkutan tidak memiliki saldo yang cukup untuk
melakukan pemeriksaan, maka dapat mentop-up saldo kartunya pada
bagian Rekam Medis dan memilih Top Up seperti Gambar 4.14 Top Up.
Sisi Dokter
1. Saat dokter ingin melihat hasil pemeriksaan pasien di Klinik Unhas yang
berada di Gowa, dokter mengakses web site www.klinik-unhas.com , lalu
log in dengan ID dan password serta memilih bagian peran dengan
“Dokter” . Lihat pada Gambar 4.1 Halaman Utama Klinik Unhas.
2. Setelah log in akan mucul tampilan Data Pasien seperti Gambar 4.21 yang
telah diperiksa oleh petugas medis di Klinik Unhas Gowa. Dokter
kemudian memilih pasien mana yang akan diperiksa lalu klik detail.
3. Rekam Medis pasien yang telah dipilih akan muncul setelah dokter
mengklik detail. Lalu memilih kode pemeriksaan apa yang akan diperiksa
dengan cara mengklik detail.
4. Setelah itu akan muncul parameter hasil pemeriksaan dan kesimpulan
awal dari petugas medis yang bertugas di Klinik Unhas Gowa yang dapat
dilihat pada Gambar 4.23 halaman IV-17.
5. Untuk memberikan diagnosa, dokter mengisi kolom kesimpulan dokter
dan resep dokter. Lalu klik simpan, dan pemeriksaan dokter telah selesai.
Perlu diketahui jika kolom kesimpulan dokter dan resep dokter telah
disimpan maka tidak dapat diubah lagi.
6. Jika dokter mempunyai catatan yang bersifat rahasia mengenai pasien
tersebut, dokter dapat mengisinya di kolom catatan dokter. Catatan rahasia
ini tidak dapat diubah lagi. Diharapkan kepada dokter yang ingin mengisi
catatan dokter tersebut berhati-hati dalam mengisi diagnosanya.
IV-20
7. Gambar 4.25 halaman IV-18 adalah tampilan halaman profil dokter. Pada
halaman ini dokter dapat mengganti password jika diperlukan.
Sisi Pasien
1. Saat Pasien ingin melihat hasil pemeriksaannya kembali (sedang tidak
berada di klinik), pasien dapat mengakses web site www.klinik-unhas.com
, lalu log in dengan ID dan password serta memilih bagian peran dengan
“Pasien” . Lihat pada Gambar 4.1 Halaman Utama Klinik Unhas.
2. Setelah log in maka akan muncul tampilan Rekam Medis pasien seperti
pada Gambar 4.15. Klik Detail pada kolom action untuk melihat hasil
pemeriksaan dan resep dokter yang dapat dilihat pada Gambar 4.16
halaman IV-12.
3. Apabila pasien ingin berkonsultasi dengan dokter yang sedang berada di
klinik ataupun di luar klinik, maka pasien dapat mengklik menu konsultasi
dokter seperti Gambar 4.18.
IV-21
Gambar 4.28 Comment Pasien Berhasil Diregister
Apabila ada salah satu comment tidak muncul artinya ada kesalahan saat proses
registrasi. Berikut tabel pengujian sistem pada 10 pasien hingga selesainya
pemeriksaan.
IV-22
pemeriksaan hingga selesai. Pemeriksaan ini dilakukan oleh peneliti dan juga
sebanyak 5 orang mahasiswa dan pegawai Fakultas Teknik Gowa telah mencoba
melakukan pendaftaran pasien serta transaksi pemeriksaan sesuai Langkah-
Langkah Pengoperasian Sistem Web Site Klinik Unhas yang ada pada lampiran
halaman 69.
Tabel 4.2 Pengujian Sistem Web Site Klinik Unhas Selain Peneliti
IV-23
Tabel 4.3 Pengujian Kecepatan Internet
IV-24
Tabel 4.4 Pengujian Jarak Dokter dengan Pasien
JARAK
NAMA NAMA LOKASI
DOKTER LOKASI PASIEN LOKASI DOKTER KETERANGAN
NO.
BESERTA DOKTER BESERTA PASIEN
ID ID DAN
PASIEN
dr. Idar
Jalan Sunu Misa Amira Jalan Sunu
Mappangara, 0 Km Berhasil
1. Kompleks Azwar Kompleks
Sp.PD, Sp.JP
Unhas (1258354995) Unhas
(2135293622)
Dr. dr. Fardah Jalan
Jalan Sunu Galang
Akil, Sp.PD, Kakatua 6,7 Km
2. Kompleks Ananta Putra Berhasil
K-GEH Asrama
Unhas (3851657666)
(2981376581) Mattoangin
Dr. dr. Fardah Dunkin Aisyah
Jalan Sunu
Akil, Sp.PD, Donuts, Nurjannah 4,1 Km
3. Kompleks Berhasil
K-GEH Jalan Sultas Suyuti
Unhas
(2981376581) Hasanuddin (9153158336)
Fakultas
Teknik
dr. Idar
Gowa Rahmat Jalan Sunu
Mappangara, 20,3 Km
4. Universitas Rizaldi Kompleks Berhasil
Sp.PD, Sp.JP
Hasanuddin, (9219943269) Unhas
(2135293622)
Jalan Poros
Malino
Fakultas
Dr. dr. Harun
Teknik
Iskandar, Jalan Andi
Gowa
Sp.P (K),. Kakatua Muhammad 14,1 Km
5. Universitas Berhasil
Sp.PD, Sp.P Asrama Arung
Hasanuddin,
(K) Mattoangin (8592884983)
Jalan Poros
(1614964488)
Malino
Dari pengujian jarak yang telah dilakukan, semua pemeriksaan berhasil
dilakukan maka dapat disimpulkan bahwa pemeriksaan ini dapat dilakukan antara
pasien dan dokter baik dekat maupun jauh sehingga memudahkan pasien dalam
memeriksakan kesehatannya.
IV-25
IV.4 Perbandiangan Kelebihan Sistem Web Site Klinik Unhas dengan
Aplikasi Kesehatan Lainnya.
Tabel 4.5 Perbandiangan Kelebihan Sistem Web Site Klinik Unhas dengan
Aplikasi Kesehatan Lainnya.
WEBSITE KLINIK
NO. APLIKASI KESEHATAN LAINNYA
UNHAS
1. GoDoc : Tanya Dokter Gratis Sistem Web Site Klinik
Unhas dapat
Menyediakan layanan kesehatan
menyimpan rekam
profesional dengan membuka portal
medis pasien dalam
Setiap dokter umum dan dokter spesialis jangka waktu yang
Go Dok yang berasal dari berbagai kota lama.
besar di Indonesia yang teregristasi di IDI
Memiliki fitur Chatting
dan memiliki pengalaman selama bertahun-
untuk memudahkan
tahun sebagai dokter praktek baik di rumah
pasien dalam
sakit maupun klinik kesehatan.
berkonsultasi dengan
Layanan kesehatan yang ditawarkan Go pihak klinik dan
Doc bebas dari pungutan biaya apapun petugas medis. Dan
IV-26
2. Apa Sakitku? jika terjadi hal-hal
Menyediakan informasi berbagai penyakit darurat maka petugas
yang ada di tubuh manusia dengan cara medis dapat segera
memasukkan info keluhan kesehatan user. menuju ke lokasi
pasien.
Di Aplikasi ApaSakitKu, kita dapat
Pasien dapat
berkonsultasi dengan dokter untuk
memeriksakan
menanyakan penyakit dan biayanya pun
kesehatnnya di klinik
gratis. Tapi kekurangannya adalah dokter
yang akan ditangani
jarang online.
langsung oleh petugas
Terdapat juga fitur maps untuk medis dan dapat
mengetahui sarana pelayanan kesehatan melakukan
yang ada di sekitar kita. Sarana pelayanan pemeriksaan
kesehatan yang bisa dideteksi adalah lokasi laboratorium seperti
praktik dokter, klinik umum, klinik gigi, Tes Urine Rutin dan
rumah sakit dan apotek yang berada di Darah.
sekitar lokasi Anda. Proses Pembayaran
IV-27
4. Halo Doc Mahasiswa yang
memiliki asuransi
Aplikasi ini memudahkan pasien untuk
kesehatan tidak perlu
berkonsultasi dengan dokter melalui via
membayar biaya
chatting, voice call, dan video call tetapi
pemeriksaan di Klinik
pasien harus membayar biaya konsultasi.
Unhas (gratis).
HaloDoc juga menyediakan menu Apotek Dokter Spesialis yang
Antar (Pharmacy Delivery) untuk memesan mendiagnosa pasien
kebutuhan obat atau vitamin dan diantar dapat memberikan
langsung ke rumah dengan cepat, aman, resep obat sesuai
dan nyaman. dengan penyakit yang
diderita pasien dan
resep tersebut
tersimpan pada rekam
medis.
Berdasarkan tabel 4.4 dapat disimpulkan bahwa Web Site Klinik Unhas
yang peneliti rancang memiliki perbedaan dengan aplikasi-aplikasi kesehatan
yang saat ini sudah ada di Indonesia. Web Site ini peneliti rancang dengan tujuan
untuk mendukung peran smart campus Fakultas Teknik Gowa. Kedepannya, web
site yang terhubung dengan smart card ini akan menjadi kartu multifungsi dalam
artian tidak hanya dapat dipakai pada Klinik Unhas Gowa, melainkan dapat pula
digunakan pada sarana lain seperti kantin, perpustakaan, maupun pada bus BRT
yang ada pada Fakultas Teknik Gowa.
IV-28
BAB V
PENUTUP
V.1 Kesimpulan
1. Monitoring kesehatan jarak jauh pada sistem Web Site Klinik Unhas
dengan cara melihat parameter hasil pemeriksaan pasien yang diinput
langsung oleh admin atau petugas medis klinik dan selanjutnya dokter
yang tidak berada di klinik dapat memberikan diagnosa dan resep obat
sesuai dengan parameter hasil pemeriksaan pasien tersebut.
2. Konsultasi antara petugas medis atau admin di klinik dengan pasien dapat
dilakukan melalui fitur chatting pada Web Site Klinik Unhas sehingga
memudahkan dalam berkonsultas jikalau pasien mengalami keadaan
darurat yang tidak memungkinkan untuk mengunjungi klinik.
3. Pengelolaan dan penyimpanan database PHPmyAdmin dilakukan oleh
admin secara online.
4. Web Site Klinik Unhas dapat diakses oleh admin, pasien, dan dokter di
mana saja selama masih terhubung dengan internet sehingga pemantauan
dan konsultasi dapat dilakukan di manapun.
5. Sistem pembayaran, top up saldo kartu, dan penyimpanan data medis
pasien di Web Site Klinik Unhas dengan cara menggunakan smart card.
6. Pasien yang memiliki asuransi kesehatan tidak perlu membayar biaya
pemeriksaan di klinik.
7. Pasien yang mengalami keadaan darurat seperti halnya kecelakan dapat
dilakukan pemeriksaan terlebih dahulu tanpa melalui proses administrasi.
V-1
V.2 Saran
Untuk pengembangan lebih lanjut dari skripsi ini diberikan beberapa saran
sebagai berikut :
1. Sistem pembayaran pada Web Site Klinik Unhas kedepannya dapat diganti
dengan mengintegrasikan akun bank dan sistem yang telah ada sehingga
tidak perlu lagi menggunakan uang tunai.
2. Untuk menghasilkan sistem telemedis interaktif yang lebih berkualitas,
maka penelitian selanjutnya harus memperhatikan aspek penting seperti
keamanan data rekam medik pasien dan juga hal-hal penting lainnya yang
berhubungan dengan rumah sakit maupun klinik.
V-2
DAFTAR PUSTAKA
[1] Amil A. Ilham, Elyas Palantei, Santi, “Optimasi Sistem Basis Data Pada
Komputasi Mobile Dalam Jaringan Telemedis Interaktif,” Universitas
Hasanuddin Makassar, 2014.
[10] A. Solichin, “Pemrograman Web dengan PHP dan MySQL,” Jakarta, 2005.
[13] “iRFC1-
SpesifikasiDataMappingInteroperabilitasBerbasisSmartCardUntukFungsiN
on-FinansialAntarLembagaPendidikanDiIndonesia.” Konsorsium Smart
Card Indonesia.
[14] Amil A. Ilham, Elyas Palantei, dan Santi. Pengembangan Tampilan Visual
Data Medis Pada Jaringan Telemedis Interaktif. Program Studi Teknik
Elektro Konsentasi Teknik Informatika, Fakultas Teknik Universitas
Hasanuddin. Makassar, 2014.
LAMPIRAN
1. Source Code Halaman Utama Web Site Klinik Unhas
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Klinik | Universitas Hasanuddin</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-
scalable=no" name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="bower_components/font-awesome/css/font-
awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="bower_components/Ionicons/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="dist/css/AdminLTE.min.css">
<!-- iCheck -->
<link rel="stylesheet" href="plugins/iCheck/square/blue.css">
<link rel="icon" type="image/png" href="dist/img/favicon.png">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -
->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
1|Lampiran
<?php include 'db_access/login.php';?>
<p class="login-box-msg">Silakan Login</p>
</div>
<div class="col-xs-4">
<button type="submit" name="login" id="login" class="btn btn-primary btn-block
btn-flat" disabled>Sign In</button>
</div>
<!-- /.col -->
</div>
</form>
</div>
<!-- /.login-box-body -->
</div>
<!-- /.login-box -->
2|Lampiran
<!-- iCheck -->
<script src="plugins/iCheck/icheck.min.js"></script>
<script>
$(function () {
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass: 'iradio_square-blue',
increaseArea: '20%' // optional
});
});
function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
}
function btn()
{
if(document.getElementById("role").value!="")
document.getElementById("login").disabled=false;
else
document.getElementById("login").disabled=true;
}
</script>
</body>
</html>
<?php
require_once('util.php');
require_once('spesifikasi_konsorsium.php');
if (!extension_loaded('pcsc')) {
//dl('pcsc.so');
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
3|Lampiran
$nama_card_reader = $_POST['card_reader'];
//$nama_sam_reader = $_POST["sam_reader"];
$context_card = scard_establish_context();
//$context_sam = scard_establish_context();
// Select MF
$apdu = "00 A4 00 00 02 3F 00";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
// Select DF
$apdu = "00 A4 00 00 02 10 01";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
$field_map = "";
$length_map = "";
$data1 = "";
if(isset($_POST["local_card_id"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["local_card_id"]));
$data1 .= $_POST["local_card_id"];
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["kode_institusi"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["kode_institusi"]));
$data1 .= $_POST["kode_institusi"];
} else {
4|Lampiran
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["nomor_identitas"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["nomor_identitas"]));
$data1 .= $_POST["nomor_identitas"];
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["nama_lengkap"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["nama_lengkap"]));
$data1 .= $_POST["nama_lengkap"];
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["kode_organisasi"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["kode_organisasi"]));
$data1 .= $_POST["kode_organisasi"];
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["nama_universitas"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["nama_universitas"]));
$data1 .= $_POST["nama_universitas"];
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["nama_fakultas"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["nama_fakultas"]));
$data1 .= $_POST["nama_fakultas"];
5|Lampiran
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["nama_prodi"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["nama_prodi"]));
$data1 .= $_POST["nama_prodi"];
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["peran"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["peran"]));
$data1 .= $_POST["peran"];
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["icao_primer"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["icao_primer"]));
$icao1 = $_POST["icao_primer"];
// Select EF
$apdu = "00 A4 00 00 02 01 02";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
// Write ICAO Primer
$apdu = "00 D0 00 00 " . dec2hex(strlen($icao1)) . " " . asc2hex($icao1);
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
} else {
$field_map .= "0";
$length_map .= "0000";
}
if(isset($_POST["icao_sekunder"])){
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($_POST["icao_sekunder"]));
$icao2 = $_POST["icao_sekunder"];
// Select EF
$apdu = "00 A4 00 00 02 01 03";
6|Lampiran
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
// Write ICAO Sekunder
$apdu = "00 D0 00 00 " . dec2hex(strlen($icao2)) . " " . asc2hex($icao2);
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
} else {
$field_map .= "0";
$length_map .= "0000";
}
// Foto
$filename = 'dist/img/foto.jpg';
if(!file_exists($filename)){
$filename = 'dist/img/person.jpg';
}
// unlink('/home/smartcard/apps/uploads/foto.jpg');
$totalLen = count($foto_arr);
$field_map .= "1";
$length_map .= lengthMapGenerator($totalLen);
// Foto
$loop = intval($totalLen / 51);
$remainder = dec2hex($totalLen % 51);
$offset = "0000";
$strOffset = 0;
$str = "";
// Select EF
$apdu = "00 A4 00 00 02 01 04";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
while($loop != 0){
$part = implode("", array_slice($foto_arr, $strOffset, 51));
7|Lampiran
$str .= $part;
$getDataApdu = "00 D0 " . $offset . " 33 " . $part;
$resp = parseAPDU(scard_transmit2($conn_card, $getDataApdu), $getDataApdu);
$offset = changeOffset($offset, "33");
$strOffset += 51;
$loop -= 1;
}
$odontogram =
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa";
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($odontogram));
// Select EF
$apdu = "00 A4 00 00 02 01 05";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
// Write Odontogram
$apdu = "00 D0 00 00 " . dec2hex(strlen($odontogram)) . " " .
asc2hex($odontogram);
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
$saldo = "0000000000";
$field_map .= "1";
$length_map .= lengthMapGenerator(strlen($saldo));
// Select EF
$apdu = "00 A4 00 00 02 01 06";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
// Write Odontogram
$apdu = "00 D0 00 00 " . dec2hex(strlen($saldo)) . " " . asc2hex($saldo);
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
// Write Data1
$totalLen = strlen($data1);
$loop = intval($totalLen / 51);
$remainder = dec2hex($totalLen % 51);
$offset = "0000";
$strOffset = 0;
// Select EF
8|Lampiran
$apdu = "00 A4 00 00 02 01 01";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
while($loop != 0){
$part = substr($data1, $strOffset, 51);
$getDataApdu = "00 D0 " . $offset . " 33 " . asc2hex($part);
$resp = parseAPDU(scard_transmit2($conn_card, $getDataApdu), $getDataApdu);
$offset = changeOffset($offset, "33");
$strOffset += 51;
$loop -= 1;
}
// Select EF
$apdu = "00 A4 00 00 02 01 00";
$resp = parseAPDU(scard_transmit2($conn_card, $apdu), $apdu);
scard_disconnect($conn_card);
9|Lampiran
$sql="SELECT * FROM riwayat WHERE id_pasien = '$local_card_id'
ORDER BY id DESC";
if ($_SESSION['role'] == "Pasien") {
$sesiumum = "disabled";
}
if ($_SESSION['role'] != "Admin") {
$sql="SELECT * FROM riwayat WHERE id_pasien =
'$local_card_id' AND status='selesai' ORDER BY id DESC";
$sesiumum = "disabled";
?>
<!-- Sidebar Menu -->
<ul class="sidebar-menu" data-widget="tree">
<!-- Optionally, you can add icons to the links -->
<?php
if ($_SESSION['role'] != "Pasien") {
echo "<li><a href='home.php'><i class='fa fa-home'></i> <span>Menu
Utama</span></a></li>";
}?>
10 | L a m p i r a n
</a>
<ul class="treeview-menu">
<?php if ($_SESSION['role'] == "Admin") {
echo "
<li><a href='pasien_baru.php'><i class='fa fa-user-plus'></i> Pasien
Baru</a></li>";}?>
<?php if ($_SESSION['role'] != "Pasien") {
echo "<li class='treeview active'>
<a href='data_pasien.php'><i class='fa fa-user'></i> Data Pasien
<span class='pull-right-container'>
<i class='fa fa-angle-left pull-right'></i>
</span>
</a>
<ul class='treeview-menu'>
<li class='active'><a href='detail_pasien.php'><i class='fa fa-medkit'></i>
Rekam Medis</a></li>
</ul>
</li>
";}?>
</ul>
11 | L a m p i r a n
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper" id="loading">
<div class="row">
<div class="col-md-3">
12 | L a m p i r a n
</li>
<li class="list-group-item">
<i class="fa fa-tachometer"></i><b> Berat</b> <a class="pull-right"><?php
echo $berat?></a>
</li>
<li class="list-group-item">
<i class="fa fa-calendar-check-o"></i><b> Member Sejak</b> <a
class="pull-right"><?php echo $regdate?></a>
</li>
<li class="list-group-item">
<i class="fa fa-history"></i><b> Status</b> <a class="pull-right"><?php
echo $status?></a>
</li>
</ul>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
<hr>
<p class="tect-muted">
<?php echo $telp ?>
</p>
<hr>
13 | L a m p i r a n
<p class="tect-muted">
<?php echo $email ?>
</p>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
<div class="col-md-9">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<style>
.example-modal .modal {
position: relative;
top: auto;
bottom: auto;
right: auto;
left: auto;
display: block;
z-index: 1;
}
.example-modal .modal {
background: transparent !important;
}
</style>
<div class="row">
<div class="col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
14 | L a m p i r a n
<h3 class="box-title">Pilih Pemeriksaan</h3>
<span class="box-title pull-right" id="sumcekup"> 0</span>
<span class="box-title pull-right">Total = Rp. </span>
</div>
<div class="box-body">
<form action="#" method="post" name="cekup" id="formcekup">
<div class="modal-body col-xs-12">
<div class="col-xs-4">
<ul class="modal-ul">
<?php
include 'koneksi.php';
$('#tarif$id').change(function() {
if($(this).prop('checked') == true) {
document.getElementById('bt_cekup').disabled = false;
var table = document.getElementById('total');
var nam1 = document.getElementById('tarif$id');
var row = table.insertRow(-1);
var nama = row.insertCell(0);
var tarif = row.insertCell(1);
row.id = 'row$id';
nama.innerHTML = $('.$id:checked').val().split('|')[2]
tarif.innerHTML = $('.$id:checked').val().split('|')[1];
if($('#formcekup input:checkbox:checked').length == 0 ){
document.getElementById('bt_cekup').disabled = true;
15 | L a m p i r a n
}
});
</script>";
}
?></ul>
</div>
<div class="col-xs-8">
<div class="box">
<!-- /.box-header -->
<div class="box-body no-padding">
<table class="table table-condensed" id="total">
<tr>
<th>Nama Pemeriksaan</th>
<th>Tarif</th>
</tr>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
</div>
</div>
</div>
16 | L a m p i r a n
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary pull-right" name="bt_cekup"
id="bt_cekup" disabled> Periksa</button>
</form></div>
<div class="row">
<div class="col-md-12">
<!-- Horizontal Form -->
<div class="box box-info">
<div class="box-header with-border">
<h3 class="box-title">Riwayat Medis</h3>
</div>
<!-- /.box-header -->
<!-- form start -->
<?php
include 'koneksi.php';
17 | L a m p i r a n
<?php while ($row=mysqli_fetch_assoc($query)):?>
<tr>
<form id="detaildokter" action="#" method="post" target="_blank">
<td><?php echo $row['kode_pemeriksaan']; ?></td>
<td><?php echo $row['nama']; ?></td>
<td><?php echo $row['tanggal']; ?></td>
<td><?php if ($row['status']=="belum") {
echo "Belum Lunas";
} else { echo $row['status'];
}?></td>
<td><input type="hidden" name="card_id" value="<?php echo
$row['id_pasien']?>">
<input type="hidden" name="inv_id" value="<?php echo
$row['kode_pemeriksaan']?>">
<?php if ($row['status']=="Lunas") {
echo "<button type='submit' name='update' id='update' class='btn btn-info'
data-toggle='update' title='Detail'><i class='fa fa-indent'></i></button>";
echo "<button type='submit' name='print' id='print'
class='btn btn-info' data-toggle='print' title='Print Invoice'><i class='fa fa-
print'></i></button>";
}?>
<?php if ($row['status']=="Selesai") {
echo "<button type='submit' name='update' id='update' class='btn btn-info'
data-toggle='update' title='Detail'><i class='fa fa-indent'></i></button>";
echo "<button type='submit' name='print' id='print'
class='btn btn-info' data-toggle='print' title='Print Invoice' $sesiumum><i class='fa fa-
print'></i></button>";
}?>
<?php if ($row['status']=="belum") {
echo "<button type='submit' name='bayar'
id='bayar' class='btn btn-info' data-toggle='bayar' title='Bayar Pemeriksaan'><i class='fa
fa-money'></i></button>";
}?>
</td></form>
<?php endwhile;?>
</tr>
</tbody>
<tfoot>
<tr>
<th>Kode Pemeriksaan</th>
<th>Nama</th>
<th>Tanggal Cek-Up</th>
<th>Status</th>
<th>Action</th>
18 | L a m p i r a n
</tr>
</tfoot>
</table>
</div>
</div>
<!-- /.box-body -->
</div>
</div></div>
<!-- /.tab-pane -->
</div>
<div class="row">
<div class="col-md-12">
<!-- Horizontal Form -->
<div class="box box-info">
<div class="box-header with-border">
<h3 class="box-title">Perbarui Sandi</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<div class="col-xs-12">
<form class="form-horizontal" action="#" method="post">
<div class="form-group">
<label for="password1" class="col-sm-4 control-label">Sandi Lama</label>
<div class="col-sm-8">
<input type="password" class="form-control" id="password1"
name="password1" placeholder="Password lama" required>
19 | L a m p i r a n
</div>
</div>
<div class="form-group">
<label for="password2" class="col-sm-4 control-label">Sandi Baru</label>
<div class="col-sm-8">
<input type="password" class="form-control" id="password2"
name="password2" placeholder="Password baru" required>
</div>
</div>
<div class="form-group">
<label for="password3" class="col-sm-4 control-label">Ulangi</label>
<div class="col-sm-8">
<input type="password" class="form-control" id="password3"
name="password3" placeholder="Ulangi password baru"required>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" name="updatepsw" id="updatepsw" class="btn btn-
info">Perbarui</button>
</div>
<!-- /.box-footer -->
</form>
</div>
</div>
</div> <!-- /.tab-content -->
</div>
<!-- /.nav-tabs-custom -->
</div>
<!-- /.col -->
</div>
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
20 | L a m p i r a n
});
$(document).ready(function(){
$('[data-toggle="detail"]').tooltip();
});
$(document).ready(function(){
$('[data-toggle="update"]').tooltip();
});
$(document).ready(function(){
$('[data-toggle="bayar"]').tooltip();
});
</script>
</body>
</html>
$id = $_GET['card_id'];
21 | L a m p i r a n
<?php if ($_SESSION['role'] == "Pasien") {
echo "<script type='text/javascript'>alert('Anda tidak memiliki
akses ke-halaman ini');window.location.href='home.php';</script>";
}?>
<li class='treeview'>
<a href='#'><i class='fa fa-user'></i> <span>Admin</span>
<span class='pull-right-container'>
<i class='fa fa-angle-left pull-right'></i>
</span>
</a>
<ul class='treeview-menu'>
<?php if ($_SESSION['role'] == "Admin") {
echo "
<li><a href='admin_baru.php'><i class='fa fa-user-plus'></i> Admin
Baru</a></li>";
}?>
<li><a href='data_admin.php'><i class='fa fa-users'></i> Data Admin</a></li>
</ul>
</li>
<li class="treeview">
<a href="#"><i class="fa fa-user"></i> <span>Pasien</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li><a href="pasien_baru.php"><i class="fa fa-user-plus"></i> Pasien
Baru</a></li>
<li><a href="data_pasien.php"><i class="fa fa-users"></i> Data Pasien</a></li>
</ul>
</li>
<li class="treeview">
22 | L a m p i r a n
<a href="#"><i class="fa fa-user-md"></i> <span>Dokter</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<?php if ($_SESSION['role'] == "Admin") {
echo "<li><a href='dokter_baru.php'><i class='fa fa-user-
plus'></i> Dokter Baru</a></li>";
}?>
<li><a href="data_dokter.php"><i class="fa fa-users"></i> Data Dokter</a></li>
</ul>
</li>
</ul>
<!-- /.sidebar-menu -->
</section>
<!-- /.sidebar -->
</aside>
23 | L a m p i r a n
<p class="text-muted text-center"><?php echo $id?></p>
</ul>
</div>
<!-- /.box-body -->
<hr>
<strong><i class="fa fa-phone margin-r-5"></i> No Telp</strong>
<p class="text-muted">
<?php echo $telp?>
</p>
<hr>
24 | L a m p i r a n
<p>
<?php echo $email?>
</p>
<hr>
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
$id = $_GET['card_id'];
25 | L a m p i r a n
$birthDate = $row['dob'];
//$hashpsw = $row['password'];
$birthDate = explode("-", $birthDate);
$dob = (date("md", date("U", mktime(0, 0, 0, $birthDate[2], $birthDate[1],
$birthDate[0]))) > date("md") ? ((date("Y")-$birthDate[0])-1):(date("Y")-
$birthDate[0]));?>
<li class='treeview'>
<a href='#'><i class='fa fa-user'></i> <span>Admin</span>
<span class='pull-right-container'>
<i class='fa fa-angle-left pull-right'></i>
</span>
</a>
<ul class='treeview-menu'>
<?php if ($_SESSION['role'] == "Admin") {
echo "
<li><a href='admin_baru.php'><i class='fa fa-user-plus'></i> Admin
Baru</a></li>";
}?>
<li><a href='data_admin.php'><i class='fa fa-users'></i> Data
Admin</a></li>
</ul>
</li>
<li class="treeview">
<a href="#"><i class="fa fa-user"></i> <span>Pasien</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
26 | L a m p i r a n
<ul class="treeview-menu">
<li><a href="pasien_baru.php"><i class="fa fa-user-plus"></i> Pasien
Baru</a></li>
<li><a href="data_pasien.php"><i class="fa fa-users"></i> Data
Pasien</a></li>
</ul>
</li>
<li class="treeview">
<a href="#"><i class="fa fa-user-md"></i> <span>Dokter</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<?php if ($_SESSION['role'] == "Admin") {
echo "<li><a href='dokter_baru.php'><i class='fa fa-
user-plus'></i> Dokter Baru</a></li>";
}?>
<li><a href="data_dokter.php"><i class="fa fa-users"></i> Data
Dokter</a></li>
</ul>
</li>
</ul>
<!-- /.sidebar-menu -->
</section>
<!-- /.sidebar -->
</aside>
27 | L a m p i r a n
<section class="content container-fluid">
<div class="row">
<div class="col-md-12">
<!-- Profile Image -->
<div class="box box-info">
<div class="box-body box-profile">
<div class="form-group col-sm-3">
<img class="profile-user-img img-responsive img-circle" src="<?php
echo $foto?>" alt="User profile picture">
</ul>
</div>
<!-- /.box-body -->
28 | L a m p i r a n
<p class="text-muted"><?php echo $alamat?></p>
<hr>
<strong><i class="fa fa-phone margin-r-5"></i> No Telp</strong>
<p class="text-muted">
<?php echo $telp?>
</p>
<hr>
<p>
<?php echo $email?>
</p>
<hr>
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
29 | L a m p i r a n
<ul class="sidebar-menu" data-widget="tree">
<!-- Optionally, you can add icons to the links -->
<?php
if ($_SESSION['role'] == "Admin") {
echo "<li><a href='home.php'><i class='fa fa-home'></i> <span>Menu
Utama</span></a></li>";
}?>
30 | L a m p i r a n
<li class='active'><a href='detail_pasien.php'><i class='fa fa-medkit'></i>
Rekam Medis</a></li>
</ul>
</li>
";}?>
</li></ul>
<h1>
Rekam Medis
<small>No Pemeriksaan : <?php echo $invoice_id?></small>
</h1>
<ol class="breadcrumb">
<a href="print_data.php?inv_id=<?php echo $invoice_id?>&card_id=<?php echo
$local_card_id?>" class="btn btn-primary btn-xs" target="_blank" > <i class="fa fa-
print"></i> Print All</a>
31 | L a m p i r a n
</ol>
</section>
<div class="row">
<div class="col-md-3">
32 | L a m p i r a n
</ul>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
<hr>
<p class="tect-muted">
<?php echo $telp ?>
</p>
<hr>
<p class="tect-muted">
<?php echo $email ?>
</p>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
<div class="col-md-9">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li><a href="#tabsuhu" data-toggle="tab">Suhu & Tensi</a></li>
33 | L a m p i r a n
<?php if ($tabdarah == "y") {
echo "<li><a href='#tabdarah' data-
toggle='tab'>Darah</a></li>";
}
?>
<?php if ($taburine == "y") {
echo "<li><a href='#taburine' data-
toggle='tab'>Urine</a></li>";
}
?>
<li><a href="#tabfisik" data-toggle="tab">Fisik</a></li>
<li><a href="#tabkesdok" data-toggle="tab">Kesimpulan Dokter</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane" id="tabsuhu">
<div class="row">
<div class="col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">Suhu Tubuh & Tensi Darah</h3>
</div>
<div class="box-body">
<div class="modal-body col-xs-12">
<!-- /.box-header -->
<div class="table-responsive">
<table class="table table-bordered">
<tr>
<th>Pemeriksaan</th>
<th>Hasil</th>
<th>Nilai Rujukan</th>
<th>Satuan</th>
<th>Keterangan</th>
<th>Action</th>
</tr>
<tr id='rowsuhu'><?php include 'tab_suhu.php';?></tr>
<tr id='rowtensi'><?php include 'tab_tensi.php';?></tr>
</table>
34 | L a m p i r a n
</div>
</div>
</div>
</div>
<!--/.darah-->
<div class="tab-pane" id="tabdarah">
<div class="row">
<div class="col-md-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">Darah Lengkap</h3>
</div>
<div class="box-body">
<div class="modal-body col-xs-12">
<!-- /.box-header -->
<div class="table-responsive">
<table class='table' id='rowdarah'>
<?php include 'tab_darah.php';?>
</table>
</div>
</div>
35 | L a m p i r a n
<div class="tab-pane" id="taburine">
<div class="row">
<div class="col-md-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">Urine Lengkap</h3>
</div>
<div class="box-body">
<div class="modal-body col-xs-12">
<!-- /.box-header -->
<div class="table-responsive">
<?php include 'tab_urine.php'?>
36 | L a m p i r a n
<?php include "tab_fisik.php"?></div>
<div class="box-footer">
<button class="btn btn-primary pull-right" name="bt_fisik" id="bt_fisik" <?php
echo $bt_fisikdis?>>Simpan</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane" id="tabkesdok">
<div class="row">
<div class="col-xs-12">
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">Kesimpulan Dokter</h3>
</div>
<div class="box-body">
<div class="modal-body col-xs-12" id="ksd">
<?php include "tab_kesdok.php"?></div>
<div class="box-footer">
<button class="btn btn-primary pull-right" name="bt_kesdok" id="bt_kesdok"
disabled>Simpan</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
37 | L a m p i r a n
<script src="dist/js/myscript.js">
</script>
</body>
</html>
<div class="row">
<div class="col-md-12">
<!-- Horizontal Form -->
<div class="box box-info">
<div class="box-header with-border">
<h3 class="box-title">Topup Saldo</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<div class="col-xs-12">
<form class="form-horizontal" action="#" method="post">
<div class="form-group">
<label for="password1" class="col-sm-4 control-label">Nominal
Topup</label>
<div class="col-sm-8">
<input list="topuplist" class="form-control" id="nominal" name="nominal"
placeholder="Masukkan Nominal">
<datalist id="topuplist">
<option value="100000"/>
<option value="200000"/>
<option value="500000"/>
<option value="1000000"/>
</datalist>
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" name="topup" id="topup" class="btn btn-
info">Topup</button>
</div>
<!-- /.box-footer -->
38 | L a m p i r a n
</form>
</div>
</div>
</div> <!-- /.tab-content --></div></div></div>
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<li class='treeview'>
<a href='#'><i class='fa fa-user'></i> <span>Admin</span>
<span class='pull-right-container'>
<i class='fa fa-angle-left pull-right'></i>
</span>
</a>
<ul class='treeview-menu'>
<?php if ($_SESSION['role'] == "Admin") {
echo "
<li><a href='admin_baru.php'><i class='fa fa-user-plus'></i> Admin
Baru</a></li>";
}?>
<li><a href='data_admin.php'><i class='fa fa-users'></i> Data Admin</a></li>
</ul>
39 | L a m p i r a n
</li>
<li class="treeview">
<a href="#"><i class="fa fa-user-md"></i> <span>Dokter</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<?php if ($_SESSION['role'] == "Admin") {
echo "<li><a href='dokter_baru.php'><i class='fa fa-user-
plus'></i> Dokter Baru</a></li>";
}?>
<li><a href="data_dokter.php"><i class="fa fa-users"></i> Data Dokter</a></li>
</ul>
</li>
</ul>
<!-- /.sidebar-menu -->
</section>
<!-- /.sidebar -->
</aside>
40 | L a m p i r a n
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper" id="loading">
41 | L a m p i r a n
Telp: (0411) 586200<br>
Email: info@unhas.ac.id
</address>
</div>
<!-- /.col -->
<div class="col-sm-4 invoice-col">
Kepada
<address>
<strong><?php echo $nama_lengkap?></strong><br>
<?php echo $alamat?>
Telp: <?php echo $telp ?><br>
Email: <?php echo $email?>
</address>
</div>
<!-- /.col -->
<div class="col-sm-4 invoice-col">
<b>Invoice No: <?php echo $invoice_id?></b><br>
<br>
<b>Status:</b> <?php echo $status ?><br>
<b>Tanggal Pembayaran:</b> <?php echo $tanggal_bayar?><br>
<b>ID Pasien:</b> <?php echo $local_card_id?>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
42 | L a m p i r a n
$querytarif = mysqli_query($conn,$sqltarif);
$rowtarif = mysqli_fetch_assoc($querytarif);
$num = $i;$i++;
$id_pemeriksaan = $rowtarif['id'];
$nama_pemeriksaan = $rowtarif['nama'];
$tarif_pemeriksaan = $rowtarif['tarif'];
echo "<tr>" ;
echo "<td>$num</td>";
echo "<td>$nama_pemeriksaan</td>";
echo "<td>$id_pemeriksaan</td>";
echo "<td>Rp. $tarif_pemeriksaan</td>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="box-footer">
<!-- accepted payments column -->
<div class="col-xs-9">
<h3>Total Pembayaran:</h3>
</div>
<!-- /.col -->
<div class="col-xs-3">
<h3>Rp. <?php echo $total?></h3>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
43 | L a m p i r a n
<input type="hidden" name="total" value="<?php echo $total?>" />
<button type='submit' name='bayar' id='bayar' onclick="location.reload()"
class='btn btn-info pull-right' <?php echo $bayar?>><i class='fa fa-credit-card'></i>
Bayar</button></form>
</div>
</div>
</section>
<!-- /.content -->
<div class="clearfix"></div>
</div>
<!-- /.content-wrapper -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Klinik UNHAS | Rekam-Medis</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-
scalable=no" name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="bower_components/font-awesome/css/font-
awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="bower_components/Ionicons/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="dist/css/AdminLTE.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -
->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
44 | L a m p i r a n
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<?php include 'db_access/print_data.php';?>
<style>
@media print {
section {page-break-after:always;}
body, html, { margin-top:0%;
display:block;
height:100%;
}
}
</style>
45 | L a m p i r a n
echo " <section class='invoice'>
<!-- title row -->
<div class='row'>
<div class='col-xs-12'>
<h2 class='page-header'>
<i class='fa fa-globe'></i> Klinik Universitas Hasanuddin.
<small class='pull-right'>Date: $tanggal_inv</small>
</h2>
</div>
<!-- /.col -->
</div>
<!-- info row -->
<div class='row invoice-info'>
<div class='col-sm-4 invoice-col'>
Dari
<address>
<strong>Klinik Universitas Hasanuddin.</strong><br>
Jl. Poros Malino, Borongloe, Bontomarannu,<br>
Kabupaten Gowa, Sulawesi Selatan 92119<br>
Telp: (0411) 586200<br>
Email: info@unhas.ac.id
</address>
</div>
<!-- /.col -->
<div class='col-sm-4 invoice-col'>
Kepada
<address>
<strong>$nama_lengkap</strong><br>
$alamat
Telp: $telp <br>
Email: $email
</address>
</div>
<!-- /.col -->
<div class='col-sm-4 invoice-col'>
<b>Invoice $invoice_id</b><br>
<br>
<b>Status:</b> $status <br>
<b>Tanggal Pembayaran:</b> $tanggal_bayar<br>
<b>ID Pasien:</b> $local_card_id
</div>
<!-- /.col -->
</div>
46 | L a m p i r a n
<!-- /.row -->
}
if ($pemeriksaansuhu == 'selesai'){
echo "
<td>Suhu Tubuh</td>
<td>$hasilsuhu</td>
<td>-</td>
<td> ℃ </td>
<td>$ketsuhu </td>
</tr>";}
?>
<?php
if (!isset($invoice_id)){
$invoice_id = $_GET['inv_id'];
}
if ($pemeriksaantensi == 'selesai'){
echo "
<tr>
<td>Tensi Darah</td>
<td>$hasiltensi</td>
<td>120/80</td>
<td> mmHg </td>
<td>$kettensi </td>
</tr>
";}?>
<?php
if (($pemeriksaansuhu == 'selesai') || ($pemeriksaantensi == 'selesai')){
echo "
47 | L a m p i r a n
</table>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class='box-footer'>
<!-- accepted payments column -->
";}
?>
<?php
if (isset($kesklinik)) {
echo "<div class='row'>
<div class='col-xs-12'>
<div class='box-header with-border'>
<h3 class='box-title'>Kesimpulan Hasil</h3>
</div>
<div class='box-body'>
<div class='modal-body col-xs-12' id='fsk'>";
include 'tab_fisik.php';
echo"</div>
</div>
</div>
</div>
</div>
";}
?>
<?php
if (isset($kesdokter)) {
echo "
<div class='row'>
<div class='col-xs-12'>
<div class='box-header with-border'>
<h3 class='box-title'>Kesimpulan Dokter</h3>
</div>
<div class='box-body'>
<div class='modal-body col-xs-12' id='ksd'>";
48 | L a m p i r a n
include "tab_kesdok.php";
echo "</div>
</div>
</div>
</div>
</div>";}
?>
<?php if (($pemeriksaansuhu == 'selesai') || ($pemeriksaantensi == 'selesai' ||
(isset($kesklinik)) || (isset($kesdokter)))){
echo "</section>";
}
?>
<!-- /.content -->
49 | L a m p i r a n
</div>
<!-- /.col -->
</div>
<!-- info row -->
<div class='row invoice-info'>
<div class='col-sm-4 invoice-col'>
Dari
<address>
<strong>Klinik Universitas Hasanuddin.</strong><br>
Jl. Poros Malino, Borongloe, Bontomarannu,<br>
Kabupaten Gowa, Sulawesi Selatan 92119<br>
Telp: (0411) 586200<br>
Email: info@unhas.ac.id
</address>
</div>
<!-- /.col -->
<div class='col-sm-4 invoice-col'>
Kepada
<address>
<strong>$nama_lengkap</strong><br>
$alamat
Telp: $telp <br>
Email: $email
</address>
</div>
<!-- /.col -->
<div class='col-sm-4 invoice-col'>
<b>Invoice $invoice_id</b><br>
<br>
<b>Status:</b> $status <br>
<b>Tanggal Pembayaran:</b> $tanggal_bayar<br>
<b>ID Pasien:</b> $local_card_id
</div>
<!-- /.col -->
</div>
<!-- /.row -->
50 | L a m p i r a n
<!-- /.row -->
<div class='box-footer'>
<!-- accepted payments column -->
?>
51 | L a m p i r a n
</h2>
</div>
<!-- /.col -->
</div>
<!-- info row -->
<div class='row invoice-info'>
<div class='col-sm-4 invoice-col'>
Dari
<address>
<strong>Klinik Universitas Hasanuddin.</strong><br>
Jl. Poros Malino, Borongloe, Bontomarannu,<br>
Kabupaten Gowa, Sulawesi Selatan 92119<br>
Telp: (0411) 586200<br>
Email: info@unhas.ac.id
</address>
</div>
<!-- /.col -->
<div class='col-sm-4 invoice-col'>
Kepada
<address>
<strong>$nama_lengkap</strong><br>
$alamat
Telp: $telp <br>
Email: $email
</address>
</div>
<!-- /.col -->
<div class='col-sm-4 invoice-col'>
<b>Invoice $invoice_id</b><br>
<br>
<b>Status:</b> $status <br>
<b>Tanggal Pembayaran:</b> $tanggal_bayar<br>
<b>ID Pasien:</b> $local_card_id
</div>
<!-- /.col -->
</div>
<!-- /.row -->
52 | L a m p i r a n
</div>
<!-- /.row -->
<div class='box-footer'>
<!-- accepted payments column -->
?>
<!-- ./wrapper -->
</body>
</html>
53 | L a m p i r a n
10. Util.php
<?php
$len = strlen($str);
return array (
'data' => $data, 'stat' => $stat, 'sw1' => $sw1, 'sw2' => $sw2);
function asc2hex($s) {
$l = strlen($s);
54 | L a m p i r a n
$l /= 2; $l *= 2;
$s = substr($s, 0, $l);
$r = strtoupper(bin2hex($s));
$r = substr($r, 0, 2*$l);
return $r;
function hex2asc($h) {
$l = strlen($h);
$r = '';
return $r;
function fieldMapGenerator($field_map) {
function lengthMapGenerator($len) {
55 | L a m p i r a n
function dec2hex($num){
return dechex($num);
function toICAOFormat($text){
function array2json($arr) {
$parts = array();
$is_list = false;
$keys = array_keys($arr);
$max_length = count($arr)-1;
$is_list = true;
break;
56 | L a m p i r a n
}
foreach($arr as $key=>$value) {
} else {
$str = '';
// :TODO: Is there any more datatype we should be in the lookout for? (Object?)
$parts[] = $str;
$json = implode(',',$parts);
57 | L a m p i r a n
?>
<?php
function parse_standard_v1_1($apdu) {
$offsetData1 = "00";
$offsetData2 = "00";
$d['field_map'] = parse_field_map($tmp);
if($d['field_map'][0] == 1) {
if($d['field_map'][1] == 1) {
if($d['field_map'][2] == 1) {
58 | L a m p i r a n
if($d['field_map'][3] == 1) {
if($d['field_map'][4] == 1) {
if($d['field_map'][5] == 1) {
if($d['field_map'][6] == 1) {
if($d['field_map'][7] == 1) {
59 | L a m p i r a n
$offsetData1 = changeOffset($offsetData1, $len);
if($d['field_map'][8] == 1) {
if($d['field_map'][9] == 1) {
$d['atribut_icao_1'] = $len;
if($d['field_map'][10] == 1) {
$d['atribut_icao_2'] = $len;
if($d['field_map'][11] == 1) {
// Implement Foto
$d['foto'] = $tmp;
if($d['field_map'][12] == 1) {
$d['odontogram'] = $len;
60 | L a m p i r a n
}
if($d['field_map'][13] == 1) {
$d['saldo'] = $len;
if($d['field_map'][14] == 1) {
if($d['field_map'][15] == 1) {
if($d['field_map'][16] == 1) {
// Implement Status
$d['status'] = $len;
return $d;
function parse_field_map($field_map) {
61 | L a m p i r a n
$binary_of_field_map = base_convert($field_map, 16, 2);
return $binary_string;
$d['field_map'] = parse_field_map($tmp);
// Data 1
$totalLen = 0;
foreach($length_map as &$len){
$totalLen += hexdec($len);
//echo $totalLen;
$offset = "00";
$str = "";
while($loop != 0){
echo $getDataApdu;
$loop -= 1;
62 | L a m p i r a n
$getDataApdu = "00 B0 00 " . $offset . $remainder;
echo $str;
//00 12 00 06 00 0A 00 13 00 0B 00 11 00 21 00 13 00 01
?>
63 | L a m p i r a n
64 | L a m p i r a n
65 | L a m p i r a n
66 | L a m p i r a n
67 | L a m p i r a n
68 | L a m p i r a n
Langkah-Langkah Mengoperasikan Sistem Web Site Klinik Unhas
69 | L a m p i r a n
Hal-Hal Yang Perlu Di Hindari Saat Melakukan Operasi Sistem
70 | L a m p i r a n