# egovernments/health-campaign-services architecture

> Architecture diagram of the GitHub repository egovernments/health-campaign-services, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/egovernments/health-campaign-services
- Repository: https://github.com/egovernments/health-campaign-services

## Overview

Health Campaign Services is a suite of DIGIT microservices for configuring campaigns and operating beneficiary, workforce, facility, product, stock, and referral workflows. The broad workflow is campaign setup and planning, registration and field operations, then operational reporting and analytics. The README documents service capabilities but not most inter-service call paths; those relationships are shown as unverified dashed links. Source excerpts confirm selected Excel-ingestion, analytics, inbox, and individual-service behavior, not the full runtime wiring.

Main entry points: [`health-services/project/src/main/java/org/egov/project/service/ProjectService.java`](https://github.com/egovernments/health-campaign-services/blob/master/health-services/project/src/main/java/org/egov/project/service/ProjectService.java) (Project Service), [`health-services/individual/src/main/java/org/egov/individual/service/IndividualService.java`](https://github.com/egovernments/health-campaign-services/blob/master/health-services/individual/src/main/java/org/egov/individual/service/IndividualService.java) (Individual Registry), [`health-services/project-factory/src/server/controllers/campaignManage/campaignManage.controller.ts`](https://github.com/egovernments/health-campaign-services/blob/master/health-services/project-factory/src/server/controllers/campaignManage/campaignManage.controller.ts) (Campaign Manager), [`health-services/plan-service/src/main/java/digit/service/PlanFacilityService.java`](https://github.com/egovernments/health-campaign-services/blob/master/health-services/plan-service/src/main/java/digit/service/PlanFacilityService.java) (Microplanning)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_campaign["Campaign Setup"]
  node_projectfactory["Campaign Manager"]
  node_plan["Microplanning"]
  node_project["Project Service"]
end

subgraph group_registries["Health Registries"]
  node_individual["Individual Registry"]
  node_individualrepo[("Individual Persistence")]
  node_household["Household Registry"]
  node_facility["Facility Registry"]
  node_product["Product Registry"]
  node_worker["Worker Registry<br/>[WorkerService.java]"]
end

subgraph group_operations["Field Operations"]
  node_referral["Referral Management"]
  node_stock["Stock Operations"]
  node_notification["Health Notifications"]
  node_census["Census Workflows<br/>[CensusService.java]"]
  node_survey["Survey Services<br/>[SurveyService.java]"]
end

subgraph group_platform["Platform Services"]
  node_hrms["Staff Management"]
  node_inbox["Workflow Inbox"]
  node_requestinfo["Request Context<br/>[RequestInfo.java]"]
  node_idgen["Beneficiary ID Service"]
  node_common["Shared Health Library<br/>[CommonUtils.java]"]
  node_models["Shared Domain Models<br/>[Project.java]"]
end

subgraph group_insights["Ingestion And Analytics"]
  node_excelcontroller["Ingestion API"]
  node_excelprocessing["Excel Processing"]
  node_dashboard["Dashboard Analytics"]
  node_queryservice["Analytics Querying"]
  node_elastic[("Analytics Search")]
  node_airflow["Pipeline Trigger<br/>[main.py]"]
end

node_operator(("Campaign Operator"))

node_operator -.->|"sets up"| node_projectfactory
node_operator -.->|"plans campaign"| node_plan
node_projectfactory -.->|"configures projects"| node_project
node_plan -.->|"plans facilities"| node_facility
node_project -.->|"organizes beneficiaries"| node_individual
node_individual -.->|"persists records"| node_individualrepo
node_individual -->|"updates IDs"| node_idgen
node_household -.->|"groups members"| node_individual
node_worker -.->|"supports workforce"| node_hrms
node_product -.->|"tracks inventory"| node_stock
node_facility -.->|"locates stock"| node_stock
node_project -.->|"supports referrals"| node_referral
node_survey -.->|"collects field data"| node_project
node_excelcontroller -->|"processes sheets"| node_excelprocessing
node_dashboard -.->|"requests analytics"| node_queryservice
node_queryservice -.->|"queries aggregates"| node_elastic
node_airflow -.->|"triggers pipelines"| node_dashboard
node_inbox -->|"uses request context"| node_requestinfo
node_individual -.->|"uses shared utilities"| node_common
node_project -.->|"uses project model"| node_models

click node_projectfactory "https://github.com/egovernments/health-campaign-services/blob/master/health-services/project-factory/src/server/controllers/campaignManage/campaignManage.controller.ts"
click node_plan "https://github.com/egovernments/health-campaign-services/blob/master/health-services/plan-service/src/main/java/digit/service/PlanFacilityService.java"
click node_project "https://github.com/egovernments/health-campaign-services/blob/master/health-services/project/src/main/java/org/egov/project/service/ProjectService.java"
click node_individual "https://github.com/egovernments/health-campaign-services/blob/master/health-services/individual/src/main/java/org/egov/individual/service/IndividualService.java"
click node_individualrepo "https://github.com/egovernments/health-campaign-services/blob/master/health-services/individual/src/main/java/org/egov/individual/repository/IndividualRepository.java"
click node_household "https://github.com/egovernments/health-campaign-services/blob/master/health-services/household/src/main/java/org/egov/household/service/HouseholdService.java"
click node_facility "https://github.com/egovernments/health-campaign-services/blob/master/health-services/facility/src/main/java/org/egov/facility/service/FacilityService.java"
click node_product "https://github.com/egovernments/health-campaign-services/blob/master/health-services/product/src/main/java/org/egov/product/service/ProductService.java"
click node_worker "https://github.com/egovernments/health-campaign-services/blob/master/health-services/worker-registry/src/main/java/org/egov/workerregistry/service/WorkerService.java"
click node_referral "https://github.com/egovernments/health-campaign-services/blob/master/health-services/referralmanagement/src/main/java/org/egov/referralmanagement/service/DownsyncService.java"
click node_stock "https://github.com/egovernments/health-campaign-services/blob/master/health-services/stock/src/main/java/org/egov/stock/service/StockReconciliationService.java"
click node_notification "https://github.com/egovernments/health-campaign-services/blob/master/health-services/health-notification-service/src/main/java/org/egov/healthnotification/service/PostDistributionService.java"
click node_census "https://github.com/egovernments/health-campaign-services/blob/master/health-services/census-service/src/main/java/digit/service/CensusService.java"
click node_hrms "https://github.com/egovernments/health-campaign-services/blob/master/core-services/egov-hrms/src/main/java/org/egov/hrms/service/EmployeeService.java"
click node_survey "https://github.com/egovernments/health-campaign-services/blob/master/core-services/egov-survey-services/src/main/java/org/egov/egovsurveyservices/service/SurveyService.java"
click node_excelcontroller "https://github.com/egovernments/health-campaign-services/blob/master/health-services/excel-ingestion/src/main/java/org/egov/excelingestion/web/controller/IngestionController.java"
click node_excelprocessing "https://github.com/egovernments/health-campaign-services/blob/master/health-services/excel-ingestion/src/main/java/org/egov/excelingestion/service/ExcelProcessingService.java"
click node_dashboard "https://github.com/egovernments/health-campaign-services/blob/master/core-services/dashboard-analytics/src/main/java/com/tarento/analytics/controllers/DashboardController.java"
click node_queryservice "https://github.com/egovernments/health-campaign-services/blob/master/core-services/dashboard-analytics/src/main/java/com/tarento/analytics/service/impl/QueryServiceImpl.java"
click node_elastic "https://github.com/egovernments/health-campaign-services/blob/master/core-services/dashboard-analytics/src/main/java/com/tarento/analytics/dao/impl/ElasticSearchDaoImpl.java"
click node_inbox "https://github.com/egovernments/health-campaign-services/blob/master/core-services/inbox/src/main/java/org/egov/inbox/service/ElasticSearchService.java"
click node_requestinfo "https://github.com/egovernments/health-campaign-services/blob/master/core-services/inbox/src/main/java/org/egov/inbox/web/model/RequestInfo.java"
click node_idgen "https://github.com/egovernments/health-campaign-services/blob/master/core-services/beneficiary-idgen/src/main/java/org/egov/id/service/IdGenerationService.java"
click node_common "https://github.com/egovernments/health-campaign-services/blob/master/health-services/libraries/health-services-common/src/main/java/org/egov/common/utils/CommonUtils.java"
click node_models "https://github.com/egovernments/health-campaign-services/blob/master/health-services/libraries/health-services-models/src/main/java/org/egov/common/models/project/Project.java"
click node_airflow "https://github.com/egovernments/health-campaign-services/blob/master/utilities/airflow-trigger-service/api/main.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_projectfactory,node_plan,node_project toneBlue
class node_individual,node_individualrepo,node_household,node_facility,node_product,node_worker toneAmber
class node_referral,node_stock,node_notification,node_census,node_survey toneMint
class node_hrms,node_inbox,node_requestinfo,node_idgen,node_common,node_models toneRose
class node_excelcontroller,node_excelprocessing,node_dashboard,node_queryservice,node_elastic,node_airflow,node_operator toneIndigo
```

## Components

### Campaign Setup

- [Campaign Manager](https://github.com/egovernments/health-campaign-services/blob/master/health-services/project-factory/src/server/controllers/campaignManage/campaignManage.controller.ts): `health-services/project-factory/src/server/controllers/campaignManage/campaignManage.controller.ts`
- [Microplanning](https://github.com/egovernments/health-campaign-services/blob/master/health-services/plan-service/src/main/java/digit/service/PlanFacilityService.java): `health-services/plan-service/src/main/java/digit/service/PlanFacilityService.java`
- [Project Service](https://github.com/egovernments/health-campaign-services/blob/master/health-services/project/src/main/java/org/egov/project/service/ProjectService.java): `health-services/project/src/main/java/org/egov/project/service/ProjectService.java`

### Health Registries

- [Individual Registry](https://github.com/egovernments/health-campaign-services/blob/master/health-services/individual/src/main/java/org/egov/individual/service/IndividualService.java): `health-services/individual/src/main/java/org/egov/individual/service/IndividualService.java`
- [Individual Persistence](https://github.com/egovernments/health-campaign-services/blob/master/health-services/individual/src/main/java/org/egov/individual/repository/IndividualRepository.java): `health-services/individual/src/main/java/org/egov/individual/repository/IndividualRepository.java`
- [Household Registry](https://github.com/egovernments/health-campaign-services/blob/master/health-services/household/src/main/java/org/egov/household/service/HouseholdService.java): `health-services/household/src/main/java/org/egov/household/service/HouseholdService.java`
- [Facility Registry](https://github.com/egovernments/health-campaign-services/blob/master/health-services/facility/src/main/java/org/egov/facility/service/FacilityService.java): `health-services/facility/src/main/java/org/egov/facility/service/FacilityService.java`
- [Product Registry](https://github.com/egovernments/health-campaign-services/blob/master/health-services/product/src/main/java/org/egov/product/service/ProductService.java): `health-services/product/src/main/java/org/egov/product/service/ProductService.java`
- [Worker Registry](https://github.com/egovernments/health-campaign-services/blob/master/health-services/worker-registry/src/main/java/org/egov/workerregistry/service/WorkerService.java): `health-services/worker-registry/src/main/java/org/egov/workerregistry/service/WorkerService.java`

### Field Operations

- [Referral Management](https://github.com/egovernments/health-campaign-services/blob/master/health-services/referralmanagement/src/main/java/org/egov/referralmanagement/service/DownsyncService.java): `health-services/referralmanagement/src/main/java/org/egov/referralmanagement/service/DownsyncService.java`
- [Stock Operations](https://github.com/egovernments/health-campaign-services/blob/master/health-services/stock/src/main/java/org/egov/stock/service/StockReconciliationService.java): `health-services/stock/src/main/java/org/egov/stock/service/StockReconciliationService.java`
- [Health Notifications](https://github.com/egovernments/health-campaign-services/blob/master/health-services/health-notification-service/src/main/java/org/egov/healthnotification/service/PostDistributionService.java): `health-services/health-notification-service/src/main/java/org/egov/healthnotification/service/PostDistributionService.java`
- [Census Workflows](https://github.com/egovernments/health-campaign-services/blob/master/health-services/census-service/src/main/java/digit/service/CensusService.java): `health-services/census-service/src/main/java/digit/service/CensusService.java`
- [Survey Services](https://github.com/egovernments/health-campaign-services/blob/master/core-services/egov-survey-services/src/main/java/org/egov/egovsurveyservices/service/SurveyService.java): `core-services/egov-survey-services/src/main/java/org/egov/egovsurveyservices/service/SurveyService.java`

### Platform Services

- [Staff Management](https://github.com/egovernments/health-campaign-services/blob/master/core-services/egov-hrms/src/main/java/org/egov/hrms/service/EmployeeService.java): `core-services/egov-hrms/src/main/java/org/egov/hrms/service/EmployeeService.java`
- [Workflow Inbox](https://github.com/egovernments/health-campaign-services/blob/master/core-services/inbox/src/main/java/org/egov/inbox/service/ElasticSearchService.java): `core-services/inbox/src/main/java/org/egov/inbox/service/ElasticSearchService.java`
- [Request Context](https://github.com/egovernments/health-campaign-services/blob/master/core-services/inbox/src/main/java/org/egov/inbox/web/model/RequestInfo.java): `core-services/inbox/src/main/java/org/egov/inbox/web/model/RequestInfo.java`
- [Beneficiary ID Service](https://github.com/egovernments/health-campaign-services/blob/master/core-services/beneficiary-idgen/src/main/java/org/egov/id/service/IdGenerationService.java): `core-services/beneficiary-idgen/src/main/java/org/egov/id/service/IdGenerationService.java`
- [Shared Health Library](https://github.com/egovernments/health-campaign-services/blob/master/health-services/libraries/health-services-common/src/main/java/org/egov/common/utils/CommonUtils.java): `health-services/libraries/health-services-common/src/main/java/org/egov/common/utils/CommonUtils.java`
- [Shared Domain Models](https://github.com/egovernments/health-campaign-services/blob/master/health-services/libraries/health-services-models/src/main/java/org/egov/common/models/project/Project.java): `health-services/libraries/health-services-models/src/main/java/org/egov/common/models/project/Project.java`

### Ingestion And Analytics

- [Ingestion API](https://github.com/egovernments/health-campaign-services/blob/master/health-services/excel-ingestion/src/main/java/org/egov/excelingestion/web/controller/IngestionController.java): `health-services/excel-ingestion/src/main/java/org/egov/excelingestion/web/controller/IngestionController.java`
- [Excel Processing](https://github.com/egovernments/health-campaign-services/blob/master/health-services/excel-ingestion/src/main/java/org/egov/excelingestion/service/ExcelProcessingService.java): `health-services/excel-ingestion/src/main/java/org/egov/excelingestion/service/ExcelProcessingService.java`
- [Dashboard Analytics](https://github.com/egovernments/health-campaign-services/blob/master/core-services/dashboard-analytics/src/main/java/com/tarento/analytics/controllers/DashboardController.java): `core-services/dashboard-analytics/src/main/java/com/tarento/analytics/controllers/DashboardController.java`
- [Analytics Querying](https://github.com/egovernments/health-campaign-services/blob/master/core-services/dashboard-analytics/src/main/java/com/tarento/analytics/service/impl/QueryServiceImpl.java): `core-services/dashboard-analytics/src/main/java/com/tarento/analytics/service/impl/QueryServiceImpl.java`
- [Analytics Search](https://github.com/egovernments/health-campaign-services/blob/master/core-services/dashboard-analytics/src/main/java/com/tarento/analytics/dao/impl/ElasticSearchDaoImpl.java): `core-services/dashboard-analytics/src/main/java/com/tarento/analytics/dao/impl/ElasticSearchDaoImpl.java`
- [Pipeline Trigger](https://github.com/egovernments/health-campaign-services/blob/master/utilities/airflow-trigger-service/api/main.py): `utilities/airflow-trigger-service/api/main.py`

### Other components

- **Campaign Operator**

## Connections

- Campaign Operator → Campaign Manager: sets up (evidence: `README.md`)
- Campaign Operator → Microplanning: plans campaign (evidence: `README.md`)
- Campaign Manager → Project Service: configures projects (evidence: `README.md`)
- Microplanning → Facility Registry: plans facilities (evidence: `README.md`)
- Project Service → Individual Registry: organizes beneficiaries (evidence: `README.md`)
- Individual Registry → Individual Persistence: persists records (evidence: `README.md`)
- Individual Registry → Beneficiary ID Service: updates IDs (evidence: `health-services/individual/src/main/java/org/egov/individual/service/IndividualService.java`)
- Household Registry → Individual Registry: groups members (evidence: `README.md`)
- Worker Registry → Staff Management: supports workforce (evidence: `README.md`)
- Product Registry → Stock Operations: tracks inventory (evidence: `README.md`)
- Facility Registry → Stock Operations: locates stock (evidence: `README.md`)
- Project Service → Referral Management: supports referrals (evidence: `README.md`)
- Survey Services → Project Service: collects field data (evidence: `README.md`)
- Ingestion API → Excel Processing: processes sheets (evidence: `health-services/excel-ingestion/src/main/java/org/egov/excelingestion/web/controller/IngestionController.java`)
- Dashboard Analytics → Analytics Querying: requests analytics
- Analytics Querying → Analytics Search: queries aggregates
- Pipeline Trigger → Dashboard Analytics: triggers pipelines
- Workflow Inbox → Request Context: uses request context (evidence: `core-services/inbox/src/main/java/org/egov/inbox/service/ElasticSearchService.java`)
- Individual Registry → Shared Health Library: uses shared utilities (evidence: `health-services/individual/src/main/java/org/egov/individual/service/IndividualService.java`)
- Project Service → Shared Domain Models: uses project model
