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

v1.0

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Introducing DIGIT Health Platform

Mission

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

Overview

The DIGIT Health platform is being built as an open source Digital Public Good to expand capabilities in public health. It is being designed to work across countries at varying levels of capacity and complexity.

The focus is to help countries reduce “diseases of poverty.” The World Health Organisation (WHO) estimates that such diseases “account for 45% of the disease burden in the poorest countries” and stem from poor nutrition and sanitation, absence of health education, and indoor air pollution. We want to help countries reduce this by building digital tools on top of eGov’s open-source platform - the Digital Infrastructure for Governance, Impact & Transformation (DIGIT) - to enable and manage health campaigns, and disease surveillance.

As platform adoption increases over time, it will continue to generate more real-time and authoritative data in the public health space, besides ingesting data from other sources. The platform will become a “shared source of truth” that all stakeholders can use to align resources and decisions to achieve operational and financial efficiency. The platform will therefore progressively and greatly improve the ability of low-and-middle-income countries (LMICs) to better manage the delivery of public health priorities.

Need for DIGIT Health Platform

Public health challenges are massive and complex. While many countries have limited capacity and resources to address such issues, the current approach to these challenges tends to strictly focus on delivering one specific outcome, driven by specific nodal agencies. Each programme ends up replicating the same set of efforts and outputs. For example, health campaigns are typically categorised as per the diseases they aim to address - malaria, polio, etc. Each programme involves a similar set of activities: planning, delivery and logistics, human resource management, monitoring and reporting. They suffer from low effectiveness due to the siloed and uncoordinated way in which they are funded, planned, executed, and monitored.

Current digital efforts do not take a “whole of system view” and do not solve the cost of coordination and duplication issues. Each program also develops its own systems (MIS, apps, dashboards). Such siloed, solution-centric approaches and tools create a new set of problems and inefficiencies for countries:

  • Higher costs and time: This is incurred on creating or procuring and maintaining these systems, including the onboarding cost of the same actors in each program.

  • Data exists in multiple systems: They are not interoperable, leading to duplication, inconsistencies, poor adoption by on-ground workers, and sub-optimal decision-making.

  • Limited reusability and innovation: Data and capabilities are intertwined and ‘locked,’ making it extremely hard for the wider ecosystem to innovate and build upon.

  • Sub-scale: The tools are not able to scale for the national population and across programs.

The DIGIT health platform reimagines the public health space as a set of horizontal building blocks, such as shared registries, and services, accessible through well-defined open APIs, which can be leveraged by multiple countries and disease programs. It will eliminate the above inefficiencies. Further, it will facilitate the independent evolution of each building block and participation by the health ecosystem, leading to faster innovation.

Platform scope

The DIGIT Health Platform is being designed to enable delivery at scale, across various aspects of public health, and multiple country contexts. Using the platform approach, we will create an end-to-end flexible, open, configurable, and reusable platform to plan, manage and run any public health program such as health campaigns so there is detailed and timely monitoring and evaluation to review coverage, target achievement and identification of gaps for their distribution.

Benefits

  • Re-usable: Shared data registries and infrastructure

  • Interoperable: Open API specifications

  • Secure and scalable

  • Multi-country support: Support for infrastructure isolation, as well as data isolation

  • Multi-lingual: Support for multiple languages

Objectives

DIGIT Health platform will:

  • allow ecosystem actors to use, contribute and evolve the platform collaboratively and sustainably,

  • give the option to ecosystems to either host it on their own infrastructure or use it from a hosted environment (hosted by a trusted party) for which a sustainable costing and financial model will be evolved.

Approach

The common services and shared data registries can be reused to assemble products that provide a unified and consistent experience for each set of actors. The program-specific context such as roles, workflows, and notifications can be configured by the respective programs, enabling faster rollout and execution.

