Skip to main content

MALAWI HEALTH CARE INFORMATION SYSTEM (MAHIS) IMPOW SYSTEM AND USER REQUIREMENTS DOCUMENT

#

Ministry of Health

Department of Nutrition

 

MALAWI HEALTH CARE INFORMATION SYSTEM #(MAHIS) IMPOW SystemSYSTEM andAND UserUSER RequirementsREQUIREMENTS DOCUMENT

Document ##version: v1.0.0

Date: 24/03/2026

VERSION HISTORY

|
|---------|------|-------------|---------------|-----------------------|--------|| | Dept.---##

Version

|

Date

|

Approved by

|

Revision Date

|

Description of Change

|

Author

|

v 1.0.0

|

24 March 2026

|
|

 

 

First version

|
of

K. NutritionThaundi, /G. MAHISChinyama

|

 


 

Introduction

###

Purpose Of The Requirements Definition Document

The purpose of the IMPOW (Integrated Management and Prevention of Oedema and Wasting) requirement document is to define user functional, non-functional and technical requirements needed for the IMPOW to MAHIS transition. The contents of this system requirements definition document include the overall system description and system features.

###

Scope

Scope

The main goal of this project is to manage individuals suffering from acute malnutrition during routine clinical visits in both public and private health facilities, as well as community-level screenings. This document will be reviewed annually and updated, if need be, triggering a new document version.

###

Features

Features

The IMPOW module within MAHIS will provide a more efficient way of managing acute malnutrition cases. This will be achieved by integrating the Ministry of Health Department of Nutrition clinical guidelines (IMPOW Job Aids) into the existing MAHIS platform, providing real-time decision support to providers. Below is a list of the system components:

-

             Community Screening & Outreach

-

             Patient Registration

-

             Triage & Anthropometrics (Vitals)

-

             Outpatient Therapeutic Program (OTP) Consultation

-

             Supplementary Feeding Program (SFP) Consultation

-

             Nutrition Rehabilitation Unit (NRU) Inpatient Care

-

             Defaulter Tracing

-

             Lab Ordering and Result Entry

-

             Therapeutic Food Dispensation

-

             Appointment Management

-

             User Management

-

             Data Management

-

             System Preferences

---

 ##

 

 

User Information

###

User classes

|
|---|---|| | | | | | ###

Title

|

Characteristics

|

Superuser

|

CRUD functions on users, system configuration

|

Registration/Data clerk

|

Register clients in the system, enter back data, generate aggregate reports

|

Health Surveillance Assistant (HSA)

|

Conduct community screening (MUAC, Oedema), trace defaulters via home visits

|

Nurse/Clinician/Doctor

|

Register clients, record vitals/anthropometry, assess oedema, perform clinical consultation (danger signs, appetite test), place lab orders, dispense therapeutic foods, manage inpatient workflows (NRU), schedule appointments

|

Lab technician

|

Get lab orders, process samples, capture results

|

District Nutrition Officer (In-Charge)

|

View IMPOW client metrics, monitor facility performance, generate DHIS2 reports

|

User personas

A persona is a depiction of a relevant stakeholder of the system. In the case of IMPOW, trained lay providers (HSAs), nurses, and non-physician clinicians providing nutrition-related services are the primary personas for MAHIS.

|
|--------------|-------|-------------|-----------------------||** |** |** |** ###

Demographics

|

Goals

|

Pain Points

|

Needs from the System

|

Clinician / Nutrition Nurse**
Nurse
Age: 25–50
Digital50Digital Literacy: Moderate
Device:ModerateDevice: Tablet/Desktop

|

Quickly access anthropometric history. Evaluate weight gain accurately. Calculate RUTF dosing.

|

Time-consuming manual z-score calculations. Difficulty identifying defaulters.

|

Auto-calculated WFH/L z-scores. Alerts for critical weight loss. Automated therapeutic food dosing tables.

|

Health Surveillance Assistant (HSA)**
Age: 20–40
Digital40Digital Literacy: Low-Moderate
Device:ModerateDevice: Mobile/Tablet

|

Screen children in the community quickly. Issue accurate referrals. Trace defaulted patients.

|

Paper slips get lost. Unclear criteria leading to wrong referrals.

|

Simple screening forms. Automated referral destination prompts. Defaulter lists organized by village.

|

Data Clerk**
Clerk
Age: 22–40
Digital40Digital Literacy: High
Device:HighDevice: Desktop

|

Enter large volumes of clinical data. Ensure data accuracy for DHIS2 reporting.

|

Transcription errors from CMAM registers. Complex paper tallying.

|

Fast data entry forms. Validation blocks for implausible anthropometrics. One-click aggregate report generation.

|

District Nutrition Officer (M&E)**
Age: 30–55
Digital55Digital Literacy: High
Device:HighDevice: Laptop

|

Monitor facility performance against Sphere Standards (Cure, Death, Default rates).

|

Errors from manual reports. Delays in receiving facility data.

|

Dashboards summarizing key indicators (Cure Rates >75%). Downloadable cohort reports.

|

Permissions Matrix

|
|------------------|-----------|-----------------|-----|-------------------------|---------------------|----------||** ✔️✔️✔️✔️✔️✔️|** ✔️|** ✔️✔️✔️|** ✔️✔️✔️|** ✔️✔️✔️|** ✔️|** ✔️✔️|** ✔️✔️|** ✔️✔️|** ✔️✔️|** ✔️✔️✔️✔️|** ✔️✔️✔️|** ✔️✔️✔️|** ✔️|** ✔️✔️✔️---##

Module / Feature

|

Superuser

|

Nurse/Clinician

|

HSA

|

Registration/Data Clerk

|

Nutrition In-Charge

|

Lab Tech

|

Login & Authentication**Authentication

|

 Full access

|

 Full access

|

 Limited access

|

 Full access

|

 Full access

|

 Limited

|

User Management**Management

|

 Create/Edit/Delete

|

No access

|

No access

|

No access

|

No access

|

No access

|

Client Registration**Registration

|

 Yes

|

 Yes

|

No

|

 Yes

|

No

|

No

|

Community Screening (MUAC)**

|

 Yes

|

 Yes

|

 Yes

|

No

|

No

|

No

|

Vitals & Anthropometry**Anthropometry

|

 Yes

|

 Yes

|

No

|

 Yes

|

No

|

No

|

Clinical Consultation (OTP, SFP)**|

✔️

 Yes

|

 Yes

|

No

|

No

|

No

|

No

|

Inpatient Care (NRU)**

|

 Yes

|

 Yes

|

No

|

No

|

No

|

No

|

Lab Ordering**Ordering

|

 Yes

|

 Yes

|

No

|

No

|

No

|

No

|

Lab Result Entry**Entry

|

 Yes

|

No

|

No

|

No

|

No

|

 Yes

|

Prescribe/Dispense RUTF**RUTF

|

 Yes

|

 Yes

|

No

|

No

|

No

|

No

|

Appointment Scheduling**Scheduling

|

 Yes

|

 Yes

|

No

|

 Yes

|
View

 OnlyYes

|

No

|

Defaulter Tracing Logging**Logging

|

 Yes

|

 Yes

|

 Yes

|

No

|

No

|

No

|

Generate Reports (DHIS2)**

|

 Yes

|

No

|

No

|

 Limited

|

 Yes

|

No

|

Edit System Settings**Settings

|

 Yes

|

No

|

No

|

No

|

No

|

No

|

Back Data Entry (BDE)**

|

 Yes

|

 Yes

|

No

|

 Yes

|

No

|

No

|

Workflows

###

1. Community MUAC Screening Workflow

```mermaid

graph TB
    Start([Community Screening Event]) --> CheckChild{Child Present
<br/>Age 6-59 months?}

    CheckChild -->|No| End1([End - Not Eligible])
    CheckChild -->|Yes| MeasureMUAC[Measure MUAC
<br/>0.1cm Precision]

    MeasureMUAC --> EvaluateMUAC{Evaluate MUAC}
    EvaluateMUAC -->|MUAC ≥12.5cm| ProvideEducation[Provide Nutrition<br/>Education]
Education]    EvaluateMUAC -->|MUAC 11.5-12.5cm| CreateReferralSFP[Create Referral
<br/>to SFP]

    EvaluateMUAC -->|MUAC <11.5cm| CheckOedema{Check for<br/>Oedema}
Oedema}    CheckOedema -->|No Oedema or +/++| CreateReferralOTP[Create Referral
<br/>to OTP]

    CheckOedema -->|Oedema +++| CreateUrgentReferralNRU[Create URGENT
<br/>Referral to NRU]

``` ###

