The immunizations widget provides a visual, intuitive system for clinicians to record immunizations, track vaccination schedules, and monitor a patient’s vaccination status.
This module is a patient chart widget that can be added to any patient chart dashboard. It provides two main views:
Immunization Summary: A detailed, collapsible table that groups immunizations by vaccine type. It provides an overview of the patient’s vaccination history with expandable rows for more detail. From this view, users can add new immunizations or edit/delete existing doses, which launches the immunization workspace form.
Immunization History: A separate card that provides a simple, chronological list of all immunizations the patient has received. This card, in conjunction with the summary view, helps clinicians track whether a patient’s next scheduled dose is upcoming or overdue.
Next Dose Date field helps clinicians plan future appointments and prevents scheduling errors (e.g., setting a next dose date before the current vaccination date).This module registers several extensions that create the complete immunization feature. Here is a breakdown of the key widgets and how they are used:
Immunizations Dashboard Link (immunization-summary-dashboard): Adds the “Immunizations” link to the patient chart’s side navigation menu and automatically creates a dedicated dashboard page for immunization widgets.
Immunization Summary Table (immunization-details-widget): The main collapsible table that groups immunizations by vaccine type. Automatically placed on the Immunizations Dashboard.
Immunization History Card (immunization-detailed-history-card): A chronological list of all immunizations. Automatically placed on the Immunizations Dashboard.
Immunization Overview Widget (immunization-overview-widget): This is a small, summary card intended for placement on other dashboards, like the main patient summary. It is not assigned to a dashboard slot by default.
To add the overview widget to the patient summary dashboard, add the following to your extensions.json configuration:
{
"name": "immunization-overview-widget",
"slot": "patient-chart-summary-dashboard-slot",
"order": 8
}
Configure the widget by setting values in your implementation’s configuration file (typically config.json or via the System Administration module). The following parameters are available:
| Parameter | Type | Description | Default |
|---|---|---|---|
immunizationConceptSet |
string |
A UUID or concept mapping (e.g., "CIEL:984") that resolves to a concept set containing all available vaccine concepts. |
"CIEL:984" |
sequenceDefinitions |
array |
Defines the dose and booster schedules for each vaccine. Each entry represents one vaccine and its sequence definitions. | See example below |
{
"immunizationConceptSet": "CIEL:984",
"sequenceDefinitions": [
{
"vaccineConceptUuid": "783AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"sequences": [
{ "sequenceLabel": "Dose-1", "sequenceNumber": 1 },
{ "sequenceLabel": "Dose-2", "sequenceNumber": 2 },
{ "sequenceLabel": "Dose-3", "sequenceNumber": 3 },
{ "sequenceLabel": "Dose-4", "sequenceNumber": 4 },
{ "sequenceLabel": "Booster-1", "sequenceNumber": 11 },
{ "sequenceLabel": "Booster-2", "sequenceNumber": 12 }
]
}
]
}
Note: Replace vaccineConceptUuid with your actual vaccine concept UUIDs.
1–9 → Primary doses11–19 → Booster dosessequenceDefinitions is not provided, vaccines are treated as single-dose vaccines without predefined schedules.sequenceLabel values are used as translation keys in the UI for localization.The immunizations feature requires backend configuration in the OpenMRS FHIR2 module.
fhir2.immunizationsEncounterTypeUuid - UUID of the encounter type for immunization encountersfhir2.administeringEncounterRoleUuid - UUID of the encounter role for the administering providerThe following CIEL concepts must be mapped:
| CIEL Code | Concept Name | Required |
|---|---|---|
| CIEL:1421 | Immunization grouping concept | ✅ Required |
| CIEL:984 | Vaccine | ✅ Required |
| CIEL:1410 | Vaccination date | ✅ Required |
| CIEL:1418 | Dose number | ✅ Required |
| CIEL:1419 | Manufacturer | ✅ Required |
| CIEL:1420 | Lot number | ✅ Required |
| CIEL:165907 | Expiration date | ✅ Required |
| CIEL:161011 | Free text comment | ⚠️ Optional |
| CIEL:170000 | Date next dose | ⚠️ Optional |
fhir2.immunizationsEncounterTypeUuid with encounter type UUIDfhir2.administeringEncounterRoleUuid with encounter role UUIDimmunizationConceptSet to point to your implementation’s concept set for vaccines.sequenceDefinitions for all vaccines that have a multi-dose or booster schedule.sequenceDefinitions to match local or national immunization programs.sequenceLabel values if supporting multiple languages.src/config-schema.ts: Main configuration for vaccine concept sets and dose schedules.src/immunizations/immunizations-detailed-summary.component.tsx: The main component for the immunization summary view.src/immunizations/immunization-history-dashboard.component.tsx: The component for the chronological history view.src/immunizations/immunizations-form.workspace.tsx: The workspace form for adding and editing immunizations.