Open-source, offline children's-health engine: WHO IMCI triage, MUAC malnutrition screening, Kenya KEPI immunization, climate-health early warning. Powers M-Kliniki's Nia.
# nia-child-health
**Open-source, offline-capable children's-health engine** for safe point-of-care decision support. It powers **Nia**, the AI assistant in **M-Kliniki** (Urban Tech for Hope Ltd, Kenya), but it has **no dependencies** and runs anywhere Node runs, online or off.
> Children are the most vulnerable to ill health and to climate shocks, yet they are too often absent from the tools meant to protect them. This engine puts safe, standards-based child-health logic in the hands of any caregiver or community health worker, even with no internet and no specialist nearby.
## What it does
Given simple inputs (age, a few symptoms, a MUAC tape reading, a date of birth, the local climate signal), it returns a single, action-first assessment:
| Module | Standard | What it answers |
| --- | --- | --- |
| **IMCI triage** (`src/imci.js`) | WHO Integrated Management of Childhood Illness | Are there danger signs? Pneumonia, dehydration, malaria-fever, ear, malnutrition. RED / YELLOW / GREEN + advice. |
| **MUAC screening** (`src/muac.js`) | WHO / Kenya IMAM | Severe (SAM) / moderate (MAM) / adequate acute malnutrition from a mid-upper-arm-circumference reading. |
| **Immunization** (`src/immunization.js`) | Kenya KEPI routine schedule | From a date of birth + doses given: what is due now, what is overdue, what is next. |
| **Climate-health** (`src/climate.js`) | Hazard-to-child-risk rules | Turns heat / flood / poor-air / drought / outbreak signals into child-specific early warnings + facility-routing during shocks. |
The clinical decision is made by **auditable rules**, not AI, so it is safe and works offline. Nia (AI) sits on top only for natural-language intake and warmth.
## Use
```js
const { assessChild } = require('nia-child-health');
const result = assessChild({
ageMonths: 16,
muacMm: 112,
symptoms: { diarrhoeaDays: 3, sunkenEyes: true, restless: true, drinksEagerly: true },
dob: '2025-01-10', today: '2026-06-26', immunizationsGiven: ['BCG', 'OPV0'],
clim …