2. OTP Admission Workflow

```mermaid

graph TB
    Start([Patient Arrives
<br/>at Facility]) --> Triage[Triage Assessment
<br/>Check Danger Signs]

    Triage --> CheckDangerSigns{Danger Signs?}
    CheckDangerSigns -->|Yes| EmergencyProtocol[Immediate Referral
<br/>to NRU]

    CheckDangerSigns -->|No| Anthropometry[ANTHROPOMETRY
<br/>Weight, Height, MUAC, Oedema]

    Anthropometry --> CalculateIndicators[Calculate
<br/>WFH/L Z-Score]

    CalculateIndicators --> EvaluateAdmission{Evaluate<br/>Criteria}
Criteria}    EvaluateAdmission -->|Not Eligible| NotEligible[Discharge]
    EvaluateAdmission -->|OTP Criteria| AppetiteTest[APPETITE TEST
<br/>Offer RUTF]

    AppetiteTest --> EvaluateAppetite{Appetite Test<br/>Result}
Result}    EvaluateAppetite -->|Failed| ReferNRU[Refer to NRU]
    EvaluateAppetite -->|Passed| MedicalAssessment[MEDICAL ASSESSMENT
<br/>Complications, HIV, Malaria]

    MedicalAssessment --> DispenseRUTF[DISPENSE RUTF
<br/>Weekly Ration]

    DispenseRUTF --> EnrollProgram[ENROLL IN IMPOW
<br/>State: Active in OTP]

``` ###

3. OTP Follow-Up & Care Journey

```mermaid

graph TB
    Start(["Patient Arrives
<br/>for Follow-Up"]) --> CheckAppointment{"Appointment
<br/>Status"}

    CheckAppointment -->|Late| Late["Record Late Visit"]
    CheckAppointment -->|Defaulter| Defaulter["Trigger Defaulter Tracing"]
    CheckAppointment -->|On Time| Anthropometry["ANTHROPOMETRY
<br/>Weight, MUAC, Oedema"]

    Late --> Anthropometry
    Defaulter --> Anthropometry
    Anthropometry --> MeasureWait["Calculate Progress
<br/>Weight Gain/MUAC Change"]

    MeasureWait --> AssessRUTF["ASSESS RUTF CONSUMPTION
<br/>Calculate % Consumed"]

    AssessRUTF --> ClinicalAssessment["CLINICAL ASSESSMENT
<br/>Danger Signs, Triggers"]

    ClinicalAssessment --> CheckDangerSigns{"Danger Signs
<br/>or Triggers?"}

    CheckDangerSigns -->|Yes| ReferNRU["REFER TO NRU"]
    CheckDangerSigns -->|No| EvaluateProgress{"Evaluate Progress"}
    EvaluateProgress -->|Weight Loss / Static| Investigate["FLAG: Investigate Cause
<br/>Intensive Counseling"]

    EvaluateProgress -->|Good Progress| Medication["Check Medication Schedule
<br/>Albendazole / Measles Vaccine"]

    Investigate --> Medication
    Medication --> RecalculateRUTF["RECALCULATE RUTF
<br/>Weekly Ration based on Weight"]

    RecalculateRUTF --> ScheduleNext["SCHEDULE NEXT VISIT
<br/>+7 Days"]

``` ###

4. NRU Admission & Inpatient Care Journey

