Health Campaign System High Level Design
Health Campaign - High Level Design
The high level design is divided into:
Master data
Registries/entities
Reusable DIGIT services
Form engine support
Multi-tenancy
Android offline first app
Web app - Campaign planning + dashboard
External integration - DHIS2
Base Health Campaign on DIGIT Core 2.8.
Master Data
Master data categorised on the complexity required to maintain them from the technical perspective.
Simple Masters
Roles
Additional field schemas for different entities
Project task configurations
Project type
Role-actions
Actions
Hierarchical Masters
Administrative boundary and hierarchy
Inter-Linking Masters
Field app config
Service registry
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.
Last updated