Pernah ngalamin situasi begini, Sobat IT RS: jam 8 pagi, ruang IGD udah mulai rame, perawat nanya, "Mas, kamar rawat sudah penuh semua belum?" Sementara itu admin ruangan pusing nyari data real-time. Belum lagi, SIRANAP Kemenkes minta update ketersediaan tempat tidur tiap beberapa jam sekali. Data SIMRS ada, tapi kok nginputnya masih manual di web SIRANAP? Padahal, pasien datang nggak nunggu laporan selesai. Sialnya, kalau salah input, RS bisa kena warning akreditasi. Repot, kan?
Artikel ini bakal ngebahas gimana Modul Bed Management Realtime di SIMRS bisa integrasi otomatis sama SIRANAP Kemenkes. Nggak cuma bikin data ketersediaan kamar lebih akurat dan up-to-date, tapi juga ngurangin kerja manual yang bikin darah tinggi. Kita gali teknisnya, struktur tabel, logika integrasi, dan tips biar datanya nggak error pas sinkronisasi. Monggo disimak, Sobat IT RS!
Permasalahan di Lapangan
Gap antara SIMRS dan Laporan Manual SIRANAP
- SIMRS sudah tracking data pasien dan bed occupancy, tapi SIRANAP butuh update manual via web portal.
- Staff sering double entry, rawan typo atau salah jumlah. Data lapangan sama dashboard pusat kadang beda.
- Perawat/admisi sering telat update. Akibatnya, kamar yang harusnya available dilaporkan penuh, atau sebaliknya.
- Penanggung jawab SIRANAP harus standby tiap beberapa jam buat submit data. Capek, bro!
Resiko Tanpa Otomasi
- Audit akreditasi bisa temukan mismatch antara real data SIMRS & laporan SIRANAP. Potensi dapat teguran.
- Koordinasi ruangan jadi lebih lama, pasien kritis bisa nunggu lebih lama karena data tidak real-time.
- Data untuk keperluan Dinas/Kemenkes jadi tidak andal. Bisa mempengaruhi penilaian performa RS.
Modul Bed Management di SIMRS: Fondasi Integrasi
Fungsi Utama Modul
- Cek status kamar & bed: kosong, terisi, diblokir (maintenance), cadangan isolasi, dll.
- Update otomatis saat ada pasien masuk/keluar (admission/discharge).
- Laporan occupancy rate per ruang atau per kelas layanan.
- Basis data untuk decision support: rujukan, distribusi pasien, dan rekap harian.
Struktur Tabel Core
Contoh tabel dasar modul bed management di SQL Server:
CREATE TABLE ms_ruangan (
id_ruangan INT PRIMARY KEY,
nama VARCHAR(100),
kode_siranap VARCHAR(20) -- Mapping ke kode SIRANAP pusat
);
CREATE TABLE ms_bed (
id_bed INT PRIMARY KEY,
id_ruangan INT,
nomor_bed VARCHAR(10),
status_bed VARCHAR(10), -- kosong/isi/blokir
jenis_bed VARCHAR(20), -- isolasi, umum, ICU, PICU, dsb
FOREIGN KEY (id_ruangan) REFERENCES ms_ruangan(id_ruangan)
);
CREATE TABLE tr_inap (
id_inap INT PRIMARY KEY,
id_bed INT,
id_pasien INT,
tgl_masuk DATETIME,
tgl_keluar DATETIME,
status_inap VARCHAR(10) -- aktif/selesai
);
Relasi ini wajib rapi. Nggak boleh ada bed yang dobel statusnya. Perlu trigger/constraint biar data konsisten.
Logic Penghitungan Ketersediaan
- Bed tersedia: status_bed = 'kosong' dan tidak sedang di-booking atau maintenance.
- Bed terisi: status_bed = 'isi' atau ada tr_inap.status_inap = 'aktif' dengan tgl_keluar NULL.
- Bed blokir: status_bed = 'blokir' (misal, untuk maintenance atau disterilisasi).
Query ceking status bed per ruangan:
SELECT r.nama AS ruangan,
SUM(CASE WHEN b.status_bed='kosong' THEN 1 ELSE 0 END) AS bed_kosong,
SUM(CASE WHEN b.status_bed='isi' THEN 1 ELSE 0 END) AS bed_isi,
SUM(CASE WHEN b.status_bed='blokir' THEN 1 ELSE 0 END) AS bed_blokir
FROM ms_ruangan r
JOIN ms_bed b ON r.id_ruangan = b.id_ruangan
GROUP BY r.nama;
Mekanisme Integrasi ke SIRANAP Kemenkes
Mengenal API SIRANAP
- SIRANAP menyediakan endpoint REST API (biasanya berbasis HTTP POST/PUT) untuk update data bed.
- Butuh token otorisasi, biasanya didapat dari login API (client_id, client_secret, dsb).
- Setiap RS punya kode unik (RSID) & mapping kode ruangan ke versi pusat (harus sinkron dengan ms_ruangan.kode_siranap).
Contoh Payload untuk Update Bed
Format data yang dikirim (JSON):
{
"rsid": "3171001",
"ruangan": [
{
"kode": "ICU",
"total": 12,
"isi": 10,
"kosong": 2,
"ventilator": 2,
"isolasi": 3
},
{
"kode": "HCU",
"total": 6,
"isi": 4,
"kosong": 2
}
],
"tanggal_update": "2024-06-15T08:05:00"
}
Pastikan field kode sesuai mapping ke pusat. Salah isi, data bisa ditolak.
Langkah Otomasi Integrasi
- Setiap 30 menit (atau interval sesuai regulasi), sistem generate data occupancy dari SIMRS.
- Format data ke JSON sesuai requirement SIRANAP.
- Kirim via API (HTTP POST) ke endpoint SIRANAP, sertakan token otorisasi.
- Log request & response, simpan hasilnya di DB untuk audit/rollback jika error.
Contoh kode CURL (simulasi):
curl -X POST https://siranap.kemkes.go.id/api/update-bed \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d @data_bed.json
Studi Kasus: Implementasi di RS Sederhana
RS X, kapasitas 100 bed, 8 ruangan utama. Modul bed management jalan di SIMRS lokal, data diupdate real-time tiap kali pasien masuk/keluar. Sebelum integrasi, laporan SIRANAP selalu delay minimal 2 jam, kadang update manual baru jam 12 siang, padahal pasien sudah ramai dari subuh.
Langkah Implementasi
- Mapping semua ruangan ke kode SIRANAP (update ms_ruangan.kode_siranap).
- Buat script query occupancy per ruangan (lihat contoh query di atas), hasil jadikan JSON otomatis.
- Setup cron job/script scheduler untuk generate & push data ke endpoint SIRANAP tiap 30 menit.
- Monitoring log integrasi: jika gagal submit, ada alert ke admin IT RS.
Setelah go-live, waktu update ke SIRANAP tinggal 5 menit setelah perubahan. No more double entry, staff lebih fokus ke pelayanan pasien. Data SIRANAP selalu sinkron sama SIMRS.
Tantangan & Tips Lanjutan
Sinkronisasi Data Kode Ruangan & Kelas Layanan
- Harus disiplin mapping kode ruangan lokal ke kode SIRANAP. Salah mapping, laporan bisa chaos.
- Kelas layanan (VIP, Kelas 1, 2, 3, isolasi, dsb) kadang beda istilah antara RS lokal & SIRANAP. Bikin master mapping di SIMRS.
- Validasi data sebelum push. Contoh: bed kosong nggak boleh minus, jumlah isi + kosong + blokir = total bed.
Menangani Error API SIRANAP
Sering nemu error kayak:
- 401 Unauthorized: Token salah/kedaluwarsa. Refresh token, retry submit.
- 400 Bad Request: Struktur JSON nggak sesuai requirement. Cek field wajib, tipe data, dan mapping kode.
- 500 Internal Server Error: SIRANAP lagi down. Simpan request lokal, retry otomatis pakai queue.
Contoh cara retry failed submit pakai mekanisme antrian sederhana (pseudo-code):
function submit_bed_data(json_payload) {
try {
post_to_siranap(json_payload)
} catch (Exception e) {
queue_failed_submission(json_payload)
}
}
function process_failed_queue() {
foreach (payload in failed_queue) {
submit_bed_data(payload)
}
}
Audit & Log Integrasi
- Simpan semua request & response API di tabel log, minimal: waktu, payload, response code, pesan error.
- Gunakan timestamp lokal, biar gampang tracing kejadian (audit klaim, komplain pasien, dsb).
- Setiap ada perubahan besar (penambahan ruangan/bed), pastikan update mapping dan validasi data sebelum mengaktifkan integrasi baru.
Contoh struktur tabel log:
CREATE TABLE log_siranap (
id_log INT PRIMARY KEY IDENTITY,
waktu DATETIME,
payload NVARCHAR(MAX),
response_code INT,
response_msg NVARCHAR(255),
sukses BIT
);
Kiat Anti-Modar: Backup Manual Jika Emergency
- SIMRS down? Siapkan backup export occupancy ke Excel/CSV, biar staff tetap bisa update SIRANAP manual sementara.
- API SIRANAP error? Simpan request gagal, retry otomatis. Laporkan ke helpdesk Kemenkes kalau gagal terus lebih dari 6 jam.
- Jangan lupa testing sandbox sebelum go-live di production. Cek semua mapping, pastikan data konsisten.
Manfaat Integrasi Otomatis SIRANAP-SIMRS
- Update real-time: Data kamar langsung update setiap ada perubahan, pasien baru dapat info valid, perawat/admisi nggak nunggu laporan manual.
- Efisiensi kerja: Staff front-office & operator SIRANAP hemat waktu, no more double input.
- Minim resiko human error: Data diambil dari sumber tunggal, tidak tergantung ingatan/shift admin.
- Standar akreditasi MRMIK: Bisa buktikan ke auditor, integrasi data kamar dengan SIRANAP berjalan otomatis & terekam log-nya.
- Data nasional terjaga: Kemenkes/Dinas update data RS langsung dari sistem, lebih transparan, lebih akurat.
Penutup: Kunci Sukses Bed Management Realtime
- Rancang tabel dan logic occupancy jelas, data selalu up-to-date tiap ada event pasien.
- Pakai mapping kode ruangan, kelas, dan format JSON sesuai guideline SIRANAP. Hindari asal copy-paste, cek referensi terbaru.
- Monitoring & log wajib jalan, supaya gampang troubleshooting kalau ada error/selisih data.
- Libatkan semua pihak: IT, perawat, admisi, dan manajemen RS. Satu sistem, satu sumber data, satu workflow.
- Jangan ragu konsultasi ke Kemenkes/Dinas kalau nemu error aneh. Catat semua update prosedur dari pusat.
Sudah saatnya Sobat IT RS ninggalin cara manual. Integrasi bed management SIMRS ke SIRANAP = kerja lebih ringan, data lebih valid, RS lebih siap hadapi akreditasi & situasi kritis. Selamat ngoprek, semoga server tetap sehat!
PETIRS