```mermaid

graph TB
    Start(["Patient Arrives
<br/>at NRU"]) --> EmergencyAssessment["EMERGENCY ASSESSMENT
<br/>Check Shock, Hypoglycemia"]

    EmergencyAssessment --> CheckEmergency{"Life-Threatening?"}
    CheckEmergency -->|Yes| EmergencyTreatment["EMERGENCY PROTOCOL"]
    CheckEmergency -->|No| ClassifyAdmission["Classify Admission Type
<br/>Marasmic Kwashiorkor, Infant SAM, SAM+Complications"]

    EmergencyTreatment --> ClassifyAdmission
    ClassifyAdmission --> DetermineFeedingPlan{"Determine Feeding Plan"}
    DetermineFeedingPlan --> SelectSchedule["Select Feeding Schedule
<br/>2-Hourly, 3-Hourly, 4-Hourly"]

    SelectSchedule --> Prescribe["PRESCRIBE MEDICATIONS
<br/>Ampicillin, Gentamicin"]

    Prescribe --> FeedingPhase["START F-75 PROTOCOL
<br/>Stabilization Phase"]

    FeedingPhase --> DailyCare["DAILY INPATIENT CARE
<br/>Assess Intake, Vomiting, Complications"]

    DailyCare --> EvaluatePhase{"Evaluate Phase Transition"}
    EvaluatePhase -->|Ready| TransitionF100["TRANSITION TO F-100
<br/>Rehabilitation Phase"]

    EvaluatePhase -->|Not Ready| Stabilize["Continue F-75"]
    TransitionF100 --> Discharge["DISCHARGE TO OTP
<br/>Once Medical Complications Resolve"]

``` ###

5. SFP (Supplementary Feeding) Journey

```mermaid

graph TB
    Start(["Patient with MAM
<br/>Arrives"]) --> Triage["ANTHROPOMETRY
<br/>Confirm MUAC 11.5-12.5cm
<br/>or WFH/L -3 to -2"]

    Triage --> CheckOedema{"Oedema Present?"}
    CheckOedema -->|Yes| ReferOTP["Refer to OTP/NRU"]
    CheckOedema -->|No| EnrollSFP["ENROLL IN SFP Workflow"]
    EnrollSFP --> DispenseSFP["Dispense Supplementary Food
<br/>(e.g., CSB+, Plumpy'Sup)"]

    DispenseSFP --> BiWeeklyFollowUp["BI-WEEKLY FOLLOW-UP
<br/>Monitor Weight Gain"]

    BiWeeklyFollowUp --> CheckDischarge{"Reached Discharge Criteria?
<br/>MUAC >12.5cm for 2 visits"}

    CheckDischarge -->|Yes| Discharge["Discharge as Cured"]
    CheckDischarge -->|No| BiWeeklyFollowUp
    CheckDischarge -->|Deteriorates| ReferOTP

``` --- ##

Functional Requirements

###

Login

Login
|
|---|---|| | | | ###

#

|

Requirement

|

1

|

The system shall allow authorized users to log in using a valid username and password.

|

2

|

The system shall notify users on the login page when there is a network or server outage.

|

3

|

The system shall notify users about weak or expired passwords upon login.

|

4

|

The system shall display the version number on the login page.

|

Activity Selection

|
|---|---|| | ###

#

|

Requirement

|

1

|

The system shall prompt the user to select the activities they wish to carry out (e.g., Community Screening, OTP Visit, NRU Visit, Defaulter Tracing).

|

2

|

The system shall only display activities the user is authorized to perform, based on the permissions matrix.

|

Service Dashboard & Module Dashboard

|
|---|---|| | | | ###

#

|

Requirement

|

1

|

The system shall prompt the user to select the workstation location (e.g., Outpatient, Inpatient NRU, Community post).

|

2

|

The dashboard shall display a chart showing therapeutic food stock levels (RUTF, F-75, F-100).

|

3

|

The dashboard shall highlight active caseload metrics (total cases in OTP, SFP, NRU) for the facility.

|

4

|

The dashboard shall display a prioritized list of defaulters pending tracing.

|
|
|---|---|| | ###

#

|

Requirement

|

1

|

The system shall provide a search tool allowing users to find records by Name, Malawi National ID, MAHIS ID, or IMPOW Number.

|

2

|

The system shall automatically integrate with MAHIS core to search the global registry and prevent duplicate registrations.

|

Patient Registration & Reception

|
|---|---|| | | |4|

#

|

Requirement

|

1

|

The system shall allow creation of new records with: Name, DOB, Sex, Address, Landmark, Phone.

|

2

|

The system shall explicitly record Guardian/Caregiver details (critical for malnutrition follow-ups).

|

3

|

The system shall record initial HIV status and link the patient to the HIV/ART module if positive.

