RANCANG BANGUN PERANGKAT LUNAK APLIKASI …

Post on 02-Dec-2021

8 views 0 download

Transcript of RANCANG BANGUN PERANGKAT LUNAK APLIKASI …

RANCANG BANGUN

PERANGKAT LUNAK APLIKASI

PELAYANAN KESEHATAN

BERBASIS SERVICE-ORIENTED

ARCHITECTURE

Oleh: Farah Naja (5106100100)

PENDAHULUAN

WHAT IS?

Sebuah web pelayanan kesehatan berbasis

service-oriented architecture yang bisa

mengumpulkan data-data dari semua rumah

sakit untuk memudahkan pengguna dalam:

melihat rekam medis, mencari dokter, mencari

rumah sakit, dan membuat appointment dengan

dokter tertentu

TUJUAN

Memudahkan pasien untuk melihat rekam medisnya dari semua rumah sakit yang pernah merawatnya.

Memudahkan pasien untuk mencari dokter di kota tempat dia tinggal tanpa perlu mengecek satu per satu ke rumah sakit tertentu.

Memudahkan dokter memeriksa rekam medis pasien yang akan diperiksa olehnya karena catatan medis pasien dari berbagai rumah sakit sudah dikumpulkan menjadi satu oleh aplikasi.

Memudahkan pasien untuk membandingkan fasilitas rumah sakit yang satu dengan fasilitas rumah sakit yang lain.

Memudahkan pasien membuat appointment dengan dokter tertentu.

PERMASALAHAN

Permasalahan yang diangakat dalam Tugas

Akhir ini adalah:

Bagaimana mengambil hanya informasi yang

dibutuhkan saja dari database setiap rumah

sakit..

Bagaimana agar service pada aplikasi rumah

sakit bisa dipakai oleh aplikasi ini.

BATASAN MASALAH

Aplikasi yang dibangun adalah aplikasi pelayanan kesehatan yang memanfaatkan data dari rumah sakit-rumah sakit. Studi kasus yang digunakan adalah Rumah Sakit Metropolitan Medical Center Jakarta dan Rumah Sakit St. Elisabeth Semarang.

Rumah Sakit Metropolitan Medical Center Jakarta dan Rumah Sakit St. Elisabeth Semarang yang menyediakan service diasumsikan menggunakan aplikasi rumah sakit yang serupa.

Database Rumah Sakit Metropolitan Medical Center Jakarta dan Rumah Sakit St. Elisabeth Semarang diasumsikan memiliki desain dan struktur yang sama, hanya datanya saja yang berbeda.

Aplikasi ini dibangun dalam keadaan seolah-olah semua penduduk Indonesia sudah menggunakan Nomor Induk Kependudukan sehingga hanya mempunyai 1 nomor KTP.

Data yang digunakan dalam aplikasi ini bukan data asli dari rumah sakit tertentu tapi hanya data yang dibuat mirip dengan aslinya.

Tabel pada database rumah sakit hanya dibuat sebagian saja (tabel-tabel yang dibutuhkan oleh aplikasi).

ANALISA

ARSITEKTUR SISTEM

DB RS MMC DB RS SE

DB App Health Care

DB Kependudukan

Service RS Metropolitan

Medical Center

Service RS St.

Elisabeth

Service Kependudukan

App RS Metropolitan Medical Center

App Layanan Kesehatan

App Kependudukan

App RS St. Elisabeth

ARSITEKTUR SOA

PROSES-PROSES UTAMA DI APLIKASI

PELAYANAN KESEHATAN

Pendaftaran pasien

Menampilkan rekam medis

Pembuatan appointment

Pembatalan appointment

Pencarian dokter

Pencarian rumah sakit

Pencarian penanganan penyakit

Manage Profil

Manage Penyakit

Manage Spesialisasi

Manage Obat

USE CASE DIAGRAM uc Use Cases

Aplikasi Pelayanan Kesehatan

melihat rekam medis

Pasien

manage profil

membuat

appointment

membatalkan

appointment

registrasi pasien

mencari dokter

mencari rumah sakit

mencari penanganan

penyakit

Admin

manage penyakit

manage spesialisasi

manage obat

«include»

«include»

PROSES UTAMA DI APLIKASI RUMAH

SAKIT

Manage Appointment

uc Use Case Rumah Sakit

Aplikasi Rumah Sakit

Dokter

manage appointment

PERANCANGAN

SERVICE DOKTER

Yang bisa dilakukan:

1. Mengambil daftar nama dokter yang ada di

rumah sakit.

2. Mengambil data diri dokter yang ada di rumah

sakit.

3. Mengambil jadwal praktik seorang dokter yang

ada di rumah sakit.

CLASS DIAGRAM class Dokter

«properti»Dokter

- alamat: string- id: string- idrs: string- nama: string- namars: string- spesialis: string- telp: string

«property»+ alamat() : string+ id() : string+ idrs() : string+ nama() : string+ namars() : string+ spesialis() : string+ spesialisasi() : string+ telp() : string

«properti»Jadwal

- akhir: string- awal: string- dktr: string- hari: string- id: string

«property»+ akhir() : string+ awal() : string+ dktr() : string+ hari() : string+ id() : string

«dataset»jadwalPraktik

- akhir: string- awal: string- id_dokter: string- id_hari: string- id_praktik: string- nama_hari: string

+ GetData() : void[]+ getJadwalDokter(string) : void[]

«dataset»Dokter_Spesialisasi

- alamat_dokter: string- id_dokter: string- id_rs: string- nama_dokter: string- nama_rs: string- nama_spesialis: string- telp_dokter: string

+ GetData() : void[]+ getDataDokter(string) : void[]+ getDetailDokter(string) : void[]

getDokter

- iddokter: string- spesalisasi: string

+ cekLogin(string) : int+ getDetailDokter(string) : string+ getJadwalDokter(string) : string[]+ getNamaDokter(string) : string[]

«WebService»DokterRS

- iddokter: string- spesialisasi: string

+ dataDokter(string) : string+ jadwalDokter(string) : string[]+ namaDokter(string) : string[]

dataDokter

- iddokter: string- spesialisasi: string

+ detailDokter(string) : string+ detailJadwal(string) : string[]+ l istNamaDokter(string) : string[]

SERVICE REKAM MEDIS

Yang bisa dilakukan:

1. Mengambil data rekam medis pasien

CLASS DIAGRAM class Rekam Medis

«properti»RekamMedis

- diagnosa: string- dosis: string- ktp: string- nama: string- obat: string- pelayanan: string- rs: string- tgl: string

«property»+ diagnosa() : string+ dosis() : string+ ktp() : string+ nama() : string+ obat() : string+ pelayanan() : string+ rs() : string+ tgl() : string

«dataset»rekamMedis

- diagnosa: string- dosis: string- ktp_pasien: string- nama_dokter: string- nama_obat: string- nama_pelayanan: string- nama_rs: string- tgl_pemeriksaanl: date

+ getCatMed(string) : void[]+ GetData() : void[]

dataRekamMedis

- ktp: string

+ rekamMedisPasien(string) : string[]

getRekMedis

- ktp: string

+ getRekamMedis(string) : string[]

«WebService»RekamMedisPasien

- ktp: string

+ dataRekamMedisPasien(string) : string[]

PERANCANGAN ANTAR MUKA

Web Pelayanan Kesehatan

Form Login

Cari Dokter Cari Rumah Sakit

Penanganan Penyakit

Detail Dokter Detail Rumah Sakit Halaman

Pasien

Profil Pasien Rekam Medis Appointment

Halaman Admin

Manage Penyakit

Manage Obat

Manage Spesialisasi

ANTAR MUKA PENANGANAN PENYAKIT ui Form Penanganan Penyakit

Penanganan Penyakit

Penyakit

Kota

Pilih Penyakit

Pilih kota

Detail Penyakit

Pil ih Cancel

Pilih Cancel

Daftar Obat

Daftar dokter

Daftar Rumah Sakit

ANTAR MUKA REKAM MEDIS ui Form Pasien

Rekam Medis

Laporan Rekam Medis

IMPLEMENTASI

Contoh source code: rekam medis

DATA LAYER