The APIs will allow data and functionality to be reused across multiple departments, effectively breaking silos across programs. Through APIs, meaningful data and services can also be made available to the various ecosystem stakeholders for innovation and interoperate with other systems like MOSIP, DHIS2, Sunbird RC, DIVOC, etc. that are focused on other parts of the public health delivery value chain, such as disease surveillance, supply chain, verifiable certificates, and health insurance.

Products

Programme

Useful links

Contact Us

The platform is designed to facilitate stakeholders with a digital system to manage and implement health campaign activities in Mozambique. Click to know more.

Frontline Worker's App
HCM Dashboard
here
Functional Specifications
Platform
Roadmap

Release Notes

Release Summary

HCM 1.0 is a base version release that has functional and non-functional requirements:

  • Functional: Built new registries: Individual, Household, Facility and Product. The release also has services: Project and Stock

  • Non-functional: The services support bulk and non-bulk APIs which can be used in online and offline modes for the HCM app.

Features

Feature
Description

Registries & services

  • Individual, household, facility and product registries, as well as product, and stock services through standard specifications like OpenAPI 3.0. They have been integrated with the DIGIT platform.

HCM app

  • The health campaign Android mobile app built on Flutter.

Infra/ops simplification & enablement

  • HCM, DIGIT service monitoring.

  • All Java-based services with SpringBoot version 2.2.6 for better security, performance, and metrics.

  • Helm templates to ease deployment on Kubernetes.

Document Resources and Links

UI technical documents

Backend service documents

Infra/deployment documents

Language Selection
Individual Registry
Helm Templates
Login
Household Registry
Forgot Password
Product Registry
Project Selection
Facility Registry
Beneficiary Registration
Stock & Inventory
Delivery Intervention
Project Services
Stock Management
Checklist

Platform

The articles in this section includes:

Master Data Management Service (MDMS)

Click to learn more about the Master Data Management Service, and configure it.

Release Notes
Platform Features
Architecture
High Level Design
Low Level Design
Installation
Configuration
Development Guide
here

High Level Design

The articles in this section include:

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 a variety of 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 smart 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 big 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

DIGIT Health follows a multi-layer or n-tiered distributed architecture pattern. As seen in the illustration above, there are different horizontal layers with some set of components such as Services, Registries and DIGIT Core Services. Every layer consists of a set of micro-services. Each layer of the layered architecture pattern has a specific role and responsibility within the application. The following are the advantages:

  • Layered architecture increases flexibility, maintainability, and scalability.

  • Multiple applications can reuse the components.

  • Parallelism.

  • Different components of the application can be independently deployed, maintained, and updated, on different time schedules.

  • Layered architecture also makes it possible to configure different levels of security to different components.

  • Layered architecture also helps users test the components independent of each other.

Note: Check the for more details.

Health Campaign System High Level Design
Design Decision Log
master promotion guide

Release Checklist

Checklist
Yes/No/Partially
Reference Link/ETA
Owner
Reviewer
Remarks

The development is complete for all the features that are part of the release.

Yes

Kalyan

Code merged to master branch on May 12th.

Test cases are documented by the QA team, reviewed by product owners, and test results are updated in the test cases sheet.

Yes

Guruprasad

Mrunal

Signed-off by Roshan/ Mrunal.

The incremental demo of the features showcased during the sprint showcase and feedback is incorporated. If possible, list out the JIRA tickets for feedback.

Yes

PGR - April 26th. HRMS & Mobile Offline Reports - May 11th.

UI/UX audit review is completed along with feedback incorporation for any changes in UI/UX.

Yes

Sai Neelakantan Bhanu

Andrew

PGR, Dashboard HRMS - UX audit complete and high priority issues fixed.

Incremental demos to the product owners are completed as part of the sprint, and feedback is incorporated.

Yes

Guruprasad

Mrunal

PGR - April 26th. HRMS & Mobile Offline Reports - May 11th.

QA sign-off is completed by the QA team and communicated to product owners. All the tickets’ QA sign-off status is updated in JIRA.

Yes

Guruprasad

PGR - Provided on April 28th. Dashboard v1.1 - Provided on May 2nd. HRMS and Mobile Offline reports - Provided on May 10th.

