ImmunizationRecommendation — Immunization forecast
The immunization forecaster: next Tdap booster expected August 2026 based on doses received so far and the active immunization schedule.
Purpose
ImmunizationRecommendation carries vaccination recommendations computed by an engine (forecaster) based on past Immunizations and the active immunization schedule. Each recommendation lists the expected vaccine, target disease, status (due, overdue, contraindicated…), threshold dates, dose number, and supporting Immunizations that justify the calculation.
Key fields
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | External identifiers. |
patient | Reference(Patient) | 1..1 | Mandatory. Patient. |
date | dateTime | 1..1 | Mandatory. Computation date. |
authority | Reference(Organization) | 0..1 | Issuing authority (Santé Publique, CDC, JCVI). |
recommendation | BackboneElement[] | 1..* | Mandatory. One recommendation per vaccine: vaccineCode, targetDisease, doseNumber, forecastStatus, dateCriterion, description, series, seriesDoses, supportingImmunization, supportingPatientInformation. |
JSON example
Tdap booster expected August 2026 (overdue in November):
{
"resourceType": "ImmunizationRecommendation",
"id": "ir-tdap-booster-001",
"patient": { "reference": "Patient/doe-john" },
"date": "2026-05-15",
"authority": { "reference": "Organization/cdc" },
"recommendation": [{
"vaccineCode": [{
"coding": [{
"system": "http://hl7.org/fhir/sid/cvx",
"code": "115",
"display": "Tdap"
}]
}],
"targetDisease": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "76902006",
"display": "Tetanus"
}]
}],
"forecastStatus": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/immunization-recommendation-status",
"code": "due"
}]
},
"dateCriterion": [{
"code": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/immunization-recommendation-date-criterion",
"code": "due"
}]
},
"value": "2026-08-15"
}, {
"code": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/immunization-recommendation-date-criterion",
"code": "overdue"
}]
},
"value": "2026-11-15"
}],
"description": "Decennial Tdap booster recommended. Last dose 2016-08-15.",
"series": "Adult boosters",
"doseNumber": 4,
"seriesDoses": 0,
"supportingImmunization": [
{ "reference": "Immunization/imm-tdap-2016" }
]
}]
} Common pitfalls
- No
authority— the computation depends on the schedule: France vs US vs Germany. Without an authority, unmanageable. - Non-standard statuses — use the official ValueSet:
due,overdue,immune,contraindicated,complete. - No
supportingImmunization— a recommendation without links to past doses is non-auditable. - Confusing with Immunization — Immunization = administered dose (past), Recommendation = expected dose (future).
- No automatic recompute — each new Immunization should trigger recomputation of Recommendations.
Related resources
- Immunization — immunization history.
- Patient — subject.
- Organization — issuing authority.
- ImmunizationEvaluation — evaluation of a past dose.