Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Implemented validation for updating the project start date and the end date. Implementing this ensures that any changes made to these critical campaigns adhere to the predefined criteria.
Added the number of sessions field in additional details for the attendance registry, which enhances the system's ability to manage attendance tracking within projects. This field specifically denotes the frequency of attendance-taking sessions for a given project. Each session represents an instance where attendance is recorded, typically within a single day. For instance, if a project requires attendance twice daily (for example, morning and afternoon sessions), the number of sessions field would indicate ‘2’ to reflect this frequency. This information provides crucial context for understanding the attendance requirements and scheduling patterns within the project.
Added the ability to search by user UUID (Universally Unique Identifier) for individual search. This addition expands the search capabilities within the DIGIT-HCM platform, providing users with a more versatile and efficient means of locating specific individuals. A UUID is a unique identifier assigned to each user within the system. This new feature allows users to quickly retrieve information about a particular individual by entering their UUID into the search functionality. By leveraging UUIDs, which ensure each user has a distinct identifier, the search process becomes highly precise and reliable, minimising the risk of ambiguity or confusion, particularly in large datasets.
Health Facility Referral Feature Update
New Feature: HF Referral
DIGIT-HCM now includes a Health Facility Referral (HF Referral) functionality that enhances the platform’s capability to efficiently manage referrals across health facilities. This addition is aimed at improving coordination and communication, ensuring a smoother referral process.
Enhance the inventory flow with the sender ID and the receiver ID added. Including sender and receiver IDs offers flexibility in handling inventory transactions within the DIGIT-HCM platform. Transactions can involve movement between warehouses, from warehouse to staff, from staff to staff, or any combination thereof. This accommodates various scenarios, such as inter-departmental transfers, internal requisitions, or supplier deliveries.
Sender Identification: The sender ID specifies the entity initiating the inventory transaction. This could be a warehouse, indicating that inventory items are being dispatched from a specific storage location. Alternatively, it could represent an individual staff member responsible for authorising the transfer of inventory items.
Receiver Identification: The receiver ID denotes the entity or individual receiving the inventory items. Similar to the sender ID, this could represent either a warehouse where the items are being delivered or an individual staff member who is the designated recipient.
Implemented offline-enabled functionality in the Attendance Module. Implementing this functionality in the attendance module significantly enhances the usability and reliability of the DIGIT-HCM platform, especially in environments where internet connectivity may be intermittent or unavailable.
Help countries achieve Health SDGs by building digital public goods that strengthen public health.
Health risks such as infectious diseases generally cannot be addressed at the individual and health worker levels alone. They require intervention at the policy level. This is where public health campaigns come into the picture.
Public health campaigns are specific, time-bound health services that respond to particular challenges and are provided to a target population by dedicated campaign workers. Such campaigns can influence perceptions, attitudes, and behaviors to achieve the desired goal. They can prevent or respond to disease outbreaks, control or eliminate targeted diseases, or achieve other health objectives. According to the World Health Organisation (WHO), two strains of wild poliovirus have “officially been certified as globally eradicated,” and immunisation campaigns have played a key role in this. Over the years campaigns to fight malaria, AIDS and other diseases have not only improved the lives of millions of people in poor and developing countries and disadvantaged communities, but it has also enabled them to lead more productive lives.
In 2019, 534 campaigns were tracked globally, providing vaccines, drugs, vitamins, and preventative tools for malaria, malnutrition, measles, meningitis, NTDs, polio, tetanus, typhoid, and yellow fever. However, by the end of 2020, an estimated 50% of the public health campaigns were postponed, suspended, or canceled due to the COVID-19 pandemic. This left millions of people and children at risk of vaccine-preventable diseases and malnutrition.
As health campaigns catch up on missed vaccinations, drugs, and other preventative measures globally, we have an opportunity to reimagine the way countries can plan and implement campaigns through open-source digital platforms. At eGov Foundation, we believe that designing & developing a DIGIT Health Campaign Management (HCM) product will enable countries, communities, and healthcare professionals to manage and implement health programmes more effectively. This also aligns with our aim of expanding capabilities in public health by reducing “diseases of poverty” such as malaria, HIV, and tuberculosis (TB) through digital tools.
DIGIT Health Campaign Management (HCM) is a free, fit-for-purpose, open-source product, built as a Digital Public Infrastructure (DPI), to help countries transform public health campaigns.
Category (Tag) | Services | Docker Artifact ID | Remarks |
---|---|---|---|
Name of the field | Description | Mandatory | Input | Validation | Comments | Need data from program/state |
---|
Feature
Service name
PR
Attendance Session Configuration
Attendance
Role action Mapping Service register
Feature
Service name
PR
Health Facility Referral
referral
Attendance
Devops
Core
Access control
egov-accesscontrol:v1.1.3-72f8a8f87b-24
Not changed
Encryption service
egov-enc-service-db:v1.1.2-72f8a8f87b-9
Not changed
File store
egovio/egov-filestore:v1.2.4-72f8a8f87b-10
Not changed
Localisation
egov-localization-db:v1.1.3-72f8a8f87b-6
Not changed
ID Gen
egov-idgen-db:v1.2.3-72f8a8f87b-7
Not changed
Indexer
egov-indexer-db:v1.1.7-f52184e6ba-25
Not changed
Location
egov-location-db:v1.1.5-f9271c8-7
Not changed
MDMS
egov-mdms-service:v1.3.2-72f8a8f87b-12
Not changed
Notification mail
egov-notification-mail:health-digit-master-6865af2823-2
Not changed
Notification SMS
egovio/egov-notification-sms:v1.1.3-48a03ad7bb-10
Not changed
OTP
egov-otp-db:v1.2.2-72f8a8f87b-12
Not changed
Persister
egov-persister:v1.1.5-3371bc2-5
Not changed
Searcher
egovio/egov-searcher:v1.1.5-72f8a8f87b-16
Not changed
URL shortening
egov-url-shortening-db:v1.1.2-1715164454-3
Not changed
User
egov-user-db:health-digit-dev-f2ddde9-32
Not changed
User OTP
egovio/user-otp:health-digit-master-6865af2823-3
Not changed
Workflow
egov-workflow-v2-db:v1.2.1-df98ec3c35-2
Not changed
Report
egovio/report:v1.3.4-96b24b0d72-16
Not changed
Document uploader
egov-document-uploader-db:v1.1.0-75d461a4d2-4
Not changed
Audit service
audit-service:audit-heatlh-40b1a4018a-1
Not chnaged
Error handler
error-handler:master-impel-dump-5022b7acff-1
dashboard-analytics
dashboard-analytics:master-impel-f705ac483a-48
dashboard-ingest
dashboard-ingest:v1.1.4-72f8a8f87b-10
Health v1.3
Individual
egovio/individual:v1.1.3-69baa2050a-190
Changed
Household
egovio/household:v1.1.1-b78923bee4-103
Not changed
Facility
egovio/facility:v1.1.0-73167482a2-28
Not changed
Product
egovio/product:v1.1.0-73167482a2-12
Not changed
Project
egovio/project:v1.1.2-69baa2050a-199
Changed
Stock
egovio/stock:v1.1.2-69baa2050a-87
Changed
Referral management
egovio/referralmanagement:v1.0.1-69baa2050a-105
Changed
Service request
egovio/service-request:v1.0.0-a51bee1435-7
Not changed
Transformer
egovio/transformer:v1.1.0-73167482a2-38
Not changed
Complaints
pgr-services:v1.1.7-f58e5abb0d-8
Not changed
User management
egov-hrms:v1.2.6-ac8c591238-4
Changed
Attendance
attendance:v1.0.0-2c51c532-54
Changed
MDMS HCM-v1.3
Config HCM-v1.3
Devops HCM-v1.3
Localisation HCM-v1.3
Health Campaign Management
Overview of public health campaign challenges resolved by DIGIT HCM
Health Products
The different modules and features of the Frontline Worker's App, the Campaign Management Dashboard, Microplanning, and HCM Admin Console
Setup
Plan, gather requirements, install and configure DIGIT HCM
Address | Mandatory | User | Yes |
Door number | House number or door number. | O | User |
Latitude | Latitude of the address. | O | System |
Longitude | Longitude | O | System |
Location accuracy | Accuracy of the address, latitude and longitude, in metres. | O | System |
Type | Type of address: Permanent, correspondence, other. | R | User |
Address Line 1 | Apartment, block, street of the address. | O | User |
Address Line 2 | Locality, area, zone, ward of the address. | O | User |
Landmark | Additional landmark to help locate the address. | O |
City | City of the address. This can be represented by the tenant ID itself. | R | User |
Pincode | Pin code of the address. | R | User | Indian pin codes will usually be all numbers. |
Building name | Name of the building. | O | User |
Street | Street name. | O | User |
Locality |
Start date | Campaign start date. | Mandatory | User | Yes |
End date | Campaign end date. | Mandatory | User | Yes |
Targets | Targets will be provided after the micro-planning exercise | Yes |
Beneficiary type | Mandatory | User | Yes |
Baseline | The total number of individuals/ households. | Mandatory | User | Yes |
Target number |
Department | Project department | Mandatory | User | Yes |
Description | Description of the project. | Mandatory | User | Yes |
Set up tasks to be carried out as a part of the campaign |
Tasks |
Resources [ ] | Array of resources that are a part of the campaign. |
Task resources |
Delivery comment | Capture comments regarding the delivery of campaign resources. | Mandatory | User | The final list of reasons to be given by the state/programme during impel | Yes |
Status | Status of the task. For example, delivered, not delivered, partial delivery, refused, insufficient, etc. | Mandatory | User | The final list of tasks' status to be given by the state/program during impel. | Yes |
Here are the articles in this section:
Here are the articles in this section:
Better user experience for frontline workers leads to better quality data captured in less time, thus facilitating improved efficiency
The ability for frontline workers to access on-demand training, and in-app guided walkthroughs, enabling improved efficiency
Ability to use geospatial tools to analyse and identify missed households. This leads to increased coverage and identification of fraud by frontline workers
Ability to reuse campaign data for planning and executing other campaigns leading to lower costs and lower turnaround time, leading to better estimation and planning
Provide visibility into stock availability and consumption data to enable supervisors to identify leakages/ wastages and avoid potential stock-outs
Track attendance based on task completion – this provides visibility into incentives due based on attendance, reducing ambiguity in payment amounts
Ability to leverage staff registry and attendance tracking to request and release digital payments to campaign staff
Quick setup and launch
The dashboard provides the ability to view better quality data in near real-time that provides actionable insights
Quick and easy integration with existing platforms and systems such as supply chain, HRMS, LMIS, and DHIS2, facilitating interoperability and coordination at scale
Countries own and evolve digit
The DIGIT Health Campaign Management (HCM) aims to expand capabilities in public health. It covers campaign setup, planning, registration and delivery, inventory management, and real-time data dashboards enabling the establishment of digital public health infrastructure for faster and cost-effective health campaigns. DIGIT HCM is designed to evolve rapidly and adapt to local needs while addressing systematic challenges. It enables decision-makers and programme managers to streamline campaign planning, manage workflows and monitor service delivery in real-time to aid data-driven decision-making.
Health campaigns are a commonly used strategy that helps the routine health system prevent or control diseases by delivering essential healthcare interventions in a time-bound manner.
Health campaign management faces several challenges, which include the inability to fetch accurate population targets or monitor the campaigns in real-time and tune the campaign to the defined population needs. Lack of timely and actionable data is often the primary cause of operational inefficiency. Additional concerns relate to siloed, redundant datasets adding to the implementation costs.
There is a need for a campaign management product that offers:
The goals include:
Increased campaign effectiveness (coverage)
Reduced time to respond to outbreaks
Improved efficiency (lower costs)
Increased transparency and accountability
Watch the video below to find out how DIGIT Health Campaign Management meets the above goals and more:
Setup campaigns in 3 days
Run hundreds of campaigns simultaneously
Record bednet delivery in 1 minute
Real-time campaign data dashboards
Interoperability with any system
Reusable campaign setup
Data privacy by maintaining control over data from day one
The Health Campaign Management V1.0 frontline worker’s app includes four new modules with several features that allow frontline teams to perform their tasks efficiently even when offline. To learn more about the DIGIT Health Platform and the Health Campaign Management (HCM) product, please follow the GitBook link.
Feature | Description |
---|---|
Click here to access the Jira dashboard.
Field 'type' does not exist or this field cannot be viewed by anonymous users.
The field 'assignee' does not exist or this field cannot be viewed by anonymous users.
A value with ID '10141' does not exist for the field 'project'.
Field 'labels' do not exist or this field cannot be viewed by anonymous users.
The field 'priority' does not exist or this field cannot be viewed by anonymous users.
Not able to sort using field 'priority'.
Click here to view the feedback from the UX audit.
Health Campaign Management v1.3: The Frontline Worker’s App includes two new features that enable frontline teams to perform their tasks efficiently even when offline.
To learn more about the DIGIT Health Platform and the Health Campaign Management (HCM) product, click .
Name of the field | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Need data from program/state |
---|
Name of the field | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Validation | Comments | Need data from program/state |
---|
Here are the articles in this section:
Role action mapping has only been completed for registrars, distributors, and system administrators to support the development of registration and delivery flows. Other roles are still in progress.
Roles | Description | Actions | Comments |
---|
Name of the field | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Validation | Comments | Need input from program/state |
---|
Name of the field | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Validation | Comments | Need data from program/state |
---|
Building blocks are individual, independent blocks of solutions, that are assembled to solve large, complex problems. With building blocks, any solution could be evolved to fit the evolving problem as against building a new system from the ground up.
DIGIT HCM is built using modular building blocks that are highly configurable allowing countries to tailor the product to their specific needs, easily. These building blocks are reusable allowing for the creation of new solutions. They facilitate reusable assets for all campaigns, and have the following benefits:
Easy to adapt to local needs (Highly configurable - easy to rework)
One asset for all campaigns (Multiple campaign types, diseases)
Maximise leverage (Additive blocks - Create new solutions)
With these building blocks, one campaign could easily be pivoted to set up another health campaign. For example. a malaria campaign could be pivoted from a cholera campaign to an NTD campaign with minimal effort and time. Beyond campaigns, the same blocks could create solutions for routine health delivery and other health needs.
Data resides in shared open registries enabling the reuse of data and establishing a single source of truth. Interoperability is baked into the design of DIGIT HCM allowing free flow of data across different systems. DIGIT HCM enables countries to set up their digital public infrastructure for health.
From setting up campaigns quickly, to planning, inventory management, registrations, service delivery, and real-time data dashboards, DIGIT HCM covers all elements required to run effective campaigns. The same product can be used for all campaign types across multiple diseases.
Field name | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Validation | Comments | Need data from program/state |
---|
Registration
A mobile app that enables the field teams to easily register eligible beneficiaries with built-in checks that enforce data collection protocols and validations to avoid data entry errors. It facilitates the following:
Ability to register new beneficiaries (households and individuals) with the beneficiary’s address along with GPS coordinates, personal details (name, date of birth, gender, ID), and contact details.
Ability to search existing beneficiaries and update details.
Reuse beneficiary data across various health campaigns.
Sync registration data collected while offline on connecting to the internet
Service Delivery
A mobile app to enable the field teams to search for eligible beneficiaries and deliver the healthcare intervention with built-in checks that enforce data collection protocols and validations to avoid data entry errors. It facilitates the following:
Ability to search registered beneficiaries and deliver benefits (products/services) for a single-round campaign.
Ability to configure and deliver multiple products to a beneficiary.
Provide decision support to the user by automatically calculating the number of benefits to be delivered based on the configured formulae
In-app cards with KPI’s to visualise progress against assigned tasks.
Sync registration data collected while offline on connecting to the internet.
Inventory Management
A mobile app that enables warehouse managers to capture the inflow and outflow of resources from their warehouses to identify potential stockouts, wastage, and fraud, and take corrective action. It facilitates the following:
Ability to record stock received into the warehouse as well as issued to other warehouses or frontline teams.
Ability to record stocks that were lost and damaged either during storage or during transit.
Ability to perform auto-stock reconciliation to provide visibility into available stock on hand.
Sync stock records collected while offline on connecting to the internet.
Supervision (Survey)
A mobile app that enables supervisors to to track the campaign staff's adherence to the campaign’s standard operating protocols, and record observations after the inspection. It facilitates the following:
Ability to configure a checklist with support for the following question types:
- Yes/no type questions (Radio buttons).
- Short answer questions (Text box).
- Long answer questions (Text box).
- Multiple response questions (Checkbox).
Ability to configure basic validations on checklist question.s
Sync checklist responses collected while offline on connecting to the internet.
Serial number | The sequence number for the list. |
Boundary hierarchy type | The meaningful name to define a group of boundaries defined to perform one function. | Mandatory | MDMS | String | 2 | 256 | Yes |
Code | A code is used to identify a certain classification of the type of boundary hierarchy. | Mandatory | MDMS | String | 2 | 64 | Yes |
Description | Mandatory | MDMS | String | 2 | 256 | Yes |
Stock details |
Product variant ID | The product variant that is being transferred. | Mandatory | User | String | 2 | 64 | No |
Quantity | The number, or quantity, or the count of units of the product variant that are being transacted. | Mandatory | User | Integer | Outputs from the micro-plan. | Yes |
Reference ID | The reference entity for which the stock transfer is taking place. | Mandatory | User | String | No |
Reference ID type | The entity type that the reference ID refers to. For example, 'Project'. | Mandatory | User | String | 2 | 64 | String | No |
Transaction type | The kind of transaction that is taking place: Received, dispatched. | Mandatory | User | String | No |
Transaction reason | The status of the transaction: Received, returned, loss. | Mandatory | User | String | No |
Transacting party ID | The ID of the party from/to which the product variant stock is being transferred. | Mandatory | User | String | 2 | 64 | No |
Transacting party type | The type of entity that the transacting party ID refers to. For example, 'Warehouse'. | Mandatory | User | String | 2 | 64 | The list of warehouses/facilities and their type to be provided by the program/state during impel. | No |
Stock reconciliation |
Physical count | The count of units of the product variant as a result of a physical count. | Mandatory | User | Integer | No |
Calculated count | The count of units of the product variant that is calculated from the stock movements. | Mandatory | User | Integer | No |
Facility details |
Facility ID | The ID of the facility where the stock of the product variant is being transferred. | Mandatory | System | String | 2 | 64 | List of warehouses/facilities and their type to be provided by the programme/state during impel. | No |
Facility name | The administration name of the facility. | Mandatory | User | String | 2 | 2000 | Yes |
Is it permanent? | Whether the facility is permanent or not. | Mandatory | User | Boolean | Yes |
Usage | The purpose of the facility: Storage warehouse, medical facility, sewage treatment plant. | Mandatory | User | Dropdown | Yes |
Storage capacity | Physical storage capacity of the facility in cubic metres. | Optional | User | Numeric | Yes |
Address | Mandatory | User | String |
Module | Functionality |
Registration | Mobile app that enables the field teams to easily register eligible beneficiaries with built-in checks that enforce data collection protocols and validations to avoid data entry errors. The new features added are:
|
Service Delivery | Mobile app to enable the field teams to search for eligible beneficiaries and deliver the healthcare intervention with built in checks that enforce data collection protocols and validations to avoid data entry errors.
|
Inventory Management | Mobile app that enables the field staff to capture inflow and outflow of resources received from the warehouse or the supervisors.
|
Sync |
|
System administrator | 1. Define the campaign type (project type). 2. Create campaign(s) (projects). 3. Create products. 4. Create product variants. 5. Assign product variants as campaign resources. 6. Create, search, update, and deactivate user accounts. 7. CRUD other system administrator accounts. 8. Create, assign, update, delete role assignments. 9. Create, assign, update, delete campaign assignments. 10. Define MDMS configurations (including the project type). 11. Create localisation. 12. Create, search, edit, and delete checklists. 13. Assign checklists to projects. 14. Edit/delete filled checklists. 15. Boundary setup. |
Registrar | Frontline worker (FLW) who is responsible for registering households. The registrar also shares awareness messages (SBCC). | 1. Create a new household. 2. Create a new individual. 3. Map individuals to households. 4. Assign household/individual as the beneficiary of a campaign. 5. Read, update, and delete for all actions mentioned above. 6. View offline reports. 7. Create, and view complaints. |
Distributor | Frontline worker (FLW) who is responsible for registering households and updating the service delivery details against the registered households. The registrar also shares awareness messages (SBCC). | 1. Create a new household. 2. Create a new individual. 3. Map individuals to households. 4. Assign a household/individual as the beneficiary of a campaign. 5. Update service delivery against the beneficiary (household/ individual). 6. Read, update, and delete for all actions mentioned above. 7. View offline reports. 8. Create, and view complaints. |
Field supervisor | Responsible for monitoring the field teams. This user is also responsible for training the FLW teams, monitoring the field team's progress during campaign execution, managing stocks at the community warehouse, and performing random inspections during the campaign execution. | 1. View assigned checklists. 2. Fill assigned checklists. |
National supervisor | Supervisors are responsible for overseeing the campaign operations, conducting random and scheduled inspections, filling supervision checklists, supporting field supervisors to tackle operational issues under their jurisdictions, and training users on campaign SOP and digital tools. | 1. View assigned checklists. 2. Fill out assigned checklists. 3. View completed checklists. 4. Create, search, update and deactivate user accounts (except the system admin). 5. Assign, or update, or delete role assignments. 6. Assign, or update, or delete campaign assignments. 7. View the national-level dashboard page. 8. Select and view the dashboard for each province. 9. View indicators and visualisations district-wise for each province. 10. Drill-down charts to view the metrics upto the lowest boundary level (village). 11. Filter dashboard indicators by the date range. 12. Share dashboard pages/visualisations by email/WhatsApp. 13. Download dashboard pages/visualisations as PDF/JPG. 14. View the offline Excel reports at specified intervals. 15. View the checklists completion rate for the country across all levels of supervisors (national, province, district, and field). |
Provincial supervisor | Supervisors are responsible for overseeing the campaign operations, conduct random and scheduled inspections, fill supervision checklists, supporting field supervisors to tackle operational issues under their jurisdictions, and training users on campaign SOP and digital tools. | 1. View assigned checklists. 2. Fill out assigned checklists. 3. View completed checklists. 4. Create, search, update, and deactivate user accounts (except for the system admin). 5. Assign, or update, or delete role assignments. 6. Assign, or update, or delete campaign assignments. 7. View the province-level dashboard page. 8. View indicators and visualisations district-wise for the province. 9. Drill-down charts to view the metrics upto the lowest boundary level (village). 10. Filter dashboard indicators by the date range. 11. Share dashboard pages/visualisations by email/WhatsApp. 12. Download dashboard pages/visualisations as PDF/JPG. 13. View the offline excel reports at specified intervals. 14. View the checklists completion rate for the assigned province across all levels of supervisors (national, province, district, and field). |
District Supervisor | Supervisors are responsible for overseeing the campaign operations, conducting random and scheduled inspections, filling supervision checklists, supporting field supervisors to tackle operational issues under their jurisdictions, and training users on campaign SOP and digital tools. | 1. View assigned checklists. 2. Fill out assigned checklists. 3. View completed checklists. 3. Create, search, update, and deactivate user accounts (except for the system admin). 4. Assign/update/delete role assignments. 5. Assign/update/delete campaign assignments. 6. View the district-level dashboard page. 8. View indicators and visualisations, administrative post-wise, for the district. 9. Drill down charts to view the metrics upto the lowest boundary level (village). 10. Filter dashboard indicators by the date range. 11. Share dashboard pages/visualisations by email/WhatsApp. 12. Download dashboard pages/visualisations as PDF/JPG. 13. View offline excel reports at specified intervals. 14. View the checklists completion rate for the assigned district across all levels of supervisors (national, province, district, and field). |
Warehouse manager | 1. Record stock transactions: Create receipt, issues, and returns. 2. View stock reconciliation (system calculated). 3. Submit the reconciliation form. 4. View offline reports for inventory reconciliation. |
Programme manager | This user consumes the data collected and shared by the FLW and takes decisions based on the data present. This user must have access to all dashboards with the default view of the data belonging to their jurisdiction and a level below. For example, a provincial manager must be able to view the aggregated data from the entire province as well as the data for individual districts after logging into the system. |
Help desk user | Supports an executive to resolve, routes complaints raised during the campaign. This user also helps in user management requests. | 1. Create, view complaints. 2. Resolve complaints, assign complaints, and reject complaints. 3. Create, search, update, and deactivate user accounts (except for the system admin). 4. Assign/update/delete role assignments. 5. Assign/update/delete campaign assignments. |
Household details |
ID | Unique system-generated GUID. | Mandatory | System | String | 2 | 64 | No |
Client reference ID | Unique client-generated GUID. | Mandatory | Client generated | String | 2 | 64 | No |
Household ID | The ID of the household. | Mandatory | User/system | String | 2 | 64 | No |
Member count | The total number of individuals in a household. | Mandatory | User | Numeric | 1 | 1000 | A household can be created only when it has at least 1 individual assigned to the household. |
Individual ID | The ID of the individual | Mandatory | User/system | String | 2 | 64 |
Individual details |
ID | Unique system-generated GUID. | Mandatory | System | String | 2 | 64 | No |
Client reference ID | Unique client-generated GUID. | Mandatory | Client generated | String | 2 | 64 | No |
Name of the individual | Name of the individual being registered as the given name, family name, and other names. | Mandatory | User | String | 2 | 200 | No |
Head of the household | Capture if the registered individual is also the head of the household. | Mandatory | User | Boolean | No |
Type of ID | Capture the type of ID. | Mandatory | User | Array | The list of IDs to be given by the programme/state during impel. If no forms of ID are allowed, then a system generated ID is to be selected for the ID type. |
Identity number | Capture the ID number belonging to the beneficiary. | Mandatory | User | String | 2 | 64 | If the individual has no forms of ID, then a unique system generated ID must be assigned. | Validations for specific ID types to be built during impel depending on the list of acceptable IDs. |
Date of birth | Date of birth in DD/MM/YYYY format. | Optional | User | String | The DoB cannot be in the future. Error Message: DoB cannot be in the future. |
Age | The age of the individual. | Optional | User | Integer | If DoB is not known, allow the user to enter his/her age. |
Contact number | The mobile number of the registered individual. | Optional | User | Integer | Any validations on mobile numbers to be built during impel as per country-specific requirements. |
Gender | Gender of the registered individual. | Optional | User | String | A product allows three types of genders: male, female and other. Adding/deleting from this list to be done during impel in accordance with country-specific requirements. |
Stock details |
Product variant ID | The product variant that is being transferred. | Mandatory | User | String | 2 | 64 | No |
Quantity | The number, or quantity, or the count of units of the product variant that are being transacted. | Mandatory | User | Integer | Outputs from the micro-plan. | Yes |
Reference ID | The reference entity for which the stock transfer is taking place. | Mandatory | User | String | No |
Reference ID type | The entity type that the reference ID refers to. For example, 'Project'. | Mandatory | User | String | 2 | 64 | String | No |
Transaction type | The kind of transaction that is taking place: Received, dispatched. | Mandatory | User | String | No |
Transaction reason | The status of the transaction: Received, returned, loss. | Mandatory | User | String | No |
Transacting party ID | The ID of the party from/to which the product variant stock is being transferred. | Mandatory | User | String | 2 | 64 | No |
Transacting party type | The type of entity that the transacting party ID refers to. For example, 'Warehouse'. | Mandatory | User | String | 2 | 64 | The list of warehouses/facilities and their type to be provided by the program/state during impel. | No |
Stock reconciliation |
Physical count | The count of units of the product variant as a result of a physical count. | Mandatory | User | Integer | No |
Calculated count | The count of units of the product variant that is calculated from the stock movements. | Mandatory | User | Integer | No |
Facility details |
Facility ID | The ID of the facility where the stock of the product variant is being transferred. | Mandatory | System | String | 2 | 64 | List of warehouses/facilities and their type to be provided by the programme/state during impel. | No |
Facility name | The administration name of the facility. | Mandatory | User | String | 2 | 2000 | Yes |
Is it permanent? | Whether the facility is permanent or not. | Mandatory | User | Boolean | Yes |
Usage | The purpose of the facility: Storage warehouse, medical facility, sewage treatment plant. | Mandatory | User | Dropdown | Yes |
Storage capacity | Physical storage capacity of the facility in cubic metres. | Optional | User | Numeric | Yes |
Address | Mandatory | User | String |
Boundary code | This is a code for the sub-classification of a particular boundary. It should be unique across all boundaries defined. | Mandatory | MDMS | String | 2 | 64 | Yes |
Boundary name* (In English) | The name of the boundary that is being defined in the English language. | Mandatory | MDMS | String | 2 | 256 | Yes |
Boundary name* (In local language) | The name of the boundary that is being defined in the local language of the state. For example, Portuguese, Hindi, etc. | Mandatory | MDMS | String | 2 | 256 | Yes |
Parent boundary code* | This is the boundary code of the parent which identifies to which parent the child belongs to. | Mandatory | MDMS | String | 2 | 64 | Yes |
Boundary type* | The name of the boundary type, that is, ward, zone, etc. | Mandatory | MDMS | String | 2 | 256 | Yes |
Hierarchy type code* | The code of the boundary hierarchies for which this particular boundary is defined. | Mandatory | MDMS | String | 2 | 64 | Yes |
Campaign start date | The date when the campaign starts in the respective boundary. | Mandatory | MDMS | Date | Yes |
Campaign end date | The date when the campaign is supposed to end in the respective boundary. | Mandatory | MDMS | Date | Yes |
Total households | Total households present in the boundary (as per the micro-plan). | Mandatory | MDMS | Numeric | Yes |
Targeted households | Total households targeted for the respective boundary (as per the micro-plan). | Mandatory | MDMS | Numeric | Yes |
Total individuals | Total individuals present in the boundary (as per the micro-plan). | Mandatory | MDMS | Numeric | Yes |
Targeted individuals | Total individuals targeted in the boundary (as per the micro-plan). | Mandatory | MDMS | Numeric | Yes |
Bed nets estimated to be delivered | Total bed nets estimated to be delivered in the boundary (as per the micro-plan). | Mandatory | MDMS | Numeric | Yes |
Module | Functionality |
Attendance Management | This is an offline-first module that allows supervisors who mark attendance for their teams to record their proof of work based on which the on-field workers will get paid. The Attendance Module supports single-session and double-session attendance marking based on the cadence followed by the programme team. |
Health Facility Referral | This is an offline-first feature that allows workers working at a given health facility (HF) who will be responsible for giving the diagnosis based on the type of symptoms they observe, then make a diagnosis, and provide the appropriate drugs. This module provides the health facility workers with the capability to track referrals made by on-field health workers to different health facilities digitally via the Digit HCM app capturing all the cases of:
|
A digital partner for different users such as registrars, frontline workers, and supervisors, this is an easy-to-use app with offline capability, guided user flows, and analytics support. It simplifies routine tasks, has built-in checks to reduce errors, and provides on-call assistance.
The app enables the following:
Register new households and individuals.
Search existing households and individuals
Update details for existing households and individuals.
Record service delivery of healthcare interventions to households and individuals for a single round campaign.
Auto-calculation of resources to be delivered to a household or individuals based on the configured rule.
Record stock movement for a warehouse-stock received, issued, returned, damaged and lost.
Stock reconciliation to automatically calculate the stock on hand available in the warehouse.
Offline reports for viewing all stock transactions and stock counts in the mobile application.
Register complaints on the mobile app with offline support.
Search, sort, and filter complaints based on configured parameters.
Configurable checklists for supervisors for various supervision activities.
Multi-language support.
Track GPS coordinates to record locations with offline support.
Progress bar for monitoring the daily work status of registration and service delivery against the targets assigned.
Reuse beneficiary data from the registries for future campaigns.
Web portal for user management.
In-app notification to prompt users to perform actions that are due.
Click on the links below to learn more about the different features of the app:
Multi-round campaigns for health initiatives entail registering beneficiaries once, followed by interventions delivered in successive rounds at predefined intervals. Click on the link below to learn more:
Public health initiatives intended to address particular health-related concerns within a predetermined timeframe or scope, and in a single round. Click on the link below to learn more:
Here are the articles in this section:
These are standard features that can be used as-is across any campaign depending on the requirement, with minimal configurations, and can be shared with other products/services as well.
Click on the links below to learn more:
Click on the links below to learn more:
An illustrative guide to using the Inventory Management module
In health campaigns, it is crucial to keep track of the resources delivered to prevent stock mis-handlings and maximise coverage. This helps to track the resource till the last mile delivery, that is, it captures the stock till it reaches the distributor, and the distributor can record the quantity of stock received along with other stock transactions.
Users can do the following:
Track stock till the last mile.
Capture stock details till the end user to keep track of the transactions that take place.
Record the stock transactions during a campaign.
Ensure the safety of stock.
Keep track of the stock count and verify from both ends (received versus issued) to prevent the misuse of stocks.
After logging into the application, the user lands on this screen which displays daily performance (number of households registered). The progress bar must reset daily at 00:00 hours, and start from 0 registrations. The action buttons related to the beneficiary are present which include:
Beneficiaries
View Reports
Sync Data
Call Supervisor
File Complaint
Manage Stock
On the bottom, there is a card that shows how many records are unsynced for the user’s convenience to sync data. If all the records are synced, then the card must say “All records are synced”.
The help button is on every screen of the application, and by clicking on it, a user can get a walkthrough of the elements on that screen.
On the top right, the administrative area assigned to the user is displayed which will be based on the level of hierarchy.
The hamburger button on the top left corner covers some other actions mentioned further.
This includes all the stock transactions that can be captured by the distributor.
The transaction details are captured on this screen. The date and administrative unit fields are auto-captured by the system and are non-editable. The team code/identifier is captured from the user profile and it must be editable.
The stock-related details are captured on this screen. “Select product” is a dropdown field that includes the resource that has been received. “Received from” is a search-based dropdown field, clicking on which navigates the user to the search facility screen that includes the facilities along with ‘Supervisor’ as the value. If the user selects ‘Supervisor’ then he/she must enter the supervisor’s name. The user must enter the quantity received, and if any additional comments are needed, they can be added.
Once the user clicks on ‘Submit’, the confirmation pop-up appears. If the user clicks on the ‘Submit’ button, the acknowledgement screen appears, and ‘Cancel’ takes the user back to the previous screen.
This screen includes all the fields except for the facility field.
This screen includes all the fields except for the facility field.
An illustrative guide to using the Single-Round Registration & Delivery module
This enables frontline workers to register households and individuals using the HCM application.
Register households
Add/Delete members to/from the households
Edit household/individual details
Delete household
Record delivery of an intervention
User Role | Scope of Action | Role Description |
---|---|---|
When field and district supervisors navigate to the home screen, the beneficiaries button is visible to them.
On this page, the following actions can be performed:
You can register a new household only after attempting a search.
Click on the "Register New Household" button to register a household.
After the user clicks on "Register New Household", the page navigates to the "Household Location" page.
The "Administrative Area" is the only mandatory field. "Address Line 1", "Address Line 2", 'Landmark' and "Postal Code" are optional fields.
Clicking on the 'Next' button will take the user to the "Household Details" page where the number of members living in the household can be registered.
Clicking the 'Next' button will take the user the "Individual details" screen.
The first individual added will be the "Head of Household" by default.
The name, ID type, and ID number fields are mandatory. You can enter the date of birth or their age. The date birth will take precedence over age.
When the user clicks on the submit button, a popup appears asking for confirmation.
If the user clicks on ‘Submit’, the household is registered and a confirmation screen is displayed.
The user can click on the "Back to Search" button for editing the household or register new household fields.
Click on the open card to navigate to the detailed page of the household.
There is an "Edit Household" button for editing household details, which navigates the user to the household location screen. The service delivery status is present below the household’s name followed by the administrative area and the number of members.
There are cards for each member, starting from the household head. The card consists of the ‘Edit’ button for individual-level actions.
For adding new members to the household, there is the "Add Member" button below the member cards, which navigates the user to the "Individual Details" screen.
At the bottom, the "Deliver Intervention" button is present which navigates the user to the update delivery screen.
An illustrative guide to using the Multi-Round Campaign Module
This enables distributors to deliver multiple doses for multiple cycles, and record the deliveries for the drugs prescribed for that specific cycle.
Allows a distributor to see the eligible household members for the current cycle under the selected household.
For each eligible household member, the distributor has two options: Record Delivery and Unable To Deliver.
A distributor can record the exact quantity delivered for each drug with a delivery comment.
A distributor can also record if the drugs for the next set of doses in the current cycle are already provided to the beneficiary or not. If the doses for next rounds are already provided, the distributor can mark next doses as 'Delivered' for the next rounds.
User Role | Scope of Action | Role Description |
---|---|---|
Step 1
Once the distributor is on the household details page, he/she can see which beneficiary is eligible for drug delivery in the current cycle. Click on "Record Delivery" or "Unable to Deliver":
Step 2
You are taken to the Record Cycle (X) Dose (Y) screen, where you can see the status of drug delivery for all doses for the current and previous cycles (if available). Click on "Record Cycle (X) Dose (Y)" button at the bottom of the screen to record the drug delivery.
Step 3
You are taken to the "Record Delivery Details" screen. Select the "Quantity Distributed" for each drug to the beneficiary.
Additionally, you can add any new drug if distributed using the "+ Add Resource" button and mark its quantity similar to the drugs added before. You can choose to add a comment which is optional, and then press on the 'Submit' button.
Step 4
You will be directed to the "Data Successfully Recorded" screen.
The screen automatically moves to the next one that will ask if the upcoming set of doses were provided to the beneficiary or not.
Step 5: Once the User Presses on Next Button in the Previous Screen the user is taken to the "Data Recorded Successfully" screen which has 2 buttons. "View Household Details" button would take the user to Household Details page of the household for which the distributor recorded the data. "Back to Search" button will take the Distributor to the "Search Individual" Screen to search for beneficiaries from other families.
You can choose "Yes" or "No" with a table below that shows the dosage to be provided for the upcoming cycles. Click on 'Next'.
In Step 4 of recording the multi-round campaign process, based on the response provided by you for the question "Did you provide Drugs for the next Doses?" the screens for next round of delivery in a given cycle will be as follows:
If you replied Yes: If you replied 'Yes', the next time you visit the beneficiary and click on "Record Delivery" against that beneficiary in the household details page, you will see the following screen:
Once you submit the answers for the above questions, you can record the side-effects for a beneficiary by clicking on 'Yes' If no side-effects were reported, select 'No' to move on to the beneficiary details screen, and the delivery status for all cycles will show as 'Completed'.
If you replied No: If you selected "No" in Step 4, for recording the next dose, you will start again from the household details page. Click on the "Record Delivery" button and follow the same flow as for the first round of drug delivery.
This feature allows the distributors to download all the boundary data along with data for beneficiaries which will be covered by the distributor on a given day of a campaign. For this process, the distributor must select all the levels of boundary data till the lowest level of boundary hierarchy so that he/she only need to download limited data at one go, which would aid for device memory and data bandwidth constraints.
Distributor has to select the boundary hierarchy to the lowest level and then download the latest beneficiary data from the server to start their drug delivery.
Once the data is found, the data can be downloaded and the distributor can choose to download data for other boundaries if they plan to use it.
This feature can only be done in areas where a stable internet connection is available.
User Role | Scope of Action | Role Description |
---|---|---|
Step 1
When you login to the app, you will arrive on the "Boundary Selection" screen once the micro-planning data is synced. You will have to select all hierarchies of boundary till the last level of boundary hierarchy before you can click on 'Submit' and download any data onto your devices.
Step 2
Once you click on 'Submit', the app checks with the server if the selected boundary has any new data associated with it which needs to be downloaded on to the device. If new data is found, the following screen will appear and you click the 'Download' button or click on "Proceed without downloading" the data.
Step 3
If you click on 'Download' the download will start if the internet is available on the device.
Step 4
Once the download is completed, a success screen with two buttons will be shown. The "Go To Home Screen" button will take you to the app home screen and you can continue with the deliveries. If you click on the "Download More Data" button, you will be taken to the hierarchy selection screen (shown in Step 1) again.
An illustrative guide to using the Adverse Events Module
While administering the dose to a beneficiary (usually children), there can be instances when the beneficiary shows some symptoms against the dose provided. These adverse events need to be recorded and monitored as it helps to take precautionary measures for further doses as well as in future campaigns for that beneficiary. It is helpful for cases when a beneficiary's situation becomes critical and he/she needs to be referred to a healthcare facility. This is also crucial for resource tracking because, in certain campaigns, the beneficiary can be re-administered the dose even after he vomits out the medicine.
Recording adverse events.
Enabling actors to record and track the adverse events observed in a beneficiary after administration of the dose.
Monitoring the data to plan and decide for upcoming doses during the campaign.
User Role | Scope of Action | Role Description |
---|---|---|
The user needs to provide the delivery details for the resources delivered to the beneficiary. The screen is configurable depending upon the campaign type and the auto-calculated resources and quantity are displayed and populated in the fields. The user can edit the fields if required to change the resource administered.
When the user clicks ‘Next’ on the deliver intervention screen, it opens a pop-up that asks: “Did you observe any adverse events?” If the user selects ‘No’, the adverse events screen is skipped, and he/she is directly navigated to the next screen in the flow. If the user selects ‘Yes’, it opens the adverse events form to capture the details. On top the summary of delivered resources is displayed in a tabular form. The list of symptoms must be configurable to include more values if required. It is possible that the beneficiary shows multiple symptoms, thus the user must be able to select multiple values from the list.
If the dose is readministered, then the user must select ‘yes’ and provide the number of times it has been readministered.
The “Refer Beneficiary” button navigates the user to the refer beneficiary flow, in case the beneficiary is critical and requires medical assistance. The ‘Next’ button takes the user to the next screen in the flow.
A distributor can record the side-effects experienced by a beneficiary after consuming the drug. The list of side-effects can be configured based on the specific campaign being conducted.
Allows administrators to record side-effects for drugs delivered to the beneficiaries after every dose consumed by the beneficiary.
The distributor can record the side-effects for both direct delivery where all the doses of the drug is administered directly to the beneficiary, as well as for indirect delivery where the beneficiary is provided with all the remaining doses by the distributor at the same time and is asked to administer the drug on their own.
User Role | Scope of Action | Role Description |
---|---|---|
In Step 4 of recording the Multi-Round Campaign delivery process, based on the response provided by the distributor for the question "Did you provide drugs for the next doses?" the screens for recording the side-effects in a given cycle will be as follows:
If you replied 'No' (Recording side-effects when the the distributor does direct delivery for all rounds):
Step 1
After you have completed the delivery for first dose, you will see the list of beneficiaries who are eligible for the next round of drug delivery. If the beneficiary experienced any side-effect, click on the "Unable to Deliver?" button, where you will get 3 options. Here, the last option will be "Record Side Effects".
Step 2
You will be taken to the next screen where you need to record the side-effect experienced by the beneficiary. Once you have selected the relevant side-effect, click on 'Next'.
You will see a success screen that says, "Data recorded successfully".
If you replied 'Yes' (Recording side-effects when the the distributor does indirect delivery for subsequent deliveries):
Step 1
If you replied 'Yes' the next time you visit the beneficiary and click on "Record Delivery" against that beneficiary in the household details page, you will see the following screens:
Step 2
Once you submit the answers, you can record the side-effects for the beneficiary. If no side-effects were reported, select 'No' to move on to the beneficiary details screen, and the delivery status for all cycles will show as 'Completed'.
Step 3
If you select 'Yes', you can record the side effect. Click on 'Next'.
You will see a success screen that says, "Data recorded successfully'. If you select 'No' for side-effects, you will be taken directly to the "Data Recorded Successfully Screen".
Note: If the Distributor answered 'No' on the "Record Past Delivery" page, the delivery status will changed to 'Visited' on the household details page for that specific beneficiary.
An illustrative guide to using the Multi-Round Campaign Module
With the help of Voucher-Based Registration and Distribution, the registrar can use a QR code-based voucher provided by the program to link beneficiaries to the QR code voucher at the time of registration. This will enable distributors to search for beneficiaries at the time of delivery by scanning the QR code vouchers linked to a specific beneficiary.
Allows a registrar to link a QR code voucher provided by the program to the beneficiary by scanning the QR code at the time of registration.
Allows a distributor to search for a beneficiary in the system by scanning the QR code voucher shown by the beneficiary when the Distributor has to deliver the drug.
User Role | Scope of Action | Role Description |
---|---|---|
Step 1
Once the all the mandatory details for an individual are added on the Individual Details screen, you can link the QR code voucher by clicking on the "Link Voucher To Individual" button.
Step 2
The QR code scanner is launched and you can scan the unique QR code linked to the beneficiary. The "1 Resource Scanned" message will appear below the QR scanning panel.
If the QR code voucher scanning shows an error, you can link the voucher manually by clicking on the "Enter Beneficiary Code". The following screen appears, which lets you add the voucher code manually. Next, click on 'Submit' to link the code successfully to the beneficiary.
Step 3
The voucher will appear on the Individual Details page. If click on the 'Edit' button next to the voucher code, you redo step 2 and link the correct QR code voucher to the beneficiary. Click on 'Submit' after adding the correct voucher code for the beneficiary to link the Voucher to the Beneficiary in the database.
Step 4
You will be directed to the "Data Record Successfully" screen.
After the registrations have been done and the respective QR code vouchers are linked to all beneficiaries, the distributors at the time of delivering the drug can search for beneficiaries using the QR code voucher associated to that beneficiary.
Step 1
Come to the "Search Individual" screen, and click on the "Scan QR Code" button.
Step 2
The QR code scanner will open up. Scan the voucher shown by the beneficiary and click on submit.
Step 3
If there is a user linked to the voucher scanned by the distributor, the details of the beneficiaries will appear on the "Individual Details" page. If not, a message will be shown saying "Match Not Found".
Step 4
If the beneficiary is found after scanning, you can open the record of the beneficiary and add the drug administration as per the regular flow.
An illustrative guide to using the Proximity Search Module
At time of registration and drug delivery, the product captures the latitudinal and longitudinal data and the distributor can search for the registered beneficiaries based on the distance from their current location. All the registered beneficiaries are populated based on the distance in an ascending order. The search populates all the beneficiaries registered in a 3-km radius from the current location of the distributor.
Enables distributors to search for beneficiaries within a 3-km radius (configurable) from their current location based on the latitudinal and longitudinal data recorded by the product at the time of registration.
The latitudinal and longitudinal data will be recorded by the product for both registration and drug delivery.
User Role | Scope of Action | Role Description |
---|---|---|
On the "Search Individual" details page, you can flip toggle switch to populate all the registered beneficiaries, by distance, in an ascending order, available in a 3-km radius.
An illustrative guide to using the User Management Module
The ability for supervisors/managers to create and manage users and team assignments for their respective boundaries through the user interface.
User Roles | Scope of Action | Role Description |
---|---|---|
A landing page must be available to the user to access all available modules.
A user must be able to search for an existing employee using search parameters (name, mobile number, username).
Users must be able to create new users by providing the following details. Refer to the section on specifications.
Allow users to reset the password. Allow users to edit existing information or add information to an existing employee. Refer to the section on specifications for validations and conditions.
Refer to the section on specifications for validations and conditions.
An illustrative guide to using the Voucher Scanning Module
Supports voucher scanning use cases for Beneficiary Registration, Service Delivery and Bed Net verification use cases.
Enables actors to execute the registration and delivery process efficiently through the use of scanners.
Code scanning capability provides better user experience by auto populating the data, thus reducing the time and effort.
Allows manual entry of codes to ensure maximum data collection, with defined validations.
Prevents duplication of records and monitor resources by linking beneficiaries to their respective codes and reusing it while registering a new beneficiary or distributing resources. One can also monitor the quantity of stock distributed by scanning the code available on the stock.
Allows multiple scanning of resource at once.
User Role | Scope of Action | Role Description |
---|---|---|
After logging into the application, the user lands on this screen which displays the daily performance (number of households registered). The progress bar must reset daily at 00:00 hours and start from 0 registrations. The action buttons related to the beneficiary include:
Beneficiaries
View Reports
Sync Data
Call Supervisor
File Complaint
At the bottom, there is a card that shows how many records are unsynced for the user’s convenience to sync data. If all the records are synced, then the card must say: “All records are synced”.
The help button is on every screen of the application. By clicking on it, a user can get a walkthrough of the elements on that screen.
On the top right, the administrative area assigned to the user is displayed which is based on the level of hierarchy. The hamburger button on the top left corner covers some other actions mentioned further.
On this screen, a user can search for a registered beneficiary or register a new one. There are multiple options included to search for a beneficiary: search by name, proximity, and scan a code. The metrics card shows the data for beneficiaries registered and the number of resources delivered, depending on the type of campaign.
Clicking on the scan button on the search household screen opens a scanner that allows a user to scan the voucher code provided to the beneficiary during registration. The user can also enter the code manually by clicking on the “Enter Beneficiary Code” button, if the device is unable to scan.
Based on the campaign type, the beneficiary card is opened with a set of actions for the scanned beneficiary. The user can close the scanner if needed by clicking on the close button.
While creating a beneficiary, the user can link the beneficiary to the voucher card provided during registration by clicking on the “Link Voucher to Individual” button. If the scanner is not able to scan the code, the user can also enter the details manually. Screens for the scanner are same as that for search beneficiary.
On successful scanning, the toast message appears over the individual details screen and the voucher code is displayed. In case the scanned code does not match with the one mentioned in the voucher, the user can click on the edit button and rescan or re-enter the code. The previously scanned value must be overwritten by the latest one (No multiple scanning to be done).
While delivering any resource to the beneficiary, the user must scan the code provided on the packaging of the resource. The scanner must be able to identify duplicate scans and must not scan the same voucher multiple times. The user can perform multiple scans at a time, but the number must not exceed the value provided by the user in the “Quantity Distributed” field.
The scanner screen has an expandable card that provides the list of resources scanned. The card displays the count of resources scanned along with the identification number for each scanned resource. If one is unable to scan, the user can enter the codes manually, but after every code, he/she must click on the enter beneficiary code again and repeat the process. The user can remove any resource by the help of the delete button provided against each resource. Once scanned, the user must click on the submit button which brings him back to the deliver intervention screen. The toast message for successful scan is displayed on the screen.
An illustrative guide to using the Complaints Module (Mobile and Web)
There is a support helpdesk set up by the program which will receive all complaints raised by system users. The support helpdesk is responsible for reviewing all the complaints in the inbox. Depending on the complaint, the helpdesk can either resolve, reject, or assign the complaint to the respective actor Helpdesk users may create complaints on the user’s behalf, which are received over call/WhatsApp messages.
User Role | Scope of Action | Role Description |
---|
The L1 support helpdesk must be the first point in the complaint management workflow. All complaints created must be first routed to the helpdesk, after which the helpdesk may take appropriate action (mentioned below).
The helpdesk user must be able to do the following :
View the list of complaints in the inbox
File a new complaint
Open a complaint from the inbox and
View complaints status
Resolve a complaint
Reject a complaint
Assign to other roles
The inbox view for other workflow states must be similar and must be able to view complaints assigned to their respective inbox. The user must also have the option to assign the complaint back to the L1 support helpdesk by selecting the value in the “Assign To” field. The users must be able to view complaints that have been assigned to their role. For example, the L1 helpdesk user must not be able to view complaints assigned to the L2 helpdesk and vice versa.
Complaint Type: The user can select the complaint type from the dropdown
Administrative Area: The area of complaint.
Status: Refer to the list of statuses detailed above.
A button to clean all filters must be available at the bottom of the page. An “Apply Filter” button must be available to set the filters and route the user to the inbox and display the filtered complaints.
A user must be able to search for one or more complaints by using the following search parameters (must support passing multiple search parameters):
Complaint Number
Mobile Number
Administrative Area
After providing the appropriate search parameters, the user must click on the “Search” button located at the bottom of the screen and must be routed to the inbox which displays the search-appropriate search results.
A summary screen must be displayed when the user clicks on the ‘Open’ button located on the complaints card.
The “Take Action” button at the bottom of the screen must open a pop-up displaying all possible actions that the user can take. The actions available to address the complaint are as follows:
Resolve Complaint
Assign to P2
Reject Complaint
Close
The close button collapses the overlay and takes the user back to the complaints summary screen.
If the user wants to assign any project to P2, she must click on the assign button which opens this screen. The date of assigning the complaint is user input which can be filled in with the help of the calendar icon within the field.
In the "assigned to" field, the user needs to select the person to whom she wants to assign that complaint. There is an additional comments field in which the user can provide any remarks if she wants. The user can attach any supporting documents such as photos, documents, etc.
At the bottom, there is a cancel button which takes the user back to the complaint summary screen, and an assign button which assigns the complaint to the selected person.
Helpdesk (Desktop View)
When the user clicks on complaints on the home screen, then this screen must appear. On the top left, there is an option to file a new complaint, view reports. Besides, there are search fields for different parameters, such as complaint number and mobile number, and the search button to execute the search action. There is a clear search button below the search one if the user wants to clear the search parameters.
Below the new complaint and reports buttons, there are filters available to apply over the results. The filter parameters are the same as that for the mobile view.
The complaints are displayed in a horizontal format with the same values for mobile view. The user can click on the entire area of a particular complaint.
At the bottom, there are forward, backward, first page, and last page arrow buttons along with the page number information as displayed on the screen.
When the user clicks on a complaint, the details screen appears which provides the entire information of that complaint. The summary includes the same information mentioned in the card along with the additional comments/remarks, and photos provided by the complainant.
There is a "Take Action" button at the bottom. When the user clicks on it, the actions appear above the button as displayed on the screen. The actions include resolve complaint, assign to P2, and reject complaint. If the user clicks on any blank area on the screen, the actions collapse.
If the complaint has been resolved, then the user must click on the "Resolve Complaint" button which opens this screen. There is an "Additional Comments" field in which the user can provide any remarks if he wants. At the bottom, there is a submit button that updates the complaint status as resolved.
If the user has rejected any complaint, then she needs to select the reason for rejection from the dropdown. There is an additional comments field in which the user can provide any remarks if he wants. At the bottom, there is a submit button that updates the complaint status as rejected.
If the user wants to assign any project to P2, she must click on the assign button which opens this screen. The date of assigning the complaint is user input which can be filled in with the help of the calendar icon within the field.
In the assigned to field, the user needs to select the person to whom she wants to assign that complaint.
There is an additional comments field in which the user can provide any remarks if he wants. The user can attach any supporting documents such as photos, documents, etc.
At the bottom, there is a cancel button which takes the user back to the complaints screen, and an assign button which assigns the complaint to the selected person.
When the user clicks on the “New Complaint” button on the complaints screen, then this screen appears. The details captured are the same as that entered by the complainant. When the details are entered, the user needs to click on the submit button which opens the confirmation window over the same screen. If the user clicks on the cancel button, then she is navigated back to the complaints screen
When the user clicks on the submit button, the system confirms whether the complaint has been submitted successfully or not. There is a back to home button placed on both screens, clicking on which will navigate the user to the home screen of the helpdesk.
An illustrative guide to using the Complaints Module (Mobile)
Users can file a complaint using the HCM app. There are a few assumptions:
Not all complaints will be logged using the complaints module. Users may prefer raising complaints on WhatsApp groups/calls, and may not be registered in the system.
Complaints are most likely to be logged by users on behalf of other users (Most common use case: Supervisors raising complaints on behalf of users).
User Role | Scope of Action | Role Description |
---|
After logging into the application, the user lands on this screen which displays daily performance (number of households registered). The progress bar must reset daily at 00:00 hours and start from 0 registrations. The action buttons related to the beneficiary are present, which include:
Beneficiaries
View reports
Sync data
Call supervisor
Complaints
When the user clicks on the complaints, she is navigated to the “My Complaints” screen, which consists of two actions:
File a complaint (primary action): Clicking on this must open the complaint type screen.
View previously logged complaints.
When the user clicks on file a complaint, the complaint type screen appears. The user must select the type of complaint from the list, which must be configurable (to be configured during implementation as per program requirements).
There is a ‘Next’ button at the bottom of the screen, clicking on which, the user is navigated to the complaint details screen.
Once the user has selected the type of complaint and clicked on ‘Next’, this screen appears, where they need to provide the complaint details.
The date field is auto-captured by the system, which must be non-editable.
The administrative area is also auto-captured but it is editable. It is editable in case the user is creating the complaint on someone’s behalf. The dropdown displays a list of boundaries that are assigned to the user.
The user needs to select whether she is raising a complaint for herself or on behalf of another user.
If the user wants to raise a complaint for herself, then she must provide the following details:
Name (must be populated if already available in the user’s profile else must be blank).
Contact number (must be populated if already available in the user’s profile else must be blank).
Supervisor’s name and contact number.
If the complaint is raised on behalf of another user, then her details must be captured in the above fields. The user has the option to upload images describing the issue along with a text-based description. If the user wants to change the type of complaint, they can click on the ‘Back’ button and return to the previous screen.
After filling in all the details, the user needs to click on the ‘Submit’ button to file the complaint.
When the user clicks on the submit button after providing all the complaint details, the confirmation screen appears, which provides information on whether the complaint has been submitted or not.
If the complaint has been submitted, then it must show the message to sync the data for generating the complaint number. There must be a back to home button below the message. When the user clicks on it, she must be navigated to the home screen.
If the complaint has not been submitted, then there must be two buttons available; Retry and Back to Home.
An illustrative guide to using the Beneficiary Referral Module
This feature allows a distributor to refer a beneficiary to a health worker. The referral can happen before or after the drug administration by the distributor.
Allow a distributor to refer a beneficiary to the correct health facility and mark the correct health facility for the referral.
Referral can be done both before and after drug administration.
User Role | Scope of Action | Role Description |
---|
Step 1
On the Household Details screen, you can see the list of beneficiaries who are supposed to receive the drug in that cycle. If the beneficiary is experiencing significant discomfort/sickness due to which you cannot administer the drug, you can click on the "Unable To Deliver?" button for that specific beneficiary.
Step 2
Click on "Refer Beneficiary".
Step 3
You will be directed to the "Referral Details" screen.
In the screen above, you will see the following fields:
Date For Referral: This will be a non-editable field and will capture the date of referral which is picked directly from the system.
Administrative Unit: This will be a non-editable field and will be captured based on your user login, which will define the "Administrative Unit".
Referred By: This field will contain the unique ID for the distributor who has referred the beneficiary and is an editable field.
Referred To: This field will have a search ability which can be used by clicking on the search lens icon on the field. The following screen will load where you can search for the ID of the facility where the beneficiary is being referred to.
Reason For Referral: This is a mandatory field which will have all the reasons for referral based on the configuration set for the specific household.
Referral Comment: This is a non-mandatory field that allows you some custom comments regarding the referral being made for the beneficiary.
Step 4
After you populate all the required fields, click on the 'Submit' button which will take you to the "Data Successfully Recorded" screen.
Once the beneficiary is referred successfully, he/she will be marked as "Beneficiary Referred" in the household details screen.
The Attendance Module will allow supervisors to mark attendance for their attendees which will, in turn, help the system maintain the authenticity of records and provide consistent data for payments to the attendees.
Enables supervisors to mark attendance for their attendees in an offline-first manner. The attendance can be marked in 2 ways based on the type of attendance structure chosen by the programme team:
Attendance recording once a day.
Attendance recording twice a day (Morning and Evening).
User Role | Scope of Action | Role Description |
---|
The user will see the "Mark Attendance" option in the home screen of the app as follows:
When the user clicks on "Manage Attendance", they will see the attendance registers created under the specific user name having the following details:
Campaign Name
Event Type
Start Date
End Date
Staff Count
Status
Attendance Completion (in Days)
Once the user clicks on "Open Register" for one of the available registers, the user will be taken to the "Select Session" screen where the sessions available to be marked in the given attendance register will be seen.
Once the user has selected the desired session and clicks on the "Mark Attendance" button, the user will be taken to the "Mark Attendance" screen where the list of attendees for a given project and a given session will be available.
The user can click on the empty circles in front of every attendee and move the state of the attendance from "Not Marked" to 'Present' to 'Absent' on each click of the circle.
Once all the attendees have their attendance marked in the register, only then the user can click on submit.
If the attendance in a given register is partially marked, the user cannot submit the attendance and will have to click on "Save and Mark Later" which will allow the user to save attendance as a draft for the given register.
The support features enhance user satisfaction, promote ease of use, and contribute to the app's overall effectiveness in facilitating seamless interactions and data management
Click on the links below to learn more:
This enables a user to verify whether the physical count and calculated stock values are the same or not.
After successful login, a user lands on the home screen, which consists Stock Reconciliation". When the user clicks on the stock reconciliation button on the home screen, he/she is navigated to this screen where they need to verify whether the physical count and calculated stock values are the same or not.
In the select product field, the user needs to select a product from the dropdown. There are warehouse name and administrative area fields as well, all of which are mandatory. The following details are there:
Date of Reconciliation
Received Stock
Issued Stock
Returned Stock
Damaged Stock
Stock Lost
Stock on Hand- The stock on hand is calculated as incoming stock minus outgoing stock. There is a hint icon for how the stock on hand is calculated. The received and returned stocks will be considered incoming stocks. The issued, damaged, and lost stocks will be considered outgoing stocks.
The date of reconciliation is system-generated and non-editable. Other values are calculated based on the data recorded in stock receipts, stock issued, and the stock returned screens. In the manual stock count, the user needs to enter the value for manually counted inventory. If the stock on hand does not match the physical count, then the latter must take precedence, provided the user has submitted the form with a proper reason. In the comments field, the user can add remarks and comments.
Users are redirected to this screen once they click on the "Forgot Password" button in the language selection screen.
Clicking on the forgot password option in the login page opens a popup message “Please contact your administrator if you have forgotten your password”. This is an informative popup which does not lead to any further action within the application and the user can close the popup by clicking on 'OK'.
Scan the resource code to track the resources delivered:
Package utilised to parse the barcode : .
Package utilised to QR code scanner:
GS1 - standards :
Package utilised for barcode scanning-
Given a field value formatted with the GS1 data matrix standard and a string key from the GS1 application identifiers. The function should look and return the value linked to the provided key.
A well-formatted value would look like:
]d20108470006991541211008199619525610DXB200517220228
After a user logs into the HCM app, the project selection screen displays all the projects assigned to the user. This will be displayed only when a user is assigned to multiple projects.
On this page, the following actions can be performed:
A user has to select one project.
After selecting a project, the system downloads the data for the selected project only.
After every login action, the system will automatically sync the data with the system.
Since the user will log in only at the start of the day and before going into the field, there must be stable internet connectivity for the device to perform this process.
A “Sync in Progress” window appears on the screen and the user cannot perform any other action until the process is complete.
An illustrative guide to using the Health Facility Referral Module
This will enable the health facility supervisors to track referrals made by on-field health workers to different health facilities digitally via the Digit HCM app
It captures all the cases of:
Beneficiary being referred.
Referral details of the beneficiary.
Reason for referrals and its diagnosis.
Based on the diagnosis chosen further details if applicable.
User Role | Scope of Action | Role Description |
---|
User Persona: This feature will be used by workers working at a given Health Facility (HF) who will be responsible for giving the diagnosis based on the type of symptoms they observe and then do a diagnosis and provide the appropriate drugs.
Steps for Referral Flows:
Step 1:
Login for a HF worker who will see the home screen options based on the role-action mapping and will see the option which says “Beneficiary Referral“. The options available on the home screen for HF workers apart from the Beneficiary Referral option will be defined based on the role-action mapping provided for them.
Step 2:
When the user clicks on the “Beneficiary Referral” button in the previous screen, the user will be taken to the “Search Beneficiary” screen where he/she can search for a given beneficiary by their name or a QR code voucher provided to the beneficiary.
Search Produces Result: If the user searches for a given beneficiary name and finds a match, he/she can click on the 'Open' button in the card for that beneficiary and view their details.
Search Does Not Produce Result: If the search does not provide any results, the user can click on the “Create New Referral" button to add a new entry under the Referral module.
Step 3:
Once the user creates a new referral or opens an existing one in the previous step, he/she is taken to the Facility Details screen first where he/she needs to enter the details of the health facility they are in to attend the beneficiary. This screen will have the following fields:
Administrative Unit: This field will be auto-filled from the value available from the role-action mapping, and will be non-editable.
Date of Evaluation: This field will be auto-filled with system value and will be non-editable.
Evaluation Facility: This will be a mandatory field for the health facility worker to search and add. It is the ID used for a given health facility.
Name of Health Facility Coordinator: This is a non-mandatory field that will capture the name of the health facility coordinator who is attending the referred beneficiary.
Referred By (CDD Team Code): This is a non-mandatory field that will capture the CDD team code of the field worker who referred the beneficiary.
Once the user has filled all the fields with the relevant information, he/she must click on the 'Next' button.
Step 4:
After the user has clicked on submit, he/she will come to the screen called “Referral Details”. On this screen, the user is supposed to enter details into sections, that is, “Referral Details” and “What is the reason for referral”.
Section 1: Referral Details
In this section, the user must add the details to the following fields:
Select Cycle: This will be a dropdown selector which will have the cycle numbers. This is a mandatory field and cannot be left empty.
Name of the child: The user needs to add the name of the referred beneficiary. This field is mandatory.
Beneficiary ID: This will be added by the user with the beneficiary ID of the referred Beneficiary. This is a mandatory field.
Age in Months: This will be a mandatory field that will capture the age of the beneficiary being referred in months.
Gender: This is a mandatory field with a dropdown having values: Male, Female, Other.
Section 2: Reason for Referral
In this section, the user must capture the data as to why the beneficiary was referred. The field will capture data with the help of the radio button option selector. The options are:
Sick
Fever
Drug side effect in current cycle
Drug side effect in previous cycle
After selecting one of the reasons for referral, the user needs to press 'Next' which will navigate the user to 3 different screens based on what they select in the “Reason for Referral” section.
Step 5:
Based on what the user selects in the previous step in the “Reason for Referral” section, the following 3 flows could be shown to the user:
If “Sick” was chosen as a reason: If the user selects 'Sick' as the reason for eeferral in Step 4, he/she will be taken to “Referral Due to Illness” screen, where he/she will see the following list of questions:
“Child evaluated to determine cause of illness”: This will be a mandatory question to be answered with 2 options in the form of a radio button: Yes or No.
Enter Comment for Diagnosis: The answer to this question should be entered by the user in a free text form which will be a mandatory field.
“Was the Child Treated?”: This question will be answered by the user using a radio button option of 'Yes' or 'No', and it will be a mandatory question
Name and Dose of the Drug: Provide an open text field that will be mandatory.
“Was the child admitted / transferred to the hospital due to serious illness?”: This question will have a Yes/No radio button selection for it. This is a mandatory field.
If “Fever” was chosen as a reason: If the user selects 'Fever' as the reason for referral in Step 4, the user will be taken to the “Referral Due to Fever” screen, where he/she will see the following list of questions:
“Was the child tested for malaria?”: This question will have a Yes/No radio button option. This will be a mandatory field.
“Result of Malaria Diagnostic Test? “: This will be a mandatory field and based on what the user answers to this question the next set of questions for the user will open up as a nested form.
If the user chooses 'Positive' as the answer for “Result of Malaria Diagnostic Test? then he/shewill see the following questions:
Was the child admitted/transferred to the hospital due to serious illness?: This will be answered with a simple Yes/No radio button and will be a mandatory field.
Child with positive malaria test treated with anti-malarial?: This will be answered with a simple Yes/No radio button and will be a mandatory field.
Name and Dose of Anti Malarial: This will be answered with an open text form and will be a mandatory field.
If the user chooses “Negative” for “Result of Malaria Diagnostic Test?, then he/she will see the following questions as a nested fForm:
“Child with negative malaria test received SPAQ in this cycle“: This will be a Yes/No Radio button question, and is a non-mandatory field.
If “Drug side effect in current/previous cycle” was chosen as a reason: If the user selects “Drug side effect in current/previous cycle” as the reason for referral in Step 4, he/she will be taken to the“Referral due to adverse drug reaction” screen, where he/she will see the following list of questions:
Child evaluated for adverse reaction for SP and AQ?: This will be a simple Yes/No radio button in the form and it will not be a mandatory field.
The National Pharmacovigilance has been filled out?: This will be a simple Yes/No radio button in the form, and it will not be a mandatory field.
Was the child admitted/transferred to the hospital due to serious illness?: This will be a simple Yes/No radio button in the form, and it will not be a mandatory field.
Once all the questions in one of these flows are answered, a pop-up frame asking for confirmation will be shown for submission as shown below:
Once the user clicks on submit, he/she will see the ”Data Recorded Successfully” screen, and the option to navigate to the home screen.
Log in to the HCM app with user ID and password.
Users are redirected to this screen once they select the preferred language in the previous screen.
On this page, the following actions can be performed:
A user can log in to the app by giving the User ID and Password.
The "Forgot Password" button gives a user the option to contact the administrator to reset if he/she has forgotten the password.
Allows users to select their preferred language for the app UI. It enables users to easily switch between the languages, which enhances the user experience.
Select between Portuguese, French, and English languages.
When the user opens the application, it asks them to first select the language. The selected language is highlighted in orange color.
On this page, the following actions can be performed:
A user can switch the language by clicking on Portuguese, French, or English.
A user can click on 'Continue' to navigate to the login screen.
When a user clicks on the view reports button on the home screen, he/she is navigated to this page where he/she has the provision to view the following reports:
Stock Received
Stock Issued
Stock Returned
Stock Reconciliation
Users can click on the arrow button placed next to every transaction to open the respective report. The back button will navigate them back to the home screen.
When the user clicks on the “Stock Received” button, the report for stock received appears which provides a tabular representation of the data. The table is scrollable, both vertically and horizontally, to cater to multiple values and columns. The date column is kept frozen and other columns are scrollable. The first column is for the date of the receipt, followed by units received in the second column, and received from (warehouse name) in the third column. The “Back To Home” button is placed at the bottom of the screen which navigates the user back to the home screen.
For the stock reconciliation report, the table consists of the date in the first column and other columns. The “Back To Home” button will navigate users to the home screen.
This enables a user to manage stocks, besides facilitating stock reconciliation.
On this page, the following actions can be performed:
After a successful login as a warehouse manager, a user lands on the home screen which consists of "Manage Stock", and "Stock Reconciliation".
This screen consists of the following types of transactions that take place for the the inventory:
Stock Receipt
Stock Issued
Stock Returned
Stock Damaged
Stock Loss
When a user clicks on record stock receipt, the warehouse details screen will appear.
The latitude/longitude captures the geo-location of the warehouse which can be fetched with the help of the location icon within the field.
Clicking on the next button will navigate the user to the "Received Stock" details screen.
The "Receipt Stock Details" form has some mandatory fields: product, received from warehouse, and quantity received.
The optional fields include waybill number, quantity indicated on waybill, transport type, vehicle number, and comments.
Clicking on the submit button will take the user to the success page.
This screen captures the mandatory fields: Product, Issued to warehouse, and the quantity.
The optional fields include waybill number, quantity indicated on waybill, transport type, vehicle number and comments.
Clicking on the submit button will go to the success page.
This screen captures the mandatory fields: Product, returned to warehouse, and quantity returned.
The optional fields are waybill number, quantity indicated on waybill, transport type, vehicle number, and comments.
Clicking on the submit button will take the user to the success page.
This screen captures the mandatory fields: Product, damaged during, received from, and quantity damaged.
The optional fields include waybill number, quantity indicated on waybill, transport type, vehicle number, and comments.
Clicking on the submit button will take he user to the success page.
This screen captures the mandatory fields: Product, lost during, received from, and quantity lost.
The optional fields are wWaybill Number, quantity indicated on waybill, transport type, vehicle number, and comments.
Clicking on the submit button will take the user to the success page.
After logging into the application, the user lands on the home screen of the HCM app, which displays the 'Help' button on the top right.
If the user clicks on the help button, it will give a walkthrough of the entire screen, including the role of each button placed with two buttons:
Skip: If the user wants to skip the walkthrough at any point.
Next: It will proceed to the next action aligned.
The text box appears at the bottom of the button.
If the complaint has been assigned successfully, then the following screen must appear.
A landing page must be available to the user to access all available modules.
If the complaint has been assigned successfully, then the following screen must appear. If the complaint could not be assigned, then the text must say, “Complaint Not Assigned.”
Click to learn more about stock reconciliation.
Name*
The name of the user who wants access to the system.
Mandatory
User
String
2
2000
Mobile No.*
Mobile number of the user.
Mandatory
User
Numeric
2
15
Length validation- Specific to Impel
Current HRMS specs are designed for Indian phone number formats and would need updates.
Yes
Father/Husband's Name*
Name of the user's husband or father.
Mandatory
User
String
2
2000
Yes
Gender*
Gender of the user being registered.
Mandatory
User
String
2
64
Yes
Date of Birth*
Date of birth of the user being registered.
Mandatory
User
Date
10
10
Date of birth cannot be in the future.
Yes
Email ID of the user being registered.
Optional
User
String
8
64
Yes
Correspondence Address*
Address of the user being registered.
Mandatory
User
String
256
Yes
ULB*
ULB assigned to the user where the user is supposed to perform tasks assigned to him/her.
Mandatory
User
String
256
Yes
Role*
Role assigned to the user to enable him/her to carry out his/her tasks and access the required data and services.
Mandatory
User
String
256
Every user must have at least 1 role assignment.
Yes
Employment Type*
The employment types indicate the type of contract which he/she holds with the organisation. This indicates whether he/she is a permanent employee or a contract employee for a short period. Select the relevant employment type: 'Permanent', 'Temporary', “DailyWages” and 'Contract'.
Mandatory
User
String
256
Yes
Current assignment
The current assignment type is to indicate whether the employee is currently assigned to a particular department and designation. A user can be also be assigned multiple assignments to perform his/her function.
Mandatory
User
String
64
Yes
Status*
The status indicates the type of status which he/she holds, whether employed or not within the organisation.
Mandatory
User
String
256
Yes
Hierarchy *
The hierarchy indicates the hierarchy type for the boundary to which he/she is assigned.
Mandatory
User
String
256
Yes
Boundary Type *
The boundary type indicates assigning a city to his/her role within the organisation. A user can be assigned multiple boundary types to perform in different functions. Example: City, zone, block, and locality.
Mandatory
User
String
256
Yes
Boundary *
The boundary indicates assigning a particular city to his/her role wherein they perform the role function of the application for the particular city. A user can be assigned multiple boundaries to perform in a different location. Example: City name, and tenant zone.
Mandatory
User
String
256
User must be assigned to atleast 1 boundary.
Project boundary must take precedence over user boundary assignment.
Yes
Assigned from Date*
The assigned from date indicates the date from which his/her role is assigned to perform the role function assigned.
Mandatory
User
Date
10
Yes
Department*
The department indicates the particular department to which his/her role is assigned to.
Mandatory
User
String
256
Yes
Designation*
The designation indicates a particular designation that is assigned to his/her role.
Mandatory
User
String
256
Not required for HCM.
Yes
Registrars/Distributors
Scan and link vouchers to households during registration
Enter the voucher code manually
Scan and retrieve household details to deliver intervention
Scan the resource code during delivery
Provide direct healthcare services, communicate SBCC information, and support to communities. Usually operate in teams and within a specified boundary.
Warehouse Managers
Scan the stock resource cards while receiving (Can be used for other transactions but is not preferred)
Scan multiple resources at once.
Enter the code manually
A warehouse manager is responsible to manage the stock and record all the transactions that take place within the assigned warehouse/facility.
Supervisor | a. Create and view complaints. b. Resolve complaints, re-assign complaints back to the helpdesk, and reject complaints. | Monitor the overall campaign and provide assistance for the issues raised by the field teams |
Helpdesk user | a. Create andd view complaints. b. Resolve complaints, assign complaints, and reject complaints. | Helpdesk users are the support team established to provide assistance throughout the campaign. |
Registrar | Create and view complaints. | Registrars can raise technical complaints on the application |
Field Supervisor | Create and view complaints. | Assist the frontline teams and raise the issues communicated by them on the application |
Supervisor | a. Create and view complaints. b. Resolve complaints, re-assign complaints back to the helpdesk, and reject complaints. | Monitor the overall campaign and provide assistance for the issues raised by the field teams |
Helpdesk user | a. Create and view complaints. b. Resolve complaints, assign complaints, and reject complaints. | Helpdesk users are the support team established to provide assistance throughout the campaign. |
Health Facility Supervisor | Record referrals made by field workers | Record data of beneficiaries, reason for referral and diagnosis, and any further details. |
The Campaign Management Dashboard offers a wide range of features that deliver a comprehensive view of campaign performance. It empowers supervisors to easily monitor their teams, assess campaign progress, and quickly address any obstacles that may arise.
The Dashboard equips campaign supervisors with real-time insights to evaluate their teams' effectiveness and make data-driven decisions for optimising campaign performance. Featuring intuitive visualisations and customisable metrics, supervisors can easily track key performance indicators (KPIs) such as campaign coverage, engagement, and inventory movement. The Dashboard also provides a comprehensive view of team productivity and individual performance, enabling supervisors to identify top performers and areas that may need additional support. With these powerful tools, supervisors can efficiently monitor and manage their teams, ensuring the success of the health campaign.
The Dashboard's intuitive interface makes tracking campaign progression seamless for supervisors. They can effortlessly monitor campaign milestones, goals, and progress against predefined targets, allowing them to assess the campaign's overall health and take corrective actions when necessary. Moreover, the Dashboard offers historical and predictive data, along with trend analysis, enabling supervisors to identify patterns and make data-driven decisions to optimise strategies for future campaigns. With these powerful features, supervisors can effectively analyse campaign performance and continuously refine their approach for maximum impact.
Apart from performance tracking, the dashboard provides campaign supervisors with efficient tools to troubleshoot roadblocks. It promptly highlights any issues or bottlenecks that may impact campaign progress, allowing supervisors to quickly identify and address them. Additionally, supervisors can drill down into specific boundaries, such as villages, to pinpoint areas that require attention and proactively take measures to resolve challenges. With these capabilities, supervisors can effectively overcome obstacles and ensure smooth campaign execution at all levels, from a macro to a micro level, to achieve desired outcomes.
The HCM Dashboard is purposefully designed to be user-friendly, with an intuitive and easy-to-navigate interface that requires minimal training to get started. Its robust features and user-centric design empower campaign supervisors to efficiently monitor, evaluate, and troubleshoot campaign performance. With this powerful tool, supervisors can effectively drive the success of their health campaigns, making informed decisions and taking corrective actions as needed. The HCM Dashboard is a valuable asset for campaign supervisors, ensuring a seamless and effective management of health campaigns.
The following are the features of the HCM Dashboard:
Bar charts with percentage and number toggle.
Brush component for bar charts to zoom in and out for an enhanced view.
Heat maps with zoom-in/out, toggle, and drill-downs to show coverages.
Date range selection through the calendar date picker and toggle buttons to select ‘Today’ and ‘Cumulative’ date ranges.
A new component to display the list of cards based on the chart data, and includes a collection of numeric data and a circular progress bar.
Predictive line graphs to show planned versus actual campaign progression.
Multi-campaign card layout to view campaigns of multiple types happening simultaneously.
Progress bar to show the campaign duration.
Tabular charts with drill-down, search, toggle, and sort functionalities.
Pie charts with the aggregation are shown at the centre.
Stacked bar charts.
Hover definitions and sub-headings to show more details about a specific card.
Download all charts and pages in PDF and JPG formats.
Share all charts and pages in PDF and JPG formats across WhatsApp and email.
Click here to learn more.
Following is the list of customisations enabled for the campaign in Mozambique:
Allow registration without searching.
Removed a few location and address-related fields from the registration page.
Removed the option to edit household and individual details
Removed the unique identifier field on the registration page.
Removed the facility to add household members and keep only the head of family details during registration.
Changed registration and delivery into a one-click flow to avoid partial registration.
Whenever there was a difference between received bednets and bednets to be delivered on the delivery tab, the comment field was mandatory.
Removed a few fields from the stock management feature and made a few fields non-mandatory.
Added a few more fields in the stock management such as license plate number, driver name
Removed the stock lost and stock damaged from the inventory management module
Custom reports were built as per Mozambique’s requirements.
Dashboard KPIs were added and updated as per Mozambique’s requirements.
Built a conditional checklist.
Changes in the validation for the stock management page.
Changed numbering format on legends on dashboards; Followed the European system: 4,00,000 must be shown as 400,000 (introduced comma after every 3 digits from the right).
Validation for the mobile number was changed to 11 digits for Mozambique.
To stop accidental logout, added logic to not log out if there was no internet.
In the inventory module, validation limits the vehicle license number to 9 digits.
Showed warehouse name instead of warehouse code in the drop-down in the stock management screen.
Mobile number was made editable for self-raised complaints in the complaints module.
Health campaigns, critical for disease control in the global south, face challenges such as limited resources, outdated tools, and a lack of real-time data. In Mozambique, where malaria is endemic, 95% of the population is affected, with 617,000 malaria-related deaths reported in 2021 underscoring the urgency to revolutionize the existing health campaign framework. Hence, we felt the need for a product to address these issues and our first exemplar was in Mozambique.
The Ministério da Saúde ((MISAU) or the Ministry of Health Mozambique in partnership with eGov recognised the need to use infrastructure-first thinking to reimagine how health campaigns were managed, run, and could be sustained over years, not just for malaria, but for many other diseases.
Mozambique reimagined health campaigns using a platform approach, with DIGIT Health Campaign Management (HCM). DIGIT HCM worked closely with various departments within NMCP, as well as other partners to build state capacity, provide technical assistance, and contribute to digital transformation.
DIGIT HCM, customised and branded as Salama for Mozambique, was rolled out as part of the Long Lasting Insecticidal Nets (LLIN) campaign. In 2023, Mozambique used DIGIT HCM to manage the distribution of malaria bednets across Tete and Gaza provinces. Click on the links below to learn more:
The National Malaria Control Program (NMCP) transitioned to a digital system for their bed net distribution campaign in 2022/2023, moving away from their previous paper-based method. However, the team faced numerous issues with the new tool, such as synchronisation errors, data quality issues, inadequate visualization and analysis of geolocation data, and ineffective bednet tracking during the campaign.
To address these challenges, NMCP partnered with eGov to develop DIGIT HCM, a Digital public infrastructure. This collaborative effort resulted in the creation of an open-source digital public infrastructure (DPI) with interoperability and scalability. Customised as Salama (implying health in Swahili), the aim was to mitigate the above challenges and support multiple campaigns efficiently.
Salama was rolled out as part of the Long Lasting Insecticidal Nets (LLIN) campaign for the periodic distribution of bednets in the Tete and Gaza provinces.
The main players involved in the campaigns in Tete and Gaza are listed below:
National Malaria Control Program, Mozambique: Provided overall strategic direction for the campaign, part of the Ministry of Health (MISAU).
DIS (Information System Directorate): Provided support during the requirements discussion and the implementation of the campaigns, part of MISAU.
DTIC (Information Technology and Communication Directorate): Technical team that was trained and helped manage technical training and issues during the campaign, part of MISAU.
World Vision: Implementation Partner for the BedNet campaign in Tete and Gaza.
Bill and Melinda Gates Foundation: Funder of the DIGIT HCM platform.
The Global Fund: Funds campaign implementation across Africa.
The other partners include PNCM, World Vision, the Foundation for Community Development (FDC), Food for The Hungry Association (FHA), Aid for Develop.
Besides the different players mentioned above, a core group called Nucleo Duro, consisting of members from all groups was formed to lead all decision-making aspects of campaign implementation and digitisation.
Lessons learned from the Tete implementation spurred enhancements in Gaza, and underscored the flexibility of Salama. NMCP successfully conducted campaigns with reduced eGov assistance and effectively addressed many campaign-related issues. During the campaign, NMCP noted that the platform was user-friendly for registrars, and the dashboard's clear presentation negated the need to work on different formats in M&E meetings. Notable improvements in the Gaza campaign encompassed enhanced real-time syncing efficiency, prompt access to team performance reports, and a significant decrease in incomplete records.
The NMCP highlighted the points listed below as things that went well while implementing DIGIT HCM (SALAMA):
Automatic synchronisation in areas with internet connectivity: The Salama application has enabled automatic synchronisation in intervals of 5 minutes, which resulted in near real-time data synchronisation in areas with internet connectivity. This was observed during the campaign in Gaza.
Ability to check teams' progress against daily targets: In the application, there is a progress bar that each team can use to verify their progress when compared to the target. This feature was appreciated by NMCP as it gave the local monitors the ability to check the targets and motivate the teams to achieve at least the daily target.
Automatic collection of GPS data on each Household registered: The collection of GPS coordinates for a household is done in the background of the application. Whenever a household is registered, the registrar does not have to click any button to initiate the capture of geo coordinates. This made the user experience for registrators better and was in turn well received by NMCP.
Dashboard was flexible, interactive, and user-friendly: The dashboard was used in the daily review meetings as the main monitoring and evaluation tool and saved time as it was not necessary to develop a PowerPoint presentation for those meetings.
Automatic calculation of the bednets to be delivered: The application was able to recommend the number of bednets to be delivered to a household based on the number of members, which removed the cognitive effort of the registrar to calculate these numbers by themselves.
Indication of duplications at the end of the day: The custom reports generated at the end of the day indicated duplications of registration and delivery, It further provided details of duplicate households created by the same registrar and the ones duplicated by different registrars.
Application easy to learn: During the training, it was noticed that it took less time for the trainees to understand the application and flows. Thus, the training was more practical and focused on simulation-based learning rather than on training the users on how to use the applications.
Throughout the campaign, numerous training sessions were conducted to enhance the capacity of NMCP in managing and utilising Salama, with additional capacity-building activities scheduled for post-campaign implementation. Key recommendations include linking credentials to performance, enhancing microplan estimates, improving warehouse manager training, addressing bed net scanning issues, and shifting the focus to monitoring and correcting supervision results.
In summary, the successful digitalization of Tete and Gaza using Salama facilitated accomplishing essential campaign objectives. While recognising areas for improvement, the standardised data format enabled thorough analysis across campaigns, ensuring ongoing enhancement in effectiveness and efficiency.
Click here to learn more.
A server should be responsible to handle or offer a mechanism to handle errors once data reaches it. (Error handling mechanism is being designed by the platform).
Sync will be manually triggered by the user (except for automatically syncing configuration down on the first login).
Sync down of data is not required to support (good to have) the first rollout.
Sync will be done through bulk APIs.
Sync will send each save action performed by the field user while offline to the server to preserve an audit of actions performed by the field user.
Eg: If a field user registers an individual and saves the record and then goes back to update the individual, this will result in two API calls to the server (one create and one update).
API response compression Gzip will be turned on for all the endpoints.
Unique identifier to be used between client and server:
A Client will create a unique (client-generated) identifier per entity (clientReferenceId) to relate entities while operations are being performed offline and send this id to the server for creating operations.
Any subsequent operations (like update, delete) will be on the server gen id, so the client has to get the server gen id by searching using the client generated id. The client will call search API with clientReferenceId and will get the server generated id.
Client will update the server-generated id into the records on the client and use the server-generated id for subsequent updates for those entities.
Processing on the backend will continue to be asynchronous and not changed for the health use case.
Search API max limit and the default limit.
Service details and endpoints.
Service details and endpoints.
Number of entities sent to the server in bulk API calls
Additional fields per entity in the app.
The drop-down values or select options to be presented in the app for field users.
Configuration changes are expected to be additive for the data captured against such configuration to continue being usable.
Number of retries on API call failure after which the app should stop retrying.
Timeout for the API calls.
Access to data will be defined by the linkages of staff to the project and the corresponding boundary while respecting role-action mappings instead of the tenant-based approach.
All deletes are soft deletes.
The server is responsible to delete nested/child entities if applicable when the parent entity is deleted.
Undeletion is not permitted.
Duplicate updates do not need to be detected or filtered out. The client is responsible to send duplicate updates on entity as separate requests to server.
Since persistence in DIGIT is asynchronous but the sync process from the field worker app is likely to send dependent data in a short period, a cache is to be introduced against which dependent data can be validated if required while it is in the process of being persisted to the DB. This cache is exposed via the search API of the corresponding service and the caller is agnostic to whether the result was returned from the cache or database.
For v1, we can maintain the sequence of updates only for requests on a single entity by a single user. i.e. Updates on the same entity by multiple users will result in the last caller's updates going through.
To maintain the sequence of updates, a rowVersion field is introduced in every entity. Callers pass the rowVersion as received from the server. The server can detect if any out-of-sequence updates have come in and reject it / pass it to the error handling mechanism.
Search APIs will not return (soft) deleted data by default. If deleted data is required the includeDeleted param can be passed to the search APIs.
From the Product requirement perspective, there is no unique identification identifier, so Platform is unable to check the uniqueness of registry entities.
This document describes how DIGIT HCM interoperates with other systems in a standardised and secure way:
1. Https Protocols:
Utilises HTTP/HTTPS protocols, which are universally supported by web clients and servers.
Adheres to RESTful principles, providing a consistent and standardised way for clients to interact with the platform.
2. Data Format:
Offers JSON support for data exchange, ensuring compatibility with a wide range of programming languages and systems.
Content Negotiation: Automatically handles content negotiation to serve responses in the JSON format requested by the client.
3. API Documentation:
Provides comprehensive API documentation using Swagger/OpenAPI, making it easy for developers to understand and consume the APIs.
4. Cross-Origin Resource Sharing:
Supports CORS, enabling secure cross-origin requests from web applications hosted on different domains.
5. Authentication and Authorisation:
Implements OAuth2 and JWT for standardised and secure authentication and authorisation, allowing integration with various identity providers - this is currently under implementation.
6. Error Handling:
Provides standardised error responses with HTTP status codes and detailed messages, helping external systems handle errors reliably.
Ensures uniform error handling across the platform, presenting predictable and understandable error responses to clients.
7. API Versioning:
Supports API versioning to maintain backward compatibility, allowing external integrations to continue functioning while new features are added.
8. Observability:
Uses Spring Boot Actuator to expose health checks and metrics endpoints, aiding external monitoring tools in observing platform health and performance.
Compatible with popular monitoring tools like Prometheus and Grafana for comprehensive observability.
The DIGIT HCM comes up with an out-of-the-box dashboard that helps the supervisors who manage the campaign to view real-time campaign indicators such as coverage that helps in making data-driven decisions.
Download charts in PDF or JPG format.
Share charts via WhatsApp or email.
A diverse range of charts and graphs for visualising key metrics.
Drill-down functionality for detailed data examination.
Multi-language support.
Geographic boundary-based heat maps.
View data across multiple campaigns via a single dashboard.
Geo-coordinate map to view delivery data at the household level.
Restrict data access based on user hierarchy.
Tab navigation across modules.
Predictive charts to forecast campaign extensions and stock availability.
Custom Excel reports for in-depth analysis.
Filter and sort tables.
Vewi data for custom date ranges or specific campaign cycles.
The dashboard data will be tailored according to the user's hierarchical boundary, ensuring access is aligned with their operational scope. For instance, a national supervisor will oversee campaign operations nationwide, while a district supervisor will solely access data within their designated district, without visibility into other districts.
To access the dashboard, open your browser and enter the URL [ ]. Log in with your credentials and click on submit.
After logging in, you will land on a page listing all campaign dashboards. This page also includes About and FAQ sections, and a link for downloading custom Excel reports.
To view a specific campaign's dashboard, click on the campaign name.
If you are a national-level supervisor, the initial page you see is a national-level view. Here, you can monitor the campaign's progress across various sub-national boundaries, including aggregates of households, population, and service deliveries.
To navigate to a sub-national level dashboard, click on the ‘View Dashboard’ button next to the sub-national boundary name.
The dashboard is divided into several tabs based on campaign modules: Registration & Delivery, Inventory, Complaints, and Supervision.
Registration & Delivery module: Displays indicators related to registration, including coverage metrics and charts for households, population, and service delivery.
Complaints module: Shows the status of various complaints, types, resolution times, and details of each complaint.
Inventory module: Provides insights into stock status across all warehouses and predicts stock-out scenarios.
Supervision module: Evaluates supervisors' performance in monitoring campaigns using checklists.
Date Filters: Each page has filters to view data for a specific date range, today's data, or cumulative data since the campaign's start.
Campaign Progress: A progression line at the top displays the number of days since the campaign began.
Data Completeness: The sync rate chart indicates how many users have synced data so far.
Drill-Down Charts: Double-click on any bar to drill down to sub-boundaries, continuing until the lowest level (e.g., a village). To return to the previous view, click the 'x' button.
Toggle Chart Views: Switch between percentage and absolute values by clicking toggle buttons.
Prediction Line Chart: Estimates how many more days are needed to reach target coverage based on current service delivery rates.
Sortable Tables: Summary tables can be sorted by column in ascending/descending order or alphabetically.
Download Options: Each chart can be downloaded as a PDF or JPG by clicking the kebab button. Charts can also be shared via WhatsApp or email. Tabular charts can be downloaded as Excel files.
Brush Component: Use the brush component below bar charts to expand or contract the view to see all represented boundaries.
Heat Maps: Monitor campaign progression by boundary through interactive, drill-down heat maps.
Geocoordinate maps: To view each household-level service delivery data.
Health Campaign - High Level Design
The high level design is divided into:
Master data
Registries/entities
Reusable DIGIT services
Form engine support
Multi-tenancy
Android offline first app
Web app - Campaign planning + dashboard
External integration - DHIS2
Base Health Campaign on DIGIT Core 2.8.
Master data categorised on the complexity required to maintain them from the technical perspective.
Simple Masters
Roles
Additional field schemas for different entities
Project task configurations
Project type
Role-actions
Actions
Hierarchical Masters
Administrative boundary and hierarchy
Inter-Linking Masters
Field app config
Service registry
New service.
As users are registered to campaigns, populate the individual registry with basic information about them.
This registry is the first step towards the long term plans in DIGIT to move non users of the system away from the User service. However, due to the current dependency on User service for authN and authZ among other things, this registry will be a wrapper over the User service.
New service.
Collection of Individuals living together (potentially receiving shared campaign intervention).
New service.
Needed to model storage Warehouses through which stock moves.
New service.
Needed to model the resources that are distributed as part of projects both as part of stock movement and actual distribution to beneficiaries.
New service.
Models how services and benefits are typically distributed to citizens by governments.
Contains multiple endpoints within the service to map other entities such as beneficiaries, staff, facilities, resources to the projects.
New service.
Track inflow and outflow of stock resources.
Many of the DIGIT-Core services can be reused without any changes. Some of them could be extended and enhanced to support the required features.
digit-mdms-service
Digit-location / boundary service
digit-access-control
Zuul API Gateway
digit-idgen
digit-persister
digit-indexer
digit-localization
DSS
Signed Audit
No existing services being enhanced.
The Health Campaign system does not make heavy use of workflows. Most flows in v1 are single actor and end after a single step (i.e. submitting collected data).
Form engine support was pushing out timelines and has been dropped from v1 scope.
The proposal is to have a single installation to support multiple countries and multiple health campaigns within these countries. Different campaigns will need to share registries.
Leveraging multi tenancy support in DIGIT for this.
Android app is proposed to be modelled on mGramSeva app and will be built in Flutter.
This app will be used in areas with limited or no internet connectivity and hence will need to work while offline. Users will sync the data collected offline when they are in an area with network connectivity.
SQLite will be used to model structured data and ISAR will be used for unstructured data.
Out of scope for v1.
The field workers will need to see dashboards based on the data stored in the offline database. Library - TBD
Out-of-scope for v1.
The app will have some custom screens to capture information around the campaign plan.
DSS dashboards are planned to be leveraged for reporting dashboards.
This will be added to implementation scope.
Technical Skillset & Pre-requisites
This document lists the technical skillsets required for someone to build and support the Health Campaign Management (HCM). There are distinct skills required to customise the application, and set up and run the infrastructure for this. The basic hardware configuration required for the developer machine is part of this document.
The technical skillsets that are required to work on the DIGIT HCM stack are listed below. It is expected that the teams have satisfactory knowledge of the below technologies before they take up DIGIT training:
Open API Contract - Swagger2.0
YAML/JSON
Postman
Postgres
Java and REST APIS
Basics of Elasticsearch
Maven
Springboot
Kafka
Zuul
ReactJS
Flutter
Understanding of the micro-service architecture.
Experience with AWS, Azure, GCP, and NIC Cloud.
Strong working knowledge of Linux, command, VM Instances, networking and storage.
To create Kubernetes cluster on AWS, Azure, and GCP on NIC Cloud.
Kubectl installation and commands (Apply, get, edit, describe k8s objects).
Terraform for infra-as-code for cluster or VM provisioning.
Understanding of VM types, Linux OS types, LoadBalancer, VPC, Subnets, Security Groups, Firewall, Routing, DNS)
Experience setting up CI like Jenkins and creating pipelines.
Deployment strategies - Rolling updates, Canary, Blue/Green.
Artifactory - Nexus, Verdaccio, DockerHub, etc.
Experience with Kubernetes ingress, setting up SSL certificates, and renewal.
Understanding of the Zuul gateway.
Gitops, Git branching, PR review process. Rules, Hooks, etc.
Experience in Helm, packaging, and deploying.
Apache, Nginx, Redis, and Postgres.
Teams are expected to have laptops/desktops configured as mentioned below with all the software required to run the DIGIT application:
Laptop for hands-on training with 16GB RAM and OS preferably Ubuntu
All developers need to have Git IDs
Install VSCode/IntelliJ/Eclipse
Postman
There are knowledge assets available on the net for general items and eGov assets for DIGIT services. Here you can find references to each of the topics of importance. It is mandated the trainees do a self-study of all the software mentioned in the pre-requisites using the reference materials shared.
Frontline workers
Register households
Add members
Deliver intervention
SBCC
Provide direct healthcare services, communicate SBCC information, and support to communities. Usually operate in teams and within a specified boundary.
Field Supervisors
Train and monitor the field teams
Provide on ground support
May have authority for registration and distribution to support the teams
Organize and direct the activity of frontline staff in health initiatives. Offer direction, assistance, and coordination for effective service delivery, adherence to protocols, and high-quality results.
Distributor
Register households
Add members
Deliver intervention
The user goes from house-to-house in the specified boundary and delivers the drug assigned for that round of delivery.
Distributor and Registrar
Select the assigned boundary till the lowest level
Download the beneficiary data
Repeat the process to download for multiple boundaries
The user downloads the village-level data from the server which can be used for both registration and drug delivery.
Distributor
Record adverse events for beneficiaries
The user goes from house-to-house for drug administration and records the adverse events observed in the beneficiary before administration
Distributor
Administer drug to the beneficiaries and observe the effect of drug
Record side effects observed due to administration
The user goes from house-to-house for drug administration and records any side-effects observed in the beneficiary for previous doses of drugs for indirect delivery as well as for current dose during direct delivery.
Registrar
Scan and link voucher to the households during registration
The user goes from house-to-house and links the beneficiaries to the QR code voucher at the time of registration.
Distributor
Scan and retrieve household details for distribution
The user goes from house-to-house, and searches for beneficiaries by scanning the QR code voucher.
Distributor and Registrar
Search registered households using the proximity feature
The user goes from house-to-house and searches for beneficiaries by using proximity scanning.
System administrator
a. Create, search, update, and deactivate user accounts.
- Create, search, update, and deactivate other system administrator accounts.
b. Create, assign, update, and delete role assignments.
c. Create, assign, update, and delete campaign assignments.
A system administrator is a super user, who has complete access to all the features that the product includes.
Supervisors
a. Create, search, update, and deactivate user accounts (except system admin).
b. Assign/update/delete role assignments.
c. Assign/update/delete campaign assignments.
Supervisors are responsible to monitor and guide the teams during the campaign and ensure that the targets are met effectively.
Helpdesk user
a. Create, search, update, and deactivate user accounts (except system admin).
b. Assign/update/delete role assignments.
c. Assign/update/delete campaign assignments.
Helpdesk users are the support team established to provide assistance throughout the campaign.
Distributor | Refer beneficiaries to the health facilities | The user goes from house-to-house for drug administration and refers beneficiaries, who require treatment, to the health facilities. |
Supervisor | The user will be able to access their attendance register to mark attendance for their attendees. |
Brief Intro
Sync action allows users to sync the data that is recorded in the system so that it reaches the server and the data is secured.
Before going into the field, the user needs to log into the application every day, which will initiate an automatic sync process. For manual sync, there is a "Sync Data" button on the home screen, which allows the user to sync data according to his/her convenience. At the bottom of the screen, there is a card that shows the message “Data unsynced” along with the number of records unsynced.
When the user clicks on the ‘Sync’ button, the sync action starts along with an overlay showing “Sync in Progress” over the home page. The user cannot perform any other action until the sync is complete or there is some error.
Once the data is synced, it will show a popup, stating “Data Synced” along with a ‘Close’ button at the bottom. When the user clicks on 'Close', it navigates him/her to the home screen.
If the data is not synced due to any error, it will show a popup stating “Sync Failed” with two buttons below it:
Retry: If the user wants to retry syncing the data.
Close: Clicking on this will navigate the user back to the home screen.
After clicking on the hamburger button, a list of actions appears on the user screen. The top displays the user name and contact number, followed by other options such as the home button, language select, edit profile, projects, and logout.
If the user clicks on the hamburger button again, it collapses the hamburger menu. The button is available on all screens of the application.
The user can edit his/her name, and phone number, and select the gender. After updating the details, the user needs to click on the save button which opens a prompt stating “saved successfully”.
If the user does not want to make any changes, he/she can click on the back button, which will take them back to the hamburger menu.
Brief Intro
Checklist is a tool that enables supervisors to monitor certain activities and record observations according to defined set of questions.
Allows users to observe the tasks and fill checklists.
View all the submitted responses for the checklists.
User Roles
User Role | Scope of Action | Role Description |
---|---|---|
The "My Checklist" screen allows supervisors to perform random or scheduled inspections, and record observations of the inspection activity.
On this page, the following actions can be performed:
Clicking on "My Checklist," will display the checklists assigned to the user role.
Clicking on any checklist will show a popup with
- Fill Checklist
- View Submitted Checklists
The "Fill Checklist" option will allow the supervisor to fill the checklist against the date and the administrative area.
The "View Submitted Checklists" will show the checklists submitted by the supervisor.
The National Malaria Programme in Mozambique used the DIGIT HCM app, which they called Salama, to manage the bednets distribution campaign, covering a population of 3,117,551 in Tete province, and 1,586,866 in Gaza province.
Tete province: Located at the center of the country with an area of 98,417 square km, the campaign covered 14 districts out of 15, between August 28, 2023, to September 2, 2023, leaving out the capital, Tete City.
Gaza province: Located in the south of the country, it was the last province to conduct the campaign, with an area of area of 75,709 square km, the campaign covered 13 districts out of 14, leaving out the capital of the province, Xai-Xai city. The campaign was implemented as one block from November 21 to 26, 2023.
Block 1 of the Tete campaign was conducted using Salama, which was developed in collaboration with Nucleo Duro, and validated in two user acceptance testing (UAT) sessions. After this, there were improvements implemented in the product based on the challenges faced and also the feedback received from the NMCP during and after each campaign implementation. In the table below is the list of features and improvements released in each version.
During the implementation of Salama, several capacity-building activities, to provide NMCP with the competencies to manage and implement the activities without the support of the eGov team, were undertaken.
Before the Tete campaign, a Master Training, with the topics indicated in the table below, was conducted:
Individual trainings were provided DIS, DTIC, and M&E experts on the Complaints module, HRMS, and dashboard after the Master ToT.
After the Master Training, people who received the training went on to do the cascade training for people from the central level, who trained people at the province level, who trained people at the district level, and they finally trained the frontline workers.
Along with this a Technical Training was conducted to the NMCP focal points on the following topics:
During the Tete Campaign, several on-the-job refresher training to the NMCP focal points were provided as indicated in the table below:
Before the Gaza campaign, eGov conducted training and shared several guides to enable the team to improve the operation and use of the application. The topics are indicated in the table below:
Moving from block 1 to 2 and from 2 to 3 in the Tete campaign and then to Gaza campaign, we noticed that NMCP focal points have gained more knowledge and experience with DIGIT HCM (Salama). They were able to solve most of the problems in the field and have conducted the training sessions effectively, requiring less support from our team.
Given below is a summary of different activities that were performed by eGov in-person during Tete and Gaza campaigns
Real-time data from the HCM dashboard was used daily to make decisions, and course correct. The HCM helpdesk was used to track and resolve technical issues during the campaign.
Tete province - The details around the total household, population, and bednet coverage for Tete can be found in the table below:
For Tete, the campaign was divided into 3 blocks:
Block 1 - Covered 7 districts between August 29 to September 2, 2023.
Block 2 - Covered 5 districts between September 22 to 26, 2023.
Block 3 - Covered 2 districts between September 30 to October 4, 2023.
Gaza province - The details around the total household, population, and bednet coverage for Gaza can be found in the table below:
DIGIT is India’s largest open-source platform for digital governance. The health services are built on top of DIGIT. It is built on OpenAPI (OAS 2.0) and provides API-based access to various services, enabling governments to provide health campaign services with relevant new ones. It also facilitates integration with the existing system into the platform and runs seamlessly on any commercial/on-prem cloud infrastructure with scale and speed.
Health DIGIT is a micro-services-based platform that is built to scale. Micro-services are small, autonomous, and developer-friendly services that work together.
It facilitates decentralised control between teams so that its developers strive to produce useful tools that can then be used by others to solve the same problems.
Micro-services have intelligent endpoints that process information and apply logic. They receive requests, process them, and generate a response accordingly.
Parallelism in development: Micro-services architectures are mainly business-centric.
A large software or system can be broken down into multiple small components or services. These components can be designed, developed, and deployed independently without compromising the integrity of the application.
DIGIT Health follows a multi-layer or n-tiered distributed architecture pattern. As seen in the illustration above, there are different horizontal layers with some set of components such as Services, Registries, and DIGIT Core Services. Every layer consists of a set of microservices. Each layer of the layered architecture pattern has a specific role and responsibility within the application. The following are the advantages:
Layered architecture increases flexibility, maintainability, and scalability.
Multiple applications can reuse the components.
Parallelism.
Different components of the application can be independently deployed, maintained, and updated, on different time schedules.
Layered architecture also makes it possible to configure different levels of security to different components.
Layered architecture also helps users test the components independently of each other.
The articles in this section include:
The articles in this section include:
Here are the articles in this section:
: Framework to build multi-platform apps
: SQL offline db
: NoSQL offline db
: HTTP Client
Needs to work in low/no network coverage areas.
Needs to have a high level of configurability.
Needs to work on Android.
Users of the app have low-tech literacy.
Sync
Since the app is expected to be configurable, there is a need to receive these configurations from the server. Data already on the server might need to be retrieved by the app as well.
Since the app is expected to work while users are offline, there is the need to send data that has been collected while the user has been offline to the server.
These functionalities are collectively called sync. The retrieval of configuration and data is referred to as sync down while the sending of data collected using the app is called sync up. Login and sync can only be done while the user is online.
When a user logs in, a sync down is performed to fetch the required configuration and data for the field app to run. After collecting data using the app, the user can perform a sync which will perform a sync-up (to send all data collected) followed by a sync-down (to retrieve any fresh configuration). Syncing of data down is not required for the initial implementation and can be turned off.
Configurability
Configurations for the field app are managed as master data in the MDMS service. These configurations are used to manage various aspects of how the app functions. The important ones are:
If the app has to run in an offline first mode or an online mode.
The backend interfaces for the app include localisation, MDMS, and various services. This also includes the URLs for the various services and endpoints so that a fresh app build is not required if there is a new version of an API.
How long the client can use each configuration that has been previously fetched before requesting data from the server (to optimise the time taken for sync).
Values/options that need to be displayed in various fields in the app.
Additional fields are to be captured for any of the entities, if any.
Supported languages.
Op Log
Any action to create or update the data performed by the field user while the app is configured to run in the offline first mode is written to an op log. When the user performs a sync, the sync-up action reads from this op log to send the data to the server.
Permission (role-action)-Based Access and Sync
Sync is optimised to fetch configuration relevant to the logged-in user so that only the configuration/data for the actions, permissible to the user within the projects that they are assigned to, are fetched.
Network Manager
The network manager component in the app acts as an interface between the rest of the app and the backend. As a result, the other components in the app do not have to change their behaviour based on whether the app is online or offline and rely on the network manager to handle this complexity. This implies that the network manager makes an API call directly if the app is offline or saves to the local database and the op log if the device is offline, whereas the other components just make a call to the network manager to read/write data.
Down Sync of Beneficiaries
The down sync of beneficiaries feature is designed to optimise data synchronisation between the local device and the server, specifically focusing on the beneficiary records. This process helps prevent duplicate record creation by different users within the same boundary.
The down sync initiates by sending a request to the server, providing the boundary code along with offset and limit parameters. The server validates the provided parameters and responds with the total count of beneficiary records within the specified boundary.
Based on the total count received, the down sync retrieves beneficiary records from the server in batches. The batch size is dynamically adjusted according to the device's internet speed to optimise the data transfer.
The response from the server, containing beneficiary records, is written to the local entities tables on the device. This ensures that the local database stays updated with the most recent beneficiary information.
Key Features
Utilises offset and limit parameters for efficient pagination of data retrieval from the server.
Adapts the batch size based on the internet speed to enhance the overall synchronisation performance.
Essential for avoiding the creation of duplicate beneficiary records by different users within the same boundary.
Use Case
The down-sync of beneficiaries is particularly crucial in scenarios where multiple users operate within the same geographical boundary. It ensures that each user has access to the latest beneficiary data while minimising redundant record creation.
Multi-Round Campaign
The multi-round campaign streamlines beneficiary registration and delivery processes, ensuring efficient tracking of eligibility and delivery statuses across multiple cycles.
The system fetches the projectType configuration from MDMS for the selected project.
Eligibility checks are dynamically performed based on the retrieved projectType configuration.
The minimum and maximum age criteria are evaluated to determine the beneficiary's eligibility for the current cycle.
Recorded side-effects for the beneficiary in the current cycle.
There is no cycle defined in the MDMS configuration for the selected project on the current date.
Status Tracking
Not Eligible:
The minimum and maximum age criteria are evaluated to determine the beneficiary's eligibility for the current cycle.
Recorded side effects for the beneficiary in the current cycle.
There is no cycle defined in the MDMS configuration for the selected project on the current date.
Beneficiary Refused: Indicates that the beneficiary refused to accept the delivery in the current cycle.
Beneficiary Referred: Indicates that the beneficiary was referred to a health facility during the current cycle.
Visited: Indicates that a delivery was successfully made for the beneficiary in the current cycle.
Not Visited: Indicates that no delivery was made for the beneficiary in the current cycle.
Beneficiary Refused, Beneficiary Referred, and Not Eligible status, except the age eligibility, will target reset every new cycle.
Init App
Login
Sync Down
Data is any information shared by citizens or received from existing databases to enable government service delivery and government operations. It could be name, address, mobile number, age, etc.
Under the Indian law, the current Digital Personal Data Act of 2023 defines data as:
Sec 2(h) - ‘Data’ means a representation of information, facts, concepts, opinions, or instructions in a manner suitable for communication, interpretation, or processing by human beings or by automated means.
It is similar to what is defined as ‘data’ in the Information Technology Act of 2000:
a representation of information, knowledge, facts, concepts or instructions which are being prepared or have been prepared in a formalized manner and are intended to be processed, is being processed or has been processed in a computer system or computer network, and may be in any form (including computer printouts magnetic or optical storage media, punched cards, punched tapes) or stored internally in the memory of the computer.
For this document, PII and personal data are to mean the same.
Personal data is defined under the Digital Personal Data Act,2023 as:
Sec 2 (t) - “Personal data” means any data about an individual who is identifiable by or about such data;
To add, a breach of personal data is also defined in Section 2 (u) as -:
“Personal data breach” means any unauthorised processing of personal data or accidental disclosure, acquisition, sharing, use, alteration, destruction or loss of access to personal data, that compromises the confidentiality, integrity or availability of personal data;
is “any data that allows one to be recognised either directly or indirectly. It is defined as any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such a person.”
Both the above definitions of personal data are to be read together until the government fixates on maintaining one.
1b) Sensitive Personal Data (SPD)
Sensitive Personal data of a person means “...such personal information which consists of information relating to:
password;
financial information such as Bank account, credit card, debit card or any other payment instrument details;
physical, physiological and mental health conditions;
sexual orientation;
medical records and history;
biometric information;
any detail relating to the above clauses as provided to the body corporate for providing service;
and any of the information received under the above clauses by the body corporate for processing, stored or processed under lawful contract or otherwise
Provided that, any information that is freely available or accessible in the public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information[...].”
For this document, ‘product’ refers to any software system that can be used by a government entity, or by a contractor performing any tasks on behalf of that government entity. The term ‘product’ refers to the software (code) itself, and NOT to any implementation of that code. Therefore, a product does not collect, store, process, use, or share data.
2b) Product Implementation
For this document, “product Implementation” refers to each instance of a product/software system that has been implemented.
During the implementation of a product, the implementing agency may collect, store, process, use, and share such data as is necessary for implementing the product. This will normally be specified in the contract or agreement between the implementing agency and the administrative authority responsible for that implementation.
After the implementation of a product is complete, the implementing agency should cease to have access to data from the product implementation, except to such extent as may be agreed between the implementing agency and the administrative authority responsible for that implementation.
In cases where the implementing agency performs the role of a support agency concerning any product implementation, the implementing agency may have access to data as specified for that role. The activity of product implementation involves roles having access to datasets flowing through the product.
For example, Salama (in Mozambique) is the product implementation – It is an implementation of the DIGIT-HCM product.
Any ongoing or to-be-executed delivery of government service or defined government operation is a programme.
During the operation of a programme, the programme owner (and its staff and contractors) will collect, store, process, use, and share such data as is necessary for performing their tasks, and/or which they are required to do under prevailing law.
For example, a programme is one in which ULBs in Punjab use the MSeva product to collect revenues, deliver ULB services, and redress grievances.
2d) Summary & Comparison of Product, Product Implementation, & Programme
We describe a product implementation as progressing across 7 stages:
For this document, a product owner is an entity that owns, governs, or controls the product's codebase. They are responsible for its architecture design, roadmap, and versions.
As a product is a code that has NOT been implemented, a product owner has no access to data.
When a product is implemented, becoming a product implementation, the product owner may have access to such data as is being collected, stored, processed, used, or shared by that product implementation as may be agreed upon by the product owner and the administrative authority responsible for that implementation.
In cases where a product owner performs the roles of an implementing agency or support agency concerning any product implementation, the product owner may have access to data as specified for those roles (see below).
For example, eGovernments Foundation is a product owner.
3b) Implementing Agency (IA)
An agency that deploys and configures a product for the administrative authority or program owner (see below) is an implementing agency (IA). An IA may:
set up the hardware necessary for the programme;
customise, extend, configure, and install/set up the software (product) as per the needs of the programme owner;
train staff or contractors of the program owner on how to use the product;
Perform other such functions to ensure program readiness as may be agreed upon between the implementing agency and the program owner and/or administrative authority responsible for such product implementation.
During the implementation of a product, the implementing agency may collect, store, process, use, and share such data as is necessary for implementing the product. This will normally be specified in the contract or agreement between the implementing agency and the administrative authority responsible for that implementation.
After the implementation of a product is complete, the implementing agency should cease to have access to data from the product implementation, except to such extent as may be agreed between the implementing agency and the administrative authority responsible for that implementation.
In cases where the implementing agency performs the role of a support agency concerning any product implementation, the implementing agency may have access to data as specified for that role (see below).
For example, if a given state government signs a contract with “Company L” to implement the DIGIT-HCM product in that state, Company L is an IA.
For this document, a “programme owner” is the entity responsible for delivering specific public goods, services, or social welfare. A program owner is usually a government entity (though they may contract private entities to perform some or all of these tasks on their behalf).
In the context of a product implementation, the program owner is the primary client of the implementing agency, as they will use the product implementation to perform their tasks.
A programme owner (and its staff and contractors) will collect, store, process, use, and share such data as is necessary for performing their tasks, and/or which they are required to do under prevailing law.
A programme owner has primary responsibility for ensuring that all relevant legal provisions and good practices concerning data security, data protection, and privacy are being followed in its programs.
A programme owner may perform the roles of implementing agency and/or support agency or may contract those roles out to third-party implementing agencies and support agencies respectively. If they are performing these roles, they will have access to such data as is specified for these roles.
A programme owner is typically subordinate to the administrative authority in the official/administrative hierarchy. It is also possible that the administrative authority and program owner are the same entity.
For example, if a government has initiated a program to use the DIGIT-HCM product to reform Health Campaign Management, the respective department that is running the programme will be the programme owner.
3d) Support Agency (SA)
For this document, a “Support Agency” provides support in any functional aspect required by the program owner concerning that product implementation (for example, assistance in the maintenance of the product, technical or operational problem-solving, bug/error resolution).
A support agency would normally be engaged once the product has gone live, that is, during stages 5 and/or 6 of product implementation (see above).
A support agency will have access to such data as is necessary to perform their functions, and this shall normally be specified in the agreement/contract between the supporting agency and the programme owner/administrative authority responsible for that product implementation / the implementing agency responsible for that product implementation (in cases where the implementing agency sub-contracts support functions to the supporting agency).
In cases where a product owner, implementing agency, or program owner performs the role of a support agency, they may have access to such data as is specified for that role.
For example, suppose a given state government signs a contract with “Company L” to implement the DIGIT-HCM product in that state. In that case, and Company L sub-contracts support/maintenance/helpdesk activities to “Company M”, Company M is an IA.
3e) Administrative Authority (AA)
For this document, an administrative authority (AA) is a government entity that has the authority to enter into contracts/agreements with the product owner, implementing agency, and supporting agency.
Under prevailing law, an administrative authority has the power to permit other entities to access (collect, store, process, use, and/or share) data, including the PII of individuals within the territorial jurisdiction of that AA.
For this document, a product owner, implementing agency, or supporting agency cannot access data unless authorised to do so by the administrative authority. Such authorisation may be specified in an agreement/contract between the administrative authority and these entities. Such authorisation must be in keeping with prevailing laws and shall include such provisions and safeguards as are required under prevailing law.
An administrative authority may be a programme owner or maybe a superior agency of a program owner in the administrative hierarchy.
For example, when a given state government decides to implement the DIGIT-HCM product in that state, the specific department of that state government which signs MOUs and/or contracts with eGov Foundation (as product owner), and with an IA to implement the DIGIT-HCM product, is an AA.
The team should include a:
Business analyst
Programme manager
Project manager
Developer
The team should have the necessary to be able to set up and implement DIGIT HCM.
You can also if you have any questions.
The document gives an overview of how an HCM implementation is carried out, the activities in each phase, and the output generated in each phase. There are 4 phases of an HCM implementation:
This phase involves the creation of a programme plan, post-discussion, and finalisation of the scope of digitisation. The output includes the following:
Creation of an Excel documentation of solution requirements as well as JIRA stories.
Creation of documentation on the dashboard and custom reports requirements.
Finalisation and sharing of the master data template.
Detailing a high-level and detailed programme plan with key milestones.
This phase involves ensuring solution readiness and acceptance by users. The output includes the following:
Customised solution as per requirement.
Customised solution demo and feedback received, if any.
Plans for user acceptance testing (UAT), including identification of participants, duration, and agenda.
Creating UAT deck, feedback collection forms, and test cases.
Getting feedback with change requests on the order of priority.
Sign off on the solution after testing.
This phase involves the setting up of the environment, device, and training of trainers as well as end-users. This phase also involves the go-live of the solution. The output includes the following:
Creation of training materials along with SOPs.
Readiness of the training environment.
Conducting master training of trainers, cascade training, as well as training of the helpdesk.
Readiness of the production environment.
Loading filled-out microplan into the platform.
Setting up campaign devices with appropriate settings.
L1, L2, and L3 support as needed for the campaign.
Creation of custom reports during the campaign and analysis of data for insights.
Publishing a case study or whitepaper.
Signing off the document among players for the campaign.
Description of the attendance service
Attendance service allows users to maintain attendance registers, enrol individuals, create, update or search attendance logs and manage staff permissions.
Base Path: /health-attendance/
Here are the articles in this section:
Install
Install
Install
Install 6
Install
Topic | Reference | Preparedness Check |
---|
For example,is a product.
#
Campaign
Improvements/ Feature
1
Tete - Block 1
Web portal for user management
Configuration based role-access management in the web portal
Register beneficiaries
Update existing beneficiary details
Auto-calculation of bednets for delivery
Supervision checklists
Manage and view complaints
Dashboards to monitor campaign operations
Stock Management
Auto-reconciliation of stocks
2
Tete - Block 2
LM to delivery team stock movement changes
Single-click delivery fixes
Conditional checklists for national supervisor
App version in login screen footer
Have warehouse names instead of codes
Showing facility names without IDs in the drop-downs
Fix for bednets count issue in search beneficiary screen
Negative stock alert feature (restriction)
Different roles for local monitor and warehouse manager
Showing Username in the sidebar
The complaints screen made mobile numbers editable for self-raised complaints
Keeping bed net count to 0 instead of 1 in the delivery screen
Loading master data only on login and logout
3
Gaza
Bednet scanner during last-mile delivery
Client audit details
UI/Label changes
Dates
Topics
Location
3rd July-23 to 5th July-23
Overview of HCM platform and its different users
Registration and delivery
Supervision flow
Warehouse management
User Management
Complaints module
Maputo
Dates
Topics
Location
26th July and 27th July
DIGIT HCM (SALAMA) master data templates and data loading
Deployment architecture including setup and maintenance
Extracting reports from the database using the Data Mart reports
Remotely
Dates
Topics
Location
21st of Aug 23
Dashboard overview
Tete
24th of Aug 23
Session to explain the custom reports
N/A
29th of Aug 23
Data Query using Postman
User Management refresher
Tete
Dates
Topics
Location
14th Sept 23
How to use Vysor (projecting a phone during the training)
N/A
14th Sept 23
Troubleshooting guide
N/A
3rd Nov 23
Micro plan manual validation steps
Gaza
9th Nov 23
Device Preparation checklist
(Document Shared)
N/A
13rd Nov 23
Refresher on User Management (Document was shared with the team providing an option to have a refresher training, if necessary)
N/A
22nd Nov 23
Usage of QR Code guideline
N/A
Campaigns
List of activities
Tete Block 1
Tete Block 2
Tete Block 3
Gaza
Preparation of devices that will be used during the training and distribution;
eGov provided support for two days
eGov provided support for one day
Not applicable
eGov didn´t provide support
Participation on the testing and refresher training at provincial level;
Full support
Partial support
No support
No support
Observing and monitoring the training for Local Monitor, Warehouse Managers and Registrators
eGov provided support for 5 districts
eGov provided support for 3 districts
Not applicable
eGov participated for one district
Supporting the first login in DIGIT HCM (SALAMA) of trainees during the training;
eGov provided support for 5 districts
eGov provided support for 3 districts
Not Applicable
No support provided
Collecting the feedback of the usage of DIGIT HCM (SALAMA) from the end-users
eGov provided support for 5 districts
eGov provided support for 3 districts
No support
eGov provided support for one district
Identifying possible issues during the training that can affect the distribution and recommend mitigations
eGov provided support for 5 districts
eGov provided support for 3 districts
No support
eGov provided support for one district
Supporting Help Desk solving issues for example, phones with old version of DIGIT HCM (SALAMA) app
eGov provided support for 5 districts
eGov provided support for 3 districts
No support
eGov provided support for one district
| Product | Product Implementation | Programme |
Definition | Refers to a software system that can be used by government entities or contractors. The term ‘product’ refers to the software (code) itself, and NOT to any implementation of that code. | Refers to each instance of a product/software system that has been implemented. | Any delivery of govt services or other govt operations or reforms can be a programme. In the context of this document, a programme deploys and/or leverages a product implementation. |
Does it process data? | No | Yes | Yes |
Example | DIGIT | Salama | Provinces in Mozambique respectively. |
Stage | Stage name | What happens at this stage | Who handles at this stage |
Stage 0 | Programme set-up | Resources, budgets, procurement, and infrastructure are identified and an implementation partner is onboarded. | None |
Stage 1 | Programme kick-off | Implementation starts and data is collected from a few identified jurisdictions for testing. | Yes. IA, Programme |
Stage 2 | Solution design | State-specific configurations are made with processes and workflows being designed. Policy decisions are made at this stage. | Yes. IA, Programme |
Stage 3 | Customisations and configurations | Adoption and performance of the program are measured. UAT (Usee acceptance testing) is conducted here. | Yes. IA, Programme |
Stage 4 | UAT and Go-live | The UAT testing is completed, feedback is received and final product deployment is carried out at all identified jurisdictions. | Yes. IA, Programme |
Stage 5 | Statewide rollout | Phase-wise implementation of the product begins. Troubleshooting, support with errors, and critical bugs are fixed. | Yes. IA, Programme, SA |
Stage 6 | Sustenance and ongoing improvement | Sustenance and ongoing Improvement - product adoption teams are set, adoption is tracked and awareness and reviews on adoption are conducted | Yes. IA, Programmme, SA |
| Product Owner (PO) | Implementing Agency (IA | Programme Owner (Prog) | Support Agency (SA) |
Definition | The entity that owns, governs, or controls the product's codebase. | The entity that deploys and configures a product for the AA/Prog. | The entity that is responsible for the delivery of specific public goods, services, social welfare. | The entity that provides support in any technical/functional aspect required by the Prog, concerning that product implementation. |
Access to Data | No, except to the extent agreed with Prog/AA. | Yes, during implementation only. | Yes | Yes, to the extent needed for support. |
Example | eGovernments Foundation | Systems integrators (Example: PwC, Transerve) | NMCP or Polio department | Any third party contracted for IT/programme support |
DIGIT Health Campaign Management Demo | DIGIT HCM
This guide provides step-by-step instructions to clone and run the Health Campaign Frontline Worker's App locally on your machine. The app is a Flutter application developed for health campaigns.
Before you begin, ensure that you have the following installed on your PC:
Flutter 3.16.5 version - Flutter SDK.
Android Studio or VS Code, any preferred IDE for Flutter development.
Android device or emulator for testing.
Run the flutter doctor command to ensure all the required checklists are marked.
Open a terminal and run the following commands:
git clone https://github.com/egovernments/health-campaign-field-worker-app.git
cd health-campaign-field-worker-app
Product Repo: egovernments/health-campaign-field-worker-app
Open the project in your preferred IDE (Android Studio, Visual Studio Code). Make sure that your IDE is configured with the Flutter and Dart plugins.
Create a .env file inside the apps/health_campaign_field_worker_app folder.
Sample .env file:
Create another file as pubspec_overrides.yaml in the same folder:
Note: Check that all the folder names are in the packages folder before overriding the dependencies.
Create another file as pubspec_overrides.yaml in packages/attendance_management/pubspec_overrides.yaml
Create another file as pubspec_overrides.yaml in packages/forms_engine/pubspec_overrides.yaml
Run install_bricks.sh bash script which is located in the tools folder. This script fetches and links all the necessary dependencies for the project.
After successfully running the script and setting up the env file, navigate to the app's folder from the terminal:
cd apps/health_campaign_field_worker_app
Connect your Android device or start an emulator. Ensure that it is visible by running
flutter devices.
Now, run the following command to launch the app:
flutter run.
This command will build the app and install it on the connected device or emulator.
Create a .env file inside the apps/health_campaign_field_worker_app folder.
Sample .env file:
Create another file as pubspec_overrides.yaml in the same folder.
Note: All the folder names should be in the packages folder, before overriding the dependencies.
Create another file as pubspec_overrides.yaml in packages/attendance_management/pubspec_overrides.yaml
Create another file as pubspec_overrides.yaml in packages/forms_engine/pubspec_overrides.yaml
Run install_bricks.sh bash script which is located in the tools folder. This script fetches and links all the necessary dependencies for the project.
After successfully running the script and setting up the env file, navigate to - apps/health_campaign_field_worker_app folder in the terminal, and run the following command to generate the APK:
flutter build apk --release --no-tree-shake-icons
After successfully running the above command, the APK will be generated in the path
apps/health_campaign_field_worker_app/build\app\outputs\flutter-apk\app-release.apk
Install the generated APK on your preferred Android device.
All the Master data persist in MDMS under the tenant folders.
Sample: https://github.com/egovernments/health-campaign-mdms/tree/DEV/data/default. App master data persist in:
https://github.com/egovernments/health-campaign-mdms/tree/DEV/data/default/health
Consist of service register: All the APIs that the app utilises to call the server: https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/service-registry.json
App configuration: Primary details required to run the app:
https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/field-app-configuration.json Project types: Details of the projects are listed here: https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/project-types.json
Additional static configs: https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/symptoms_types.json
Import the following curl in Postman:
Note:
Replace the {URL} with the required environment.
Get the {authToken} of SUPER_USER.
Replace the {tenantId} with the required tenant.
Each message object should have a unique code and module.
Sample message to upsert:
If the localisation is not executed prior, then -
Consolidated: https://github.com/egovernments/releasekit/blob/master/localisation/HCM/consolidated/en_MZ/consolidated.json Module Localisation:
https://github.com/egovernments/releasekit/tree/master/localisation/HCM/V1.3
Installation steps for DIGIT HCM
The DIGIT HCM installation comprises three steps to create a new production-ready server that can be scaled on demand. The installation process is currently supported only for AWS. However, support for other cloud platforms such as Azure and GCP will be available in the future.
Step 1: Execute GitHub Action for installation: Execute a GitHub action for the installation process.
Step 2: Execute the Postman Collection for Minimum Setup Data: Execute the minimum setup data required to run a campaign
Step 3: Generating the APK for the Server: Generate the APK pointing to the server as mentioned above.
To create and configure health campaign dashboards in a different space within Kibana, click here.
Global standards vary from stakeholder natures, functioning, and deliverables. The core agenda of this exercise was to find a few globally certified standards in the DPP space that fit each of these roles:
Product owner: A product owner is an entity that owns, governs, or controls the product's codebase. They are responsible for its architecture design, roadmap, and versions.
Implementing agencies: An agency that deploys and configures a product for the program owner is an implementing agency (IA).
Programme owners: A “programme owner” is an entity responsible for delivering specific public goods, services, or social welfare. A Program owner is usually a government entity.
Depending on the nature of the work, the product owner undertakes the NIST Privacy Framework as a direction for standardisation.
What is it?
The privacy framework comprises three parts: Core, profiles, and implementation tiers.
Each component reinforces privacy risk management by connecting business and mission drivers, organisational roles and responsibilities, and privacy protection activities.
The core enables a dialogue — from the executive level to the implementation/operations level — about important privacy protection activities and desired outcomes.
Profiles enable the prioritisation of the outcomes and activities that best meet organisational privacy values, mission or business needs, and risks.
Implementation tiers support decision-making and communication about the sufficiency of organisational processes and resources to manage privacy risk.
The advantages of NIST are:
It pushes for privacy engineering functions to be embedded in the design of the software.
It promotes transparency as the guidelines are communicated to implementing agencies (IAs) and programme owners.
It enhances trust as it encourages proactive privacy measures to be taken from the design stage itself.
It streamlines operations by embedding privacy into the functional and design practices, avoiding costly retroactive changes.
An IA’s core responsibility is to deploy the product. Its functions require hands-on functions of customisation, configuration, training, and support. The IA ideally has complete access to the data of citizens. For an IA getting certified under ISO 27701 is recommended. This certification requires a certification to ISO 27001 as a first step.
Why ISO 27701?
The upcoming Digital Personal Data Protection Bill will require companies that are eligible to be an IA to undergo steps similar to those in ISO 27701.
The steps/key components of ISO 27701's Privacy Information Management System (PIMS) are:
Privacy risk management: ISO 27701 will require an IA to identify and assess privacy risks associated with the processing of Personally Identifiable Information (PII) and implement appropriate controls to mitigate these risks.
Privacy policy and procedures: ISO 27701 requires an IA to develop and implement privacy policies and procedures that are aligned with the administering authority’s overall information security policies and procedures.
Data subject rights: ISO 27701 requires the IA to establish procedures for handling data subject requests, such as access, rectification, and erasure of personal data. With such a feature embedded, the citizens would be allowed to exercise their right to privacy.
Privacy training and awareness: ISO 27701 requires an IA to provide privacy training and awareness programs to employees and other stakeholders to ensure that they understand their roles and responsibilities in protecting PII.
Incident management: ISO 27701 requires an IA to establish procedures for managing privacy incidents, including breach notification, investigation, and remediation.
Third-party management: ISO 27701 requires an IA to establish procedures for managing third-party relationships that involve the processing of PII, including due diligence, contract management, and monitoring.
Assurance: ISO 27701 assures senior members of administrative authorities, and other stakeholders, such as citizens and partners that the organisation is committed to protecting Personally Identifiable Information (PII) and has implemented international best practices for privacy management.
Trust: ISO 27701 can help organizations build trust with stakeholders by providing tangible evidence of their commitment to protecting PII.
Compliance: ISO 27701 supports compliance with globally recognised data protection and privacy regulations such as GDPR, CCPA, and others.
Risk management: ISO 27701 helps the IA identify and mitigate privacy risks, reducing the likelihood of data breaches, reputational damage, and financial losses.
Global standard: ISO 27701 is a respected global standard for privacy information management and can be used by agencies of all sizes and from all sectors.
Integration: ISO 27701 is an extension of ISO 27001, meaning it can be integrated with an existing Information Security Management System (ISMS) to enhance privacy management and compliance efforts.
In conclusion, by getting certified under ISO 27701, implementing agencies can demonstrate their commitment to protecting PII, build trust with stakeholders, comply with data protection and privacy regulations, and improve their privacy risk management efforts.
Git | Do you have a Git account? Do you know how to clone a repository, pull updates, push updates? Do you know how to give a pull request and merge the pull request? |
Microservice Architecture | Do you know when to create a new service? How to access other services? |
ReactJS | How to create react app? How to create a stateful and stateless component? How to use HOC as a wrapper?Validations at form level using React.js and Redux. |
Postgres | How to create a database and set up privileges? How to add an index on a table? How to use aggregation functions in psql? |
Postman | Call a REST API from Postman with proper payload and show the responseSetup any service locally (MDMS or user service has least dependencies) and check the API’s using postman. |
REST APIs | What are the principles to be followed when making a REST API? When to use POST and GET? How to define the request and response parameters? |
Kafka | How to push messages on Kafka topic? How does the consumer group work? What are partitions? |
Docker and Kubernetes | How to edit deployment configuration? How to read logs? How to go inside a Kubernetes pod? How to create a docker file using a base image? How to port-forward the pod to the local port? |
JSON | How to write filters to extract specific data using jsonPaths? |
YAML | How to read an API contract using swagger? |
Zuul | What does Zuul do? |
Maven | What is POM?What is the purpose of maven clean install and how to do it?What is the difference between the version and SNAPSHOT? |
Springboot | How does autowiring work in spring? How to write a consumer/producer using spring Kafka? How to make an API call to another service using restTemplate? How to execute queries using JDBC template? |
Elastic search | How to write the basic queries to fetch data from the elastic search index? |
DIGIT Architecture | What comes as part of the core service, business service and municipal service? How to calls APIs from one service in another service? |
DIGIT Core Services | Which are the core services in the DIGIT framework? |
DIGIT DevOps | |
DIGIT MDMS | How to read a master date from MDMS? How to add new data in an existing master? Where is the MDMS data stored? |
DIGIT UI Framework | How to add a new component to the framework? How to use an existing component? |
DSS | |
Installation Guide for DIGIT-HEALTH via GitHub Actions in AWS
This guide provides step-by-step instructions for installing DIGIT using GitHub Actions in an AWS environment.
This guide provides step-by-step instructions for installing DIGIT using GitHub Actions in an AWS environment.
Github account - signup
Kubectl installed in the system - installation guide
AWS account - signup
Install AWS CLI locally - installation guide
Postman - installation guide
A domain host
Prepare AWS IAM User
Create an IAM User in your AWS account - official document
Generate ACCESS_KEY and SECRET_KEY for the IAM user - AWS document
Assign administrator access to the IAM user for necessary permissions.
Set up the AWS profile locally by running the following commands
aws configure --profile {profilename}
fill in the key values as they are prompted
AWS_ACCESS_KEY_ID: <GENERATED_ACCESS_KEY>
AWS_SECRET_ACCESS_KEY: <GENERATED_SECRET_KEY>
AWS_DEFAULT_REGION: ap-south-1
export AWS_PROFILE={profilename}
Fork the following Repositories with all the branches into your organisation account on GitHub - official documentation.
Go to the forked health-campaign-devops repository
Navigate to the repository settings
Then to Secrets and Variables
Then click on actions options below secrets and variables
On the new page, choose the new Repository secret option in Repository secrets and add the following keys mentioned below
AWS_ACCESS_KEY_ID: <GENERATED_ACCESS_KEY>
AWS_SECRET_ACCESS_KEY: <GENERATED_SECRET_KEY>
AWS_DEFAULT_REGION: ap-south-1
AWS_REGION: ap-south-1
Navigate to the Kubernetes-1.27 branch in the forked DevOps Repository
Enable GitHub Actions
Click on Actions then click on I understand my workflows, go ahead and enable them
The following steps can be done either directly in the browser or the local system if you are familiar with git usage
Before following any of the steps switch to the kubernetes-1.27 branch
Steps to edit the git repository in the browser - Git guide
Steps to edit in the local system if you are familiar with Git basics
Git clone {forked DevOps repolink}
Follow the below steps and make changes
Then commit and push to the kubernetes-1.27 branch
NOTE: Complete all changes at once then commit and push the code to remote to trigger the installation.
Note: - make these repository/Branch changes before installation, changes to the config repository link in the DevOps Repository after installation without working understanding will lead to failure in the application functionality.
Navigate to egov-demo.yaml (config-as-code/environments/egov-demo.yaml)
Under the egov-mdms-service: initContainers: change the gitsync repository link of master data to the master data repository you forked and the branch to DEMO (The branch also can be changed based on your choice).
Under the egov-persister: change the gitsync link of the health-campaign-config repository to the forked config repository and the branch to DEMO
Under the egov-indexer: change the gitsync link of the health-campaign-config repository to the forked config repository and the branch to DEMO
Navigate to infra-as-code/terraform/sample-aws.
Open input.yaml and enter details such as domain_name, cluster_name, bucket_name, and db_name.
Generate SSH key pair
How to Generate SSH Key Pair - choose one of the following methods to generate an SSH key pair:
Method a: Use an online website. (Note: This is not recommended for production setups, only for demo purposes): https://8gwifi.org/sshfunctions.jsp
Method b: Use OpenSSL commands:
OpenSSL genpkey -algorithm RSA -out private_key.pem
openssl rsa -pubout -in private_key.pem -out public_key.pem
To view the key run the commands or use any text editor to open the files
vi private_key.pem
vi public_key.pem
Once generated Navigate to config-as-code/environments
Open egov-demo-secrets.yaml
Replace ssh_private_key (note: please make sure the private key is indented as given)
Add the public_key to your GitHub account - Git guide
Once all details are entered, push these changes to the remote GitHub repository. Open the Actions tab in your GitHub account to view the workflow. You should see that the workflow has started, and the pipelines are completed successfully.
Once the deployment is done get the CNAME of the nginx-ingress-controller
The output of this will be something like this:
ae210873da6ff4c03bde2ad22e18fe04-233d3411.ap-south-1.elb.amazonaws.com
Add the displayed CNAME to your domain provider against your domain name.
Connect to the Kubernetes cluster, from your local machine by using the following cmd
Check if all the egov-user service is up and running by the following cmd
If all the egov-user service is running with Ready 1/1, then connect to it by port forwarding
Import the below curl in Postman or execute it in another terminal window
Replace the username, password, and tenantId with proper values (keep tenantid as 'mz' if master data is unchanged).
Check if all the services are up and running by using the following cmd
If all the services are running with Ready 1/1, then restart the Zuul service by using the below cmd
As you wrap up your work with DIGIT, ensuring a smooth and error-free cleanup of the resources is crucial. The regular monitoring of the GitHub Actions workflow's output is essential during the destruction process. Watch out for any error messages or signs of issues. A successful job completion will be confirmed by a success message in the GitHub Actions window, indicating that the infrastructure has been effectively destroyed.
When you're ready to remove DIGIT and clean up the resources it created, proceed with executing the terraform_infra_destruction job. This action is designed to dismantle all setup resources, clearing the environment neatly. We hope your experience with DIGIT was positive and that this guide makes the uninstallation process straightforward.
To initiate the destruction of a Terraform-managed infrastructure, follow these steps:
Navigate to Actions.
Click DIGIT-Install workflow.
Select Run workflow.
When prompted, type "destroy". This action starts the terraform_infra_destruction job.
You can observe the progress of the destruction job in the actions window.
Supervisors
Fill the checklists
View submitted checklists
Supervisors are responsible to oversee the campaign operations and monitor the activities, and ensure the targets are achieved effectively.
To understand how to create dashboards in Kibana, refer to this guide: Create a Dashboard of Panels.
To edit existing dashboards, open the desired dashboard.
Click on the ‘Edit’ button.
For each chart you want to edit, click on “Edit Visualization”.
Check the chart type and data view from which data is getting fetched as shown in the image below:
Click on “Edit Lens” to get an overview of the available and selected fields in the respective data view.
You can go to the respective data view under Stack Management -> Saved Objects, update the indexes, and add a timestamp filter for the respective chart.
View/Edit Queries used to get the metric data
After going back to the “Edit Visualization”, you can see the metrics that are shown in the chart here as shown in the image below:
Click on the desired metric, for which you want to view/edit the query.
View Data Sources
To see which index a data view is pulling the data from, check the respective data views in Stack Management -> Data Views.
If you need to create your own data views, follow this guide: Creating Data Views in Kibana.
For example, if you click on “Edit Visualization” on a chart, you will see that the table chart is getting data from the DV-PT-PJT data view.
You can then view the DV-PT-PJT data, check the indices from where the data is getting pulled, and add a timestamp filter according to your requirements.
This step involves the execution of the Postman collection for the minimum setup data required to run a campaign.
All file examples in this document refer to the default branches in the health campaign DevOps and config repositories for example purposes. If you have replaced these repositories with your fork or clone, refer to the same here.
Repository details
Branch - kubernetes-1.27
Branch - DEMO
Branch - DEMO
Create an environment variable file and add the below variables in Postman
Click on New and then Environment, then add the following variables
URL
tenantId - mz
apiUserName and apiPassword - newly created superuser credentials
startDate and endDate in epoch format - epoch converter
boundaryCode - use the default value (VFTw0jbRf1y) if Master data is unchanged
Import the seed data script
HCM Setup Script - This collection includes all the scripts to create users, Projects, staff and product variants
Import the HCM setup script in Postman - import guide
Once Env is selected then click on the imported HCM setup collection click run
Once the Script is executed completely, update the following values from the postman environment variable to the project-types.json (health-campaign-mdms/blob/DEMO/data/mz/health/project-types.json) master data file - example link
Pick the values by clicking on the eye icon
Pick the value of a postman env variable named ProductVariantIdBednet1 and replace all occurrences of the text "PVAR-2024-03-21-000026" with the copied value in the project-types.json.
Pick the value of a postman env variable named ProductVariantIdSP and replace all occurrences of the text "PVAR-2024-03-21-000022" with the copied value in the project-types.json.
Pick the value of a postman env variable named ProductVariantIdAQ and replace all the occurrences of the text "PVAR-2024-03-21-000024" with the copied value in the project-types.json.
Localisation scripts are here; During local execution, the script fails because of the rate limit exception, but it will execute as expected on the server.
Replace the URL variable in the Postman Environment with your domain URL
While executing the localisation collection, execute only five folders at a time by unchecking the box in the run screen to avoid inbuilt rate limiter errors.
Else, create a port forward to the localisation pod by executing the below command:
Replace the URL variable in the Postman Environment to http://localhost:8080.
Run the collection.
This document outlines the steps required to create and configure health campaign dashboards in a different space within Kibana.
Kibana 8.11.3 version to be installed.
Knowledge of creating dashboards in Kibana.
Transformer and indexer services are up and running to enrich data for KPI creation and push data to elastic search.
URL: {{HOST NAME}}/kibana
Replace the {{HOST NAME}} with your domain URL.
Check the Kibana version through UI in the ‘Help’ section.
Verify transformer service and indexer services changes and builds deployed.
For reference, attaching the transformer and indexer services repository links here:
By default, users will have access to the default space.
To create a new space or edit, open the main menu, then click Stack Management → Spaces for an overview of your spaces. This view provides actions to create, edit, and delete spaces.
Switch to or create a new space where the dashboards will be configured.
We have existing data views and dashboards from the product environment that you can import and use. To import existing data views, follow the steps below:
Navigate to the “Stack Management” in the sidebar.
Click on “Saved Objects” under Kibana.
Import the data views file here. Data views contain the queries and charts needed to fetch data from the indexes. The file to be imported: Production Dashboard Data Views Export File.
If you need to create your own data views, follow this guide: Creating Data Views in Kibana.
All dashboards and data views will be imported here and can be viewed under “Saved Objects”.
5. How to render the dashboards in the DIGIT application
To render the dashboards, using iFrame in your application, follow these steps:
Add your respective dashboard view URLs to uiCommonConstants.json common-masters module.
Dashboard endpoints can be found by viewing the required dashboard in Kibana.
For example, to the dashboard URL to uiCommonConstants, open the national dashboard, and you will find the view URL endpoint at the address bar, as shown in the above image.
To add the link to the desired dashboard in the DIGIT application based on the roles of each employee, add the iframe URLs in ACCESSCONTROL-ACTIONS-TEST to display each dashboard in your application. For example, to add the link to the national dashboard, the navigation URL should be:
/{contextPath}/employee/utilities/iframe/elastic/national
Replace the context path with the application context path.
Map the action IDs to the required role in role-actions.json.
6. Verify the dashboard configured in the application by:
Navigating to your employee application URL:
{{HOST NAME}}/{{CONTEXT-PATH}}/employee/user/language-selection
Log in with the user credentials for which you have configured the dashboard links.
After you log in, check the dashboard link that was added in role actions which will be displayed in the the dashboard card.
Click on the dashboard link configured for the logged-in user. You will see that the dashboard was rendered through i-frame in the UI.
To create a new dashboard or edit existing dashboards in Kibana, click here.
To view a summary of data views and dashboards in HCM, click here.
Here are the articles in this section:
s
Choose the new environment created in the environment tab