Skip to content

Repository files navigation

SIMRS Healthcare Management Dashboard

Sistem Informasi Manajemen Rumah Sakit & Rekam Medis Elektronik (RME)

Node.js Version Database Tests Security License

SIMRS Healthcare Management Dashboard adalah sistem informasi rumah sakit dan klinik berbasis web production-grade yang dirancang untuk mengelola seluruh siklus operasional pelayanan kesehatan rawat jalan: pendaftaran pasien, antrean poliklinik, rekam medis elektronik terstruktur (SOAP), diagnosis ICD-10, peresepan obat (e-Prescription), dispensing otomatis FEFO (First-Expired, First-Out), analitik eksekutif, serta pencetakan dokumen medis resmi.


🌟 Fitur Utama

1. Administrasi Pasien & Antrean Rawat Jalan

  • Validasi NIK 16 Digit: Parser dan validator NIK standar Indonesia dengan algoritma tanggal lahir wanita (+40 hari) dan verifikasi kode wilayah (Permenkes 24/2022).
  • Nomor Rekam Medis Otomatis: Format berurutan resmi RM-YYYY-XXXX.
  • Tiket Antrean Poliklinik: Penomoran kuota harian per poli (A-001, B-001) dengan mesin status (State Machine): WAITING $\rightarrow$ IN_EXAMINATION $\rightarrow$ COMPLETED / CANCELLED.

2. Rekam Medis Elektronik (EMR / RME) & Pemeriksaan Klinis

  • Anamnesis SOAP Terstruktur: Dokumentasi terintegrasi Subjektif (Keluhan Utama, RPS, RPD, Alergi), Objektif (Pemeriksaan Fisik), Asesmen, dan Plan.
  • Tanda-Tanda Vital & BMI Standar Asia: Pengukuran BP, HR, RR, Suhu, TB, BB, dan kalkulasi otomatis BMI ($kg/m^2$) standar WHO Pasifik Barat / Kemenkes RI.
  • Katalog Diagnosis ICD-10: Integrasi kode ICD-10 untuk diagnosis primer dan multi-diagnosis sekunder.
  • e-Prescription (Resep Elektronik): Peracikan resep digital oleh dokter dengan dosis obat, kuantitas, dan aturan pakai (Latin signa).

3. Farmasi & Alokasi Stok FEFO (First-Expired, First-Out)

  • Multi-Batch & Expiry Tracking: Pelacakan nomor batch, tanggal kedaluwarsa, dan ambang batas minimum stok.
  • Alokasi FEFO Otomatis: Stok berkurang otomatis dari batch dengan masa kedaluwarsa paling awal dalam satu transaksi database atomik.
  • Safety Guards: Penolakan peracikan resep saat stok tidak mencukupi atau obat telah kedaluwarsa (HTTP 400/409), serta proteksi double-dispensing.
  • Audit Mutasi Stok: Buku besar riwayat penambahan dan pengeluaran obat (Stock Movement Ledger).

4. Analitik Eksekutif & Dokumen Cetak Standar RS

  • Dashboard Analitik: Tren kunjungan harian & bulanan, distribusi poliklinik, 10 besar morbiditas (ICD-10), dan laju konsumsi farmasi.
  • Pencetakan Dokumen Medis Resmi:
    • Kartu Pasien (CR-80): Format ID Card 85.6mm × 54mm dengan QR Code.
    • Resume Medis Rawat Jalan (A4): Format resmi Kemenkes lengkap dengan SOAP, tanda vital, diagnosis ICD-10, dan tanda tangan dokter.
    • Etiket Obat Thermal: Standar Farmasi Indonesia (Putih untuk sediaan oral, Biru untuk sediaan luar/topikal) beserta aturan pakai Latin.
    • Kwitansi / Invoice Farmasi (A5): Rincian biaya dan konversi nominal ke ejaan rupiah formal (Terbilang).

5. Keamanan & RBAC (Role-Based Access Control)

  • Autentikasi berbasis JSON Web Token (JWT) dan hashing kata sandi bcrypt.
  • Pembatasan hak akses ketat untuk 4 peran:
    • ADMINISTRATOR
    • REGISTRATION_OFFICER (Petugas Loket)
    • DOCTOR (Dokter Pemeriksa)
    • PHARMACIST (Apoteker)
  • Audit Trail Tak Terhapuskan: Pencatatan log akses data pasien (PHI) yang dilindungi oleh database trigger SQLite (mencegah modifikasi/penghapusan).
  • Perlindungan menyeluruh dari serangan injeksi SQL dan Stored-XSS (CWE-79).

🛠️ Arsitektur Teknologi

  • Backend: Node.js & Express.js
  • Database: node:sqlite (DatabaseSync) dalam mode Write-Ahead Logging (WAL)
  • Frontend: React 18, Vite, Tailwind CSS, Lucide Icons (terkompilasi di client/dist/)
  • Testing: Vitest dengan in-memory database isolation

🚀 Panduan Memulai

Prasyarat

  • Node.js versi 22+ (Direkomendasikan Node.js v24 LTS)
  • NPM versi 10+

Instalasi & Setup

  1. Clone Repositori:

    git clone https://github.com/USERNAME/REPO-NAME.git
    cd REPO-NAME
  2. Instal Dependensi:

    npm install
  3. Inisialisasi Database & Seed Data: Database SQLite akan otomatis diinisialisasi dan diisi data awal saat server pertama kali dijalankan. Anda juga dapat menjalankannya secara manual:

    npm run seed
  4. Jalankan Aplikasi:

    npm start

    Aplikasi akan aktif di http://localhost:3000.


👥 Akun Demo & Kredensial

Sistem dilengkapi data awal realistis untuk pengujian langsung:

Peran Username Password Deskripsi Tugas
Administrator admin admin123 Konfigurasi sistem, Audit Trail PHI, manajemen pengguna & analitik
Petugas Loket loket loket123 Pendaftaran pasien baru, verifikasi NIK, cetak kartu pasien, antrean poli
Dokter dr.budi doctor123 Pemeriksaan SOAP, TTV & BMI, diagnosis ICD-10, e-resep, cetak resume medis
Apoteker apt.siti pharma123 Formularium obat, stok multi-batch, dispensing FEFO, etiket obat & kwitansi

🧪 Pengujian Otomatis

Proyek ini dilengkapi dengan suite pengujian komprehensif (Unit, Integrasi, Security RBAC, dan Adversarial Stress Tests):

npm test

Hasil Verifikasi:

  • Test Files: 25 passed (25)
  • Tests: 509 passed (509)
  • Tingkat Kelulusan: 100% Pass Rate (0 failures)

📜 Lisensi

Didistribusikan di bawah Lisensi MIT. Lihat berkas LICENSE untuk informasi lebih lanjut.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages