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...
HCM v1.5 is a product release with upgrades for a new campaign adaptation such as IRS.
Enhancement of DIGIT HCM for managing a new campaign such as IRS.
Enhancement to provide the ability to link downloaded households to new campaigns.
The product has been enhanced to capture information related to house structure, room details, and the number of pregnant women and children present in the house independent of the campaign type.
Enhanced accuracy for geo coordinates capture in the app.
Enhancement of DSS dashboards for new campaign adaption.
Enhancement to provide the ability to view dashboards for District Supervisors in the mobile application.
Closed Household: This feature enables data collection on closed households by utilizing the existing registration and delivery package. It allows CDDs (Community Drug Distributors) to revisit households for registry updates efficiently.
Registration and Delivery: Added intermediate screens to enhance registration of households to support new campaigns.
User Action: Full CRUD functionality for project-related actions taken by the field worker that are not tasks related to the beneficiary like:
Refusal of consent for data collection.
Scanning of resources that will be reused for multiple deliveries.
Marking a transit post-non-compliant (polio).
Marking any incident that doesn't bear relation to the beneficiary.
Location capture of the field worker app.
Dashboard Updates:
Mobile Dashboard: Enabled the mobile dashboard for district supervisors and configured the Digit UI DSS Dashboard to support new campaigns (e.g. IRS).
National Dashboard Enhancements: Introduced support for pie charts and bar charts.
Map Configurations: Moved map configuration data to S3 assets.
Chart Configurations: Added and modified chart configurations for both the Mobile and DSS Dashboards (e.g., IRS), including both new and existing charts.
Tech Debts
Search Query Optimization: Enhanced search queries across the mobile application for improved performance.
Boundary Localizations: Migrated boundary localizations from the ISAR (JSON) database to an SQL database in the mobile application for better efficiency.
Pop-ups have been added to various screens to improve geo-coordinate accuracy within the app. These pop-ups will display a message and temporarily freeze the screen, allowing users to capture a person's geo-coordinates without disruption.
No breaking changes were made.
Configurable Project Dashboard: Previously, project dashboard configurations were hardcoded. Now, they are fully configurable based on boundary v2 and project-type codes.
Removal of Hardcoded Context Paths: All hardcoded context paths have been removed throughout the application, improving flexibility and maintainability.
Map Config Data Moved to S3: Due to the large size of the map configuration data, it could not be loaded into MDMS v2. This data has now been moved to S3 assets for better handling and storage.
Search Query Enhancement: Previously, each entity had its own individual search. Now, we have implemented a unified query builder, which has significantly improved the performance of the search functionality.
The HCM v1.5 release does not require any migration from the 1.4 release.
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, there is an opportunity to reimagine the way countries can plan and implement campaigns through open-source digital platforms.
Today, digital tools are either free but not fit for purpose, or they do the job but cost a fortune due to repetitive work adding to the costs. Data is locked in silos and there is no operability between systems. These tools are also difficult to sustain and scale. These realities made it clear that isolated approaches cannot do the job.
Health campaigns require a holistic digital transformation. That's why DIGIT Health Campaign Management or DIGIT HCM was developed to address these challenges effectively.
DIGIT HCM is a free, fit-for-purpose, open-source, end-to-end health campaign digitisation product. It covers campaign setup, planning, registration, service delivery, inventory management, and real-time data dashboards, enabling faster and cost-effective health campaigns. DIGIT HCM is designed to evolve rapidly and adapt to local needs while addressing systemic challenges.
With DIGIT HCM, all programmes — whether for polio, malaria, or measles — are unified under a single, streamlined interface. This ensures that data flows seamlessly across different modules, improving data quality and accessibility.
The shared data repository within DIGIT HCM guarantees a “single source of truth,” maintaining high data quality. It offers easy integrations, seamlessly operating with open-source products, providing a unified system for health campaign management.
DIGIT HCM is designed with highly configurable, reusable modular building blocks, enabling rapid reconfiguration of the same product for different health campaigns. These modules can also be repurposed to develop new solutions for routine health, primary healthcare, and other areas.
More than just a product, DIGIT HCM is a comprehensive solution designed to streamline health campaigns, enhance coordination, and improve outcomes at every level of the health campaign management system.
Find the service build updates below:
Find the service build updates below:
HCM v1.4 is a tech release with only server upgrade to with some additional cleanup.
Digit core LTS integration
MDMS v2 integration
Boundary V2 integration
HCM Admin Console
DIGIT HCM app modules as package extractions
Missing unique validation on client reference ID added in all offline supported services.
Project types have been moved to project additional details from MDMS.
UI modules extracted as packages
Registration and delivery
Referral reconciliation
Inventory management
Attendance management
DIGIT scanner
DIGIT showcase
All core services have been upgraded to core 2.9 LTS barring the services modified for offline use cases.
All data models have been restructured with an "is a relationship" from base eGov model and the base eGov search model.
All data models have been moved to the health common library and duplicates removed.
Removed reflection until code in the health common library that is Incompatible with Java 9 and above.
All the master data for the DIGIT HCM app are separated by functionality from one single master.
Flyway version upgrade to 9.22.3 for LTS upgrade.
Boundary v2 Integration
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 .
Category (Tag) | Services | Docker Artifact ID | Remarks |
---|
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
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:
|
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
DIGIT is certified as a Digital Public Good (DPG) by the Digital Public Goods Alliance (DPGA) - a multi-stakeholder initiative with a mission to accelerate the attainment of sustainable development goals. Click here for more details.
DIGIT HCM is a Digital Public Infrastructure (DPI) that enables countries to transform public health campaigns.
The HCM v1.4 release requires migration of the boundary and MDMS data if the server is not a fresh deployment but an existing v1.3 deployment
If the current environment has boundary data in MDMS v1 please follow the steps mention in the document below to migrate to boundary v2. Boundary migration from v1 to v2 LTS
If the environment is new the one click installer and data loader will by default load the data required.
If the Environment has pre existing data then the MDMS v2 migration tool should be run using the below document:
MDMS migration from v1 to V2 LTS
Following is the code link:
Category (Tag) | Services | Docker Artifact ID | Remarks |
Facility | egovio/facility-db:v1.1.2-00a7accbda-14 | Not Changed |
| Household | egovio/household-db:v1.1.4-a0e714254c-30 | Changed |
| Individual | egovio/individual-db:v1.1.6-a0e714254c-12 | Changed |
| Project | egovio/project-db:v1.1.5-a0e714254c-13 | Changed |
| Product | egovio/product-db:v1.1.0-00a7accbda-31 | Not Changed |
| Referral Management | egovio/referralmanagement-db:v1.0.3-a0e714254c-42 | Changed |
| Stock | egovio/stock-db:v1.1.3-a0e714254c-31 | Changed |
| Transformer | transformer:HDDF-1277-2f487e8dc5-256 | Changed |
| HRMS | egovio/egov-hrms-db:v1.2.7-00a7accbda-19 | Not Changed |
Pgr | egovio/pgr-services-db:v1.1.7-00a7accbda-19 | Not Changed |
Service-request | egovio/service-request-db:v1.0.1-a0e714254c-18 | Changed |
Health-attendance | egovio/health-attendance-db:v1.0.2-30824c427-11 | Not Changed |
Digit-Ui | egovio/digit-ui:health-dashboard-digit-ui-d216162056-686 | Changed |
Health-UI | health-ui:health-dashboard-product-5bd3650bf2-691 | Changed |
Not Changed |
Dashboard | egovio/dss-dashboard:v1.8.0-0d70d60e63-53 | Unchanged |
egovio/dashboard-analytics:master-impel-f705ac483a-48 | Unchnaged |
egovio/dashboard-ingest:v1.1.4-72f8a8f87b-10 | Unchnaged |
egovio/project-factory:v0.2.0-1ea8b5b5b9-9 | Changed |
egovio/workbench-ui:v0.2.0-6f08f64238-535 | Changed |
Category (Tag) | Services | Docker Artifact ID | Remarks |
Facility | egovio/facility-db:v1.1.2-00a7accbda-14 | Changed |
| Household | egovio/household-db:v1.1.3-00a7accbda-12 | Changed |
| Individual | egovio/individual-db:v1.1.5-00a7accbda-6 | Changed |
| Project | egovio/project-db:v1.1.4-00a7accbda-5 | Changed |
| Product | egovio/product-db:v1.1.0-00a7accbda-31 | Not Changed |
| Referral Management | egovio/referralmanagement-db:v1.0.2-00a7accbda-14 | Changed |
| Stock | egovio/stock-db:v1.1.3-00a7accbda-18 | Changed |
| Transformer | egovio/transformer:v1.1.2-00a7accbda-19 | Changed |
| HRMS | egovio/egov-hrms-db:v1.2.7-00a7accbda-19 | Changed |
Pgr | egovio/pgr-services-db:v1.1.7-00a7accbda-19 | Changed |
Service-request | egovio/service-request-db:v1.0.0-00a7accbda-16 | Changed |
Health-attendance | egovio/health-attendance-db:v1.0.2-30824c427-11 | Changed |
Digit-Ui | egovio/digit-ui:health-dashboard-product-3cb11409c9-636 |
Changed |
Dashboard | egovio/dss-dashboard:v1.8.0-0d70d60e63-53 | Unchanged |
egovio/dashboard-analytics:master-impel-f705ac483a-48 | Unchnaged |
egovio/dashboard-ingest:v1.1.4-72f8a8f87b-10 | Unchnaged |
egovio/project-factory:v0.1.0-6caaf2700e-6 | Changed |
egovio/workbench-ui:v0.1.0-6caaf2700e-16 | Changed |
Checklist | Yes/No/Partially | Reference Link/ETA | Owner | Reviewer | Remarks |
The development is complete for all the features that are part of the release. | Yes |
Test cases are documented by the QA team, reviewed by product owners, and test results are updated in the test cases sheet. | Yes |
The incremental demo of the features showcased during the sprint showcase and feedback is incorporated. If possible, list out the JIRA tickets for feedback. | Yes | 23-July-24 29-July-24 06-Aug-24 25-Sept-24 |
UI/UX audit review is completed along with feedback incorporation for any changes in UI/UX. | Yes | 23-July-24 |
QA sign-off is completed by the QA team and communicated to product owners. All the tickets’ QA sign-off status is updated in JIRA. | Yes | Lata |
UI, and API technical documents are updated for the release along with the configuration documents. | Yes |
UAT promotion and regression testing from the QA team is completed. The QA team has shared the UAT regression test cases with the product owners. | Yes | Lata |
The API backward compatibility testing is completed. | Yes | No breaking changes are made. |
The communication is shared with product owners for the completion of UAT promotion and regression by the QA team. The product owners have to give a product sign-off within one week of this communication. | Yes | 4-June 24 | As part of admin console product owner sign-off has been completed |
The UAT product sign-off communication is received from product owners along with the release notes and user guides (if applicable). | Yes | 20-June-24 | As part of admin console product owner sign-off has been completed |
The GIT tags and releases are created for the code changes for the release. | Yes |
Verify whether the release notes are updated. | Yes |
Verify whether all the UAT builds are updated along with the GIT tag details. | Yes | Lata |
Verify whether all MDMS, configurations, infra-ops configurations are updated. | Yes |
Partially |
Verify whether all test cases are up-to-date and updated along with the necessary permissions to view the test cases sheet. The test cases sheet is verified by the test lead. | Yes |
Verify whether the UAT credentials' sheet is updated with the details of new users and roles, if any. | Yes |
Verify whether all the localisation data was added in UAT, and updated in the release kits. | Yes | No functional changes were made |
Verify whether the product release notes and user guides are updated and published. | No | No product functional changes were made |
The demo of the released features is done by the product team as part of a sprint/release showcase. | No | Demo has been give as a part of the HCM Console release |
Technical and product workshops/demos are conducted by the engineering and product teams respectively to the implementation team (implementation handover). | Yes |
Architect sign-off and technical quality report. | Yes |
Verify Bug Bash has been completed | No |
Gate 2 | No |
The internal release communication along with all the release artefacts are shared by the engineering/ product teams. | Yes |
Checklist | Yes/No/Partially | Reference Link/ETA | Owner | Reviewer | Remarks |
The development is complete for all the features that are part of the release. | Yes |
Test cases are documented by the QA team, reviewed by product owners, and test results are updated in the test cases sheet. | Yes |
The incremental demo of the features showcased during the sprint showcase and feedback is incorporated. If possible, list out the JIRA tickets for feedback. | Yes | 12-June-24 |
UI/UX audit review is completed along with feedback incorporation for any changes in UI/UX. | Yes | 30-May-24 |
QA sign-off is completed by the QA team and communicated to product owners. All the tickets’ QA sign-off status is updated in JIRA. | Yes | Lata |
UI, and API technical documents are updated for the release along with the configuration documents. | Yes |
UAT promotion and regression testing from the QA team is completed. The QA team has shared the UAT regression test cases with the product owners. | Yes | Lata |
The API backward compatibility testing is completed. | Yes | No breaking changes are made. |
The communication is shared with product owners for the completion of UAT promotion and regression by the QA team. The product owners have to give a product sign-off within one week of this communication. | Yes | 4-June 24 | As part of admin console product owner sign-off has been completed |
The UAT product sign-off communication is received from product owners along with the release notes and user guides (if applicable). | Yes | 20-June-24 | As part of admin console product owner sign-off has been completed |
The GIT tags and releases are created for the code changes for the release. | Yes |
Verify whether the release notes are updated. | Yes |
Verify whether all the UAT builds are updated along with the GIT tag details. | Yes | Lata |
Verify whether all MDMS, configurations, infra-ops configurations are updated. | Yes |
Partially |
Verify whether all test cases are up-to-date and updated along with the necessary permissions to view the test cases sheet. The test cases sheet is verified by the test lead. | Yes |
Verify whether the UAT credentials' sheet is updated with the details of new users and roles, if any. | Yes |
Verify whether all the localisation data was added in UAT, and updated in the release kits. | Yes | No functional changes were made |
Verify whether the product release notes and user guides are updated and published. | No | No product functional changes were made |
The demo of the released features is done by the product team as part of a sprint/release showcase. | Yes | 20-June-24 | Demo has been give as a part of the HCM Console release |
Technical and product workshops/demos are conducted by the engineering and product teams respectively to the implementation team (implementation handover). | Yes |
Architect sign-off and technical quality report. | Yes |
Verify Bug Bash has been completed | Yes | 31-May-24 |
Gate 2 | 21-Jun-24 |
The internal release communication along with all the release artefacts are shared by the engineering/ product teams. |
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 |
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 |
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
Feature | Service name | PR |
Attendance Session Configuration | Attendance | |
Role action Mapping Service register |
Feature | Service name | PR |
Health Facility Referral | referral | , |
Attendance |
Devops |
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.
Find the Product Capability Roadmap below:
To see a detailed version of this roadmap, click here.
Name of the field | Description | Mandatory | Input | Validation | Comments | Need data from program/state |
---|
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 |
---|
Here are the articles in this section:
Mail has been communicated to for UI/UX audit
,
,
Verify whether all docs will be published to by the Technical Writer as part of the release.
Mail has been communicated to for UI/UX audit
,
,
by the Technical Writer as part of the release.
Health
MDMS
Config
Devops
Localisation
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.
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:
The ability to support voucher-based registration: Users can now scan and link a 2D code voucher to a beneficiary (household or an individual) while registering the beneficiary.
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.
Ability to search registered beneficiaries and deliver benefits (products/services) for a multi round campaign- Supporting the following use cases is now possible:
Single Cycle- Single Dose
Single Cycle- Multiple Doses
Multiple Cycles- Single Dose
Multiple Cycle- Multiple Doses
Ability to scan and redeem a voucher during distribution.
Ability to search and filter the beneficiary list based on proximity: Based on distance of the user from the registered beneficiary.
Provide decision support to the use by automatically calculating the number of benefits to be delivered based on configured formula.
Ability to track and record side effects for a campaign beneficiary post resource delivery.
Ability to track and manage beneficiary referrals.
Automated eligibility check for campaign beneficiary: Based on configured parameters, the application determines in the registered individual is eligible for the campaign.
Inventory Management
Mobile app that enables the field staff to capture inflow and outflow of resources received from the warehouse or the supervisors.
Last-mile tracking of resources is now possible and programme supervisors have visibility of stock movement across the supply chain.
The ability to record stock received from the warehouse/ supervisor as well as issue to other frontline teams.
The ability to record stocks that were lost and damaged during field operations.
Sync
Users can now download and reuse beneficiary data synced by other users for one or more boundaries.
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 |
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 |
Here are the articles in this section:
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:
Here are the articles in this section:
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:
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:
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:
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.
Name of the field | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Validation | Comments | Need data from program/state |
---|---|---|---|---|---|---|---|---|---|
Field name | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Validation | Comments | Need data from program/state |
---|---|---|---|---|---|---|---|---|---|
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 |
---|---|---|---|
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.
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.
Name of the field | Description | Mandatory | Input | Data type | Minimum length | Maximum length | Need data from program/state |
---|---|---|---|---|---|---|---|
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 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 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 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.
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 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.
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.
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 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 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.
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.
Click on the links below to learn more:
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.
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 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.
Click to learn more about stock reconciliation.
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.”
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
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.
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
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
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.
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. |
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. |
Health Facility Supervisor | Record referrals made by field workers | Record data of beneficiaries, reason for referral and diagnosis, and any further details. |
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:
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.
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.
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.
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.
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 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 and Registrar
Search registered households using the proximity feature
The user goes from house-to-house and searches for beneficiaries by using proximity scanning.
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.
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. |
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 |
| 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. |
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 |
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'.
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.
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.
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.
Scan the resource code to track the resources delivered:
Package utilised to parse the barcode : https://pub.dev/packages/gs1_barcode_parser.
Package utilised to QR code scanner: https://pub.dev/packages/qr_code_scanner
GS1 - standards : https://www.gs1.org/docs/barcodes/GS1_DataMatrix_Guideline.pdf
Package utilised for barcode scanning-
https://pub.dev/packages/google_mlkit_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
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.
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.
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.
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
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 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.
The Geo Json assets files need to be loaded to s3 bucket and the reference urls need to be mapped in map-config.GeoJsonMapping mdms schema data.
Master | Module | Reference Link |
---|
To configure dashboard links, add the dashboard URLs to the project type in MDMS
For the campaign, the required charts should be added to the dashboard-analytics
chart configuration.
The UI configuration can be loaded into the MasterDashboardConfig
within the dashboard-analytics
.
Config | Link |
---|
Click to learn more.
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:
Below is the reference link:
This Node.js service acts as a reverse proxy for Kibana, enforcing authentication and access control based on specific rules. It validates requests using DIGIT’s authentication API.The service utilizes express, express-http-proxy, and axios for proxying and API interaction.
The service relies on environment variables defined in envVariables for key configuration. These variables include:
These configurations can be overridden by environment variables, and they include:
SERVER_PORT: The port on which the Node.js service will run.
EGOV_USER_HOST and EGOV_USER_SEARCH: The host and path for the external authentication API.
KIBANA_HOST and KIBANA_BASE_PATH: The Kibana server URL and base path.
KIBANA_ACCEPTED_CONTEXT_UI_PATHS: List of valid context paths for referer validation.
KIBANA_ACCEPTED_DOMAIN_NAME: Domain name allowed for Kibana access.
KIBANA_EXCLUDE_URL_PATTERNS: URL patterns excluded from authentication.
Auth-Proxy : auth-proxy-urlencoded-fix-aad9a5959c-23
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:
Click to learn more.
# | Campaign | Improvements/ Feature |
1 | Tete - Block 1 |
|
2 | Tete - Block 2 |
|
3 | Gaza |
|
Dates | Topics | Location |
3rd July-23 to 5th July-23 |
| Maputo |
Dates | Topics | Location |
26th July and 27th July |
| Remotely |
Dates | Topics | Location |
21st of Aug 23 |
| Tete |
24th of Aug 23 |
| N/A |
29th of Aug 23 |
| Tete |
Dates | Topics | Location |
14th Sept 23 |
| N/A |
14th Sept 23 |
| N/A |
3rd Nov 23 |
| Gaza
|
9th Nov 23 |
(Document Shared) | N/A |
13rd Nov 23 |
| N/A |
22nd Nov 23 |
| 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 |
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.
As a part of the 1.5 release, we have extracted the features of the Frontline Worker's App as individual packages:
Closed HouseHold Package
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.
Supervisor
The user will be able to access their attendance register to mark attendance for their attendees.
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.
map-config | GeoJsonMapping |
dss-dashboard | dashboard-config |
HCM-PROJECT-TYPES | projectTypes |
HCM | dashboardConfig |
Master-Dashboard Config |
Chart API Config |
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:
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:
Here are the articles in this section:
The high-level design of the HCM Framework is divided into three main parts, the details of which are available below.
Flutter: Framework to build multi-platform apps
SQLite: SQL offline db
ISAR: NoSQL offline db
Dio: HTTP Client
https://github.com/egovernments/health-campaign-field-worker-app
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 also need to be retrieved by the app.
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 sending 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