Immunization
Work with FHIR R4 4.0.1 Immunization resources.
Choose an operation for this resource:
- Search Immunization
- Read Immunization
- Read Immunization Version
- Create Immunization
- Update Immunization
- Delete Immunization
- Hard Delete Immunization
- Purge Deleted Immunization
The diagram summarizes Immunization requests and responses. See Supported FHIR REST Interactions for the shared interaction model.
FHIR R4 definition: https://hl7.org/fhir/R4/immunization.html. See interaction response codes and common error responses.
The resource endpoint is /api/fhir/r4/Immunization. R6 Immunization endpoints are not available. Check the instance's R4 metadata before enabling this resource.
Interactions and permissions
- Resource lifecycle: create, read, versioned read, update, soft deletion and version preconditions.
- PUT-as-create and restoration: creation/restoration, server-managed metadata, response headers and return preferences.
- Interaction responses: success
statuscodes. - OperationOutcome errors: common errors and response bodies.
- Batch requests: independent entry processing.
| Immunization capability | Support or requirement |
|---|---|
| Additional scope forms | Read/search also accept the legacy read scope; writes accept the applicable SMART CRUD scopes or system/Immunization.write. |
| Resource constraints | Constrained read/search permissions support _id, _lastUpdated, identifier, patient (including :identifier), status, date and vaccine-code. |
| Resource constraints | For example, system/Immunization.rs?patient=Patient/example&status=completed permits only completed events for that patient. |
| Resource constraints | Combined constraints use AND; date and _lastUpdated permit two bounds. |
| Conditional create | Not supported. |
| Conditional update | Not supported. |
| Transaction bundles | Not supported. |
- Authentication and Scopes: bearer tokens, scope configuration and constrained access. Required resource scopes are listed on each operation page.
- Data Deletion and Purge Operations: permanent-deletion eligibility and additional permissions.
- Hard Delete and Purge Deleted: resource endpoints and required scopes; see also shared purge guidance.
Content and search
- Search operation: endpoints, complete parameter table, supported forms and examples.
- Common Search Controls: shared controls and server-provided paging links.
- Value Types and Syntax and Comparators, Modifiers, and Chains: shared syntax. Use only the forms supported by this resource.
For shared validation-error responses, see OperationOutcome errors.
| Immunization detail | Requirement or behavior |
|---|---|
| Required content | Provide status (completed, entered-in-error or not-done), vaccineCode, a Patient reference, and exactly one occurrenceDateTime or occurrenceString. |
| Token filters | The resource preserves identifiers, extensions, primitive metadata, historical content and nested performer, education, reaction and protocolApplied elements. |
| References | Education must include documentType or reference. |
| Choice elements | protocolApplied requires exactly one doseNumber choice; seriesDoses is optional and also permits one choice. |
| Patient references | GET search and form-encoded POST /_search support _id, _lastUpdated, identifier, patient, status, date and vaccine-code, plus shared result controls, profile and tag filters. |
| Limitations | identifier, status and vaccine-code accept one unmodified token in value, system|value, |value or system| form; repeated and comma-separated token alternatives are unsupported. |
| Status | Status tokens use the implicit code system http://hl7.org/fhir/event-status; status=http://hl7.org/fhir/event-status|completed matches completed events, while an explicit no-system token does not. |
| Limitations | patient accepts a Patient reference or the existing :identifier reference modifier; new chains are not supported. |
| Date filters | Date comparators eq, ne, gt, ge, lt, le, sa, eb and ap apply, with at most two repeated date bounds combined using AND. |
| Date filters | date searches occurrenceDateTime only: occurrenceString has no invented date and does not match date filters. |
| Limitations | Encounter, clinician, organization, detailed reaction, new chains, composites and full-text filters are not supported. |
GET /api/fhir/r4/Immunization?patient=Patient/example&vaccine-code=http://hl7.org/fhir/sid/cvx%7C207&status=completed&date=ge2026-01-01&date=lt2027-01-01
Example
{"resourceType":"Immunization","status":"completed","vaccineCode":{"coding":[{"system":"http://hl7.org/fhir/sid/cvx","code":"207"}]},"patient":{"reference":"Patient/example"},"occurrenceDateTime":"2026-01-15T12:00:00Z"}