Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 130 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

v1.3

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

HEALTH CAMPAIGN MANAGEMENT

Loading...

Loading...

HCM PRODUCT SUITE

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...

REFERENCE IMPLEMENTATIONs

Loading...

Loading...

Loading...

Loading...

TECHNOLOGY

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

SETUP

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Introducing DIGIT Health

Mission

Help countries achieve Health SDGs by building digital public goods that strengthen public health.

What are public health campaigns?

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.

How can eGov help?

As health campaigns catch up on missed vaccinations, drugs, and other preventative measures globally, we have an opportunity to reimagine the way countries can plan and implement campaigns through open-source digital platforms. At eGov Foundation, we believe that designing & developing a DIGIT Health Campaign Management (HCM) product will enable countries, communities, and healthcare professionals to manage and implement health programmes more effectively. This also aligns with our aim of expanding capabilities in public health by reducing “diseases of poverty” such as malaria, HIV, and tuberculosis (TB) through digital tools.

DIGIT Health Campaign Management (HCM) is a free, fit-for-purpose, open-source product, built as a Digital Public Infrastructure (DPI), to help countries transform public health campaigns.

Useful Links

Contact Us

Health Campaign Management

Overview of public health campaign challenges resolved by DIGIT HCM

Health Products

The different modules and features of the Frontline Worker's App, the Campaign Management Dashboard, Microplanning, and HCM Admin Console

Setup

Plan, gather requirements, install and configure DIGIT HCM

LogoContact Us - eGovernments FoundationeGovernments Foundation

v1.3 Tech Release Summary

Impacted Services

Project:

  • 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.

Individual:

  • 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.

Referral Management:

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.

Stock Registry:

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.

  1. 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.

  2. 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.

Attendance:

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.

v1.3 Release Notes

Release Summary

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.

New Feature Additions

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:

  1. Beneficiary being referred

  2. Referral details of the beneficiary

  3. Reason for referrals and their diagnosis

  4. Based on the diagnosis chosen, further details, if applicable

Localisation Keys

To learn more about the DIGIT Health Platform and the Health Campaign Management (HCM) product, click .

​

here
Release kit Link

Service Build Updates

Category (Tag)
Services
Docker Artifact ID
Remarks

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

Health

MDMS

Config

Devops

Localisation

Value Proposition

A digital partner for the frontline workers:

  • 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

Co-pilot for managers and supervisors:

  • 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

Digital headquarters for national health agencies:

  • 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

Free & open-source software:

  • Countries own and evolve digit

Inventory

Name of the field
Description
Mandatory
Input
Data type
Minimum length
Maximum length
Validation
Comments
Need data from program/state

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

v1.2 Release Notes

Release Summary

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.

New Feature Additions

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.

v1.3
HCM-v1.3
HCM-v1.3
HCM-v1.3
HCM-v1.3
HCM-v1.3

v1.0 Release Notes

Release Summary

Release Highlights

Feature
Description

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.

Bug Fixes (Feedback from the bug bash)

Known Issues

  • 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'.

Related Documents and Links

Functional Specifications

Here are the articles in this section:

Master Data Management Service (MDMS) & Configuration Updates

MDMS

Config

Test Cases

HCM Test Cases v1.3

Understanding DIGIT Health Campaign Management (HCM)

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.

Why do we need DIGIT HCM?

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:

Reimagine Health Campaigns with DIGIT HCM

  • 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

Draft System User Setup

Boundary Hierarchy

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

Click to access the Jira dashboard.

Click to view the feedback from the UX audit.

Feature

Service name

PR

Attendance Session Configuration

​Attendance

​

Role action Mapping Service register

Feature

Service name

PR

Health Facility Referral

referral

​,​

Attendance

Devops

Name of the field
Description
Mandatory
Input
Data type
Minimum length
Maximum length
Validation
Comments
Need data from program/state
Name of the field
Description
Mandatory
Input
Data type
Minimum length
Maximum length
Need data from program/state
GitBook link.
here
here
Campaign Type Setup
Campaign Setup
Inventory
Boundary Hierarchy
Beneficiary
Boundary Data Specs
Draft System User Setup
Role Action Mapping

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

Email ID of the user being registered.

Optional

User

String

8

64

Yes

Correspondence Address*

Address of the user being registered.

Mandatory

User

String

256

Yes

ULB*

ULB assigned to the user where the user is supposed to perform tasks assigned to him/her.

Mandatory

User

String

256

Yes

Role*

Role assigned to the user to enable him/her to carry out his/her tasks and access the required data and services.

Mandatory

User

String

256

Every user must have at least 1 role assignment.

Yes

Employment Type*

The employment types indicate the type of contract which he/she holds with the organisation. This indicates whether he/she is a permanent employee or a contract employee for a short period. Select the relevant employment type: 'Permanent', 'Temporary', “DailyWages” and 'Contract'.

Mandatory

User

String

256

Yes

Current assignment

The current assignment type is to indicate whether the employee is currently assigned to a particular department and designation. A user can be also be assigned multiple assignments to perform his/her function.

Mandatory

User

String

64

Yes

Status*

The status indicates the type of status which he/she holds, whether employed or not within the organisation.

Mandatory

User

String

256

Yes

Hierarchy *

The hierarchy indicates the hierarchy type for the boundary to which he/she is assigned.

Mandatory

User

String

256

Yes

Boundary Type *

The boundary type indicates assigning a city to his/her role within the organisation. A user can be assigned multiple boundary types to perform in different functions. Example: City, zone, block, and locality.

Mandatory

User

String

256

Yes

Boundary *

The boundary indicates assigning a particular city to his/her role wherein they perform the role function of the application for the particular city. A user can be assigned multiple boundaries to perform in a different location. Example: City name, and tenant zone.

Mandatory

User

String

256

User must be assigned to atleast 1 boundary.

Project boundary must take precedence over user boundary assignment.

Yes

Assigned from Date*

The assigned from date indicates the date from which his/her role is assigned to perform the role function assigned.

Mandatory

User

Date

10

Yes

Department*

The department indicates the particular department to which his/her role is assigned to.

Mandatory

User

String

256

Yes

Designation*

The designation indicates a particular designation that is assigned to his/her role.

Mandatory

User

String

256

Not required for HCM.

Yes

Serial number

The sequence number for the list.

Boundary hierarchy type

The meaningful name to define a group of boundaries defined to perform one function.

Mandatory

MDMS

String

2

256

Yes

Code

A code is used to identify a certain classification of the type of boundary hierarchy.

Mandatory

MDMS

String

2

64

Yes

Description

Mandatory

MDMS

String

2

256

Yes

Campaign Setup

Name of the field
Description
Mandatory
Input
Validation
Comments
Need data from program/state

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

attendance-sessions.json
1.3 UAT PR
Persister
Indexer
Persister
attendance

DIGIT HCM App

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:

Campaign Type Setup

Health Products

Here are the articles in this section:

Role Action Mapping

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.

Building Blocks & Services

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.

Release Notes

Here are the articles in this section:

Boundary Data Specs

Beneficiary

Name of the field
Description
Mandatory
Input
Data type
Minimum length
Maximum length
Validation
Comments
Need data from program/state

Roles
Description
Actions
Comments

Field name
Description
Mandatory
Input
Data type
Minimum length
Maximum length
Validation
Comments
Need data from program/state
Name of the field
Description
Mandatory
Input
Data type
Minimum length
Maximum length
Validation
Comments
Need input from program/state

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

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

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.

Single Round Campaigns
Multi-Rounds Campaigns
Common Functions
Support Functions
Frontline Worker's App
Campaign Management Dashboard
Microplanning
HCM Console
v1.3 Release Notes
v1.3 Tech Release Summary
v1.2 Release Notes
v1.0 Release Notes

User Manual

Here are the articles in this section:

Multi-Round Campaigns

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:

Common Functions

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:

2D Voucher Scanning

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.

Key Features

  • Enables actors to execute the registration and delivery process efficiently through the use of scanners.

  • Code scanning capability provides better user experience by auto populating the data, thus reducing the time and effort.

  • Allows manual entry of codes to ensure maximum data collection, with defined validations.

  • Prevents duplication of records and monitor resources by linking beneficiaries to their respective codes and reusing it while registering a new beneficiary or distributing resources. One can also monitor the quantity of stock distributed by scanning the code available on the stock.

  • Allows multiple scanning of resource at once.

User Roles

User Role
Scope of Action
Role Description

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.

Using 2D Voucher Scanning

HCM Home Screen

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.

Search Beneficiary Screen

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.

Scan Code (Search Beneficiary)

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.

Scan Code (Linking Beneficiary)

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).

Scan Code (Track Delivery Resource)

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.

Registration & Delivery

An illustrative guide to using the Single-Round Registration & Delivery module

This enables frontline workers to register households and individuals using the HCM application.

Key Features

  • Register households

  • Add/Delete members to/from the households

  • Edit household/individual details

  • Delete household

  • Record delivery of an intervention

User Roles

User Role
Scope of Action
Role Description

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.

Using Registration & Delivery

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.

Single Round Campaigns

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:

Registration & Delivery

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.

Key Features

  • Allows a distributor to see the eligible household members for the current cycle under the selected household.

  • For each eligible household member, the distributor has two options: Record Delivery and Unable To Deliver.

  • A distributor can record the exact quantity delivered for each drug with a delivery comment.

  • A distributor can also record if the drugs for the next set of doses in the current cycle are already provided to the beneficiary or not. If the doses for next rounds are already provided, the distributor can mark next doses as 'Delivered' for the next rounds.

User Roles

User Role
Scope of Action
Role Description

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.

Steps for Recording Delivery

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.

Tracking Beneficiary Referrals

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.

Key Features

  • Allow a distributor to refer a beneficiary to the correct health facility and mark the correct health facility for the referral.

  • Referral can be done both before and after drug administration.

User Roles

User Role
Scope of Action
Role Description

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.

Steps to Track Referrals

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.

User Management

An illustrative guide to using the User Management Module

The ability for supervisors/managers to create and manage users and team assignments for their respective boundaries through the user interface.

User Roles

User Roles
Scope of Action
Role Description

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.

Using the User Management Module

A landing page must be available to the user to access all available modules.

Search Page

A user must be able to search for an existing employee using search parameters (name, mobile number, username).

Create New Employee

Users must be able to create new users by providing the following details. Refer to the section on specifications.

Assign Campaigns

View and Edit Screen

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.

Deactivate Employee Screen

Refer to the section on specifications for validations and conditions.

Tracking Side-Effects for Beneficiaries

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.

Key Features

  • Allows administrators to record side-effects for drugs delivered to the beneficiaries after every dose consumed by the beneficiary.

  • The distributor can record the side-effects for both direct delivery where all the doses of the drug is administered directly to the beneficiary, as well as for indirect delivery where the beneficiary is provided with all the remaining doses by the distributor at the same time and is asked to administer the drug on their own.

User Roles

User Role
Scope of Action
Role Description

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.

Steps for Recording Side-Effects During Direct Delivery:

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.

Tracking Adverse Events

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.

Kay Features

  1. Recording adverse events.

  2. Enabling actors to record and track the adverse events observed in a beneficiary after administration of the dose.

  3. Monitoring the data to plan and decide for upcoming doses during the campaign.

User Roles

Using Tracking Adverse Events

Deliver Intervention

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.

Adverse Events

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.

Download Beneficiary Data

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.

Key Features

  • Distributor has to select the boundary hierarchy to the lowest level and then download the latest beneficiary data from the server to start their drug delivery.

  • Once the data is found, the data can be downloaded and the distributor can choose to download data for other boundaries if they plan to use it.

  • This feature can only be done in areas where a stable internet connection is available.

User Roles

Steps to Download Beneficiary Data for Longitudinal Tracking

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.

Raising Complaints

An illustrative guide to using the Complaints Module (Mobile)

Users can file a complaint using the HCM app. There are a few assumptions:

  • Not all complaints will be logged using the complaints module. Users may prefer raising complaints on WhatsApp groups/calls, and may not be registered in the system.

  • Complaints are most likely to be logged by users on behalf of other users (Most common use case: Supervisors raising complaints on behalf of users).

User Roles

Users Raising Complaints

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

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.

File Complaint Workflow

Complaint Type

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.

Complaint Details

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:

  1. Name (must be populated if already available in the user’s profile else must be blank).

  2. Contact number (must be populated if already available in the user’s profile else must be blank).

  3. 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.

Confirmation Screen

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.

Health Facility Referral

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

Key Features

It captures all the cases of:

  1. Beneficiary being referred.

  2. Referral details of the beneficiary.

  3. Reason for referrals and its diagnosis.

  4. Based on the diagnosis chosen further details if applicable.

User Roles

Using the Health Facility Referral Management Module

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:

  1. Administrative Unit: This field will be auto-filled from the value available from the role-action mapping, and will be non-editable.

  2. Date of Evaluation: This field will be auto-filled with system value and will be non-editable.

  3. 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.

  4. 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.

  5. 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.

In Step 4 of recording the delivery process, based on the response provided by the distributor for the question "Did you provide drugs for the next doses?" the screens for recording the side-effects in a given cycle will be as follows:

User Role
Scope of Action
Role Description
User Role
Scope of Action
Role Description

User Role
Scope of Action
Role Description

User Role
Scope of Action
Role Description
Single Round Campaigns
Multi-Round Campaigns
Common Functions
Support Functions
Downloading Beneficiary Data
Registration & Delivery
User Management
2D Voucher Scanning
Proximity-Based Search
Voucher-Based Registration and Distribution
Tracking Beneficiary Referrals
Tracking Side-effects for Beneficiaries
Tracking Adverse Events
Health Facility Referral
Raising Complaints
Resolving Complaints
Registration & Delivery
Multi-Round Campaign

Distributor

Record adverse events for beneficiaries

The user goes from house-to-house for drug administration and records the adverse events observed in the beneficiary before administration

Distributor 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.

Registrar

Create and view complaints.

Registrars can raise technical complaints on the application

Field Supervisor

Create and view complaints.

Assist the frontline teams and raise the issues communicated by them on the application

Supervisor

a. Create and view complaints.

b. Resolve complaints, re-assign complaints back to the helpdesk, and reject complaints.

Monitor the overall campaign and provide assistance for the issues raised by the field teams

Helpdesk user

a. Create and view complaints.

b. Resolve complaints, assign complaints, and reject complaints.

Helpdesk users are the support team established to provide assistance throughout the campaign.

Health Facility Supervisor

Record referrals made by field workers

Record data of beneficiaries, reason for referral and diagnosis, and any further details.

Inventory Management

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:

  1. Track stock till the last mile.

  2. Capture stock details till the end user to keep track of the transactions that take place.

  3. Record the stock transactions during a campaign.

  4. Ensure the safety of stock.

  5. Keep track of the stock count and verify from both ends (received versus issued) to prevent the misuse of stocks.

Using Inventory Management: Last Mile Delivery

HCM Home Screen

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.

Manage Stock

This includes all the stock transactions that can be captured by the distributor.

Transaction Details

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.

Received Stock Details

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.

Acknowledgement Screen

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.

Transaction Details (Stock Consumed)

Consumed Stock Details

This screen includes all the fields except for the facility field.

This screen includes all the fields except for the facility field.

Transaction Details (Stock Returned)

Returned Stock Details

Stock Reconciliation

This enables a user to verify whether the physical count and calculated stock values are the same or not.

Using Stock Reconciliation

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.

View Reports

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.

Using View Reports

Report (Stock Received)

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.

Report (Stock Reconciliation)

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.

Stock Management

This enables a user to manage stocks, besides facilitating stock reconciliation.

Using Stock Management

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".

Manage Stocks

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

Stock Receipt

  • 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.

Record Stock Issued

  • 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.

Returned Stock Details

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.

Damaged Stock Details

  • 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.

Lost Stock Details

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.

Stock Reconciliation

Bale Scanning

Scan the resource code to track the resources delivered:

  1. Package utilised for barcode scanning-

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

User Manual

Click on the links below to learn more:

Voucher-Based Registration and Distribution

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.

Key Features

  • Allows a registrar to link a QR code voucher provided by the program to the beneficiary by scanning the QR code at the time of registration.

  • Allows a distributor to search for a beneficiary in the system by scanning the QR code voucher shown by the beneficiary when the Distributor has to deliver the drug.

User Roles

User Role
Scope of Action
Role Description

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.

Steps to Register Using Voucher Based Registration and Distribution

User Role: Registrar

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.

User Role: Distributor

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.

Resolving Complaints

An illustrative guide to using the Complaints Module (Mobile and Web)

There is a support helpdesk set up by the program which will receive all complaints raised by system users. The support helpdesk is responsible for reviewing all the complaints in the inbox. Depending on the complaint, the helpdesk can either resolve, reject, or assign the complaint to the respective actor Helpdesk users may create complaints on the user’s behalf, which are received over call/WhatsApp messages.

User Roles

User Role
Scope of Action
Role Description

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.

Resolving Complaints

Resolving a complaint (Mobile App View)

Helpdesk

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.

Filters The user can apply filters in multiple parameters as follows:

  • 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.

Search By

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.

Complaint Summary

A summary screen must be displayed when the user clicks on the ‘Open’ button located on the complaints card.

Actions

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.

Assign Complaint

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.

Confirmation Screen

Landing Page (Common page)

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.

Complaint Details

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.

Resolve Complaint

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.

Reject Complaint

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.

Assign to P2

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.

Confirmation Screen

New Complaint

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

Confirmation 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.

Login

Key Feature

Log in to the HCM app with user ID and password.

Using Login

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.

Proximity-Based Search

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.

Key Features

  • Enables distributors to search for beneficiaries within a 3-km radius (configurable) from their current location based on the latitudinal and longitudinal data recorded by the product at the time of registration.

  • The latitudinal and longitudinal data will be recorded by the product for both registration and drug delivery.

User Roles

User Role
Scope of Action
Role Description

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.

Using Proximity Based Search

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.

Help

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.

Using the Help Button

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.

Forgot Password

Using Forgot Password

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'.

Language Selection

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.

Key Feature

  • Select between Portuguese, French, and English languages.

Using Language Selection

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.

Hamburger Menu

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.

Edit Profile

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.

Click to learn more about stock reconciliation.

Package utilised to parse the barcode : .

Package utilised to QR code scanner:

GS1 - standards :

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.”

here
https://pub.dev/packages/gs1_barcode_parser
https://pub.dev/packages/qr_code_scanner
https://www.gs1.org/docs/barcodes/GS1_DataMatrix_Guideline.pdf
https://pub.dev/packages/google_mlkit_barcode_scanning
Stock Management
Stock Reconciliation
View Reports
Bale Scanning

Campaign Management Dashboard

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.

Microplanning

Sync

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.

Using Sync

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.

Sync Status

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:

  1. Retry: If the user wants to retry syncing the data.

  2. Close: Clicking on this will navigate the user back to the home screen.

Attendance Management

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.

Key Features

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:

  1. Attendance recording once a day.

  2. Attendance recording twice a day (Morning and Evening).

User Roles

User Role
Scope of Action
Role Description

Supervisor

The user will be able to access their attendance register to mark attendance for their attendees.

Using Attendance Management Module

User role: Supervisor

Step 1:

The user will see the "Mark Attendance" option in the home screen of the app as follows:

Step 2:

When the user clicks on "Manage Attendance", they will see the attendance registers created under the specific user name having the following details:

  1. Campaign Name

  2. Event Type

  3. Start Date

  4. End Date

  5. Staff Count

  6. Status

  7. Attendance Completion (in Days)

Step 3:

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.

Step 4:

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.

Step 5:

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.

Checklist

Brief Intro

Checklist is a tool that enables supervisors to monitor certain activities and record observations according to defined set of questions.

Features

  • Allows users to observe the tasks and fill checklists.

  • View all the submitted responses for the checklists.

User Roles

User Role
Scope of Action
Role Description

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.

Using Checklist

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.

Project Selection

Key Feature

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.

Using Project Selection

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.

Support Functions

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:

Click to learn more.

here
Language Selection
Login
Forgot Password
Project Selection
Hamburger Menu
Help
Sync

Design Decision Log

Sync

  1. 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).

  2. Sync will be manually triggered by the user (except for automatically syncing configuration down on the first login).

  3. Sync down of data is not required to support (good to have) the first rollout.

  4. Sync will be done through bulk APIs.

  5. 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.

    1. 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).

  6. API response compression Gzip will be turned on for all the endpoints.

  7. Unique identifier to be used between client and server:

    1. 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.

    2. 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.

    3. 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.

  8. Processing on the backend will continue to be asynchronous and not changed for the health use case.

Configurability

Backend

  1. Search API max limit and the default limit.

  2. Service details and endpoints.

Frontend

  1. Service details and endpoints.

  2. Number of entities sent to the server in bulk API calls

  3. Additional fields per entity in the app.

  4. The drop-down values or select options to be presented in the app for field users.

  5. Configuration changes are expected to be additive for the data captured against such configuration to continue being usable.

  6. Number of retries on API call failure after which the app should stop retrying.

  7. Timeout for the API calls.

Access Control

  1. 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.

Data

  1. All deletes are soft deletes.

  2. The server is responsible to delete nested/child entities if applicable when the parent entity is deleted.

  3. Undeletion is not permitted.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

Limitations

  1. From the Product requirement perspective, there is no unique identification identifier, so Platform is unable to check the uniqueness of registry entities.

Customisation

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.

LLIN Overview

Overview

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 and LLIN

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:

  1. National Malaria Control Program, Mozambique: Provided overall strategic direction for the campaign, part of the Ministry of Health (MISAU).

  2. DIS (Information System Directorate): Provided support during the requirements discussion and the implementation of the campaigns, part of MISAU.

  3. DTIC (Information Technology and Communication Directorate): Technical team that was trained and helped manage technical training and issues during the campaign, part of MISAU.

  4. World Vision: Implementation Partner for the BedNet campaign in Tete and Gaza.

  5. Bill and Melinda Gates Foundation: Funder of the DIGIT HCM platform.

  6. 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.

Key Takeaways from Salama Implementation

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.

Health Campaign System High Level Design

Health Campaign - High Level Design

The high level design is divided into:

  1. Master data

  2. Registries/entities

  3. Reusable DIGIT services

  4. Form engine support

  5. Multi-tenancy

  6. Android offline first app

  7. Web app - Campaign planning + dashboard

  8. External integration - DHIS2

Base Health Campaign on DIGIT Core 2.8.

Master Data

Master data categorised on the complexity required to maintain them from the technical perspective.

  1. Simple Masters

    1. Roles

    2. Additional field schemas for different entities

    3. Project task configurations

    4. Project type

    5. Role-actions

    6. Actions

  2. Hierarchical Masters

    1. Administrative boundary and hierarchy

  3. Inter-Linking Masters

    1. Field app config

    2. Service registry

Services/Registries

Individual 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.

Household Registry

  • New service.

  • Collection of Individuals living together (potentially receiving shared campaign intervention).

Facility Registry

  • New service.

  • Needed to model storage Warehouses through which stock moves.

Product Registry

  • 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.

Project Service

  • 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.

Stock Service

  • New service.

  • Track inflow and outflow of stock resources.

Reusable DIGIT Services

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 Services reused as-is

  • digit-mdms-service

  • Digit-location / boundary service

  • digit-access-control

  • Zuul API Gateway

  • digit-idgen

  • digit-persister

  • digit-indexer

  • digit-localization

  • DSS

  • Signed Audit

DIGIT Services reused with enhancements

No existing services being enhanced.

Workflow

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).

High-Level Design Diagram

ER Diagram

Form Engine Support

Form engine support was pushing out timelines and has been dropped from v1 scope.

Multi-Tenancy

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

Offline First

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.

Form Renderer

Out of scope for v1.

Offline Dashboards

The field workers will need to see dashboards based on the data stored in the offline database. Library - TBD

Web App

Campaign Planning App

Out-of-scope for v1.

Dashboards App

The app will have some custom screens to capture information around the campaign plan.

DSS dashboards are planned to be leveraged for reporting dashboards.

External Integration

DHIS2

This will be added to implementation scope.

Architecture

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.

Key Architecture Highlights

  • 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.

Multi-Layer Architecture

  • 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.

Rollout

Overview

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.

Key Features Introduced During Each Campaign

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.

Capacity-Building Activities Undertaken

During the implementation of Salama, several capacity-building activities, to provide NMCP with the competencies to manage and implement the activities without the support of the eGov team, were undertaken.

Before the Tete campaign, a Master Training, with the topics indicated in the table below, was conducted:

Individual trainings were provided DIS, DTIC, and M&E experts on the Complaints module, HRMS, and dashboard after the Master ToT.

After the Master Training, people who received the training went on to do the cascade training for people from the central level, who trained people at the province level, who trained people at the district level, and they finally trained the frontline workers.

Along with this a Technical Training was conducted to the NMCP focal points on the following topics:

During the Tete Campaign, several on-the-job refresher training to the NMCP focal points were provided as indicated in the table below:

Before the Gaza campaign, eGov conducted training and shared several guides to enable the team to improve the operation and use of the application. The topics are indicated in the table below:

Moving from block 1 to 2 and from 2 to 3 in the Tete campaign and then to Gaza campaign, we noticed that NMCP focal points have gained more knowledge and experience with DIGIT HCM (Salama). They were able to solve most of the problems in the field and have conducted the training sessions effectively, requiring less support from our team.

Given below is a summary of different activities that were performed by eGov in-person during Tete and Gaza campaigns

Impact

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:

HCM Console

Mozambique

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:

User Manual

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.

Key Features

  • 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.

User Roles

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.

Using the Dashboard

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.

National Level View

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.

Modules

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.

Features

  • 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.

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 . 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:

Click to learn more.

#

Campaign

Improvements/ Feature

1

Tete - Block 1

  • Web portal for user management

  • Configuration based role-access management in the web portal

  • Register beneficiaries

  • Update existing beneficiary details

  • Auto-calculation of bednets for delivery

  • Supervision checklists

  • Manage and view complaints

  • Dashboards to monitor campaign operations

  • Stock Management

  • Auto-reconciliation of stocks

2

Tete - Block 2

  • LM to delivery team stock movement changes

  • Single-click delivery fixes

  • Conditional checklists for national supervisor

  • App version in login screen footer

  • Have warehouse names instead of codes

  • Showing facility names without IDs in the drop-downs

  • Fix for bednets count issue in search beneficiary screen

  • Negative stock alert feature (restriction)

  • Different roles for local monitor and warehouse manager

  • Showing Username in the sidebar

  • The complaints screen made mobile numbers editable for self-raised complaints

  • Keeping bed net count to 0 instead of 1 in the delivery screen

  • Loading master data only on login and logout

3

Gaza

  • Bednet scanner during last-mile delivery

  • Client audit details

  • UI/Label changes

Dates

Topics

Location

3rd July-23 to 5th July-23

  • Overview of HCM platform and its different users

  • Registration and delivery

  • Supervision flow

  • Warehouse management

  • User Management

  • Complaints module

Maputo

Dates

Topics

Location

26th July and 27th July

  • DIGIT HCM (SALAMA) master data templates and data loading

  • Deployment architecture including setup and maintenance

  • Extracting reports from the database using the Data Mart reports

Remotely

Dates

Topics

Location

21st of Aug 23

  • Dashboard overview

Tete

24th of Aug 23

  • Session to explain the custom reports

N/A

29th of Aug 23

  • Data Query using Postman

  • User Management refresher

Tete

Dates

Topics

Location

14th Sept 23

  • How to use Vysor (projecting a phone during the training)

N/A

14th Sept 23

  • Troubleshooting guide

N/A

3rd Nov 23

  • Micro plan manual validation steps

Gaza

9th Nov 23

  • Device Preparation checklist

(Document Shared)

N/A

13rd Nov 23

  • Refresher on User Management (Document was shared with the team providing an option to have a refresher training, if necessary)

N/A

22nd Nov 23

  • Usage of QR Code guideline

N/A

Campaigns

List of activities

Tete Block 1

Tete Block 2

Tete Block 3

Gaza

Preparation of devices that will be used during the training and distribution;

eGov provided support for two days

eGov provided support for one day

Not applicable

eGov didn´t provide support

Participation on the testing and refresher training at provincial level;

Full support

Partial support

No support

No support

Observing and monitoring the training for Local Monitor, Warehouse Managers and Registrators

eGov provided support for 5 districts

eGov provided support for 3 districts

Not applicable

eGov participated for one district

Supporting the first login in DIGIT HCM (SALAMA) of trainees during the training;

eGov provided support for 5 districts

eGov provided support for 3 districts

Not Applicable

No support provided

Collecting the feedback of the usage of DIGIT HCM (SALAMA) from the end-users

eGov provided support for 5 districts

eGov provided support for 3 districts

No support

eGov provided support for one district

Identifying possible issues during the training that can affect the distribution and recommend mitigations

eGov provided support for 5 districts

eGov provided support for 3 districts

No support

eGov provided support for one district

Supporting Help Desk solving issues for example, phones with old version of DIGIT HCM (SALAMA) app

eGov provided support for 5 districts

eGov provided support for 3 districts

No support

eGov provided support for one district

Core Services
here
LLIN Overview
Customisation
Rollout

Registries

Here are the articles in this section:

Household

API Spec

Sequence Diagrams

Individual

API Spec

Sequence Diagrams

Product

API Spec

Sequence Diagrams

Low Level Design

The articles in this section include:

High Level Design

The articles in this section include:

Project

API Spec

Sequence Diagrams

Field App Architecture

Tech Stack/Core Dependencies

Codebase

Design

Design Considerations for Field App

  1. Needs to work in low/no network coverage areas.

  2. Needs to have a high level of configurability.

  3. Needs to work on Android.

  4. Users of the app have low-tech literacy.

Design Features

Sync

Since the app is expected to be configurable, there is a need to receive these configurations from the server. Data already on the server might need to be retrieved by the app as well.

Since the app is expected to work while users are offline, there is the need to send data that has been collected while the user has been offline to the server.

These functionalities are collectively called sync. The retrieval of configuration and data is referred to as sync down while the sending of data collected using the app is called sync up. Login and sync can only be done while the user is online.

When a user logs in, a sync down is performed to fetch the required configuration and data for the field app to run. After collecting data using the app, the user can perform a sync which will perform a sync-up (to send all data collected) followed by a sync-down (to retrieve any fresh configuration). Syncing of data down is not required for the initial implementation and can be turned off.

Configurability

Configurations for the field app are managed as master data in the MDMS service. These configurations are used to manage various aspects of how the app functions. The important ones are:

  1. If the app has to run in an offline first mode or an online mode.

  2. 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.

  3. 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).

  4. Values/options that need to be displayed in various fields in the app.

  5. Additional fields are to be captured for any of the entities, if any.

  6. 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

  1. 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.

  1. Beneficiary Refused: Indicates that the beneficiary refused to accept the delivery in the current cycle.

  2. Beneficiary Referred: Indicates that the beneficiary was referred to a health facility during the current cycle.

  3. Visited: Indicates that a delivery was successfully made for the beneficiary in the current cycle.

  4. 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.

Diagrams

Class Diagram

Sequence Diagrams

Init App

Login

Sync Down

Delivery Resource

Proximity Based Search

Beneficiary Data Down Sync

Multi-Round Support

Downsync of Beneficiaries

Health Facility Worker Referral

Attendance Management

Stock

API Spec

Sequence Diagrams

Facility

API Spec

Sequence Diagrams

Referral

API Spec

Sequence DIagrams

: Framework to build multi-platform apps

: SQL offline db

: NoSQL offline db

: HTTP Client

Individual
Household
Product
Facility
Attendance
Registries
Services
Health Campaign System High Level Design
Design Decision Log
LogoSwagger Editor
LogoSwagger Editor

Interoperability

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.

LogoSwagger Editor
Flutter
SQLite
ISAR
Dio
https://github.com/egovernments/health-campaign-field-worker-app

Gathering Requirements

Technical Skillset & Pre-requisites

Introduction

This document lists the technical skillsets required for someone to build and support the Health Campaign Management (HCM). There are distinct skills required to customise the application, and set up and run the infrastructure for this. The basic hardware configuration required for the developer machine is part of this document.

Technical Skillset

The technical skillsets that are required to work on the DIGIT HCM stack are listed below. It is expected that the teams have satisfactory knowledge of the below technologies before they take up DIGIT training:

Development Team Skillset

  • Open API Contract - Swagger2.0

  • YAML/JSON

  • Postman

  • Postgres

  • Java and REST APIS

  • Basics of Elasticsearch

  • Maven

  • Springboot

  • Kafka

  • Zuul

  • ReactJS

  • Flutter

DevOps Team Skillset

  • Understanding of the micro-service architecture.

  • Experience with AWS, Azure, GCP, and NIC Cloud.

  • Strong working knowledge of Linux, command, VM Instances, networking and storage.

  • To create Kubernetes cluster on AWS, Azure, and GCP on NIC Cloud.

  • Kubectl installation and commands (Apply, get, edit, describe k8s objects).

  • Terraform for infra-as-code for cluster or VM provisioning.

  • Understanding of VM types, Linux OS types, LoadBalancer, VPC, Subnets, Security Groups, Firewall, Routing, DNS)

  • Experience setting up CI like Jenkins and creating pipelines.

  • Deployment strategies - Rolling updates, Canary, Blue/Green.

  • Artifactory - Nexus, Verdaccio, DockerHub, etc.

  • Experience with Kubernetes ingress, setting up SSL certificates, and renewal.

  • Understanding of the Zuul gateway.

  • Gitops, Git branching, PR review process. Rules, Hooks, etc.

  • Experience in Helm, packaging, and deploying.

  • Apache, Nginx, Redis, and Postgres.

Hardware Pre-requisites

Teams are expected to have laptops/desktops configured as mentioned below with all the software required to run the DIGIT application:

  • Laptop for hands-on training with 16GB RAM and OS preferably Ubuntu

  • All developers need to have Git IDs

  • Install VSCode/IntelliJ/Eclipse

  • Postman

Software Assets

There are knowledge assets available on the net for general items and eGov assets for DIGIT services. Here you can find references to each of the topics of importance. It is mandated the trainees do a self-study of all the software mentioned in the pre-requisites using the reference materials shared.

Topic
Reference
Preparedness Check

Git

Do you have a Git account? Do you know how to clone a repository, pull updates, push updates? Do you know how to give a pull request and merge the pull request?

Microservice Architecture

Do you know when to create a new service? How to access other services?

ReactJS

How to create react app? How to create a stateful and stateless component? How to use HOC as a wrapper?Validations at form level using React.js and Redux.

Postgres

How to create a database and set up privileges? How to add an index on a table? How to use aggregation functions in psql?

Postman

Call a REST API from Postman with proper payload and show the responseSetup any service locally (MDMS or user service has least dependencies) and check the API’s using postman.

REST APIs

What are the principles to be followed when making a REST API? When to use POST and GET? How to define the request and response parameters?

Kafka

How to push messages on Kafka topic? How does the consumer group work? What are partitions?

Docker and Kubernetes

How to edit deployment configuration? How to read logs? How to go inside a Kubernetes pod? How to create a docker file using a base image? How to port-forward the pod to the local port?

JSON

How to write filters to extract specific data using jsonPaths?

YAML

How to read an API contract using swagger?

Zuul

What does Zuul do?

Maven

What is POM?What is the purpose of maven clean install and how to do it?What is the difference between the version and SNAPSHOT?

Springboot

How does autowiring work in spring? How to write a consumer/producer using spring Kafka? How to make an API call to another service using restTemplate? How to execute queries using JDBC template?

Elastic search

How to write the basic queries to fetch data from the elastic search index?

DIGIT Architecture

What comes as part of the core service, business service and municipal service? How to calls APIs from one service in another service?

DIGIT Core Services

Which are the core services in the DIGIT framework?

DIGIT DevOps

​

DIGIT MDMS

How to read a master date from MDMS? How to add new data in an existing master? Where is the MDMS data stored?

DIGIT UI Framework

How to add a new component to the framework? How to use an existing component?

DSS

​

Standards

Overview

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.

Global Standards For All

Product Owner

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.

Implementing Agencies/Programme Owners

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.

Attendance

Description of the attendance service

Overview

Attendance service allows users to maintain attendance registers, enrol individuals, create, update or search attendance logs and manage staff permissions.

API Specifications

Base Path: /health-attendance/

API Contract Link

Data Model

DB Schema Diagram

Web Sequence Diagrams

Attendance Register

Staff

Attendee

Attendance Log

Security

Data Protection & Privacy Definitions

1. Data

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:

1a) Personal Data or Personally Identifiable Information (PII)

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;

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[...].”

2. Product Implementation Cycle

2a) Product

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.

2c) Programme

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

2e) Product Implementation Stages

We describe a product implementation as progressing across 7 stages:

3. Roles

3a) Product Owner (PO)

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.

3c) Programme Owner (Prog)

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.

3f) Summary & Comparision Of Roles (PO, IA, Prog, SA)

Create or Edit Existing Dashboards

Steps to Create or Edit HCM Product Dashboards

  • To edit existing dashboards, open the desired dashboard.

  • Click on the ‘Edit’ button.

  • For each chart you want to edit, click on “Edit Visualization”.

  • Check the chart type and data view from which data is getting fetched as shown in the image below:

  • Click on “Edit Lens” to get an overview of the available and selected fields in the respective data view.

  • You can go to the respective data view under Stack Management -> Saved Objects, update the indexes, and add a timestamp filter for the respective chart.

View/Edit Queries used to get the metric data

  • After going back to the “Edit Visualization”, you can see the metrics that are shown in the chart here as shown in the image below:

  • Click on the desired metric, for which you want to view/edit the query.

View Data Sources

  • To see which index a data view is pulling the data from, check the respective data views in Stack Management -> Data Views.

  • For example, if you click on “Edit Visualization” on a chart, you will see that the table chart is getting data from the DV-PT-PJT data view.

  • You can then view the DV-PT-PJT data, check the indices from where the data is getting pulled, and add a timestamp filter according to your requirements.

Setup App

Demo Video

Overview

This guide provides step-by-step instructions to clone and run the Health Campaign Frontline Worker's App locally on your machine. The app is a Flutter application developed for health campaigns.

Pre-requisites

Before you begin, ensure that you have the following installed on your PC:

  • Android Studio or VS Code, any preferred IDE for Flutter development.

  • Android device or emulator for testing.

  • Run the flutter doctor command to ensure all the required checklists are marked.

Steps

  1. Open a terminal and run the following commands:

git clone https://github.com/egovernments/health-campaign-field-worker-app.git

cd health-campaign-field-worker-app

  1. Open the project in your preferred IDE (Android Studio, Visual Studio Code). Make sure that your IDE is configured with the Flutter and Dart plugins.

  2. Create a .env file inside the apps/health_campaign_field_worker_app folder.

Sample .env file:

  1. Create another file as pubspec_overrides.yaml in the same folder:

Note: Check that all the folder names are in the packages folder before overriding the dependencies.

  1. Create another file as pubspec_overrides.yaml in packages/attendance_management/pubspec_overrides.yaml

  1. Create another file as pubspec_overrides.yaml in packages/forms_engine/pubspec_overrides.yaml

  1. Run install_bricks.sh bash script which is located in the tools folder. This script fetches and links all the necessary dependencies for the project.

  2. After successfully running the script and setting up the env file, navigate to the app's folder from the terminal:

    cd apps/health_campaign_field_worker_app

  3. Connect your Android device or start an emulator. Ensure that it is visible by running

    flutter devices.

  4. Now, run the following command to launch the app:

    flutter run.

This command will build the app and install it on the connected device or emulator.

Generate APK - Steps

  • Create a .env file inside the apps/health_campaign_field_worker_app folder.

Sample .env file:

  • Create another file as pubspec_overrides.yaml in the same folder.

Note: All the folder names should be in the packages folder, before overriding the dependencies.

  • Create another file as pubspec_overrides.yaml in packages/attendance_management/pubspec_overrides.yaml

  • Create another file as pubspec_overrides.yaml in packages/forms_engine/pubspec_overrides.yaml

  • Run install_bricks.sh bash script which is located in the tools folder. This script fetches and links all the necessary dependencies for the project.

  • After successfully running the script and setting up the env file, navigate to - apps/health_campaign_field_worker_app folder in the terminal, and run the following command to generate the APK:

    flutter build apk --release --no-tree-shake-icons

  • After successfully running the above command, the APK will be generated in the path

    apps/health_campaign_field_worker_app/build\app\outputs\flutter-apk\app-release.apk

  • Install the generated APK on your preferred Android device.

Change Master Data - Steps

All the Master data persist in MDMS under the tenant folders.

App configuration: Primary details required to run the app:

Upsert Localisation

  1. Import the following curl in Postman:

Note:

  • Replace the {URL} with the required environment.

  • Get the {authToken} of SUPER_USER.

  • Replace the {tenantId} with the required tenant.

  • Each message object should have a unique code and module.

Sample message to upsert:

API curl

Localisation Link

If the localisation is not executed prior, then -

Services

Here are the articles in this section:

Swagger Editor

Install ​

Install ​

Install ​

Install 6

Install ​

​​​​​​​​

​​​​​

​​​​​​​​

​​​​​​​​

​​​​​

​​​​​

​​​​​​​

​​​​​​​​

​ ​

​​

​s

​​​​​

​​​​​

​​​​​

​​​​​

​​

​​​​​

​​

​​

​​

Depending on the nature of the work, the product owner undertakes the as a direction for standardisation.

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.

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.

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.”

For example,is a product.

To understand how to create dashboards in Kibana, refer to this guide:.

If you need to create your own data views, follow this guide:.

Flutter 3.16.5 version -

Product Repo:

Sample: . App master data persist in:

Consist of service register: All the APIs that the app utilises to call the server:

Project types: Details of the projects are listed here:

Additional static configs:

Consolidated: Module Localisation:

Git
JDK 8 update 112 or higher
maven v3.2.x
PostgreSQL v9.
Elastic Search v2.4.x
NIST Privacy Framework
ISO 27701

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

BASE_URL={replace with base url}
MDMS_API_PATH='egov-mdms-service/v1/_search'
TENANT_ID="mz"`
ACTIONS_API_PATH="access/v1/actions/mdms/_get"
SYNC_DOWN_RETRY_COUNT="3"
RETRY_TIME_INTERVAL="5"
CONNECT_TIMEOUT="120000"
RECEIVE_TIMEOUT="120000"
SEND_TIMEOUT="120000"
CHECK_BANDWIDTH_API="/project/check/bandwidth"
ENV_NAME="DEMO"
# melos_managed_dependency_overrides: digit_components,digit_firebase_services,forms_engine,intl, digit_showcase
dependency_overrides:
  attendance_management:
    path: ../../packages/attendance_management
  dart_mappable_builder:
    path: ../../packages/dart_mappable_builder
  digit_components:
    path: ../../packages/digit_components
  digit_firebase_services:
    path: ../../packages/digit_firebase_services
  digit_showcase:
    path: ../../packages/digit_showcase
  forms_engine:
    path: ../../packages/forms_engine
  intl: ^0.18.0
# melos_managed_dependency_overrides: dart_mappable_builder
# melos_managed_dependency_overrides: digit_components
dependency_overrides:
  digit_components:
    path: ../../packages/digit_components
  dart_mappable_builder:
    path: ../../packages/dart_mappable_builder
# melos_managed_dependency_overrides: digit_components
dependency_overrides:
  digit_components:
    path: ../digit_components
BASE_URL={replace with base url}
MDMS_API_PATH='egov-mdms-service/v1/_search'
TENANT_ID="mz"`
ACTIONS_API_PATH="access/v1/actions/mdms/_get"
SYNC_DOWN_RETRY_COUNT="3"
RETRY_TIME_INTERVAL="5"
CONNECT_TIMEOUT="120000"
RECEIVE_TIMEOUT="120000"
SEND_TIMEOUT="120000"
CHECK_BANDWIDTH_API="/project/check/bandwidth"
ENV_NAME="DEMO"
# melos_managed_dependency_overrides: digit_components,digit_firebase_services,forms_engine,intl, digit_showcase
dependency_overrides:
  attendance_management:
    path: ../../packages/attendance_management
  dart_mappable_builder:
    path: ../../packages/dart_mappable_builder
  digit_components:
    path: ../../packages/digit_components
  digit_firebase_services:
    path: ../../packages/digit_firebase_services
  digit_showcase:
    path: ../../packages/digit_showcase
  forms_engine:
    path: ../../packages/forms_engine
  intl: ^0.18.0
# melos_managed_dependency_overrides: dart_mappable_builder
# melos_managed_dependency_overrides: digit_components
dependency_overrides:
  dart_mappable_builder:
    path: ../dart_mappable_builder
  digit_components:
    path: ../digit_components
# melos_managed_dependency_overrides: digit_components
dependency_overrides:
  digit_components:
    path: ../digit_components
{
            "code": "ADMINISTRATION_UNIT_FORM_LABEL",
            "message": "Administrative Unit",
            "module": "hcm-beneficiary",
            "locale": "en_MZ"
      }
curl --location '{URL}/localization/messages/v1/_upsert' \
--header 'Content-Type: application/json' \
--data '{
    "RequestInfo": {
        "apiId": "emp",
        "ver": "1.0",
        "ts": "10-03-2017 00:00:00",
        "action": "create",
        "did": "1",
        "key": "abcdkey",
        "msgId": "20170310130900",
        "requesterId": "rajesh",
        "authToken": "{authToken}",
        "userInfo": {
            "id": 128
        }
    },
    "tenantId": "{tenantId}",
    "locale": "{locale}", // Eg. en_MZ
    "module": "hcm-common",
    "messages": [
        {
            "code": "ADMINISTRATION_UNIT_FORM_LABEL",
            "message": "Administrative Unit",
            "module": "hcm-beneficiary",
            "locale": "en_MZ"
        }
    ]
}'
https://www.atlassian.com/git
https://www.tutorialspoint.com/git/index.htm
https://www.udemy.com/course/git-complete/
https://www.tutorialspoint.com/microservice_architecture/index.htm
https://www.udemy.com/course/microservices-with-spring-boot-and-spring-cloud/
https://reactjs.org/tutorial/tutorial.html
https://www.udemy.com/course/react-the-complete-guide-incl-redux
https://www.tutorialspoint.com/reactjs/reactjs_overview.htm
https://www.postgresqltutorial.com/
https://www.udemy.com/course/the-complete-python-postgresql-developer-course/
https://www.tutorialspoint.com/postgresql/index.htm
https://www.postman.com/resources/videos-tutorials/
https://www.udemy.com/course/postman-the-complete-guide/
https://www.tutorialspoint.com/rest_api/index.asp
https://www.youtube.com/watch?v=rtWH70_MMHM
https://www.udemy.com/course/apache-kafka/
https://kafka.apache.org/intro
https://www.tutorialspoint.com/apache_kafka/apache_kafka_introduction.htm
https://www.tutorialspoint.com/kubernetes/index.htm
https://www.udemy.com/course/docker-and-kubernetes-the-complete-guide/
https://www.tutorialspoint.com/docker/index.htm
https://www.tutorialspoint.com/json/index.htm
json-path/JsonPath
https://www.udemy.com/course/yaml-essentials/
https://www.javatpoint.com/zuul-api-gateway
https://www.udemy.com/course/maven-quick-start/
https://www.tutorialspoint.com/maven/index.htm
https://www.tutorialspoint.com/spring_boot/index.htm
https://www.udemy.com/course/spring-hibernate-tutorial/
https://www.udemy.com/course/elasticsearch-complete-guide/
https://www.tutorialspoint.com/elasticsearch/index.htm
Orientation - Platform Overview
DIGIT Architecture and Technical overview
Product requirements
DevOps Partners - KT Content
DIGIT Deployment
MDMS Configuration
Getting started
Product - DSS
Data means
Another definition of personal data
DIGIT-HCM
Create a Dashboard of Panels
Creating Data Views in Kibana
DIGIT Health Campaign Management Demo | DIGIT HCM
Flutter SDK.
egovernments/health-campaign-field-worker-app
https://github.com/egovernments/health-campaign-mdms/tree/DEV/data/default
https://github.com/egovernments/health-campaign-mdms/tree/DEV/data/default/health
https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/service-registry.json
https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/field-app-configuration.json
https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/project-types.json
https://github.com/egovernments/health-campaign-mdms/blob/DEV/data/default/health/symptoms_types.json
https://github.com/egovernments/releasekit/blob/master/localisation/HCM/consolidated/en_MZ/consolidated.json
https://github.com/egovernments/releasekit/tree/master/localisation/HCM/V1.3
Project
Project
Stock

Summary of Data Views and Dashboards

Steps to View Summary of Data Views and Dashboards

Install Using GitHub Actions in AWS

Installation Guide for DIGIT-HEALTH via GitHub Actions in AWS

Overview

This guide provides step-by-step instructions for installing DIGIT using GitHub Actions in an AWS environment.

This guide provides step-by-step instructions for installing DIGIT using GitHub Actions in an AWS environment.

Pre-requisites

  • A domain host

Install

  • Prepare AWS IAM User

  • Assign administrator access to the IAM user for necessary permissions.

  • Set up the AWS profile locally by running the following commands

    • aws configure --profile {profilename}

    • fill in the key values as they are prompted

      • AWS_ACCESS_KEY_ID: <GENERATED_ACCESS_KEY>

      • AWS_SECRET_ACCESS_KEY: <GENERATED_SECRET_KEY>

      • AWS_DEFAULT_REGION: ap-south-1

    • export AWS_PROFILE={profilename}

Adding AWS keys to the repository

  • Go to the forked health-campaign-devops repository

  • Navigate to the repository settings

  • Then to Secrets and Variables

  • Then click on actions options below secrets and variables

  • On the new page, choose the new Repository secret option in Repository secrets and add the following keys mentioned below

    • AWS_ACCESS_KEY_ID: <GENERATED_ACCESS_KEY>

    • AWS_SECRET_ACCESS_KEY: <GENERATED_SECRET_KEY>

    • AWS_DEFAULT_REGION: ap-south-1

    • AWS_REGION: ap-south-1

Changes to be made in the repository

  • Navigate to the Kubernetes-1.27 branch in the forked DevOps Repository

  • Enable GitHub Actions

    • Click on Actions then click on I understand my workflows, go ahead and enable them

How to edit the GitHub files

  • The following steps can be done either directly in the browser or the local system if you are familiar with git usage

  • Before following any of the steps switch to the kubernetes-1.27 branch

  1. Steps to edit in the local system if you are familiar with Git basics

    1. Git clone {forked DevOps repolink}

    2. Follow the below steps and make changes

    3. Then commit and push to the kubernetes-1.27 branch

    4. NOTE: Complete all changes at once then commit and push the code to remote to trigger the installation.

Replace the master and config repositories

  • Note: - make these repository/Branch changes before installation, changes to the config repository link in the DevOps Repository after installation without working understanding will lead to failure in the application functionality.

  • Navigate to egov-demo.yaml (config-as-code/environments/egov-demo.yaml)

  • Under the egov-mdms-service: initContainers: change the gitsync repository link of master data to the master data repository you forked and the branch to DEMO (The branch also can be changed based on your choice).

  • Under the egov-persister: change the gitsync link of the health-campaign-config repository to the forked config repository and the branch to DEMO

  • Under the egov-indexer: change the gitsync link of the health-campaign-config repository to the forked config repository and the branch to DEMO

Configure Infrastructure-as-code

  • Navigate to infra-as-code/terraform/sample-aws.

  • Open input.yaml and enter details such as domain_name, cluster_name, bucket_name, and db_name.

Configure application secrets

  • Generate SSH key pair

  • How to Generate SSH Key Pair - choose one of the following methods to generate an SSH key pair:

    • Method b: Use OpenSSL commands:

      • OpenSSL genpkey -algorithm RSA -out private_key.pem

      • openssl rsa -pubout -in private_key.pem -out public_key.pem

      • To view the key run the commands or use any text editor to open the files

        • vi private_key.pem

        • vi public_key.pem

  • Once generated Navigate to config-as-code/environments

  • Open egov-demo-secrets.yaml

  • Replace ssh_private_key (note: please make sure the private key is indented as given)

Finalise Installation

  • Once all details are entered, push these changes to the remote GitHub repository. Open the Actions tab in your GitHub account to view the workflow. You should see that the workflow has started, and the pipelines are completed successfully.

Configure domain name

  • Once the deployment is done get the CNAME of the nginx-ingress-controller

kubectl get svc nginx-ingress-controller -n egov
  • The output of this will be something like this:

  • Add the displayed CNAME to your domain provider against your domain name.

Create superuser

  • Connect to the Kubernetes cluster, from your local machine by using the following cmd

aws eks update-kubeconfig --region ap-south-1 --name $CLUSTER_NAME
  • Check if all the egov-user service is up and running by the following cmd

kubectl get pods -n egov | grep egov-user

If all the egov-user service is running with Ready 1/1, then connect to it by port forwarding

kubectl port-forward svc/egov-user -n egov 8080:8080
  • Import the below curl in Postman or execute it in another terminal window

curl --location 'http://localhost:8080/user/users/_createnovalidate'
--header 'Content-Type: application/json'
--data-raw '{ "requestInfo": { "apiId": "Rainmaker", "ver": ".01", "ts": null, "action": "_update", "did": "1", "key": "", "msgId": "20170310130900|en_IN", "authToken": "51e00caf-3218-4f15-ba70-a45f7d40abc1" }, "user": { "userName": "<>", "name": "Admin User", "gender": null, "mobileNumber": "9898989898", "type": "EMPLOYEE", "active": true, "password": "<>", "roles": [ { "name": "Super User", "code": "SUPERUSER", "tenantId": "mz" } ], "emailId": "xyz@gmail.com", "tenantId": "mz" } }'
  • Replace the username, password, and tenantId with proper values (keep tenantid as 'mz' if master data is unchanged).

Restart Zuul service

  • Check if all the services are up and running by using the following cmd

kubectl get pods -n egov
  • If all the services are running with Ready 1/1, then restart the Zuul service by using the below cmd

kubectl delete pods {zuul-pod-name} -n egov

DIGIT Infrastructure - Cleanup & Uninstallation

As you wrap up your work with DIGIT, ensuring a smooth and error-free cleanup of the resources is crucial. The regular monitoring of the GitHub Actions workflow's output is essential during the destruction process. Watch out for any error messages or signs of issues. A successful job completion will be confirmed by a success message in the GitHub Actions window, indicating that the infrastructure has been effectively destroyed.

When you're ready to remove DIGIT and clean up the resources it created, proceed with executing the terraform_infra_destruction job. This action is designed to dismantle all setup resources, clearing the environment neatly. We hope your experience with DIGIT was positive and that this guide makes the uninstallation process straightforward.

Steps to destroy the server

To initiate the destruction of a Terraform-managed infrastructure, follow these steps:

  • Navigate to Actions.

  • Click DIGIT-Install workflow.

  • Select Run workflow.

  • When prompted, type "destroy". This action starts the terraform_infra_destruction job.

  • You can observe the progress of the destruction job in the actions window.

Setup Kibana Dashboard

This document outlines the steps required to create and configure health campaign dashboards in a different space within Kibana.

Pre-requisites:

  • Kibana 8.11.3 version to be installed.

  • Knowledge of creating dashboards in Kibana.

  • Transformer and indexer services are up and running to enrich data for KPI creation and push data to elastic search.

Steps to Create and Configure Health Dashboards in Kibana

1. Access to Kibana:

  • URL: {{HOST NAME}}/kibana

  • Replace the {{HOST NAME}} with your domain URL.

2. Verify installation and services setup:

  • Check the Kibana version through UI in the ‘Help’ section.

  • Verify transformer service and indexer services changes and builds deployed.

  • For reference, attaching the transformer and indexer services repository links here:

3. Create or select a space

  • By default, users will have access to the default space.

  • To create a new space or edit, open the main menu, then click Stack Management → Spaces for an overview of your spaces. This view provides actions to create, edit, and delete spaces.

  • Switch to or create a new space where the dashboards will be configured.

4. Visualisation of data views and dashboards

  • We have existing data views and dashboards from the product environment that you can import and use. To import existing data views, follow the steps below:

  • Navigate to the “Stack Management” in the sidebar.

  • Click on “Saved Objects” under Kibana.

  • All dashboards and data views will be imported here and can be viewed under “Saved Objects”.

5. How to render the dashboards in the DIGIT application

To render the dashboards, using iFrame in your application, follow these steps:

  • Dashboard endpoints can be found by viewing the required dashboard in Kibana.

  • For example, to the dashboard URL to uiCommonConstants, open the national dashboard, and you will find the view URL endpoint at the address bar, as shown in the above image.