|
For
each
visit, the system shall record: Visit Date, Patient Present (Y/N), Guardian Availability. | ###

Anthropometry & Vitals

|
|---|---|| | | | ###

#

|

Requirement

|

1

|

The system shall require capturing: Weight (to 0.1kg), Height/Length (to 0.1cm), MUAC (to 0.1cm), and Bilateral Pitting Oedema Grade (None, +, ++, +++).

|

2

|

The system shall auto-calculate the Weight-for-Height/Length (WFH/L) Z-score based on WHO standard reference tables dynamically.

|

3

|

The system shall classify the nutritional status (Normal, MAM, SAM) based on the inputs immediately upon data entry completion.

|

4

|

The system shall prompt for measuring method (Standing vs Lying Down) when height/length is recorded.

|

Consultation & Clinical Assessment

|
|---|---|| | | | ###

#

|

Requirement

|

1

|

The system shall mandate an Appetite Test pass/fail result before completing an OTP Admission.

|

2

|

The system shall provide a checklist of IMCI Danger Signs and Medical Complications; selecting any shall strictly prompt an NRU Referral.

|

3

|

The system shall prompt for an HIV test (if status unknown) and a Malaria RDT during admission.

|

4

|

During follow-up, the system shall calculate exact weight gain velocity in g/kg/day and throw an alert (e.g., "Static Weight"Weight”) if the velocity is zero or negative.

|

Treatment & Dispensation

|
|---|---|| | | | ###

#

|

Requirement

|

1

|

The system shall automatically calculate the recommended RUTF dosage (in 92g packets) based on the patient'patient’s current weight.

|

2

|

The system shall allow dispensing of Amoxicillin systematically to all new OTP admissions unless contraindicated.

|

3

|

The system shall deduct dispensed therapeutic foods from the global facility inventory dynamically.

|

4

|

The system shall block prescriptions of Iron/Folic acid if the patient is classified as Severely Acutely Malnourished (SAM).

|

Patient Outcomes & Defaulter Tracing

|
|---|---|| | | ###

#

|

Requirement

|

1

|

The system shall identify patients overdue for an appointment by >14 days and mark them as "Defaulter candidates"candidates”.

|

2

|

The system shall provide a Defaulter Tracing electronic form for HSAs to log home visit attempts and final designated outcomes (Found, Refused, Moved Away, Died).

|

3

|

The system shall automatically evaluate Discharge Criteria (e.g., MUAC >= 12.5cm for two consecutive visits) and recommend formal discharge as "Cured"“Cured”.

|

Integration with other MAHIS modules

|
|---|---|| **| **| **| **###

#

|

Requirement

|

1

|

HIV/ART Integration:** The IMPOW module shall adopt HIV/ART status from the ART module natively. It shall require Cotrimoxazole dispensing alongside Amoxicillin if the child is HIV-positive.

|

2

|

ANC Integration:** For pregnant/lactating women in SFP, the IMPOW module shall communicate pregnancy status and EDD bi-directionally with the ANC module.

|

3

|

Laboratory Integration:** Malaria RDTs and Hb tests requested in IMPOW shall be fulfilled via the MAHIS Laboratory module, transmitting results back electronically.

|

4

|

Immunization Integration:** The system shall check for Measles vaccination status interacting with the EPI registry.

|

Back Data Entry (BDE)

|
|---|---|| | ###

#

|

Requirement

|

1

|

The system shall provide a BDE toggle in the administration panel to allow manual selection of historical session dates.

|

2

|

All records captured under the BDE session shall be permanently logged with a BDE-flag for data integrity tracing.

|

Reports

|
|---|---|| | | ###

#

|

Requirement

|

1

|

The system shall generate the **IMPOW Monthly Report**Reports mandated by DHIS2, aggregating admissions, discharges, active caseloads, and stock balances.

|

2

|

The system shall compute automated Sphere Standard operational metrics (Cure Rate %, Death Rate %, Defaulter Rate %).

|

3

|

All reports shall support export to CSV and PDF, with password protection applied conditionally if PII is included.

|

Settings and Configurations

|
|---|---|| | | ---##

Category

|

Requirement

|

Module Activation

|

Allow administrators to completely enable or disable individual program tracks (e.g., SFP).