UI, and API technical documents are updated for the release along with the configuration documents.

Yes

Kavi

Ghanshyam

UAT promotion and regression testing from the QA team is completed. QA team has shared the UAT regression test cases with the product owners.

Yes

Guruprasad

PGR - Provided on April 28th. Dashboard v1.1 - Provided on May 2nd. HRMS and Mobile Offline reports - Provided on May 10th.

API automation scripts are updated for new APIs or changes to any existing APIs for the release. API automation regression is completed on UAT; the automation test results are analysed and the necessary actions are taken to fix the failure cases. Publish the list of failure use cases with a reason for failure and the resolution taken to fix these failures for the release.

Yes

Done for FLW App.

The API backward compatibility testing is completed.

Not applicable

Reason: This is the first version of product.

The communication is shared with product owners for the completion of UAT promotion and regression by the QA team. The product owners have to give a product sign-off within one week of this communication.

Yes

Frontline Worker's App - On March 23rd.

Complaints - On April 28th. Dashboard v1.1 - On May 2nd. HRMS and Mobile Offline reports - On May 10th.

Kalyan

The UAT product sign-off communication is received from product owners along with the release notes and user guides (if applicable).

Yes

Frontline Worker's App - On March 23rd.

User Management - On April 28th. Dashboard - On May 2nd. HRMS and Mobile Offline reports - On May 10th.

Mrunal

Kalyan

The GIT tags and releases are created for the code changes for the release.

Yes

Roopesh/ Kavi

Need to be created for the flutter component.

Verify whether the release notes are updated.

Yes

Roopesh/ Kavi

Kalyan

Tech release notes are updated.

Verify whether all the UAT builds are updated along with the GIT tag details.

Yes

Roopesh/ Kavi

Verify whether all MDMS, configurations, infra-ops configurations are updated.

Yes

Roopesh/ Kavi

All configurations are part of the master promotion document.

Yes

Mihika

Signed-off.

Verify whether all test cases are up-to-date and updated along with the necessary permissions to view the test cases sheet. The test cases sheet is verified by the test lead.

Yes

Guruprasad

Signed-off.

Verify whether the UAT credentials' sheet is updated with the details of new users and roles, if any.

Yes

This should not go into Gitbook as this is internal to eGov

Guruprasad

Signed-off.

Verify whether all the localisation data was added in UAT, and updated in the release kits.

Yes

Roopesh

This should be part of the release kit. This will be shared internally with the team.

Verify whether the product release notes and user guides are updated and published.

Yes

Mrunal

Jojo

Signed-off.

The demo of the released features is done by the product team as part of a sprint/release showcase.

Yes

Mrunal

Done.

Technical and product workshops/demos are conducted by the engineering and product teams respectively to the implementation team (implementation handover).

Yes

Kalyan

Prasanna

Architect sign-off and technical quality report.

Yes

Roopesh

Signed-off.

Product roadmap and success metrics

Yes

Mrunal

Published.

Adoption metrics

Yes

Ankit

Pradipta

Ankit has shared the draft for this. However, final discussion is pending with NMCP.

Programme roll-out plan

Yes

Ankit

Pradipta

Implementation checklist

Yes

Aparna

Elzan

Implementation roll-out plan

Yes

Aparna

Elzan

Gate 2

Ankit

ExCos

Scheduled on June 9th.

The internal release communication along with all the release artefacts are shared by the engineering/product teams.

Mrunal

To be shared post Gate 2.

Plan for upgrading the staging/demo instance with the release product within 2-4 weeks based on a period where no demos are planned from staging for the previous version of the released product.

Not applicable currently.

The release communication to partners is shared by the GTM team, and a webinar is arranged by the GTM team after the release communication, within 2-4 weeks of the release.

Not applicable currently.

This is not the final release. Hence, external communication is not required.

Platform Features

The detailed mapping of DIGIT’s capabilities with the core requirements mentioned in the NUIS digital blueprint has been done below:

