Desain Database (ERD) Kompleks

ERD Lengkap SIMRS (19+ Tabel)

Di lesson ini kita akan melihat ERD (Entity Relationship Diagram) lengkap untuk sistem SIMRS.

Mengapa Perlu Ini?

Visualisasi Sebelum Coding:
- Tanpa ERD: Langsung coding --> Lupa relasi --> Refactor berkali-kali
- Dengan ERD: Lihat big picture dulu --> Coding sekali jadi

Komunikasi Tim:
- ERD = bahasa universal untuk developer, DBA, dan stakeholder
- Semua orang bisa paham struktur database tanpa baca kode

Deteksi Error Dini:
- Lihat ERD --> Ketahuan ada tabel yang kurang/lebih
- Fix di ERD lebih cepat daripada fix di kode
Apa itu ERD?

ERD (Entity Relationship Diagram) adalah peta database.

Bayangkan seperti denah rumah sakit:
- Tabel = Ruangan (pendaftaran, poli, farmasi, kasir)
- Kolom = Isi ruangan (data pasien, obat, tagihan)
- Relasi = Pintu penghubung antar ruangan

ERD membantu kita melihat struktur database secara keseluruhan sebelum coding.

Cara Membaca ERD

Simbol Arti Contoh
PK Primary Key - ID unik setiap baris id = 1, 2, 3...
FK Foreign Key - Penghubung ke tabel lain pasien_id --> pasiens.id
UK Unique - Tidak boleh duplikat no_rm harus unik
? Nullable - Boleh kosong no_bpjs boleh tidak diisi
Jenis Relasi:

- One-to-Many (1:N) - Satu pasien punya banyak kunjungan
- Many-to-One (N:1) - Banyak kunjungan ke satu poliklinik
- One-to-One (1:1) - Satu user punya satu dokter

1. Master Data Tables

Tabel-tabel referensi yang jarang berubah:

polikliniks
id PK
kode UK
nama
deskripsi?
is_active
dokters
id PK
user_id FK?
kode UK
nama
spesialisasi
no_sip UK
obats
id PK
kode UK
nama
satuan
kategori
harga_beli
harga_jual
stok
jadwal_prakteks
id PK
dokter_id FK
poliklinik_id FK
hari
jam_mulai
jam_selesai
kuota
Penjelasan:

- polikliniks unit layanan: Poli Umum, Poli Gigi, Poli Anak, dll
- dokters data dokter dengan spesialisasi dan no SIP
- obats master data obat dengan harga dan stok
- jadwal_prakteks jadwal dokter per hari per poliklinik

2. Pasien & Pendaftaran Tables

Tabel-tabel untuk data pasien dan pendaftaran:

pasiens
id PK
no_rm UK
nik UK?
nama
jenis_kelamin
tanggal_lahir
alamat
no_hp
no_bpjs?
golongan_darah?
kunjungans
id PK
no_registrasi UK
pasien_id FK
poliklinik_id FK
dokter_id FK
tanggal_kunjungan
jenis_pasien
keluhan
status
antrians
id PK
kunjungan_id FK
poliklinik_id FK
no_antrian
tanggal
status
waktu_panggil?

Alur Pendaftaran:

pasiens --> kunjungans --> antrians
1 Pasien : N Kunjungan : 1 Antrian per Kunjungan

3. Rekam Medis Tables

Tabel-tabel untuk rekam medis dan pemeriksaan:

rekam_medis
id PK
kunjungan_id FK
dokter_id FK
subjective
objective
assessment
plan
tekanan_darah
suhu
nadi
respirasi
diagnosas
id PK
rekam_medis_id FK
kode_icd
nama_diagnosa
jenis
tindakan_medis
id PK
rekam_medis_id FK
kode_tindakan
nama_tindakan
tarif
qty

4. Farmasi Tables

Tabel-tabel untuk resep dan farmasi:

reseps
id PK
no_resep UK
rekam_medis_id FK
dokter_id FK
status
total_harga
resep_details
id PK
resep_id FK
obat_id FK
jumlah
aturan_pakai
harga_satuan
subtotal
Fitur Khusus:

- rekam_medis menggunakan format SOAP (Subjective, Objective, Assessment, Plan)
- diagnosas menggunakan kode ICD-10 standar internasional
- reseps status: menunggu, diproses, selesai

5. Billing & Pembayaran Tables

Tabel-tabel untuk kasir dan pembayaran:

billings
id PK
no_billing UK
kunjungan_id FK
total_tindakan
total_obat
total_kamar
grand_total
status
pembayarans
id PK
no_pembayaran UK
billing_id FK
jumlah_bayar
metode_bayar
kasir_id FK

6. Rawat Inap Tables

Tabel-tabel untuk rawat inap:

kelas_kamars
id PK
nama
tarif_per_hari
kamars
id PK
kode UK
nama
kelas_kamar_id FK
kapasitas
beds
id PK
kamar_id FK
nomor_bed
status
rawat_inaps
id PK
kunjungan_id FK
bed_id FK
tanggal_masuk
tanggal_keluar?
status
Hierarki Rawat Inap:

- kelas_kamars - VIP, Kelas 1, Kelas 2, Kelas 3
- kamars - Kamar VIP Melati, Kamar Kelas 1 - A, dll
- beds - Bed individu per kamar dengan status (tersedia/terisi)

Ringkasan Tabel

4
Master Data
3
Pendaftaran
3
Rekam Medis
2
Farmasi
2
Billing
19+
Total Tabel
Modul Tabel Jumlah
Master Data polikliniks, dokters, obats, jadwal_prakteks 4
Pendaftaran pasiens, kunjungans, antrians 3
Rekam Medis rekam_medis, diagnosas, tindakan_medis 3
Farmasi reseps, resep_details 2
Billing billings, pembayarans 2
Rawat Inap kelas_kamars, kamars, beds, rawat_inaps 4

Ringkasan

Yang Sudah Dipelajari:

1. Cara Membaca ERD - PK, FK, UK, relasi
2. Master Data - 4 tabel referensi (poliklinik, dokter, obat, jadwal)
3. Pendaftaran - 3 tabel (pasien, kunjungan, antrian)
4. Rekam Medis - 3 tabel (SOAP, diagnosa, tindakan)
5. Farmasi - 2 tabel (resep, detail resep)
6. Billing - 2 tabel (tagihan, pembayaran)
7. Rawat Inap - 4 tabel (kelas kamar, kamar, bed, rawat inap)
Selanjutnya:
Di lesson berikutnya, kita akan mulai membuat Setup Laravel dan Helper Functions untuk mempersiapkan project SIMRS.