|

Appointment Parameters

|

Configure maximum OTP follow-up quotas per clinic operating day.

|

Defaulter Thresholds

|

Adjust the number of days overdue before a patient triggers the Defaulter sequence (default: 14).

|

 

Validations

|
|---------|-------------|-------------------|---------------------|----------------||** |** |** |** |** |** |** |** |** |** ---##

Rule ID

|

Description

|

Trigger Condition

|

Validation Criteria

|

Error Handling

|

VAL-001**001

|

Community Screening Referral

|

MUAC < 11.5cm + Oedema +++

|

Patient meets catastrophic IMCI criteria.

|

Alert: "Critical Emergency - Must Refer to NRU Immediately." Blocks OTP selection.

|

VAL-002**002

|

Weight Plausibility

|

Weight submitted

|

Must be between 2.0 kg and 30.0 kg for pediatric pathways.

|

Display: "Weight outside logical bounds. Verify scale."

|

VAL-003**003

|

Height Constraints

|

Height submitted

|

Must be between 45.0 cm and 150.0 cm.

|

Display: "Height outside expected limits."

|

VAL-004**004

|

Appetite Test Restriction|Restriction

Failed Appetite Test

|

A passed test is required to remain in OTP.

|

Display: "Patient cannot swallow RUTF. Prompt NRU Referral generated."

|

VAL-005**005

|

Negative Weight Gain

|

Weight = current < previous

|

Validates clinical deterioration.

|

Prompt: "Confirm weight loss parameter. Investigate underlying conditions."

|

VAL-006**006

|

Contraindicated Drugs

|

User prescribes Iron / Zinc

|

Prevented by active SAM diagnosis.

|

Block: "Medication explicitly contraindicated for acute malnutrition."

|

VAL-007**007

|

Automated RUTF Dosing

|

Dispensation screen opened

|

Calculate `Weight * Factor / Packet Kcal`Kcal.

|

Recommends exact packet count. Prompts warning if overridden.

|

VAL-008**008

|

SFP Admission Validation|Validation

WFH/L recorded

|

WFH/L must be strictly between -3 and -2.

|

Diverts admission outcome if severity implies SAM/OTP is needed instead.

|

VAL-009**009

|

Discharge Criteria

|

User initiates "Cured"“Cured” Discharge

|

MUAC > 12.5cm and zero oedema for >14 days

|

Display: "Discharge criteria unmet. Minimum recovery time not satisfied."

|

VAL-010**010

|

Date Anomalies

|

Back Data Entry timestamp

|

Dates cannot exceed current system clock datetime.

|

Prevent save: "Future dates are invalid."

|

 

Non-Functional Requirements

|
|----------|----------------------------||** |** |** |** |** |** |** |** |** ---*

Category

|

Non-Functional Requirement

|

Security - Confidentiality**Confidentiality

|

Provide secure, password-protected Role-Based Access Control logic for all authorized users.

|

Security - Audit Trails**Trails

|

Maintain immutable event logs for every user login/logout, data CRUD operation, and BDE intervention.

|

Security - Authentication**Authentication

|

Lock users out automatically subsequent to 5 sequential invalid password combinations.

|

System - Offline Capability**Capability

|

Community screening modules must allow offline caching for HSAs in remote villages with intermittent connectivity, utilizing delayed sync.

|

System - Scalability**Scalability

|

The module must comfortably support processing thousands of concurrent users scaling across 300+ Malawian health facilities natively executing within MAHIS.

|

Usability - Dynamic UI**UI

|

Auto-calculate metrics (WFH/L, BMI, Daily Weight Gain, RUTF dosing) natively via frontend Javascript without demanding server round-trips to enhance responsiveness.

|

Usability - Hard Validations**Validations

|

Prevent nonsensical data (extreme height loss between weekly visits) from contaminating cohort health metrics using strict range delimiters.

|

Interoperability - DHIS2**DHIS2

|

Expose an internally accessible API strictly complying with DHIS2 dataset formatting specifications natively matching Ministry aggregate definitions.

|

Hardware Constraints**Constraints

|

Render interfaces explicitly mobile-first, targeting optimized execution over constrained processor generic Android tablets.

|

 

End of Document*Document