Interoperability

Data specifications/models are available for domain entities. DIGIT is designed as an API-first platform wherein data specs/models are created for all key entities, thus ensuring interoperability through open APIs and open standards. Taxonomies are available for the key domain entities/registries. These can later be harmonised with standard taxonomies in the domain as and when they are made available. DIGIT data models and APIs are published as open APIs freely available to everyone in the ecosystem. Currently, DIGIT provides at least 3 key distinct APIs for all domain entities: create, update and search. Deactivation/cancellation of key entities in DIGIT is achieved through updating their status to inactive as per their defined specification/API contracts. Given the API-first and micro-services-driven nature of DIGIT, current APIs and models can be quickly harmonised with national standards as and when they are made available. DIGIT strives to leverage established domain standards (national/international), wherever available.

Data Privacy And Security By Design

Data Privacy

Data privacy capabilities are available to mark and protect sensitive data. The core service layer of DIGIT includes signing and encryption service as one of the core services that provide capabilities to sign/encrypt/mask sensitive data. It is designed such that it can work against software key stores and can be extended to integrate with any kind of hardware key store to store and protect signing and encryption keys. Encryption requirements can be defined and adhered to for the storage of sensitive data. DIGIT requires the user PII data to be stored in its user service, which is, by default, enabled for encryption of sensitive data as User Data Vault. All other services in DIGIT are required to access PII data by explicitly calling the user service, which, in turn, audits all access to PII. In addition, individual services in DIGIT can leverage DIGIT’s signing and encryption service (this is what the user service leverages to create User Data Vault) to further protect additional sensitive data available with the services. DIGIT provides the capability to define workflows for data modification that can be configured to have approval steps to get the needed consent for any data modification activities. DIGIT currently provides RBAC (Role-Based Access Control)-based access control for access (search) to data.

Security

Appropriate access controls can be defined in the APIs to ensure authorised access to sensitive data. DIGIT is designed to handle authentication and authorisation as perimeter control at its API gateway layer to ensure that unauthorised calls are not allowed to even contact the respective micro-services. DIGIT provides an RBAC mechanism where users are explicitly provided access to relevant resources by assigning them appropriate roles. By default, DIGIT supports OAUTH-based authentication for individual users and APIs. However, the authentication and authorisation filter in DIGIT is designed to be easily extendable to support any further authorisation and authentication needs. The perimeter security mechanism in DIGIT also helps developers in focusing on the functional developments for further services and offloading the access control requirements for new resources and their APIs to the API gateway using simple configurations. DIGIT also ensures that risks like the following are taken care of:

  • Privilege escalation – form field manipulation

  • Failure to restrict URL access

  • Insecure direct object references (IDOR)

  • Malicious file upload leads to cross-site scripting

  • Improper authentication

  • Missing account lockout

  • Request throttling attack

  • Weak encoding mechanism

  • Sensitive information in URL

  • Lack of automatic session expiration

  • Insecure banner implementation

  • Concurrent session

  • Clickjacking

  • Improper error handling

Transparency And Accountability Through Data

DIGIT has the capability to define key registries in OpenAPI 3.0 specs formats. It can easily achieve key APIs like create/update/search using its building blocks in core services, mainly through configurations and using lightweight extensions on a needs basis. DIGIT has the capability to protect person-specific sensitive data by encrypting them in the user data vault (user registry), which allows configuration-based protection of sensitive PII. DIGIT requires additional registries to reference PII using this mechanism. In addition, registries in DIGIT can leverage its data protection (signing and encryption) core service to provide additional protection to registry-specific attributes. The registry data in DIGIT can be signed for tamper-proofing, using its signing and encryption core service. A proof-of-concept for this has already been done on the ePass module that was built on the DIGT platform. All key data modifications in DIGIT are access logged to provide an audit trail, which can be accessed through APIs. The upcoming version of DIGIT is planning to bring in the concept of immutable event logs to further strengthen this capability. DIGIT leverages open-source telemetry to provide the ability to gather telemetry data and extends it for the DIGIT-specific processing pipeline. This framework allows for additional event definitions and contextual extension of the telemetry processing pipeline thereby future-proofing this capability in DIGIT.

