Skip to main content

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

# MALAWI HEALTH CARE INFORMATION SYSTEM # IMPOW System and User Requirements Document ## VERSION HISTORY | Version | Date | Approved by | Revision Date | Description of Change | Author | |---------|------|-------------|---------------|-----------------------|--------| | v 1.0 | 24 March 2026 | | | First version | Dept. of Nutrition / MAHIS | --- ## 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 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 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**
Age: 25–50
Digital Literacy: Moderate
Device: 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
Digital Literacy: Low-Moderate
Device: 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**
Age: 22–40
Digital Literacy: High
Device: 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
Digital Literacy: High
Device: 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** | ✔️ Full access | ✔️ Full access | ✔️ Limited access | ✔️ Full access | ✔️ Full access | ✔️ Limited | | **User Management** | ✔️ Create/Edit/Delete | ❌ No access | ❌ No access | ❌ No access | ❌ No access | ❌ No access | | **Client Registration** | ✔️ Yes | ✔️ Yes | ❌ No | ✔️ Yes | ❌ No | ❌ No | | **Community Screening (MUAC)** | ✔️ Yes | ✔️ Yes | ✔️ Yes | ❌ No | ❌ No | ❌ No | | **Vitals & 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** | ✔️ Yes | ✔️ Yes | ❌ No | ❌ No | ❌ No | ❌ No | | **Lab Result Entry** | ✔️ Yes | ❌ No | ❌ No | ❌ No | ❌ No | ✔️ Yes | | **Prescribe/Dispense RUTF** | ✔️ Yes | ✔️ Yes | ❌ No | ❌ No | ❌ No | ❌ No | | **Appointment Scheduling** | ✔️ Yes | ✔️ Yes | ❌ No | ✔️ Yes | ✔️ View Only | ❌ No | | **Defaulter Tracing Logging** | ✔️ Yes | ✔️ Yes | ✔️ Yes | ❌ No | ❌ No | ❌ No | | **Generate Reports (DHIS2)** | ✔️ Yes | ❌ No | ❌ No | ✔️ Limited | ✔️ Yes | ❌ No | | **Edit System 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
Age 6-59 months?} CheckChild -->|No| End1([End - Not Eligible]) CheckChild -->|Yes| MeasureMUAC[Measure MUAC
0.1cm Precision] MeasureMUAC --> EvaluateMUAC{Evaluate MUAC} EvaluateMUAC -->|MUAC ≥12.5cm| ProvideEducation[Provide Nutrition
Education] EvaluateMUAC -->|MUAC 11.5-12.5cm| CreateReferralSFP[Create Referral
to SFP] EvaluateMUAC -->|MUAC <11.5cm| CheckOedema{Check for
Oedema} CheckOedema -->|No Oedema or +/++| CreateReferralOTP[Create Referral
to OTP] CheckOedema -->|Oedema +++| CreateUrgentReferralNRU[Create URGENT
Referral to NRU] ``` ### 2. OTP Admission Workflow ```mermaid graph TB Start([Patient Arrives
at Facility]) --> Triage[Triage Assessment
Check Danger Signs] Triage --> CheckDangerSigns{Danger Signs?} CheckDangerSigns -->|Yes| EmergencyProtocol[Immediate Referral
to NRU] CheckDangerSigns -->|No| Anthropometry[ANTHROPOMETRY
Weight, Height, MUAC, Oedema] Anthropometry --> CalculateIndicators[Calculate
WFH/L Z-Score] CalculateIndicators --> EvaluateAdmission{Evaluate
Criteria} EvaluateAdmission -->|Not Eligible| NotEligible[Discharge] EvaluateAdmission -->|OTP Criteria| AppetiteTest[APPETITE TEST
Offer RUTF] AppetiteTest --> EvaluateAppetite{Appetite Test
Result} EvaluateAppetite -->|Failed| ReferNRU[Refer to NRU] EvaluateAppetite -->|Passed| MedicalAssessment[MEDICAL ASSESSMENT
Complications, HIV, Malaria] MedicalAssessment --> DispenseRUTF[DISPENSE RUTF
Weekly Ration] DispenseRUTF --> EnrollProgram[ENROLL IN IMPOW
State: Active in OTP] ``` ### 3. OTP Follow-Up & Care Journey ```mermaid graph TB Start(["Patient Arrives
for Follow-Up"]) --> CheckAppointment{"Appointment
Status"} CheckAppointment -->|Late| Late["Record Late Visit"] CheckAppointment -->|Defaulter| Defaulter["Trigger Defaulter Tracing"] CheckAppointment -->|On Time| Anthropometry["ANTHROPOMETRY
Weight, MUAC, Oedema"] Late --> Anthropometry Defaulter --> Anthropometry Anthropometry --> MeasureWait["Calculate Progress
Weight Gain/MUAC Change"] MeasureWait --> AssessRUTF["ASSESS RUTF CONSUMPTION
Calculate % Consumed"] AssessRUTF --> ClinicalAssessment["CLINICAL ASSESSMENT
Danger Signs, Triggers"] ClinicalAssessment --> CheckDangerSigns{"Danger Signs
or Triggers?"} CheckDangerSigns -->|Yes| ReferNRU["REFER TO NRU"] CheckDangerSigns -->|No| EvaluateProgress{"Evaluate Progress"} EvaluateProgress -->|Weight Loss / Static| Investigate["FLAG: Investigate Cause
Intensive Counseling"] EvaluateProgress -->|Good Progress| Medication["Check Medication Schedule
Albendazole / Measles Vaccine"] Investigate --> Medication Medication --> RecalculateRUTF["RECALCULATE RUTF
Weekly Ration based on Weight"] RecalculateRUTF --> ScheduleNext["SCHEDULE NEXT VISIT
+7 Days"] ``` ### 4. NRU Admission & Inpatient Care Journey ```mermaid graph TB Start(["Patient Arrives
at NRU"]) --> EmergencyAssessment["EMERGENCY ASSESSMENT
Check Shock, Hypoglycemia"] EmergencyAssessment --> CheckEmergency{"Life-Threatening?"} CheckEmergency -->|Yes| EmergencyTreatment["EMERGENCY PROTOCOL"] CheckEmergency -->|No| ClassifyAdmission["Classify Admission Type
Marasmic Kwashiorkor, Infant SAM, SAM+Complications"] EmergencyTreatment --> ClassifyAdmission ClassifyAdmission --> DetermineFeedingPlan{"Determine Feeding Plan"} DetermineFeedingPlan --> SelectSchedule["Select Feeding Schedule
2-Hourly, 3-Hourly, 4-Hourly"] SelectSchedule --> Prescribe["PRESCRIBE MEDICATIONS
Ampicillin, Gentamicin"] Prescribe --> FeedingPhase["START F-75 PROTOCOL
Stabilization Phase"] FeedingPhase --> DailyCare["DAILY INPATIENT CARE
Assess Intake, Vomiting, Complications"] DailyCare --> EvaluatePhase{"Evaluate Phase Transition"} EvaluatePhase -->|Ready| TransitionF100["TRANSITION TO F-100
Rehabilitation Phase"] EvaluatePhase -->|Not Ready| Stabilize["Continue F-75"] TransitionF100 --> Discharge["DISCHARGE TO OTP
Once Medical Complications Resolve"] ``` ### 5. SFP (Supplementary Feeding) Journey ```mermaid graph TB Start(["Patient with MAM
Arrives"]) --> Triage["ANTHROPOMETRY
Confirm MUAC 11.5-12.5cm
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
(e.g., CSB+, Plumpy'Sup)"] DispenseSFP --> BiWeeklyFollowUp["BI-WEEKLY FOLLOW-UP
Monitor Weight Gain"] BiWeeklyFollowUp --> CheckDischarge{"Reached Discharge Criteria?
MUAC >12.5cm for 2 visits"} CheckDischarge -->|Yes| Discharge["Discharge as Cured"] CheckDischarge -->|No| BiWeeklyFollowUp CheckDischarge -->|Deteriorates| ReferOTP ``` --- ## Functional Requirements ### 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. | ### Patient Search | # | 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 | # | 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. | | 4 | 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") 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'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". | | 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". | ### 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** 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** | 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** | 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** | Height Constraints | Height submitted | Must be between 45.0 cm and 150.0 cm. | Display: "Height outside expected limits." | | **VAL-004** | Appetite Test Restriction| Failed Appetite Test | A passed test is required to remain in OTP. | Display: "Patient cannot swallow RUTF. Prompt NRU Referral generated." | | **VAL-005** | Negative Weight Gain | Weight = current < previous | Validates clinical deterioration. | Prompt: "Confirm weight loss parameter. Investigate underlying conditions." | | **VAL-006** | Contraindicated Drugs | User prescribes Iron / Zinc | Prevented by active SAM diagnosis. | Block: "Medication explicitly contraindicated for acute malnutrition." | | **VAL-007** | Automated RUTF Dosing | Dispensation screen opened | Calculate `Weight * Factor / Packet Kcal`. | Recommends exact packet count. Prompts warning if overridden. | | **VAL-008** | SFP Admission 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** | Discharge Criteria | User initiates "Cured" Discharge | MUAC > 12.5cm and zero oedema for >14 days | Display: "Discharge criteria unmet. Minimum recovery time not satisfied." | | **VAL-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** | Provide secure, password-protected Role-Based Access Control logic for all authorized users. | | **Security - Audit Trails** | Maintain immutable event logs for every user login/logout, data CRUD operation, and BDE intervention. | | **Security - Authentication** | Lock users out automatically subsequent to 5 sequential invalid password combinations. | | **System - Offline Capability** | Community screening modules must allow offline caching for HSAs in remote villages with intermittent connectivity, utilizing delayed sync. | | **System - Scalability** | The module must comfortably support processing thousands of concurrent users scaling across 300+ Malawian health facilities natively executing within MAHIS. | | **Usability - Dynamic 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** | Prevent nonsensical data (extreme height loss between weekly visits) from contaminating cohort health metrics using strict range delimiters. | | **Interoperability - DHIS2** | Expose an internally accessible API strictly complying with DHIS2 dataset formatting specifications natively matching Ministry aggregate definitions. | | **Hardware Constraints** | Render interfaces explicitly mobile-first, targeting optimized execution over constrained processor generic Android tablets. | --- *End of Document*