Sebuah Eksperimen Sederhana
Aktifkan mode pesawat di ponsel Anda. Buka aplikasi yang paling sering Anda pakai.
Sebagian aplikasi langsung menampilkan layar kosong. Sebagian lain masih menunjukkan data lama yang tersimpan di cache, tapi tidak bisa melakukan apa-apa yang baru. Sebagian lagi membiarkan Anda tetap bekerja seperti biasa, lalu menyinkronkan semuanya begitu koneksi kembali.
Jenis ketiga inilah yang biasa disebut orang "mendukung mode luring". Label ini diam-diam mengasumsikan bahwa daring adalah kondisi normal, dan luring hanyalah gangguan sementara yang ditoleransi sistem.
xGrid tidak masuk ke kategori mana pun di atas. Status default xGrid justru luring. Sistem ini tidak menunggu jaringan kembali, karena di lokasi-lokasi tempat xGrid dipasang, jaringan itu bisa jadi memang tidak akan pernah datang.
Ini bukan mode terdegradasi. Ini mode normal.
Seluruh Sistem Informasi Medis, dalam Satu Perangkat
Inti dari xGrid adalah sebuah perangkat komputasi tepi (edge computing) khusus, kira-kira sebesar telapak tangan, yang cukup dijalankan dengan power bank.
Pada satu perangkat ini berjalan tiga sistem sekaligus:
- xGrid Community Grid — pendaftaran pasien, triase, serah terima klinis, dan penulisan resep
- xGrid Medical Grid — manajemen inventaris, bank darah, pelacakan bedah, dan dispensasi farmasi
- xGrid READY — inventarisasi perbekalan fasilitas dan pelacakan kesiapan ketangguhan
Ketiga sistem berdiri sendiri-sendiri, masing-masing dengan basis datanya sendiri. Semua layanan otomatis menyala saat perangkat dihidupkan, dan begitu ada layanan yang bermasalah, ia otomatis mulai ulang dalam hitungan detik.
Setelah itu, perangkat ini memancarkan hotspot WiFi-nya sendiri.
Perawat, dokter, dan apoteker cukup mengeluarkan ponsel, menyambung ke WiFi tersebut, membuka peramban, dan langsung bisa mulai bekerja. Tidak perlu router. Tidak perlu menara seluler. Tidak perlu layanan cloud apa pun.
Perangkat itu sendiri adalah infrastrukturnya.
Bagaimana Kalau Ponsel Keluar dari Jangkauan WiFi?
Seorang perawat berjalan ke tenda triase 50 meter dari sana, dan ponselnya terputus dari WiFi. Ia tetap melakukan triase seorang pasien di ponselnya. Apakah data itu akan hilang?
Tidak. Sistem di ponselnya menyimpan tindakan itu di penyimpanan lokal, dan akan otomatis menyinkronkannya begitu ia kembali ke jangkauan WiFi.
Dan penyimpanan sementara ini bukan sekadar antrean tanpa urutan. Sistem membagi tindakan ke dalam tiga tingkat prioritas:
Tertinggi: Tindakan Klinis
Triase, perintah medis, tanda vital, obat gawat darurat. Disimpan 7 hari, tidak pernah dihapus otomatis.
Sedang: Tindakan Operasional
Perubahan inventaris, dispensasi obat, operasi bank darah. Disimpan 3 hari.
Terendah: Log Sistem
Riwayat tampilan layar, catatan klik. Dihapus begitu selesai disinkronkan.
Begitu koneksi kembali, tindakan klinis disinkronkan lebih dulu. Kalau bandwidth terbatas, log sistem bisa saja dibuang tanpa memengaruhi data pasien sama sekali.
Tindakan yang krusial untuk audit — seperti break-glass (akses darurat di luar prosedur normal), catatan transfusi darah, dan dispensasi obat terkontrol — tidak pernah dihapus otomatis apa pun yang terjadi. Data ini terus tersimpan sampai sinkronisasinya benar-benar terkonfirmasi.
Empat Lapis Pertahanan Sinkronisasi Otomatis
Begitu ponsel kembali terhubung, bagaimana sistem tahu saatnya menyinkronkan data? Bukan lewat satu mekanisme tunggal, melainkan lewat empat pemicu independen:
- Saat kembali ke layar — begitu perawat beralih kembali dari aplikasi lain ke sistem, sinkronisasi langsung dicoba
- Saat jaringan terdeteksi — begitu ponsel tersambung ke WiFi, sinkronisasi langsung berjalan
- Pemeriksaan berkala — sistem otomatis memeriksa setiap 30 detik, dan mengirim apa pun yang masih menunggu disinkronkan
- Sebelum halaman ditutup — upaya terakhir, memastikan data tidak hilang hanya karena peramban ditutup
Dengan empat lapis pertahanan ini, hampir selalu ada satu yang terpicu. Dalam pengujian, jeda sinkronisasi data luring biasanya hanya hitungan detik; dalam kasus terburuk pun, hitungan menit.
Penghitung Mundur Waktu Luring
Di layar setiap stasiun keperawatan ada sebuah banner yang menunjukkan, dengan kode warna, sudah berapa lama sistem itu luring:
Ini bukan untuk menakut-nakuti. Ini memberi operator waktu yang cukup untuk memutuskan: kembali ke jangkauan WiFi lalu sinkronisasi, atau tetap bekerja dalam mode luring. Semakin lama sebuah perangkat luring, semakin besar pula selisih antara data di ponselnya dengan basis data pusat. Penghitung mundur ini membuat selisih tersebut terlihat.
Kenapa Tidak Pakai Cloud?
Bukan karena tidak bisa. Tapi karena tidak boleh diandalkan.
Lingkungan penerapan medis bencana biasanya seperti ini:
- Menara seluler mungkin sudah roboh, tidak ada jaringan seluler sama sekali
- Listrik tidak stabil, perangkat mengandalkan power bank
- Tidak ada staf TI — operatornya adalah perawat dan dokter
- Tidak ada waktu untuk setup — begitu dibuka dari kotaknya, harus langsung bisa dipakai
Dalam kondisi seperti ini, sistem apa pun yang bergantung pada cloud punya satu cacat fatal: justru pada saat Anda paling membutuhkannya, kemungkinan besar Anda tidak bisa mengaksesnya.
Jawaban xGrid adalah membawa "cloud" itu bersama Anda. Satu perangkat + satu power bank + beberapa ponsel = satu sistem informasi medis yang lengkap. Dari menyala sampai siap pakai: 30 detik.
Apa Sebenarnya Arti "Offline-First"
Bukan berarti "kami juga punya mode luring".
Melainkan: sistem kami tetap bisa menjalankan semua fungsi intinya, sekalipun sama sekali tidak bergantung pada apa pun dari luar.
Setiap keputusan desain berangkat dari premis ini. Memilih basis data tertanam, bukan basis data yang perlu server terpisah. Memilih aplikasi berbasis peramban, bukan aplikasi native yang perlu app store. Memilih antrean peristiwa, bukan sinkronisasi real-time. Memilih hotspot WiFi, bukan VPN yang perlu administrator jaringan untuk mengaturnya.
Setiap pilihan ini menjawab pertanyaan yang sama: kalau yang tersedia cuma satu perangkat dan beberapa ponsel, apakah fungsi ini tetap bisa jalan?
Kalau jawabannya "tidak", kami rancang ulang sampai jawabannya jadi "bisa".
Terkait: Ketika Tembok Jebol — Merancang Sistem Medis dengan Safety-II