Reusability and Extensibility

The DIGIT platform is designed as a collection of more than 50-plus atomic micro-services which are bundled together in a given context to provide end solutions. The micro-services in DIGIT can be divided into three main categories: data services (registries, reference master data management, etc.), tech infrastructure services (authentication, authorisation, notification engine, etc.) and domain services (assessment, NOC, etc.). Citizen, employee and administrative interfaces in DIGIT use these micro-services to achieve the needed functionality. Data models and APIs in DIGIT are defined as OpenAPI 3.0 specifications and can be extended by using a combination of configuration and extension techniques. For example, if the additional attributes are only needed to be stored with format validation, it can be a simple schema extension, while if the additional business checks/functionality need to be implemented using the extended attributes, then it can be achieved using pre/post request filters or extending underlying micro-services. DIGIT allows the extension of existing capabilities without needing architectural interventions. As described above, the extension of existing functionality on DIGIT can be achieved using additional configurations, additional extension services, or request/response filters. Several partners have extended DIGIT modules to cater to new use cases. For instance, DIGIT mCollect module caters to the collection of fees for over 50 services on the counter, but it does not have a citizen interface for the payment of these services online. The Directorate General Defence Estates (DGDE) wanted to introduce this interface for the citizen’s of cantonment boards in India, and were able to easily enhance the mCollect module to include this capability. DIGIT supports single-instance multi-tenancy to enable sharing of the underlying infrastructure. All DIGIT data models and services are designed to be multi-tenanted. DIGIT uses an API-first approach in its design and development to ensure loose coupling between its various components. These APIs are clearly defined using OpenAPI 3.0 specifications to ensure clear documentation.

Evolvability and Scale

A new functionality can be added by rebundling existing building blocks in the context of new use cases and implementing only additionally-required services without requiring any architectural overhaul. Additionally, due to its loosely coupled API-driven design, DIGIT allows for new components to be implemented in the technology that is most useful for that use case. The API-driven, micro-services-based architecture of DIGIT enables its components to evolve separately. On DIGIT, individual components can evolve separately to enable the heterogeneous evolution of the system. DIGIT uses SemVer 2.0 for the versioning of its micro-services and interfaces. Semantic versioning is a formal convention for specifying compatibility using a three-part version number: major version; minor version; and patch. More details on this can be found on this link: https://semver.org/. DIGIT is designed to be horizontally scalable. The microservices-based architecture of DIGIT also enables it to scale only needed components/services, thereby providing resource efficiency. For example, the billing and collection services can be scaled separately during a financial year closing if the load pattern indicates increasing volume of bill payments during that period. DIGIT is designed to be hardwarec agnostic and can be run on any hardware. It has been tested on multiple commercial clouds and state-sponsored bare metal infrastructure. Components of DIGIT that need to use underlying hardware have been carefully chosen (in case where DIGIT is using other open source components) or designed (DIGIT’s own components) to provide a layer of abstraction that can be extended for any types of hardware.

Multi-channel Access

DIGIT is designed using an API-first approach, therefore enabling any user interface channel to leverage it. DIGIT’s own user interfaces (web/mobile app, WhatsApp, Chatbot) are implemented using its APIs to ensure that the offered platform capabilities and data are accessible to any delivery channel based on configured policies. DIGIT’s access control mechanism can be configured to provide different levels of access based on channels and roles.

Ecosystem-driven