using System; using System.Collections.Generic; using System.Text; using System.Data; using Core; using dataLayerRS; using dataLayerRS.rekamMedisTableAdapters; namespace dataLayerRS { public class dataRekamMedis { DataTable dt; RekamMedis rm; public dataRekamMedis() { } public List<RekamMedis> rekamMedisPasien(String

ktp) { List<RekamMedis> rekammedis = new

List<RekamMedis>(); REKAM_MEDISTableAdapter rta = new

REKAM_MEDISTableAdapter(); dt = rta.getCatMed(ktp); int i = 0; for (i = 0; i < dt.Rows.Count; i++) { rm = new RekamMedis();

rm.IDPemeriksaan =

dt.Rows[i]["ID_PEMERIKSAAN"].ToString(); rm.Tanggal =

dt.Rows[i]["TGL_PEMERIKSAAN"].ToString(); rm.KTP = dt.Rows[i]["KTP_PASIEN"].ToString(); rm.NamaPasien =

dt.Rows[i]["NAMA_PASIEN"].ToString(); rm.TanggalLahir =

dt.Rows[i]["TGL_LHR_PASIEN"].ToString(); rm.KTP = dt.Rows[i]["KTP_PASIEN"].ToString(); rm.Nama = dt.Rows[i]["NAMA_DOKTER"].ToString(); rm.RS = dt.Rows[i]["NAMA_RS"].ToString(); rm.Diagnosa = dt.Rows[i]["DIAGNOSA"].ToString(); rm.Fasilitas =

dt.Rows[i]["NAMA_PELAYANAN"].ToString(); rm.Detail = dt.Rows[i]["DETAIL"].ToString(); rm.Obat = dt.Rows[i]["NAMA_OBAT"].ToString(); rm.Dosis = dt.Rows[i]["DOSIS"].ToString(); rekammedis.Add(rm); } return rekammedis; } } }

BUSINESS LAYER using System; using System.Collections.Generic; using System.Text; using Core; using dataLayerRS; namespace businessLayerRS { public class getRekMedis { public static getRekMedis instance; public static getRekMedis GetInstance() { if (instance == null) instance = new getRekMedis(); return instance; } public List<RekamMedis> getRekamMedis(String ktp) { dataRekamMedis dm = new dataRekamMedis(); return dm.rekamMedisPasien(ktp); } } }

SERVICE LAYER

using System; using System.Web; using System.Collections; using System.Collections.Generic; using System.Web.Services; using System.Web.Services.Protocols; using businessLayerRS; using Core; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class RekamMedisPasien : System.Web.Services.WebService { getRekMedis gm; public RekamMedisPasien() { gm = getRekMedis.GetInstance(); } [WebMethod] public List<RekamMedis> dataRekamMedisPasien(String ktp) { List<RekamMedis> r = gm.getRekamMedis(ktp); return r; } }

PRESENTATION LAYER using System; using Properti; using System.Data; using System.Configuration; using System.Collections; using System.Collections.Generic; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using CrystalDecisions.CrystalReports.Engine; public partial class rekam_medis : System.Web.UI.Page { RekamMedisRSA.RekamMedisPasien rekRSA = new

RekamMedisRSA.RekamMedisPasien(); RekamMedisRSB.RekamMedisPasien rekRSB = new

RekamMedisRSB.RekamMedisPasien(); protected void Page_Load(object sender, EventArgs e) { displayData(); } public void displayData() { string ktp = Session["ktp"].ToString(); RekamMedisRSA.RekamMedis[] listrekRSA =

rekRSA.dataRekamMedisPasien(ktp); RekamMedisRSB.RekamMedis[] listrekRSB =

rekRSB.dataRekamMedisPasien(ktp); List<RekamMedis> listrekammedis = new

List<RekamMedis>(); RekamMedis r; string nomor, namapas, tgllhr, tgl, nama, rs, diagnosa,

pelayanan, detil, obat, dosis, idpem = ""; int panjang1 = listrekRSA.Length; int panjang2 = listrekRSB.Length; for (int i = 0; i < panjang1; i++) { nomor = listrekRSA[i].KTP; namapas = listrekRSA[i].NamaPasien; tgllhr = listrekRSA[i].TanggalLahir; idpem = listrekRSA[i].IDPemeriksaan; tgl = listrekRSA[i].Tanggal; nama = listrekRSA[i].Nama;

rs = listrekRSA[i].RS; diagnosa = listrekRSA[i].Diagnosa; pelayanan = listrekRSA[i].Fasilitas; detil = listrekRSA[i].Detail; obat = listrekRSA[i].Obat; dosis = listrekRSA[i].Dosis; r = new RekamMedis(nomor, namapas, tgllhr, idpem, tgl,

nama, rs, diagnosa, pelayanan, detil, obat, dosis); listrekammedis.Add(r); } for (int j = 0; j < panjang2; j++) { nomor = listrekRSB[j].KTP; namapas = listrekRSB[j].NamaPasien; tgllhr = listrekRSB[j].TanggalLahir; idpem = listrekRSB[j].IDPemeriksaan; tgl = listrekRSB[j].Tanggal; nama = listrekRSB[j].Nama; rs = listrekRSB[j].RS; diagnosa = listrekRSB[j].Diagnosa; pelayanan = listrekRSB[j].Fasilitas; detil = listrekRSB[j].Detail; obat = listrekRSB[j].Obat; dosis = listrekRSB[j].Dosis; r = new RekamMedis(nomor, namapas, tgllhr, idpem, tgl,

nama, rs, diagnosa, pelayanan, detil, obat, dosis); listrekammedis.Add(r); } CatatanMedis dt = new CatatanMedis(); dt.Clear(); for (int x = 0; x < listrekammedis.Count; x++) { DataRow dr = dt.Tables[0].NewRow(); dr["KTPPasien"] = listrekammedis[x].KTP; dr["NamaPasien"] = listrekammedis[x].NamaPasien; dr["TanggalLahir"] = listrekammedis[x].TanggalLahir; dr["IDPemeriksaan"] = listrekammedis[x].IDPemeriksaan; dr["Tanggal"] = listrekammedis[x].Tanggal; dr["NamaDokter"] = listrekammedis[x].Nama; dr["NamaRS"] = listrekammedis[x].RS; dr["Diagnosa"] = listrekammedis[x].Diagnosa; dr["Fasilitas"] = listrekammedis[x].Fasilitas; dr["Detail"] = listrekammedis[x].Detail; dr["Obat"] = listrekammedis[x].Obat; dr["DosisObat"] = listrekammedis[x].Dosis; dt.Tables[0].Rows.Add(dr); }

ReportDocument rd = new ReportDocument(); rd.Load(Server.MapPath("rekammedis.rpt")); rd.SetDataSource(dt); Viewer.ReportSource = rd; Viewer.DataBind(); } }

UJI COBA

REKAM MEDIS

Test ID TC-UC02-02

Tujuan Test Melakukan uji coba terhadap proses melihat rekam medis.

Kondisi Awal Login sukses. Sistem menampilkan halaman pasien.

Data Input Prosedur pengujian Hasil yang

diharapkan

Hasil yang diperoleh Kesimpulan

Tidak ada Pada halaman pasien,

pengguna memilih

halaman rekam

medis.

Sistem menampilkan

laporan rekam medis

pasien.

Sistem menampilkan

laporan rekam medis

pasien.

Proses melihat rekam

medis berhasil

dilakukan.

PENANGANAN PENYAKIT

Test ID TC-UC07-07

Tujuan Test Melakukan uji coba proses mencari penanganan penyakit

Kondisi Awal Sistem menampilkan halaman home.

Data Input Prosedur pengujian Hasil yang

diharapkan

Hasil yang diperoleh Kesimpulan

penyakit: radang

tenggorokan,

kota: jakarta

Pengguna memilih

menu penanganan

penyakit lalu memilih

penyakit dan kota

yang diinginkan.

Menampilkan detail

penyakit, obat yang

bisa dipakai, rumah

sakit serta dokter

yang bisa menangani

Menampilkan detail

penyakit, obat yang

bisa dipakai, rumah

sakit serta dokter

yang bisa menangani

Proses pencarian

penanganan penyakit

berhasil dilakukan

HASIL UJI COBA Proses yang diuji Hasil

Registrasi pasien Berhasil

Melihat rekam medis Berhasil

Membuat appointment Berhasil

Membatalkan appointment Berhasil

Mencari dokter Berhasil

Mencari rumah sakit Berhasil

Mencari penanganan penyakit Berhasil

Manage profil Berhasil

Manage penyakit Berhasil

Manage Spesialisasi Berhasil

Manage Obat Berhasil

Manage appointment Berhasil

SIMPULAN

Aplikasi Pelayanan Kesehatan telah berhasil

diimplementasikan dengan menggunakan

service-oriented architecture.

Aplikasi Pelayanan Kesehatan telah berhasil

menggabungkan data-data dari berbagai rumah

sakit, seperti:

1. Data rekam medis pasien

2. Data dokter dengan spesialisasi tertentu

3. Data rumah sakit dengan fasilitas tertentu

SARAN

Laporan rekam medis bisa dibuat lebih bagus

lagi, lengkap dengan dokumen pendukung dari

rumah sakit.

Keamanan service rumah sakit perlu

ditambahkan karena data yang diambil sangat

sensitif sehingga nanti hanya aplikasi ini saja

yang bisa mengakses service tiap rumah sakit.