{
  "tenantId": "mz",
  "moduleName": "common-masters",
  "uiCommonConstants": [
    {
      "elastic": {
        "iframe-routes": {
          "home": {
            "routePath": "/kibana/login",
            "isOrigin": true
          },
          "national": {
            "routePath": "/kibana/app/dashboards#/view/1d7222a0-0152-11ef-821a-2fe4b3554139?_g=(filters:!(),refreshInterval:(pause:!t,value:60000),time:(from:now-15m,to:now))",
            "isOrigin": true,
            "title": "NATIONAL_DASHBOARD"
          },
          "district": {
            "routePath": "/kibana/app/dashboards#/view/69d01c30-d00e-11ee-a631-9d8465121de3?_g=(filters:!(),refreshInterval:(pause:!t,value:60000),time:(from:now-15m,to:now))",
            "isOrigin": true,
            "title": "DISTRICT_DASHBOARD"
          },

/{contextPath}/employee/utilities/iframe/elastic/national

  • Replace the context path with the application context path.

{
  "id": 1826,
  "name": "DASHBOARD",
  "url": "url",
  "displayName": "NATIONAL_DASHBOARD",
  "orderNumber": 1,
  "parentModule": "",
  "enabled": true,
  "serviceCode": "iframe",
  "code": "null",
  "navigationURL": "/digit-ui/employee/utilities/iframe/elastic/national",
  "path": "iframe.HCM",
  "leftIcon": ""
}
{
      "rolecode": "NATIONAL_SUPERVISOR",
      "actionid": 1826,
      "actioncode": "",
      "tenantId": "mz"
    }

6. Verify the dashboard configured in the application by:

  • Navigating to your employee application URL:

{{HOST NAME}}/{{CONTEXT-PATH}}/employee/user/language-selection

  • Log in with the user credentials for which you have configured the dashboard links.

  • After you log in, check the dashboard link that was added in role actions which will be displayed in the the dashboard card.

  • Click on the dashboard link configured for the logged-in user. You will see that the dashboard was rendered through i-frame in the UI.

7. Create or edit existing dashboards

8. Summary of data views and dashboards

Setup Seed Data

This step involves the execution of the Postman collection for the minimum setup data required to run a campaign.

Steps

All file examples in this document refer to the default branches in the health campaign DevOps and config repositories for example purposes. If you have replaced these repositories with your fork or clone, refer to the same here.

Repository details

    • Branch - kubernetes-1.27

    • Branch - DEMO

    • Branch - DEMO

Create an environment variable file and add the below variables in Postman

  • Click on New and then Environment, then add the following variables

  • URL

  • tenantId - mz

  • apiUserName and apiPassword - newly created superuser credentials

  • boundaryCode - use the default value (VFTw0jbRf1y) if Master data is unchanged

  • Import the seed data script

  • Once Env is selected then click on the imported HCM setup collection click run

  • Pick the values by clicking on the eye icon

  • Pick the value of a postman env variable named ProductVariantIdBednet1 and replace all occurrences of the text "PVAR-2024-03-21-000026" with the copied value in the project-types.json.

  • Pick the value of a postman env variable named ProductVariantIdSP and replace all occurrences of the text "PVAR-2024-03-21-000022" with the copied value in the project-types.json.

  • Pick the value of a postman env variable named ProductVariantIdAQ and replace all the occurrences of the text "PVAR-2024-03-21-000024" with the copied value in the project-types.json.

  • Replace the URL variable in the Postman Environment with your domain URL

  • While executing the localisation collection, execute only five folders at a time by unchecking the box in the run screen to avoid inbuilt rate limiter errors.

  • Else, create a port forward to the localisation pod by executing the below command:

kubectl port-forward svc/egov-localization -n egov 8080:8080
  • Replace the URL variable in the Postman Environment to http://localhost:8080.

  • Run the collection.

Planning an HCM Implementation

Implementation Phases

The document gives an overview of how an HCM implementation is carried out, the activities in each phase, and the output generated in each phase. There are 4 phases of an HCM implementation:

Programme Setup & Kick-off

This phase involves the creation of a programme plan, post-discussion, and finalisation of the scope of digitisation. The output includes the following:

  • Creation of an Excel documentation of solution requirements as well as JIRA stories.

  • Creation of documentation on the dashboard and custom reports requirements.

  • Finalisation and sharing of the master data template.

  • Detailing a high-level and detailed programme plan with key milestones.

Solutions & Implementation

This phase involves ensuring solution readiness and acceptance by users. The output includes the following:

  • Customised solution as per requirement.

  • Customised solution demo and feedback received, if any.

  • Plans for user acceptance testing (UAT), including identification of participants, duration, and agenda.

  • Creating UAT deck, feedback collection forms, and test cases.

  • Getting feedback with change requests on the order of priority.

  • Sign off on the solution after testing.

Rollout & Support

This phase involves the setting up of the environment, device, and training of trainers as well as end-users. This phase also involves the go-live of the solution. The output includes the following:

  • Creation of training materials along with SOPs.

  • Readiness of the training environment.

  • Conducting master training of trainers, cascade training, as well as training of the helpdesk.

  • Readiness of the production environment.

  • Loading filled-out microplan into the platform.

  • Setting up campaign devices with appropriate settings.

  • L1, L2, and L3 support as needed for the campaign.

  • Creation of custom reports during the campaign and analysis of data for insights.

Post Campaign Support & Closure

  • Publishing a case study or whitepaper.

  • Signing off the document among players for the campaign.

Github account -

Kubectl installed in the system -

AWS account -

Install AWS CLI locally -

Postman -

Create an IAM User in your AWS account -

Generate ACCESS_KEY and SECRET_KEY for the IAM user -

Fork the following Repositories with all the branches into your organisation account on GitHub - .

Steps to edit the git repository in the browser -

Method a: Use an online website. (Note: This is not recommended for production setups, only for demo purposes):

Add the public_key to your GitHub account -

a.

b.

Import the data views file here. Data views contain the queries and charts needed to fetch data from the indexes. The file to be imported: .

If you need to create your own data views, follow this guide:.

Add your respective dashboard view URLs to common-masters module.

To add the link to the desired dashboard in the DIGIT application based on the roles of each employee, add the iframe URLs in to display each dashboard in your application. For example, to add the link to the national dashboard, the navigation URL should be:

Map the action IDs to the required role in .

To create a new dashboard or edit existing dashboards in Kibana, click .

To view a summary of data views and dashboards in HCM, click .

startDate and endDate in epoch format -

- This collection includes all the scripts to create users, Projects, staff and product variants

Import the HCM setup script in Postman -

Choose the new environment created in the environment tab

Once the Script is executed completely, update the following values from the postman environment variable to the project-types.json (health-campaign-mdms/blob/DEMO/data/mz/health/project-types.json) master data file -

Localisation scripts are ; During local execution, the script fails because of the rate limit exception, but it will execute as expected on the server.

signup
installation guide
signup
installation guide
installation guide
official document
AWS document
official documentation
Health-campaign-devops
Master data
configs
Git guide
https://8gwifi.org/sshfunctions.jsp
Git guide
ae210873da6ff4c03bde2ad22e18fe04-233d3411.ap-south-1.elb.amazonaws.com
Transformer service
Indexer service
Production Dashboard Data Views Export File
Creating Data Views in Kibana
uiCommonConstants.json
ACCESSCONTROL-ACTIONS-TEST
role-actions.json
here
here
health-demo devops
config
master data
epoch converter
HCM Setup Script
import guide
example link
here
Programme Setup & Kick-off
Solutions & Implementation
Rollout & Support
Post Campaign Support & Closure

Service Configuration

Here are the articles in this section:

Establish Project & Team

The team should include a:

  • Business analyst

  • Programme manager

  • Project manager

  • Developer

Installation

Installation steps for DIGIT HCM

DIGIT HCM Installation:

The DIGIT HCM installation comprises three steps to create a new production-ready server that can be scaled on demand. The installation process is currently supported only for AWS. However, support for other cloud platforms such as Azure and GCP will be available in the future.

Kibana Dashboard Setup:

The team should have the necessary to be able to set up and implement DIGIT HCM.

You can also if you have any questions.

Step 1: : Execute a GitHub action for the installation process.

Step 2: : Execute the minimum setup data required to run a campaign

Step 3: Generate the APK pointing to the server as mentioned above.

To create and configure health campaign dashboards in a different space within Kibana, click .

Individual Registry
Household Registry
Product Registry
Facility Registry
Stock & Inventory
Project Services
Referral Management
Complaints
User Management
Attendance
skills
contact us
Execute GitHub Action for installation
Execute the Postman Collection for Minimum Setup Data
Generating the APK for the Server:
here
These Questions are specific to our SMC Campaign in Mozambique and can be Customised based on the needs and processes set for a specific campaign.
These Questions are specific to our SMC Campaign in Mozambique and can be Customised based on the needs and processes set for a specific campaign.
The QR Code associated to the Beneficiary was scanned and then Submit was pressed.
Household Create
Household Bulk create
Household Update
Household bulk update
Household Search
Household Delete
Household Bulk Delete
Household Member - Create
Household Member Bulk Create
Household Member - Update
Household Member Bulk Update
Household Member - Search
Household Member - Delete
Household Member - Bulk Delete
Individual - Create
Individual - Bulk Create
Individual - Update
Individual - Bulk Update
Individual - Search
Individual - Delete
Individual - Bulk Delete
Product - Update
Product - Search
Product Variant - Create
Product Variant - Update
Product Variant - Search
Project - Create
Project - Update
Project - Search
Project Task - Create
Project Task - Update
Project Staff - Create
Project Staff - Update
Project Beneficiary - Create
Project Beneficiary - Update
Project Beneficiary - Search
Project Facility - Create
Project Facility - Update
Project Facility - Search
Project Resource - Create
Project Resource - Update
Project Resource - Search
Stock - Create
Stock - Update
Stock - Search
Product Variant - Create
Product Variant - Update
Product Variant - Search
Facility - Create
Facility - Update
Facility - Search
Side Effect Create
Side Effect Bulk Create
Side Effect Update
Side Effect Bulk Update
Side Effect Delete
Side Effect Bulk Delete
Referral Create
Referral Bulk Create
Referral Update
Referral Bulk Update
Referral Delete
Referral Bulk Delete
HFReferral Create
HFReferral Bulk Create
HFReferral Update
HFReferral Bulk Update
HFReferral Delete
HFReferral Bulk Delete
Attendance with Offline Enablement of Logs

Configuration

Here are the articles in this section:

Service Configuration
UI Configuration
Dashboard configuration
LogoSwagger Editor
LogoSwagger Editor
LogoDIGIT DPG - Open-source, governance platformDIGIT DPG | Digital Public Infrastructure
LogoSwagger Editor