Overview
Malnutrition remains a global publichealth challenge, affecting more than 200 million children under five and contributing to over 3 million preventable deaths each year. Accurate data collection, analysis, and reporting are essential to guide interventions, allocate resources, and measure progress toward the Sustainable Development Goals.
The Malnutrition Coding Program (MCP) is a free, opensource software suite designed to standardize the way health professionals, researchers, and policymakers record, classify, and share malnutritionrelated information. Built on modern web technologies, MCP provides a flexible API, a userfriendly dashboard, and a set of reusable modules that can be integrated into existing healthinformation systems.
Why It Matters
- Consistency: Uses the WHO Child Growth Standards and the International Classification of Diseases (ICD11) to ensure uniform terminology worldwide.
- Interoperability: Supports HL7 FHIR resources, enabling seamless data exchange between hospitals, NGOs, and government databases.
- Scalability: Designed for anything from a single rural clinic to a national health ministry.
- Actionable Insights: Builtin analytics flag highrisk zones, trend changes over time, and generate alerts for acute emergencies.
Core Modules
- Data Capture
- Anthropometric entry (weight, height/length, MUAC).
- Clinical signs (edema, skinfold thickness).
- Foodsecurity questionnaire integration.
- Classification Engine
Applies WHO Zscore thresholds to automatically label children as:
- Severely Acute Malnourished (SAM)
- Moderately Acute Malnourished (MAM)
- At risk of stunting
- Reporting Dashboard
Visualizes prevalence maps, timeseries graphs, and cohort outcomes. Export options include CSV, PDF, and HL7 FHIR bundles.
- API & Integration Layer
RESTful endpoints, OAuth2 authentication, and Swagger documentation for developers.
- Training & Localization
Multilanguage UI (English, French, Spanish, Swahili, etc.) and an admin console for countryspecific cutoff adjustments.
Sample Code: Classifying a Child
The following snippet demonstrates how to use the MCP JavaScript SDK to calculate a childs Zscore and determine the malnutrition category.
// Assuming the MCP SDK is already loadedimport { calculateZScore, classify } from 'mcp-sdk';const child = { ageMonths: 24, gender: 'female', weightKg: 8.5, heightCm: 78};// World Health Organization reference data is builtinconst zScore = calculateZScore(child, 'weightForHeight');const category = classify(zScore, { severe: -3, moderate: -2, mild: -1});console.log(`Zscore: ${zScore.toFixed(2)}`);console.log(`Classification: ${category}`);// Output:// Zscore: -3.45// Classification: severe The same logic is available in Python, Java, and C# through the languagespecific SDKs.
Implementation Guide
1. Environment Setup
MCP can be deployed on any server that supports Docker. The recommended stack includes:
- DockerCompose (or Kubernetes for large clusters)
- PostgreSQL 14+
- Node.js 20 LTS for the API gateway
- React 18 for the frontend dashboard
Run the quickstart command:
docker compose up -d 2. Data Migration
Existing datasets can be imported using the mcp-import CLI. The tool accepts CSV, JSON, or HL7 FHIR bundles.
mcp-import --source mydata.csv --format csv --mapping mapping.json 3. User Management
Admins create roles (dataentry, analyst, supervisor) via the web UI. Permissions are enforced at the API level using OAuth2 scopes.
4. Monitoring & Maintenance
Builtin Prometheus metrics expose:
- API response times
- Number of records processed per hour
- Error rates by module
Grafana dashboards can be imported from the monitoring/ directory.
Resources & Community
- GitHub Repository source code, issue tracker, and contribution guidelines.
- Official Documentation installation steps, API reference, and user manuals.
- Community Forum ask questions, share custom modules, and report bugs.
- PeerReviewed Evaluation a 2023 study on MCPs impact in Kenya and Bangladesh.