The DIGIT platform and its user interfaces are completely open source. All external components used in DIGIT are also open source. Due to its API-based and event-driven architecture, DIGIT can be integrated with any existing stack. Wherever appropriate, DIGIT also provides out-of-the-box integrations with crucial stacks/platforms. The most common integrations are to payment gateways, SMS providers and SMTP email servers for a typical implementation. More than 14 organisations have already partnered with us to implement DIGIT across multiple implementations in India, and have built over 20 new solutions on top of the platform. DIGIT also provides the capability to gather feedback from the ecosystem in a digital manner. The feedback capability in DIGIT can be looked at the following levels:

  • Service delivery feedback on services offered through DIGIT: DIGIT provides a highly configurable and extensible public grievance module to enable this kind of feedback/redressal for functional users (such as citizens, and employees).

  • Service usage feedback: The DIGIT user interfaces include a telemetry SDK which is backed by telemetry infrastructure in DIGIT platform. Coupled with API access logs, this enables DIGIT to gather usage feedback through live action and can be used for fine tuning interfaces and APIs

  • Design/Feature feedback - As an open source project on Github, DIGIT provides a mechanism to provide comments/feedback on its various components using github. This feedback can be leveraged to create a Point of View on the future roadmap for the platform.

Verify whether all docs will be published to by the Technical Writer as part of the release.

DIGIT is an open-source platform licensed under the MIT license () compliant with the NUIS digital blueprint.

Interoperability

  1. DIGIT is designed as an API-first platform and with open APIs and open standard interoperability is maintained.

  2. Along with this, taxonomies are available for the key domain entities/registries on DIGIT.

Data privacy and security by design

  1. Data privacy and security design are a critical part of the design of DIGIT.

  2. Core service layer of DIGIT includes a signing and encryption service that provides capabilities to sign/encrypt/mask sensitive data.

  3. Appropriate access controls can be defined in the APIs to ensure authorised access to sensitive data.

Transparency and accountability through data

DIGIT has

  1. The capability to define registries, preferably through standard specifications like OpenAPI 3.0.

  2. The capability to configure registry attributes for security and protection as per the configuration.

  3. Mechanisms to verify data and its provenance through audit logs (access and change logs), preferably through APIs.

Reusability and Extensibility

  1. The DIGIT platform is designed as a collection of over 55-plus atomic micro-services which are bundled together in a given context to provide an end solution.

  2. DIGIT allows the extension of existing capabilities without needing architectural interventions.

  3. Components are designed to be independently reusable without any tight coupling.

Evolvability and Scale

On DIGIT:

  1. Capabilities can be added without needing an overall system re-architecture.

  2. Individual components can evolve separately to enable the heterogeneous evolution of the system.

  3. Scaling can be done horizontally to handle changes in request volumes.

  4. Individual components can be scaled independent of each other to enable efficient resource utilisation.

Multi-channel access

  1. DIGIT allows multiple channels of solution delivery: ULB counters, web portals, mobile app, WhatsApp Chatbot and third party applications like Paytm, tablets, etc.

  2. DIGIT’s access control mechanism can be configured to provide different levels of access based on channels and roles.

Ecosystem-driven

  1. DIGIT leverages open source technologies to reduce the cost of solutions.

  2. Leverages or integrates with, or extends existing platforms/stacks such as IndiaStack, IUDX, ICTRA infrastructure, etc.

  3. Provides the capability to gather feedback from the ecosystem in a digital manner.

Implementation checklist
Frontline Worker's App
Campaign Management Dashboard
Complaints and User Management
UI/UX Audit
Frontline Worker's App
Complaints
User Management
Dashboard
User Interface Design
Complaints
User Management
Frontline Worker's App
Complaints
User Management
Dashboard
API Automation Script
https://github.com/egovernments/health-campaign-services/releases/tag/v1.1.0
https://github.com/egovernments/health-campaign-config/releases/tag/v1.1.0
https://github.com/egovernments/health-campaign-mdms/releases/tag/v1.1.0
Release Notes
Configurations
http://health.digit.org
https://health.digit.org/
Test cases
HCM master promotion guide
Product release notes
Frontline Worker's App
Complaints impel handover (Day 1)
Complaints impel handover (Day 2)
User Management, Mobile Offline Reports impel and product handover
Product roadmap
Adoption metrics
Programme roll-out plan
https://opensource.org/licenses/MIT

