Project to make health accessible to expectant and new moms in Nigeria
# mama-triage
An LLM-based triage and symptom assessment system for maternal and neonatal health in
underserved Nigerian communities — a WhatsApp-accessible, context-aware clinical decision
support tool for postpartum mothers and newborns.
MSc Information Technology project · MIVA Open University, Abuja
Adeola Bada (2024/C/MIT/0127) · Supervisor: Prof. Emmanuel Mkpojiogu
> **Research prototype.** This system does not provide medical diagnoses and is not
> deployed to real end users. Evaluation is conducted against simulated clinical scenarios
> with clinical reviewers only
---
## Status
**1,016 tests.** Typecheck, build and Docker image all clean.
| Component | State |
|---|---|
| Repo scaffold, TypeScript, Jest | ✅ |
| Database schema (migrations 001–006) | ✅ up/down round trip verified against Postgres 16.14 |
| Safety layer (red flags, negation, ratchet, distress, fallback) | ✅ **100% coverage** |
| Configuration with fail-fast validation | ✅ |
| WhatsApp webhook, privacy, consent flow | ✅ signature verification, ACK-first, idempotent |
| RAG pipeline (chunk → embed → retrieve) | ✅ indexes WHO IMCI 2014 + FMOH PPH 2025 |
| LLM triage with structured output + second-pass check | ✅ |
| Assessment state machine + renderer | ✅ full conversation end to end |
| Evaluation harness (Objective 4) | ✅ metrics, runner, report generator |
| Deployment (Dockerfile, CI, `/admin/simulate`) | ✅ image builds and runs |
| Web demonstration interface (`/demo`) | ✅ drives the real handler; shows the reasoning |
| Landing page (`/`) and registration (`/register`) | ✅ EJS + Tailwind + htmx, no CDN |
| Consent gate, privacy notice, terms of use | ✅ versioned; the accepted version is stored |
| SMS (KudiSMS) | ✅ opt-in reminders. **Not a chat channel** — no inbound webhook |
| IMCI follow-up reminders | ✅ scheduled at the WHO intervals, sent on her own channel |
| **Telegram channel** | ✅ full two-way, free text, inline buttons — no approval needed |
### Blocked on inputs, not c …