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...
Loading...
Implemented validation for updating the project start date and the end date. Implementing this ensures that any changes made to these critical campaigns adhere to the predefined criteria.
Added the number of sessions field in additional details for the attendance registry, which enhances the system's ability to manage attendance tracking within projects. This field specifically denotes the frequency of attendance-taking sessions for a given project. Each session represents an instance where attendance is recorded, typically within a single day. For instance, if a project requires attendance twice daily (for example, morning and afternoon sessions), the number of sessions field would indicate ‘2’ to reflect this frequency. This information provides crucial context for understanding the attendance requirements and scheduling patterns within the project.
Added the ability to search by user UUID (Universally Unique Identifier) for individual search. This addition expands the search capabilities within the DIGIT-HCM platform, providing users with a more versatile and efficient means of locating specific individuals. A UUID is a unique identifier assigned to each user within the system. This new feature allows users to quickly retrieve information about a particular individual by entering their UUID into the search functionality. By leveraging UUIDs, which ensure each user has a distinct identifier, the search process becomes highly precise and reliable, minimising the risk of ambiguity or confusion, particularly in large datasets.
Health Facility Referral Feature Update
New Feature: HF Referral
DIGIT-HCM now includes a Health Facility Referral (HF Referral) functionality that enhances the platform’s capability to efficiently manage referrals across health facilities. This addition is aimed at improving coordination and communication, ensuring a smoother referral process.
Enhance the inventory flow with the sender ID and the receiver ID added. Including sender and receiver IDs offers flexibility in handling inventory transactions within the DIGIT-HCM platform. Transactions can involve movement between warehouses, from warehouse to staff, from staff to staff, or any combination thereof. This accommodates various scenarios, such as inter-departmental transfers, internal requisitions, or supplier deliveries.
Sender Identification: The sender ID specifies the entity initiating the inventory transaction. This could be a warehouse, indicating that inventory items are being dispatched from a specific storage location. Alternatively, it could represent an individual staff member responsible for authorising the transfer of inventory items.
Receiver Identification: The receiver ID denotes the entity or individual receiving the inventory items. Similar to the sender ID, this could represent either a warehouse where the items are being delivered or an individual staff member who is the designated recipient.
Implemented offline-enabled functionality in the Attendance Module. Implementing this functionality in the attendance module significantly enhances the usability and reliability of the DIGIT-HCM platform, especially in environments where internet connectivity may be intermittent or unavailable.
Find the service build updates below:
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
WORKBENCH-1.0
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
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.
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.
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
Mail has been communicated to for UI/UX audit
,
,
by the Technical Writer as part of the release.
The HCM v1.4 release required 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:
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 here.
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:
Beneficiary being referred
Referral details of the beneficiary
Reason for referrals and their diagnosis
Based on the diagnosis chosen, further details, if applicable
Health Campaign Management v1.2: The frontline worker’s App includes 8 new features that allow the frontline teams to perform their tasks efficiently even when offline.
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.
Here are the articles in this section:
v1.4 Tech Release Summary
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
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
Here are the articles in this section:
Find the Product Capability Roadmap below:
To see a detailed version of this roadmap, click .
Health
MDMS
Config
Devops
Localisation
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
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.
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.
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.
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
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
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
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
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.
Here are the articles in this section:
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.
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.
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.
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
Public health initiatives intended to address particular health-related concerns within a predetermined timeframe or scope, and in a single round. Click on the link below to learn more:
Here are the articles in this section:
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:
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
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
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.
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.
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.
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 User Management Module
The ability for supervisors/managers to create and manage users and team assignments for their respective boundaries through the user interface.
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.
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:
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:
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.
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.
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 Inventory Management module
In health campaigns, it is crucial to keep track of the resources delivered to prevent stock mis-handlings and maximise coverage. This helps to track the resource till the last mile delivery, that is, it captures the stock till it reaches the distributor, and the distributor can record the quantity of stock received along with other stock transactions.
Users can do the following:
Track stock till the last mile.
Capture stock details till the end user to keep track of the transactions that take place.
Record the stock transactions during a campaign.
Ensure the safety of stock.
Keep track of the stock count and verify from both ends (received versus issued) to prevent the misuse of stocks.
After logging into the application, the user lands on this screen which displays daily performance (number of households registered). The progress bar must reset daily at 00:00 hours, and start from 0 registrations. The action buttons related to the beneficiary are present which include:
Beneficiaries
View Reports
Sync Data
Call Supervisor
File Complaint
Manage Stock
On the bottom, there is a card that shows how many records are unsynced for the user’s convenience to sync data. If all the records are synced, then the card must say “All records are synced”.
The help button is on every screen of the application, and by clicking on it, a user can get a walkthrough of the elements on that screen.
On the top right, the administrative area assigned to the user is displayed which will be based on the level of hierarchy.
The hamburger button on the top left corner covers some other actions mentioned further.
This includes all the stock transactions that can be captured by the distributor.
The transaction details are captured on this screen. The date and administrative unit fields are auto-captured by the system and are non-editable. The team code/identifier is captured from the user profile and it must be editable.
The stock-related details are captured on this screen. “Select product” is a dropdown field that includes the resource that has been received. “Received from” is a search-based dropdown field, clicking on which navigates the user to the search facility screen that includes the facilities along with ‘Supervisor’ as the value. If the user selects ‘Supervisor’ then he/she must enter the supervisor’s name. The user must enter the quantity received, and if any additional comments are needed, they can be added.
Once the user clicks on ‘Submit’, the confirmation pop-up appears. If the user clicks on the ‘Submit’ button, the acknowledgement screen appears, and ‘Cancel’ takes the user back to the previous screen.
This screen includes all the fields except for the facility field.
This screen includes all the fields except for the facility field.
An illustrative guide to using the 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.
Health Facility Supervisor
Record referrals made by field workers
Record data of beneficiaries, reason for referral and diagnosis, and any further details.
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.
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.
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.
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.
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.
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.
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.
Distributor
Administer drug to the beneficiaries and observe the effect of drug
Record side effects observed due to administration
The user goes from house-to-house for drug administration and records any side-effects observed in the beneficiary for previous doses of drugs for indirect delivery as well as for current dose during direct delivery.
In Step 4 of recording the Multi-Round Campaign delivery process, based on the response provided by the distributor for the question "Did you provide drugs for the next doses?" the screens for recording the side-effects in a given cycle will be as follows:
If you replied 'No' (Recording side-effects when the the distributor does direct delivery for all rounds):
Step 1
After you have completed the delivery for first dose, you will see the list of beneficiaries who are eligible for the next round of drug delivery. If the beneficiary experienced any side-effect, click on the "Unable to Deliver?" button, where you will get 3 options. Here, the last option will be "Record Side Effects".
Step 2
You will be taken to the next screen where you need to record the side-effect experienced by the beneficiary. Once you have selected the relevant side-effect, click on 'Next'.
You will see a success screen that says, "Data recorded successfully".
If you replied 'Yes' (Recording side-effects when the the distributor does indirect delivery for subsequent deliveries):
Step 1
If you replied 'Yes' the next time you visit the beneficiary and click on "Record Delivery" against that beneficiary in the household details page, you will see the following screens:
Step 2
Once you submit the answers, you can record the side-effects for the beneficiary. If no side-effects were reported, select 'No' to move on to the beneficiary details screen, and the delivery status for all cycles will show as 'Completed'.
Step 3
If you select 'Yes', you can record the side effect. Click on 'Next'.
You will see a success screen that says, "Data recorded successfully'. If you select 'No' for side-effects, you will be taken directly to the "Data Recorded Successfully Screen".
Note: If the Distributor answered 'No' on the "Record Past Delivery" page, the delivery status will changed to 'Visited' on the household details page for that specific beneficiary.
An illustrative guide to using the 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.
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.
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 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.
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 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.
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 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.
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.
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.
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.
The L1 support helpdesk must be the first point in the complaint management workflow. All complaints created must be first routed to the helpdesk, after which the helpdesk may take appropriate action (mentioned below).
The helpdesk user must be able to do the following :
View the list of complaints in the inbox
File a new complaint
Open a complaint from the inbox and
View complaints status
Resolve a complaint
Reject a complaint
Assign to other roles
The inbox view for other workflow states must be similar and must be able to view complaints assigned to their respective inbox. The user must also have the option to assign the complaint back to the L1 support helpdesk by selecting the value in the “Assign To” field. The users must be able to view complaints that have been assigned to their role. For example, the L1 helpdesk user must not be able to view complaints assigned to the L2 helpdesk and vice versa.
Complaint Type: The user can select the complaint type from the dropdown
Administrative Area: The area of complaint.
Status: Refer to the list of statuses detailed above.
A button to clean all filters must be available at the bottom of the page. An “Apply Filter” button must be available to set the filters and route the user to the inbox and display the filtered complaints.
A user must be able to search for one or more complaints by using the following search parameters (must support passing multiple search parameters):
Complaint Number
Mobile Number
Administrative Area
After providing the appropriate search parameters, the user must click on the “Search” button located at the bottom of the screen and must be routed to the inbox which displays the search-appropriate search results.
A summary screen must be displayed when the user clicks on the ‘Open’ button located on the complaints card.
The “Take Action” button at the bottom of the screen must open a pop-up displaying all possible actions that the user can take. The actions available to address the complaint are as follows:
Resolve Complaint
Assign to P2
Reject Complaint
Close
The close button collapses the overlay and takes the user back to the complaints summary screen.
If the user wants to assign any project to P2, she must click on the assign button which opens this screen. The date of assigning the complaint is user input which can be filled in with the help of the calendar icon within the field.
In the "assigned to" field, the user needs to select the person to whom she wants to assign that complaint. There is an additional comments field in which the user can provide any remarks if she wants. The user can attach any supporting documents such as photos, documents, etc.
At the bottom, there is a cancel button which takes the user back to the complaint summary screen, and an assign button which assigns the complaint to the selected person.
Helpdesk (Desktop View)
When the user clicks on complaints on the home screen, then this screen must appear. On the top left, there is an option to file a new complaint, view reports. Besides, there are search fields for different parameters, such as complaint number and mobile number, and the search button to execute the search action. There is a clear search button below the search one if the user wants to clear the search parameters.
Below the new complaint and reports buttons, there are filters available to apply over the results. The filter parameters are the same as that for the mobile view.
The complaints are displayed in a horizontal format with the same values for mobile view. The user can click on the entire area of a particular complaint.
At the bottom, there are forward, backward, first page, and last page arrow buttons along with the page number information as displayed on the screen.
When the user clicks on a complaint, the details screen appears which provides the entire information of that complaint. The summary includes the same information mentioned in the card along with the additional comments/remarks, and photos provided by the complainant.
There is a "Take Action" button at the bottom. When the user clicks on it, the actions appear above the button as displayed on the screen. The actions include resolve complaint, assign to P2, and reject complaint. If the user clicks on any blank area on the screen, the actions collapse.
If the complaint has been resolved, then the user must click on the "Resolve Complaint" button which opens this screen. There is an "Additional Comments" field in which the user can provide any remarks if he wants. At the bottom, there is a submit button that updates the complaint status as resolved.
If the user has rejected any complaint, then she needs to select the reason for rejection from the dropdown. There is an additional comments field in which the user can provide any remarks if he wants. At the bottom, there is a submit button that updates the complaint status as rejected.
If the user wants to assign any project to P2, she must click on the assign button which opens this screen. The date of assigning the complaint is user input which can be filled in with the help of the calendar icon within the field.
In the assigned to field, the user needs to select the person to whom she wants to assign that complaint.
There is an additional comments field in which the user can provide any remarks if he wants. The user can attach any supporting documents such as photos, documents, etc.
At the bottom, there is a cancel button which takes the user back to the complaints screen, and an assign button which assigns the complaint to the selected person.
When the user clicks on the “New Complaint” button on the complaints screen, then this screen appears. The details captured are the same as that entered by the complainant. When the details are entered, the user needs to click on the submit button which opens the confirmation window over the same screen. If the user clicks on the cancel button, then she is navigated back to the complaints screen
When the user clicks on the submit button, the system confirms whether the complaint has been submitted successfully or not. There is a back to home button placed on both screens, clicking on which will navigate the user to the home screen of the helpdesk.
An illustrative guide to using the Complaints Module (Mobile)
Users can file a complaint using the HCM app. There are a few assumptions:
Not all complaints will be logged using the complaints module. Users may prefer raising complaints on WhatsApp groups/calls, and may not be registered in the system.
Complaints are most likely to be logged by users on behalf of other users (Most common use case: Supervisors raising complaints on behalf of users).
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.
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.
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.
If the complaint has been assigned successfully, then the following screen must appear.
A landing page must be available to the user to access all available modules.
If the complaint has been assigned successfully, then the following screen must appear. If the complaint could not be assigned, then the text must say, “Complaint Not Assigned.”
Click to learn more about stock reconciliation.
Supervisor
a. Create and view complaints.
b. Resolve complaints, re-assign complaints back to the helpdesk, and reject complaints.
Monitor the overall campaign and provide assistance for the issues raised by the field teams
Helpdesk user
a. Create andd view complaints.
b. Resolve complaints, assign complaints, and reject complaints.
Helpdesk users are the support team established to provide assistance throughout the campaign.
Registrar
Create and view complaints.
Registrars can raise technical complaints on the application
Field Supervisor
Create and view complaints.
Assist the frontline teams and raise the issues communicated by them on the application
Supervisor
a. Create and view complaints.
b. Resolve complaints, re-assign complaints back to the helpdesk, and reject complaints.
Monitor the overall campaign and provide assistance for the issues raised by the field teams
Helpdesk user
a. Create and view complaints.
b. Resolve complaints, assign complaints, and reject complaints.
Helpdesk users are the support team established to provide assistance throughout the campaign.
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.
Distributor
Register households
Add members
Deliver intervention
The user goes from house-to-house in the specified boundary and delivers the drug assigned for that round of delivery.
Distributor
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
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.
Users are redirected to this screen once they click on the "Forgot Password" button in the language selection screen.
Clicking on the forgot password option in the login page opens a popup message “Please contact your administrator if you have forgotten your password”. This is an informative popup which does not lead to any further action within the application and the user can close the popup by clicking on 'OK'.
Scan the resource code to track the resources delivered:
Package utilised to parse the barcode : 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.
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).
Supervisor
The user will be able to access their attendance register to mark attendance for their attendees.
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.
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.
After clicking on the hamburger button, a list of actions appears on the user screen. The top displays the user name and contact number, followed by other options such as the home button, language select, edit profile, projects, and logout.
If the user clicks on the hamburger button again, it collapses the hamburger menu. The button is available on all screens of the application.
The user can edit his/her name, and phone number, and select the gender. After updating the details, the user needs to click on the save button which opens a prompt stating “saved successfully”.
If the user does not want to make any changes, he/she can click on the back button, which will take them back to the hamburger menu.
Brief Intro
Checklist is a tool that enables supervisors to monitor certain activities and record observations according to defined set of questions.
Allows users to observe the tasks and fill checklists.
View all the submitted responses for the checklists.
User Roles
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.
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.
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.
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 here to learn more.
A server should be responsible to handle or offer a mechanism to handle errors once data reaches it. (Error handling mechanism is being designed by the platform).
Sync will be manually triggered by the user (except for automatically syncing configuration down on the first login).
Sync down of data is not required to support (good to have) the first rollout.
Sync will be done through bulk APIs.
Sync will send each save action performed by the field user while offline to the server to preserve an audit of actions performed by the field user.
Eg: If a field user registers an individual and saves the record and then goes back to update the individual, this will result in two API calls to the server (one create and one update).
API response compression Gzip will be turned on for all the endpoints.
Unique identifier to be used between client and server:
A Client will create a unique (client-generated) identifier per entity (clientReferenceId) to relate entities while operations are being performed offline and send this id to the server for creating operations.
Any subsequent operations (like update, delete) will be on the server gen id, so the client has to get the server gen id by searching using the client generated id. The client will call search API with clientReferenceId and will get the server generated id.
Client will update the server-generated id into the records on the client and use the server-generated id for subsequent updates for those entities.
Processing on the backend will continue to be asynchronous and not changed for the health use case.
Search API max limit and the default limit.
Service details and endpoints.
Service details and endpoints.
Number of entities sent to the server in bulk API calls
Additional fields per entity in the app.
The drop-down values or select options to be presented in the app for field users.
Configuration changes are expected to be additive for the data captured against such configuration to continue being usable.
Number of retries on API call failure after which the app should stop retrying.
Timeout for the API calls.
Access to data will be defined by the linkages of staff to the project and the corresponding boundary while respecting role-action mappings instead of the tenant-based approach.
All deletes are soft deletes.
The server is responsible to delete nested/child entities if applicable when the parent entity is deleted.
Undeletion is not permitted.
Duplicate updates do not need to be detected or filtered out. The client is responsible to send duplicate updates on entity as separate requests to server.
Since persistence in DIGIT is asynchronous but the sync process from the field worker app is likely to send dependent data in a short period, a cache is to be introduced against which dependent data can be validated if required while it is in the process of being persisted to the DB. This cache is exposed via the search API of the corresponding service and the caller is agnostic to whether the result was returned from the cache or database.
For v1, we can maintain the sequence of updates only for requests on a single entity by a single user. i.e. Updates on the same entity by multiple users will result in the last caller's updates going through.
To maintain the sequence of updates, a rowVersion field is introduced in every entity. Callers pass the rowVersion as received from the server. The server can detect if any out-of-sequence updates have come in and reject it / pass it to the error handling mechanism.
Search APIs will not return (soft) deleted data by default. If deleted data is required the includeDeleted param can be passed to the search APIs.
From the Product requirement perspective, there is no unique identification identifier, so Platform is unable to check the uniqueness of registry entities.
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.
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.
#
Campaign
Improvements/ Feature
1
Tete - Block 1
Web portal for user management
Configuration based role-access management in the web portal
Register beneficiaries
Update existing beneficiary details
Auto-calculation of bednets for delivery
Supervision checklists
Manage and view complaints
Dashboards to monitor campaign operations
Stock Management
Auto-reconciliation of stocks
2
Tete - Block 2
LM to delivery team stock movement changes
Single-click delivery fixes
Conditional checklists for national supervisor
App version in login screen footer
Have warehouse names instead of codes
Showing facility names without IDs in the drop-downs
Fix for bednets count issue in search beneficiary screen
Negative stock alert feature (restriction)
Different roles for local monitor and warehouse manager
Showing Username in the sidebar
The complaints screen made mobile numbers editable for self-raised complaints
Keeping bed net count to 0 instead of 1 in the delivery screen
Loading master data only on login and logout
3
Gaza
Bednet scanner during last-mile delivery
Client audit details
UI/Label changes
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:
Dates
Topics
Location
3rd July-23 to 5th July-23
Overview of HCM platform and its different users
Registration and delivery
Supervision flow
Warehouse management
User Management
Complaints module
Maputo
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:
Dates
Topics
Location
26th July and 27th July
DIGIT HCM (SALAMA) master data templates and data loading
Deployment architecture including setup and maintenance
Extracting reports from the database using the Data Mart reports
Remotely
During the Tete Campaign, several on-the-job refresher training to the NMCP focal points were provided as indicated in the table below:
Dates
Topics
Location
21st of Aug 23
Dashboard overview
Tete
24th of Aug 23
Session to explain the custom reports
N/A
29th of Aug 23
Data Query using Postman
User Management refresher
Tete
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:
Dates
Topics
Location
14th Sept 23
How to use Vysor (projecting a phone during the training)
N/A
14th Sept 23
Troubleshooting guide
N/A
3rd Nov 23
Micro plan manual validation steps
Gaza
9th Nov 23
Device Preparation checklist
(Document Shared)
N/A
13rd Nov 23
Refresher on User Management (Document was shared with the team providing an option to have a refresher training, if necessary)
N/A
22nd Nov 23
Usage of QR Code guideline
N/A
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
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
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:
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.
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.
DIGIT is India’s largest open-source platform for digital governance. The health services are built on top of DIGIT. It is built on OpenAPI (OAS 2.0) and provides API-based access to various services, enabling governments to provide health campaign services with relevant new ones. It also facilitates integration with the existing system into the platform and runs seamlessly on any commercial/on-prem cloud infrastructure with scale and speed.
Health DIGIT is a micro-services-based platform that is built to scale. Micro-services are small, autonomous, and developer-friendly services that work together.
It facilitates decentralised control between teams so that its developers strive to produce useful tools that can then be used by others to solve the same problems.
Micro-services have intelligent endpoints that process information and apply logic. They receive requests, process them, and generate a response accordingly.
Parallelism in development: Micro-services architectures are mainly business-centric.
A large software or system can be broken down into multiple small components or services. These components can be designed, developed, and deployed independently without compromising the integrity of the application.
DIGIT Health follows a multi-layer or n-tiered distributed architecture pattern. As seen in the illustration above, there are different horizontal layers with some set of components such as Services, Registries, and DIGIT Core Services. Every layer consists of a set of microservices. Each layer of the layered architecture pattern has a specific role and responsibility within the application. The following are the advantages:
Layered architecture increases flexibility, maintainability, and scalability.
Multiple applications can reuse the components.
Parallelism.
Different components of the application can be independently deployed, maintained, and updated, on different time schedules.
Layered architecture also makes it possible to configure different levels of security to different components.
Layered architecture also helps users test the components independently of each other.
The articles in this section include:
The articles in this section include:
Here are the articles in this section:
Click to learn more.
As a part of the 1.4 release, we have extracted the features of the Frontline Worker's App as individual packages:
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/
This module 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.
To learn more about Referral Reconciliation, click here. Link to the Pub Package:
The referral reconciliation feature enables the user to track referrals made by on-field health workers to different health facilities digitally via the Digit HCM app capturing all the cases of:
Beneficiary being referred
Referral details of the beneficiary
Reason for referrals and their diagnosis
Based on the diagnosis, further details, if applicable
HEALTH_FACILITY_WORKER
To use this package, add the following dependency to your pubspec.yaml file:
To integrate this package with the HCM Application, run the main function located in health-campaign-field-worker-app/tools/referral_reconciliation_imports.dart.
This will automatically add the necessary imports, mapper initializers, route config, setting initial data, and repository initialization to the required files.
Make sure you are on the path apps/health_campaign_field_worker_app
and run the command:
This adds a package route to the main router.gr.dart
Install the application and you should have referral reconciliation integrated into your base app.
By following these steps, you can successfully integrate and use the Referral Reconciliation module within your application.
The attendance management package is a comprehensive solution for managing attendance.
To learn more about Attendance Management, click here.
Link to the Pub Package:
SUPERVISOR
Attendance Pages: The package includes several pages like mark_attendance.dart, manage_attendance.dart, and session_select.dart that provides the user interface for managing attendance.
To use this package, add the following dependency to your pubspec.yaml file:
To integrate this package with the HCM application, run the main function located in health-campaign-field-worker-app/tools/attendance_management_imports.dart.
This will automatically add the necessary imports, mapper initializers, route config, setting initial data, and repository initialization to the required files.
Now make sure you are on the path apps/health_campaign_field_worker_app
and run the command:
This adds a package route to the main router.gr.dart
Navigate to the project bloc since we need to fetch registers and attendee data after login:
Next, navigate to the line where the project staff search is written, and add the below code in the try-catch where we check the role and fetch attendance data:
Make sure you are on the path apps/health_campaign_field_worker_app
and run the command:
This adds a package route to the main router.gr.dart
By following these steps, you'll successfully integrate and can use attendance module within your application.
Here are the articles in this section:
This enables the user to manage the stocks of a health campaign. The user can record the stocks received, issued, returned, damaged and lost.
To known more about Inventory Management, click here.
Link to the Pub Package:
DISTRIBUTOR, WAREHOUSE_MANAGER
Manage Stocks: Receipt, issued, returned, damaged, and loss of stocks.
Stock Reconciliation: Reconcile the stock data.
View Reports: View the reports of the stocks.
To use this package, add the following dependency to your pubspec.yaml file:
To integrate this package with the HCM Application, run the main function located in health-campaign-field-worker-app/tools/inventory_management_imports.dart.
This will automatically add the necessary imports, mapper initializers, route config, setting initial data, and repository initialization to the required files.
Make sure you are on the path apps/health_campaign_field_worker_app
and run the command:
This adds a package route to the main router.gr.dart
Install the application and you should have Inventory Management integrated into your base app.
By following these steps, you can successfully integrate and use the Inventory Management module within your application.
This package provides a way to register a household and individual members and deliver the resources to the registered households.
To learn more about Registration and Delivery, Link to the pub package:
DISTRIBUTOR
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.
To use this package, add the following dependency to your pubspec.yaml file:
To integrate this package with the HCM Application, run the main function located in health-campaign-field-worker-app/tools/registration_delivery_imports.dart.
This will automatically add the necessary imports, mapper initializers, route config, setting initial data, and repository initialization to the required files.
Make sure you are on the path apps/health_campaign_field_worker_app
and run the command:
This adds a package route to the main router.gr.dart
Install the application and you should have Registration and Delivery integrated into your base app.
By following these steps, you can successfully integrate and use the egistration and delivery module within your application.
The below step is required as per your use case
During boundary selection, if you need to downsync registration-delivery-related data, include the below code in the project_beneficiaries_downsync
file:
Next, find this method in the same file networkManager.writeToEntityDb
and the below repositories:
With the above changes, you will enable the down sync of registration and delivery data.
Global standards vary from stakeholder natures, functioning, and deliverables. The core agenda of this exercise was to find a few globally certified standards in the DPP space that fit each of these roles:
Product owner: A product owner is an entity that owns, governs, or controls the product's codebase. They are responsible for its architecture design, roadmap, and versions.
Implementing agencies: An agency that deploys and configures a product for the program owner is an implementing agency (IA).
Programme owners: A “programme owner” is an entity responsible for delivering specific public goods, services, or social welfare. A Program owner is usually a government entity.
Depending on the nature of the work, the product owner undertakes the as a direction for standardisation.
What is it?
The privacy framework comprises three parts: Core, profiles, and implementation tiers.
Each component reinforces privacy risk management by connecting business and mission drivers, organisational roles and responsibilities, and privacy protection activities.
The core enables a dialogue — from the executive level to the implementation/operations level — about important privacy protection activities and desired outcomes.
Profiles enable the prioritisation of the outcomes and activities that best meet organisational privacy values, mission or business needs, and risks.
Implementation tiers support decision-making and communication about the sufficiency of organisational processes and resources to manage privacy risk.
The advantages of NIST are:
It pushes for privacy engineering functions to be embedded in the design of the software.
It promotes transparency as the guidelines are communicated to implementing agencies (IAs) and programme owners.
It enhances trust as it encourages proactive privacy measures to be taken from the design stage itself.
It streamlines operations by embedding privacy into the functional and design practices, avoiding costly retroactive changes.
Why ISO 27701?
The upcoming Digital Personal Data Protection Bill will require companies that are eligible to be an IA to undergo steps similar to those in ISO 27701.
The steps/key components of ISO 27701's Privacy Information Management System (PIMS) are:
Privacy risk management: ISO 27701 will require an IA to identify and assess privacy risks associated with the processing of Personally Identifiable Information (PII) and implement appropriate controls to mitigate these risks.
Privacy policy and procedures: ISO 27701 requires an IA to develop and implement privacy policies and procedures that are aligned with the administering authority’s overall information security policies and procedures.
Data subject rights: ISO 27701 requires the IA to establish procedures for handling data subject requests, such as access, rectification, and erasure of personal data. With such a feature embedded, the citizens would be allowed to exercise their right to privacy.
Privacy training and awareness: ISO 27701 requires an IA to provide privacy training and awareness programs to employees and other stakeholders to ensure that they understand their roles and responsibilities in protecting PII.
Incident management: ISO 27701 requires an IA to establish procedures for managing privacy incidents, including breach notification, investigation, and remediation.
Third-party management: ISO 27701 requires an IA to establish procedures for managing third-party relationships that involve the processing of PII, including due diligence, contract management, and monitoring.
Assurance: ISO 27701 assures senior members of administrative authorities, and other stakeholders, such as citizens and partners that the organisation is committed to protecting Personally Identifiable Information (PII) and has implemented international best practices for privacy management.
Trust: ISO 27701 can help organizations build trust with stakeholders by providing tangible evidence of their commitment to protecting PII.
Compliance: ISO 27701 supports compliance with globally recognised data protection and privacy regulations such as GDPR, CCPA, and others.
Risk management: ISO 27701 helps the IA identify and mitigate privacy risks, reducing the likelihood of data breaches, reputational damage, and financial losses.
Global standard: ISO 27701 is a respected global standard for privacy information management and can be used by agencies of all sizes and from all sectors.
Integration: ISO 27701 is an extension of ISO 27001, meaning it can be integrated with an existing Information Security Management System (ISMS) to enhance privacy management and compliance efforts.
In conclusion, by getting certified under ISO 27701, implementing agencies can demonstrate their commitment to protecting PII, build trust with stakeholders, comply with data protection and privacy regulations, and improve their privacy risk management efforts.
Link to the Pub Package:
The showcase widget is a wrapper widget that provides a way to highlight or showcase a widget. It is useful for highlighting a widget in a list of widgets or providing functionality to provide visual help to understand the widget's functionality.
Provides a showcase or highlight of the wrapped widget:
To use the digit_showcase package, add the following dependency to your pubspec.yaml file:
Wrap the top layer of your widget tree with the showcase widget:
Provide localisation for the showcase widget:
Now use .buildWith to build the showcase widget:
Data is any information shared by citizens or received from existing databases to enable government service delivery and government operations. It could be name, address, mobile number, age, etc.
Under the Indian law, the current Digital Personal Data Act of 2023 defines data as:
Sec 2(h) - ‘Data’ means a representation of information, facts, concepts, opinions, or instructions in a manner suitable for communication, interpretation, or processing by human beings or by automated means.
It is similar to what is defined as ‘data’ in the Information Technology Act of 2000:
a representation of information, knowledge, facts, concepts or instructions which are being prepared or have been prepared in a formalized manner and are intended to be processed, is being processed or has been processed in a computer system or computer network, and may be in any form (including computer printouts magnetic or optical storage media, punched cards, punched tapes) or stored internally in the memory of the computer.
For this document, PII and personal data are to mean the same.
Personal data is defined under the Digital Personal Data Act,2023 as:
Sec 2 (t) - “Personal data” means any data about an individual who is identifiable by or about such data;
To add, a breach of personal data is also defined in Section 2 (u) as -:
“Personal data breach” means any unauthorised processing of personal data or accidental disclosure, acquisition, sharing, use, alteration, destruction or loss of access to personal data, that compromises the confidentiality, integrity or availability of personal data;
is “any data that allows one to be recognised either directly or indirectly. It is defined as any information that relates to a natural person, which, either directly or indirectly, in combination with other information available or likely to be available with a body corporate, is capable of identifying such a person.”
Both the above definitions of personal data are to be read together until the government fixates on maintaining one.
1b) Sensitive Personal Data (SPD)
Sensitive Personal data of a person means “...such personal information which consists of information relating to:
password;
financial information such as Bank account, credit card, debit card or any other payment instrument details;
physical, physiological and mental health conditions;
sexual orientation;
medical records and history;
biometric information;
any detail relating to the above clauses as provided to the body corporate for providing service;
and any of the information received under the above clauses by the body corporate for processing, stored or processed under lawful contract or otherwise
Provided that, any information that is freely available or accessible in the public domain or furnished under the Right to Information Act, 2005 or any other law for the time being in force shall not be regarded as sensitive personal data or information[...].”
For this document, ‘product’ refers to any software system that can be used by a government entity, or by a contractor performing any tasks on behalf of that government entity. The term ‘product’ refers to the software (code) itself, and NOT to any implementation of that code. Therefore, a product does not collect, store, process, use, or share data.
2b) Product Implementation
For this document, “product Implementation” refers to each instance of a product/software system that has been implemented.
During the implementation of a product, the implementing agency may collect, store, process, use, and share such data as is necessary for implementing the product. This will normally be specified in the contract or agreement between the implementing agency and the administrative authority responsible for that implementation.
After the implementation of a product is complete, the implementing agency should cease to have access to data from the product implementation, except to such extent as may be agreed between the implementing agency and the administrative authority responsible for that implementation.
In cases where the implementing agency performs the role of a support agency concerning any product implementation, the implementing agency may have access to data as specified for that role. The activity of product implementation involves roles having access to datasets flowing through the product.
For example, Salama (in Mozambique) is the product implementation – It is an implementation of the DIGIT-HCM product.
Any ongoing or to-be-executed delivery of government service or defined government operation is a programme.
During the operation of a programme, the programme owner (and its staff and contractors) will collect, store, process, use, and share such data as is necessary for performing their tasks, and/or which they are required to do under prevailing law.
For example, a programme is one in which ULBs in Punjab use the MSeva product to collect revenues, deliver ULB services, and redress grievances.
2d) Summary & Comparison of Product, Product Implementation, & Programme
We describe a product implementation as progressing across 7 stages:
For this document, a product owner is an entity that owns, governs, or controls the product's codebase. They are responsible for its architecture design, roadmap, and versions.
As a product is a code that has NOT been implemented, a product owner has no access to data.
When a product is implemented, becoming a product implementation, the product owner may have access to such data as is being collected, stored, processed, used, or shared by that product implementation as may be agreed upon by the product owner and the administrative authority responsible for that implementation.
In cases where a product owner performs the roles of an implementing agency or support agency concerning any product implementation, the product owner may have access to data as specified for those roles (see below).
For example, eGovernments Foundation is a product owner.
3b) Implementing Agency (IA)
An agency that deploys and configures a product for the administrative authority or program owner (see below) is an implementing agency (IA). An IA may:
set up the hardware necessary for the programme;
customise, extend, configure, and install/set up the software (product) as per the needs of the programme owner;
train staff or contractors of the program owner on how to use the product;
Perform other such functions to ensure program readiness as may be agreed upon between the implementing agency and the program owner and/or administrative authority responsible for such product implementation.
During the implementation of a product, the implementing agency may collect, store, process, use, and share such data as is necessary for implementing the product. This will normally be specified in the contract or agreement between the implementing agency and the administrative authority responsible for that implementation.
After the implementation of a product is complete, the implementing agency should cease to have access to data from the product implementation, except to such extent as may be agreed between the implementing agency and the administrative authority responsible for that implementation.
In cases where the implementing agency performs the role of a support agency concerning any product implementation, the implementing agency may have access to data as specified for that role (see below).
For example, if a given state government signs a contract with “Company L” to implement the DIGIT-HCM product in that state, Company L is an IA.
For this document, a “programme owner” is the entity responsible for delivering specific public goods, services, or social welfare. A program owner is usually a government entity (though they may contract private entities to perform some or all of these tasks on their behalf).
In the context of a product implementation, the program owner is the primary client of the implementing agency, as they will use the product implementation to perform their tasks.
A programme owner (and its staff and contractors) will collect, store, process, use, and share such data as is necessary for performing their tasks, and/or which they are required to do under prevailing law.
A programme owner has primary responsibility for ensuring that all relevant legal provisions and good practices concerning data security, data protection, and privacy are being followed in its programs.
A programme owner may perform the roles of implementing agency and/or support agency or may contract those roles out to third-party implementing agencies and support agencies respectively. If they are performing these roles, they will have access to such data as is specified for these roles.
A programme owner is typically subordinate to the administrative authority in the official/administrative hierarchy. It is also possible that the administrative authority and program owner are the same entity.
For example, if a government has initiated a program to use the DIGIT-HCM product to reform Health Campaign Management, the respective department that is running the programme will be the programme owner.
3d) Support Agency (SA)
For this document, a “Support Agency” provides support in any functional aspect required by the program owner concerning that product implementation (for example, assistance in the maintenance of the product, technical or operational problem-solving, bug/error resolution).
A support agency would normally be engaged once the product has gone live, that is, during stages 5 and/or 6 of product implementation (see above).
A support agency will have access to such data as is necessary to perform their functions, and this shall normally be specified in the agreement/contract between the supporting agency and the programme owner/administrative authority responsible for that product implementation / the implementing agency responsible for that product implementation (in cases where the implementing agency sub-contracts support functions to the supporting agency).
In cases where a product owner, implementing agency, or program owner performs the role of a support agency, they may have access to such data as is specified for that role.
For example, suppose a given state government signs a contract with “Company L” to implement the DIGIT-HCM product in that state. In that case, and Company L sub-contracts support/maintenance/helpdesk activities to “Company M”, Company M is an IA.
3e) Administrative Authority (AA)
For this document, an administrative authority (AA) is a government entity that has the authority to enter into contracts/agreements with the product owner, implementing agency, and supporting agency.
Under prevailing law, an administrative authority has the power to permit other entities to access (collect, store, process, use, and/or share) data, including the PII of individuals within the territorial jurisdiction of that AA.
For this document, a product owner, implementing agency, or supporting agency cannot access data unless authorised to do so by the administrative authority. Such authorisation may be specified in an agreement/contract between the administrative authority and these entities. Such authorisation must be in keeping with prevailing laws and shall include such provisions and safeguards as are required under prevailing law.
An administrative authority may be a programme owner or maybe a superior agency of a program owner in the administrative hierarchy.
For example, when a given state government decides to implement the DIGIT-HCM product in that state, the specific department of that state government which signs MOUs and/or contracts with eGov Foundation (as product owner), and with an IA to implement the DIGIT-HCM product, is an AA.
The high-level design of the HCM Framework is divided into three main parts, the details of which are available below.
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
A scanner package used for scanning QR codes and GS1 barcodes.
Link to the Pub Package:
To use the digit_scanner package, add the following dependency to your pubspec.yaml file:
To initialise the DigitScannerBloc provider in your application, add the following code:
To clear the scanner state, use the following code:
To navigate to the Digit Scanner page, use this code snippet:
Wrap the DigitScannerListener or DigitScannerBuilder in your widget tree wherever you need to read the scanned codes from the scanner state:
Find out about usage at the example implementation.
Link to the Pub Package:
The digit_data_model package is a comprehensive data modeling library for the project. It defines various classes, enums, and functions used throughout the project. The package is written in Dart and is primarily used in Flutter applications.
Data Models: The package provides a set of predefined data models like DataModel, EntityModel, EntitySearchModel, AdditionalFields, AdditionalField, ClientAuditDetails, AuditDetails, etc. These models are used to structure the data in the project.
Model Provider: The package includes a ModelProvider abstract class that can be implemented to provide a list of models. It also includes a ModelProviderRegistry class to register and retrieve all model providers.
Data Model Type Enum: The package defines a DataModelType enum that represents the different types of data models in the project.
Mapping Annotations: The package uses the dart_mappable package to generate mapping code for the classes. This helps in converting the data models to and from JSON.
Data Repositories: The package provides abstract classes for data repositories, DataRepository, RemoteRepository, and LocalRepository, which can be extended to create repositories for different data models. It also includes error handling with InvalidApiResponseException.
Sql Store: The package includes a SqlStore class that can be used to store data in a SQLite database.
Here are the key features it provides to other packages:
Database Connection: It provides a connection to the SQLite database. This connection is opened when the database is first accessed.
Table Definitions: It defines the tables in the database. These tables correspond to various entities in the project.
Database Operations: It provides methods for querying and manipulating the data in the tables. These methods can be used to perform CRUD (Create, Read, Update, Delete) operations on the data.
Schema Version: It provides the schema version of the database. This can be used to handle database migrations.
Drift Integration: It uses the Drift package for interacting with the SQLite database. This provides a reactive persistence library for Flutter and Dart.
To use this package, add the following dependency to your pubspec.yaml file:
To integrate this package with the HCM Application, run the main function located in health-campaign-field-worker-app/tools/digit_data_model_imports.dart.
This will automatically add the necessary imports, mapper initializers, and repository initializations to the required files.
Below are some examples of how you can use this package:
Extend the EntityModel or `EntitySearchModel class and implement the required methods:
Extend the `LocalRepository` class and implement the required methods:
Extend the `RemoteRepository` class and implement the required methods:
An IA’s core responsibility is to deploy the product. Its functions require hands-on functions of customisation, configuration, training, and support. The IA ideally has complete access to the data of citizens. For an IA getting certified under is recommended. This certification requires a certification to ISO 27001 as a first step.
For example,is a product.
: Framework to build multi-platform apps
: SQL offline db
: NoSQL offline db
: HTTP Client
Product
Product Implementation
Programme
Definition
Refers to a software system that can be used by government entities or contractors. The term ‘product’ refers to the software (code) itself, and NOT to any implementation of that code.
Refers to each instance of a product/software system that has been implemented.
Any delivery of govt services or other govt operations or reforms can be a programme. In the context of this document, a programme deploys and/or leverages a product implementation.
Does it process data?
No
Yes
Yes
Example
DIGIT
Salama
Provinces in Mozambique respectively.
Stage
Stage name
What happens at this stage
Who handles at this stage
Stage 0
Programme set-up
Resources, budgets, procurement, and infrastructure are identified and an implementation partner is onboarded.
None
Stage 1
Programme kick-off
Implementation starts and data is collected from a few identified jurisdictions for testing.
Yes.
IA, Programme
Stage 2
Solution design
State-specific configurations are made with processes and workflows being designed. Policy decisions are made at this stage.
Yes.
IA, Programme
Stage 3
Customisations and configurations
Adoption and performance of the program are measured. UAT (Usee acceptance testing) is conducted here.
Yes.
IA, Programme
Stage 4
UAT and Go-live
The UAT testing is completed, feedback is received and final product deployment is carried out at all identified jurisdictions.
Yes.
IA, Programme
Stage 5
Statewide rollout
Phase-wise implementation of the product begins. Troubleshooting, support with errors, and critical bugs are fixed.
Yes.
IA, Programme, SA
Stage 6
Sustenance and ongoing improvement
Sustenance and ongoing Improvement - product adoption teams are set, adoption is tracked and awareness and reviews on adoption are conducted
Yes.
IA, Programmme, SA
Product Owner (PO)
Implementing Agency (IA
Programme Owner (Prog)
Support Agency (SA)
Definition
The entity that owns, governs, or controls the product's codebase.
The entity that deploys and configures a product for the AA/Prog.
The entity that is responsible for the delivery of specific public goods, services, social welfare.
The entity that provides support in any technical/functional aspect required by the Prog, concerning that product implementation.
Access to Data
No, except to the extent agreed with Prog/AA.
Yes, during implementation only.
Yes
Yes, to the extent needed for support.
Example
eGovernments Foundation
Systems integrators (Example: PwC, Transerve)
NMCP or Polio department
Any third party contracted for IT/programme support
This document describes how DIGIT HCM interoperates with other systems in a standardised and secure way:
1. Https Protocols:
Utilises HTTP/HTTPS protocols, which are universally supported by web clients and servers.
Adheres to RESTful principles, providing a consistent and standardised way for clients to interact with the platform.
2. Data Format:
Offers JSON support for data exchange, ensuring compatibility with a wide range of programming languages and systems.
Content Negotiation: Automatically handles content negotiation to serve responses in the JSON format requested by the client.
3. API Documentation:
Provides comprehensive API documentation using Swagger/OpenAPI, making it easy for developers to understand and consume the APIs.
4. Cross-Origin Resource Sharing:
Supports CORS, enabling secure cross-origin requests from web applications hosted on different domains.
5. Authentication and Authorisation:
Implements OAuth2 and JWT for standardised and secure authentication and authorisation, allowing integration with various identity providers - this is currently under implementation.
6. Error Handling:
Provides standardised error responses with HTTP status codes and detailed messages, helping external systems handle errors reliably.
Ensures uniform error handling across the platform, presenting predictable and understandable error responses to clients.
7. API Versioning:
Supports API versioning to maintain backward compatibility, allowing external integrations to continue functioning while new features are added.
8. Observability:
Uses Spring Boot Actuator to expose health checks and metrics endpoints, aiding external monitoring tools in observing platform health and performance.
Compatible with popular monitoring tools like Prometheus and Grafana for comprehensive observability.