Design Decision Log

Sync

  1. Server should be responsible to handle or offer a mechanism to handle errors once data reaches it. (Error handling mechanism being designed by Platform).

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

  3. Sync down of data is not required to supported (good to have) for first roll out.

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

    2. Any subsequent operations (like update, delete) will be on server gen id, so client has to get server gen id by searching using client generated id. Client will call search API with clientReferenceId and will get 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 default limit

  2. Service details and endpoints

Frontend

  1. Service details and endpoints

  2. Number of entities sent to 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 in order for the data captured against such configuration to continue being usable.

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

  7. Timeout for API calls

Access Control

  1. Access to data will be defined by the linkages of staff to project and the corresponding boundary while respecting role-action mappings instead of the tenant based approach.

Data

  1. All deletes are soft deletes

  2. 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. 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 span of time, 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 cache or database.

  6. For v1, we can maintain 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 last caller's updates going through.

  7. In order to maintain 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 uniqueness of registry entities.

Registries

Here are the articles in this section:

Roadmap

Please find the Product Capability Roadmap below:

Roadmap Ahead

Versions
V1 (for LLIN & IRS campaign)
V2 (MDA campaigns)
V3
Later

Timelines

Q2 2023 (w/c May15, 2023): Field testing

TBD: Tentative - 2023-end.

Tentative Q1 24

Value bundle

Value delivered

Feature list

Feature list

Feature list

Feature list

Campaign setup

Enable system administrators and program managers to set up the platform quickly, easily configure roles and role-based permissions, update master data, and manage users.

1. Campaign manager: Create and update campaigns (single round campaigns). 2. User management with UI. 3. Out-of-the-box standard dashboards.

1. Campaign manager with support for multi-round campaigns. 2. Forms engine.

1. Campaign manager with UI. 2. UI for setting up custom dashboards. 3. Forms designer with UI.

1. Mobile Device Management

Service delivery

Mobile app with a user-friendly design and easy, intuitive navigation. This will guide the field teams to easily register eligible beneficiaries, and deliver the healthcare intervention with built-in checks that enforce data collection protocols and validations to avoid data entry errors.

1. Register new households and individuals. 2. Search registered beneficiaries from the list. 3. Update service delivery information against a beneficiary. 4. Decision support for the resource delivery of LLIN's. 5. Creation of household and individual registries. 6. Re-use beneficiary data from the registries.

1. Proximity-based search using GIS map on the mobile app. 2. Routing assistance to locate beneficiaries. 3. Support voucher generation and scanning for tracking service delivery. 4. Last-mile delivery tracking: Record stock received from the warehouse for delivery. 5. Adverse events reporting. 6. Enhance decision support logic for MDA campaigns.

1. Beneficiary eligibility checker. 2. Generation of due lists for multi-round campaigns. 3. In-app alerts and reminders to improve medication adherence.

Inventory management

Mobile app that enables the warehouse manager to capture the inflow and outflow of resources from the warehouse and monitor delivery data against consumption data to identify potential stock outs, wastage, fraud, as well as take corrective action.

1. Record stock receipts and issues. 2. Stock reconciliation to view the balance stock on hand.

Consumables management

Dashboards and reports

Enable program managers, supervisors and frontline workers to view key performance indicators for assessing campaign efficiency and effectiveness before, during, and after the campaign via near real-time dashboards and preemptive alerts for course corrections.

1. Offline mobile reports to view task completion and campaign coverage. 2. Offline mobile reports to asses the performance of frontline teams. 3. Out-of-the-box online web dashboard to view campaign coverage and efficiency indicators. 4. Export tabular reports from web dashboards.

1. Automate preemptive email/SMS notifications. 2. Automate report generation.

Configure rule-based alerts on dashboards with enhanced predictive analytics.

1. Online GIS-enabled web dashboards for real-time monitoring 2. Dashboard with basic rule-based prescriptive analytical support.

Training

