pilot, Uganda
Karibu Health
Document patients on a phone, even offline.
A 30-year relationship with Uganda and a 15-year friendship led to this. My friend Javis is a nurse there. We wanted to see what almost-free AI coding could really do, so we ran product-discovery interviews with clinicians.
They all said the same thing: they wanted a better EHR. And none of them had a computer connected to the internet. So we built an Android EHR for the HCIII, Uganda’s most-used clinic tier. It works offline, and it keeps the clinician — not the AI — in charge of the chart. In pilot today.
At a glance
Rural Ugandan health centres run on paper, with intermittent power and network. Cloud-first records and manual Ministry of Health reporting both break against how care actually happens.
We built an offline-first Android EHR. Clinicians dictate or type notes that always save locally and reconcile when the network returns, and an AI layer reviews each note against cited Uganda Ministry of Health guidelines.
Two hard problems at once: make a real multi-role EHR work when power and network are unreliable, and keep an AI strictly trustworthy in a clinical setting. The answer was an idempotent sync engine plus a hard citation-subset guard that drops any suggestion not grounded in the retrieved corpus.
It replaces a sync model that used to lose dictated notes, runs at roughly $1–2/day in AI cost, and keeps clinicians in full authority — while easing the documentation and reporting that unlocks government subsidies.
AI components
OpenAI Whisper (gpt-4o-transcribe) for dictation; gpt-4o-mini for note review, HMIS coding, and receipt drafting; text-embedding-3-small for retrieval.
Consult — a de-identified, offline-blocked second-opinion chat; most surfaces are deliberately non-agentic and single-shot.
pgvector retrieval over the Uganda Clinical Guidelines, WHO IMNCI, HIV guidelines, and Essential Medicines List, with chunk-tagged citations.
No model-output eval harness yet (the deterministic helpers are unit-tested); flagged as the top improvement.
An Inngest post-dictation pipeline (note review, receipt draft, HMIS suggestion) with a 60-second self-healing poller.
An outbox sync engine with client-supplied idempotency keys; deterministic critical-alert rules (e.g., infant high fever) that bypass the model entirely.
Technology
Kotlin • Android • Supabase • Inngest • OpenAI