Inspiration

Stroke adalah penyebab kematian utama di Indonesia, dengan sekitar 331 ribu kematian pada 2019 (GBD) dan 4,9 juta orang hidup dengan stroke. Setelah pulang dari rumah sakit, pemulihan lengan sebagian besar terjadi di rumah, tanpa ada yang menilai apakah gerakannya benar.

Bukti yang kami temukan menunjukkan tiga masalah sekaligus:

  • Dosis kurang. Latihan lengan aktif hanya 8–44 menit per hari, padahal pedoman menganjurkan 2 jam (Newton 2023).
  • Kepatuhan rendah. Di Nigeria, hanya 35% penyintas memenuhi ambang kepatuhan 70% (Odetunde 2024).
  • Kompensasi tak terkoreksi. Pasien mencondongkan batang tubuh padahal lengannya mampu, dan pola ini sulit dibongkar setelah terbentuk (Bakhti 2015; Levin 2016).

Fisioterapis tidak melihat apa pun di antara dua jadwal terapi, sementara layanan rehabilitasi terkonsentrasi secara geografis. Kami ingin mengisi hari-hari tanpa terapis itu, tanpa alat tambahan.

What it does

ReminiCare adalah PWA untuk latihan lengan pasca-stroke di rumah.

  • Fisioterapis menyusun resep (gerakan, repetisi, toleransi per penanda) dan membagikan tautan atau QR ke perangkat pasien.
  • Pasien dan pendamping memulai sesi dengan 2 ketukan. Kamera ponsel membaca postur, mengkalibrasi baseline pribadi selama 5 detik, menghitung repetisi, dan memutar koreksi suara Bahasa Indonesia saat batang tubuh atau bahu mengompensasi. Rangka tubuh di layar berubah warna sebelum koreksi suara berbunyi.
  • Gating keyakinan: bila pengukuran tidak andal, koreksi dimatikan dan pasien diminta memperbaiki posisi kamera.
  • Dashboard fisioterapis menampilkan pasien terurut prioritas, tren % repetisi terkompensasi, dan penanda eskalasi berbasis run chart. Fisioterapis memutuskan tindak lanjut; sistem tidak mengubah resep sendiri.
  • Privasi: video tidak pernah keluar dari perangkat. Hanya metrik sesi yang dikirim.
  • Ada juga mode tamu tanpa akun, antrean luring, persetujuan data beserta tombol hapus data, dan ringkasan AI untuk fisioterapis.

How we built it

  • Frontend: Next.js 16, React, Tailwind CSS, dipasang sebagai PWA
  • Pose: MediaPipe Pose Landmarker (Lite) berjalan di browser, GPU dengan cadangan CPU
  • Mesin kinematik berbasis aturan: fitur geometris terhadap baseline pasien sendiri, filter Butterworth, deteksi onset dan offset, segmentasi repetisi. Ambangnya bisa dijelaskan dan disetel fisioterapis, bukan model kotak hitam, karena model lintas individu terbukti gagal pada pasien (Unger 2025: sekitar 0,5 lintas individu, 0,92–0,95 per individu).
  • Backend: Supabase (Postgres, Auth Google OAuth, RLS di semua tabel, trigger eskalasi dengan aturan shift run chart Anhøj 2014), diuji dengan skrip tes RLS dan eskalasi
  • Suara: 41 klip MP3 Bahasa Indonesia yang direkam sebelumnya, dengan Web Speech API sebagai cadangan
  • Ringkasan AI: Gemini Flash, hanya menerima angka agregat tanpa nama atau ID. Keluarannya diperiksa kode: setiap angka harus ada di masukan, dan bila tidak, tampil ringkasan templat.
  • Mode uji /uji untuk merekam data berlabel dan menyetel ambang
  • Hosting: Vercel

Challenges we ran into

  • Satu kamera 2D tidak bisa melihat condong ke depan. Condong adalah sinyal terlemah dari tampak depan (Skvortsov 2026). Kami memakai miring lateral dan elevasi bahu sebagai penanda utama, dan menyatakan keterbatasan ini terang-terangan.
  • Menyetel ambang tanpa data pasien. Kami hanya punya subjek sehat yang sengaja mengompensasi, jadi hasilnya tidak bisa diklaim berlaku pada pasien.
  • Alur masuk berubah di tengah jalan. Rencana awal memakai email dan anonymous sign-in. Kami pindah ke Google OAuth dengan pilihan peran, sehingga RLS, klaim QR, dan tes harus disesuaikan.
  • Audio dan kamera di ponsel. Inisialisasi suara harus dipicu ketukan, dan izin kamera bisa menggantung. Kami mengganti bunyi bip dengan klip suara asli dan menyiapkan pesan per jenis galat.
  • Sesi tidak boleh hilang saat internet putus. Antrean luring dan pengiriman ulang harus aman dari duplikasi.

Accomplishments that we're proud of

  • Alur lengkap bisa dicoba juri: fisioterapis menyusun resep, pasien berlatih dengan koreksi suara, hasil muncul di dashboard.
  • Nol bingkai video keluar dari perangkat, dan itu bisa dibuktikan lewat tab Network.
  • Eskalasi diturunkan dari aturan statistik yang punya preseden (Anhøj 2014), bukan angka karangan, dan fisioterapis melihat dasarnya sebagai run chart.
  • Klaim yang jujur: README memuat bagian "bukan klaim" dan batas regulasi. Perangkat lunak seperti ini dapat tergolong alat kesehatan (KMK 951/2026), dan kami menyebut prototipe ini berjalan di jalur itu.
  • [ISI jika sudah ada]: sensitivitas dan spesifisitas per penanda dari uji subjek sehat (n = [..])
  • Seluruh kode ditulis selama Hacking Day, dengan riset dan aset non-kode disiapkan sebelumnya sesuai aturan lomba.

What we learned

  • Model per individu jauh lebih akurat daripada model lintas individu, karena itu baseline pribadi menjadi fondasi desain.
  • Bukti sering lebih sempit dari kesan awal. Hasil Kim 2026 diukur dengan kamera kedalaman, dan klaim "umpan balik visual lebih efektif daripada verbal" ternyata tidak punya kondisi pembanding verbal. Kami mengoreksi PRD kami sendiri setelah memeriksa kutipan satu per satu.
  • Untuk aplikasi kesehatan, yang menentukan kepercayaan juri dan fisioterapis adalah batas yang diakui, bukan angka yang dibesar-besarkan.
  • Tidak ada bukti Indonesia yang terverifikasi untuk rehabilitasi lengan di rumah, dan itu sendiri adalah temuan.

What's next for ReminiCare

  • Q4 2026: wawancara fisioterapis dan keluarga pasien (persona kami masih rekaan), cari fasyankes mitra, ajukan izin etik
  • 2027: validasi teknis pada subjek sehat yang lebih besar, validasi klinis dengan kappa terhadap fisioterapis, dua putaran uji usabilitas (SUS), lalu pilot rumah 8–12 minggu dengan persetujuan tertulis
  • Teknis: kamera oblik 45° untuk condong, gerakan tambahan, pengingat, dan akun pendamping
  • Regulasi: pemindahan data ke cloud dalam negeri, DPIA lengkap, registrasi perangkat lunak alat kesehatan, dan integrasi SATUSEHAT
  • Built with: nextjs, react, typescript, tailwindcss, mediapipe, supabase, postgresql, vercel, gemini-api, web-speech-api, google-oauth, pwa

Built With

Share this project:

Updates

Submission history