Enable program managers and supervisors to track training progress, evaluate training attendees and provide on-demand refreshers to attendees. Ensure that the campaign staff is equipped and trained to perform their duties efficiently.

1. Capture PII, bank details and performance data of hired campaign staff for longitudinal tracking. 2. Creation of the staff registry.

1. UI to find and hire campaign staff from the staff registry to enable better skill-requirement match. 2. On-demand access to job-aids.

1. Training refreshers. 2. Pre and post evaluation of the training. 3. Track the status of the training sessions.

Payments

Enable program managers to decrease the time to pay frontline workers while increasing financial accountability and reducing fraud.

1. Manage attendance for the campaign staff. 2. View payment due for services delivered.

1. Automate invoice generation for incentive payments. 2. Automate payment to campaign staff 3. Track status of payment processing. 4. Send notification on payment completion.

SBCC/demand generation

Enable program managers, frontline workers and citizens to easily access and recieve SBCC messages digitally to improve disease awareness and decrease refusals.

1. On-demand access to IEC material within the mobile app.

1. Broadcast SMS for one-way messaging to beneficiaries. 2. Post service delivery surveys.

Grievances and complaints

Enable program managers and supervisors to ensure speedy and efficient resolution of complaints while providing them with an intuitive system that helps to initiate corrective actions in a timely manner.

1. Log grievances/complaints. 2. Manage complaints: View and resolve complaints. 3. Dashboards for viewing complaints and grievances.

1. Assign complaints to the appropriate actor for resolution. 2. Track the status of complaints. 3. Notification on complaint resolution.

1. Automatic prioritization of complaints from the list. 2. Auto-routing and escalation of complaints.

Planning

Enable program managers to improve the efficiency and effectiveness of the planning process by leveraging GIS systems and data from other sources to create planning templates that make it easy to generate, validate and share micro-plans.

Micro-planning: Template for capturing targets from the micro-plans.

Workflow management.

1. Macro-planning: Estimating population numbers and resource requirements. 2. Micro-planning: Input based template to generate micro-plans. 3. Micro-planning: Workflow to share micro-plans for reviews and approvals. 4. Micro-planning: Track the status of the micro-planning activity.

GIS-enabled micro-planning using digital maps.

Supervision

Enable supervisors to to track the campaign staff's adherence to campaign SOP's and protocols and record inspection details.

Submit supervision checklists.

In-app notifications to the field teams.

WhatsApp integration to enable a two-way communication.

Offline capability

Enable frontline teams to collect data in low and no internet areas.

1. Data collection in low/no internet areas. 2. Enable location services while offline to track GPS coordinates.

Peer-to-peer sync.

User experience delighters

Enable all frontline workers to do their best work by providing a feature set in the mobile application that enables the app to act as a co-pilot to help the user perform their tasks while improving technology adoption.

1. In-app walkthrough of the application. 2. Progress bar to monitor the work status. 3. Multi-language support. 4. Call help desk: SOS button.

Interoperability and integration

Enable the adoption of the HCM platform by allowing a hassle-free integration of the capabilities with widely-used applications.

Integration with DHIS2.

1. Interoperability with FHIR for data exchange. 2. Supply chain management: Integration with OpenLMIS. 3. Integration with other visualization tools like PowerBI, and Tableau. 4. Integration with Reveal.

Citizen's portal

Registration 1. Self-Registration for campaigns. 2. Appointment scheduling and booking.

Demand generation: 1. Post-service delivery surveys. 2. Help desk service for citizens.

Service delivery: 1. Download the certificates after receiving the health intervention. 2. Self-reporting of adverse events.

Grievances and complaints: 1. Log grievances/complaints regarding service delivery. 2. Feedback post issue resolution. 3. Track the status of complaints.

Product

API Spec

Sequence Diagrams

Facility

API Spec

Sequence Diagrams

Low Level Design

The articles in this section include:

Project

API Spec

Sequence Diagrams

Individual

API Spec

Sequence Diagrams

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