This page is part of the FHIR Specification (v1.2.0: STU 3 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2
Public Health and Emergency Response Work Group | Maturity Level: 1 | Compartments: Patient, Practitioner |
Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
The Immunization resource is intended to cover the recording of current and historical administration of vaccines to patients across all healthcare disciplines in all care settings and all regions. This includes immunization of both humans and animals, but does not include the administration of non-vaccine agents, even those that may have or claim to have immunological effects.
Additionally, the Immunization resource is expected to cover key concepts related to the creation, revision and querying of a patient's immunization history. This resource - through consultation with the PHER work group - is believed to meet key use cases and information requirements as defined in the existing HL7 v2 immunization implementation guide, HL7 v3 POIZ domain and Immunization Domain Analysis Model.
This resource references the following resources:
Administration of vaccines is intended to be handled using the Immunization resource. MedicationAdministration is intended for tracking the administration of non-vaccine medications. Some systems treat immunizations in the same way as any other medication administration. Such systems SHOULD use an immunization resource to represent these. If systems need to use a MedicationAdministration resource to capture vaccinations for workflow or other reasons, they SHOULD also expose an equivalent Immunization instance.
AllergyIntolerance and Immunization.reaction
Immunization.reaction may be an indication of an allergy or intolerance. If this is deemed to be the case, a separate AllergyIntolerance resource instance should be created to indicate it, as most systems will not query against past Immunization.reaction.
This resource is referenced by immunizationrecommendation
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Immunization | I | DomainResource | Immunization event information If immunization was administered (wasNotGiven=false) then explanation.reasonNotGiven SHALL be absent. If immunization was not administred (wasNotGiven=true) then there SHALL be no reaction nor explanation.reason present | |
identifier | 0..* | Identifier | Business identifier | |
status | ?! Σ | 1..1 | code | in-progress | on-hold | completed | entered-in-error | stopped MedicationAdministrationStatus (Required) |
date | 0..1 | dateTime | Vaccination administration date | |
vaccineCode | 1..1 | CodeableConcept | Vaccine product administered Vaccine Administered Value Set (Example) | |
patient | 1..1 | Reference(Patient) | Who was immunized | |
wasNotGiven | ?! | 1..1 | boolean | Flag for whether immunization was given |
reported | 1..1 | boolean | Indicates a self-reported record | |
performer | 0..1 | Reference(Practitioner) | Who administered vaccine | |
requester | 0..1 | Reference(Practitioner) | Who ordered vaccination | |
encounter | 0..1 | Reference(Encounter) | Encounter administered as part of | |
manufacturer | 0..1 | Reference(Organization) | Vaccine manufacturer | |
location | 0..1 | Reference(Location) | Where vaccination occurred | |
lotNumber | 0..1 | string | Vaccine lot number | |
expirationDate | 0..1 | date | Vaccine expiration date | |
site | 0..1 | CodeableConcept | Body site vaccine was administered Codes for Immunization Site of Administration (Example) | |
route | 0..1 | CodeableConcept | How vaccine entered body Immunization Route Codes (Example) | |
doseQuantity | 0..1 | SimpleQuantity | Amount of vaccine administered | |
note | Σ | 0..* | Annotation | Vaccination notes |
explanation | 0..1 | BackboneElement | Administration/non-administration reasons | |
reason | 0..* | CodeableConcept | Why immunization occurred Immunization Reason Codes (Example) | |
reasonNotGiven | 0..* | CodeableConcept | Why immunization did not occur Immunization Reasons for Not Immunizing Codes (Example) | |
reaction | 0..* | BackboneElement | Details of a reaction that follows immunization | |
date | 0..1 | dateTime | When reaction started | |
detail | 0..1 | Reference(Observation) | Additional information on reaction | |
reported | 0..1 | boolean | Indicates self-reported reaction | |
vaccinationProtocol | 0..* | BackboneElement | What protocol was followed | |
doseSequence | 1..1 | positiveInt | Dose number within series | |
description | 0..1 | string | Details of vaccine protocol | |
authority | 0..1 | Reference(Organization) | Who is responsible for protocol | |
series | 0..1 | string | Name of vaccine series | |
seriesDoses | 0..1 | positiveInt | Recommended number of doses for immunity | |
targetDisease | 1..* | CodeableConcept | Disease immunized against Vaccination Protocol Dose Target Codes (Example) | |
doseStatus | 1..1 | CodeableConcept | Indicates if dose counts towards immunity Vaccination Protocol Dose Status codes (Example) | |
doseStatusReason | 0..1 | CodeableConcept | Why dose does (not) count Vaccination Protocol Dose Status Reason codes (Example) | |
Documentation for this format |
UML Diagram
XML Template
<Immunization xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier> <status value="[code]"/><!-- 1..1 in-progress | on-hold | completed | entered-in-error | stopped --> <date value="[dateTime]"/><!-- 0..1 Vaccination administration date --> <vaccineCode><!-- 1..1 CodeableConcept Vaccine product administered --></vaccineCode> <patient><!-- 1..1 Reference(Patient) Who was immunized --></patient> <wasNotGiven value="[boolean]"/><!-- 1..1 Flag for whether immunization was given --> <reported value="[boolean]"/><!-- 1..1 Indicates a self-reported record --> <performer><!-- 0..1 Reference(Practitioner) Who administered vaccine --></performer> <requester><!-- 0..1 Reference(Practitioner) Who ordered vaccination --></requester> <encounter><!-- 0..1 Reference(Encounter) Encounter administered as part of --></encounter> <manufacturer><!-- 0..1 Reference(Organization) Vaccine manufacturer --></manufacturer> <location><!-- 0..1 Reference(Location) Where vaccination occurred --></location> <lotNumber value="[string]"/><!-- 0..1 Vaccine lot number --> <expirationDate value="[date]"/><!-- 0..1 Vaccine expiration date --> <site><!-- 0..1 CodeableConcept Body site vaccine was administered --></site> <route><!-- 0..1 CodeableConcept How vaccine entered body --></route> <doseQuantity><!-- 0..1 Quantity(SimpleQuantity) Amount of vaccine administered --></doseQuantity> <note><!-- 0..* Annotation Vaccination notes --></note> <explanation> <!-- 0..1 Administration/non-administration reasons --> <reason><!-- 0..* CodeableConcept Why immunization occurred --></reason> <reasonNotGiven><!-- 0..* CodeableConcept Why immunization did not occur --></reasonNotGiven> </explanation> <reaction> <!-- 0..* Details of a reaction that follows immunization --> <date value="[dateTime]"/><!-- 0..1 When reaction started --> <detail><!-- 0..1 Reference(Observation) Additional information on reaction --></detail> <reported value="[boolean]"/><!-- 0..1 Indicates self-reported reaction --> </reaction> <vaccinationProtocol> <!-- 0..* What protocol was followed --> <doseSequence value="[positiveInt]"/><!-- 1..1 Dose number within series --> <description value="[string]"/><!-- 0..1 Details of vaccine protocol --> <authority><!-- 0..1 Reference(Organization) Who is responsible for protocol --></authority> <series value="[string]"/><!-- 0..1 Name of vaccine series --> <seriesDoses value="[positiveInt]"/><!-- 0..1 Recommended number of doses for immunity --> <targetDisease><!-- 1..* CodeableConcept Disease immunized against --></targetDisease> <doseStatus><!-- 1..1 CodeableConcept Indicates if dose counts towards immunity --></doseStatus> <doseStatusReason><!-- 0..1 CodeableConcept Why dose does (not) count --></doseStatusReason> </vaccinationProtocol> </Immunization>
JSON Template
{ "resourceType" : "Immunization", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Business identifier "status" : "<code>", // R! in-progress | on-hold | completed | entered-in-error | stopped "date" : "<dateTime>", // Vaccination administration date "vaccineCode" : { CodeableConcept }, // R! Vaccine product administered "patient" : { Reference(Patient) }, // R! Who was immunized "wasNotGiven" : <boolean>, // R! Flag for whether immunization was given "reported" : <boolean>, // R! Indicates a self-reported record "performer" : { Reference(Practitioner) }, // Who administered vaccine "requester" : { Reference(Practitioner) }, // Who ordered vaccination "encounter" : { Reference(Encounter) }, // Encounter administered as part of "manufacturer" : { Reference(Organization) }, // Vaccine manufacturer "location" : { Reference(Location) }, // Where vaccination occurred "lotNumber" : "<string>", // Vaccine lot number "expirationDate" : "<date>", // Vaccine expiration date "site" : { CodeableConcept }, // Body site vaccine was administered "route" : { CodeableConcept }, // How vaccine entered body "doseQuantity" : { Quantity(SimpleQuantity) }, // Amount of vaccine administered "note" : [{ Annotation }], // Vaccination notes "explanation" : { // Administration/non-administration reasons "reason" : [{ CodeableConcept }], // Why immunization occurred "reasonNotGiven" : [{ CodeableConcept }] // Why immunization did not occur }, "reaction" : [{ // Details of a reaction that follows immunization "date" : "<dateTime>", // When reaction started "detail" : { Reference(Observation) }, // Additional information on reaction "reported" : <boolean> // Indicates self-reported reaction }], "vaccinationProtocol" : [{ // What protocol was followed "doseSequence" : "<positiveInt>", // R! Dose number within series "description" : "<string>", // Details of vaccine protocol "authority" : { Reference(Organization) }, // Who is responsible for protocol "series" : "<string>", // Name of vaccine series "seriesDoses" : "<positiveInt>", // Recommended number of doses for immunity "targetDisease" : [{ CodeableConcept }], // R! Disease immunized against "doseStatus" : { CodeableConcept }, // R! Indicates if dose counts towards immunity "doseStatusReason" : { CodeableConcept } // Why dose does (not) count }] }
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Immunization | I | DomainResource | Immunization event information If immunization was administered (wasNotGiven=false) then explanation.reasonNotGiven SHALL be absent. If immunization was not administred (wasNotGiven=true) then there SHALL be no reaction nor explanation.reason present | |
identifier | 0..* | Identifier | Business identifier | |
status | ?! Σ | 1..1 | code | in-progress | on-hold | completed | entered-in-error | stopped MedicationAdministrationStatus (Required) |
date | 0..1 | dateTime | Vaccination administration date | |
vaccineCode | 1..1 | CodeableConcept | Vaccine product administered Vaccine Administered Value Set (Example) | |
patient | 1..1 | Reference(Patient) | Who was immunized | |
wasNotGiven | ?! | 1..1 | boolean | Flag for whether immunization was given |
reported | 1..1 | boolean | Indicates a self-reported record | |
performer | 0..1 | Reference(Practitioner) | Who administered vaccine | |
requester | 0..1 | Reference(Practitioner) | Who ordered vaccination | |
encounter | 0..1 | Reference(Encounter) | Encounter administered as part of | |
manufacturer | 0..1 | Reference(Organization) | Vaccine manufacturer | |
location | 0..1 | Reference(Location) | Where vaccination occurred | |
lotNumber | 0..1 | string | Vaccine lot number | |
expirationDate | 0..1 | date | Vaccine expiration date | |
site | 0..1 | CodeableConcept | Body site vaccine was administered Codes for Immunization Site of Administration (Example) | |
route | 0..1 | CodeableConcept | How vaccine entered body Immunization Route Codes (Example) | |
doseQuantity | 0..1 | SimpleQuantity | Amount of vaccine administered | |
note | Σ | 0..* | Annotation | Vaccination notes |
explanation | 0..1 | BackboneElement | Administration/non-administration reasons | |
reason | 0..* | CodeableConcept | Why immunization occurred Immunization Reason Codes (Example) | |
reasonNotGiven | 0..* | CodeableConcept | Why immunization did not occur Immunization Reasons for Not Immunizing Codes (Example) | |
reaction | 0..* | BackboneElement | Details of a reaction that follows immunization | |
date | 0..1 | dateTime | When reaction started | |
detail | 0..1 | Reference(Observation) | Additional information on reaction | |
reported | 0..1 | boolean | Indicates self-reported reaction | |
vaccinationProtocol | 0..* | BackboneElement | What protocol was followed | |
doseSequence | 1..1 | positiveInt | Dose number within series | |
description | 0..1 | string | Details of vaccine protocol | |
authority | 0..1 | Reference(Organization) | Who is responsible for protocol | |
series | 0..1 | string | Name of vaccine series | |
seriesDoses | 0..1 | positiveInt | Recommended number of doses for immunity | |
targetDisease | 1..* | CodeableConcept | Disease immunized against Vaccination Protocol Dose Target Codes (Example) | |
doseStatus | 1..1 | CodeableConcept | Indicates if dose counts towards immunity Vaccination Protocol Dose Status codes (Example) | |
doseStatusReason | 0..1 | CodeableConcept | Why dose does (not) count Vaccination Protocol Dose Status Reason codes (Example) | |
Documentation for this format |
XML Template
<Immunization xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Business identifier --></identifier> <status value="[code]"/><!-- 1..1 in-progress | on-hold | completed | entered-in-error | stopped --> <date value="[dateTime]"/><!-- 0..1 Vaccination administration date --> <vaccineCode><!-- 1..1 CodeableConcept Vaccine product administered --></vaccineCode> <patient><!-- 1..1 Reference(Patient) Who was immunized --></patient> <wasNotGiven value="[boolean]"/><!-- 1..1 Flag for whether immunization was given --> <reported value="[boolean]"/><!-- 1..1 Indicates a self-reported record --> <performer><!-- 0..1 Reference(Practitioner) Who administered vaccine --></performer> <requester><!-- 0..1 Reference(Practitioner) Who ordered vaccination --></requester> <encounter><!-- 0..1 Reference(Encounter) Encounter administered as part of --></encounter> <manufacturer><!-- 0..1 Reference(Organization) Vaccine manufacturer --></manufacturer> <location><!-- 0..1 Reference(Location) Where vaccination occurred --></location> <lotNumber value="[string]"/><!-- 0..1 Vaccine lot number --> <expirationDate value="[date]"/><!-- 0..1 Vaccine expiration date --> <site><!-- 0..1 CodeableConcept Body site vaccine was administered --></site> <route><!-- 0..1 CodeableConcept How vaccine entered body --></route> <doseQuantity><!-- 0..1 Quantity(SimpleQuantity) Amount of vaccine administered --></doseQuantity> <note><!-- 0..* Annotation Vaccination notes --></note> <explanation> <!-- 0..1 Administration/non-administration reasons --> <reason><!-- 0..* CodeableConcept Why immunization occurred --></reason> <reasonNotGiven><!-- 0..* CodeableConcept Why immunization did not occur --></reasonNotGiven> </explanation> <reaction> <!-- 0..* Details of a reaction that follows immunization --> <date value="[dateTime]"/><!-- 0..1 When reaction started --> <detail><!-- 0..1 Reference(Observation) Additional information on reaction --></detail> <reported value="[boolean]"/><!-- 0..1 Indicates self-reported reaction --> </reaction> <vaccinationProtocol> <!-- 0..* What protocol was followed --> <doseSequence value="[positiveInt]"/><!-- 1..1 Dose number within series --> <description value="[string]"/><!-- 0..1 Details of vaccine protocol --> <authority><!-- 0..1 Reference(Organization) Who is responsible for protocol --></authority> <series value="[string]"/><!-- 0..1 Name of vaccine series --> <seriesDoses value="[positiveInt]"/><!-- 0..1 Recommended number of doses for immunity --> <targetDisease><!-- 1..* CodeableConcept Disease immunized against --></targetDisease> <doseStatus><!-- 1..1 CodeableConcept Indicates if dose counts towards immunity --></doseStatus> <doseStatusReason><!-- 0..1 CodeableConcept Why dose does (not) count --></doseStatusReason> </vaccinationProtocol> </Immunization>
JSON Template
{ "resourceType" : "Immunization", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Business identifier "status" : "<code>", // R! in-progress | on-hold | completed | entered-in-error | stopped "date" : "<dateTime>", // Vaccination administration date "vaccineCode" : { CodeableConcept }, // R! Vaccine product administered "patient" : { Reference(Patient) }, // R! Who was immunized "wasNotGiven" : <boolean>, // R! Flag for whether immunization was given "reported" : <boolean>, // R! Indicates a self-reported record "performer" : { Reference(Practitioner) }, // Who administered vaccine "requester" : { Reference(Practitioner) }, // Who ordered vaccination "encounter" : { Reference(Encounter) }, // Encounter administered as part of "manufacturer" : { Reference(Organization) }, // Vaccine manufacturer "location" : { Reference(Location) }, // Where vaccination occurred "lotNumber" : "<string>", // Vaccine lot number "expirationDate" : "<date>", // Vaccine expiration date "site" : { CodeableConcept }, // Body site vaccine was administered "route" : { CodeableConcept }, // How vaccine entered body "doseQuantity" : { Quantity(SimpleQuantity) }, // Amount of vaccine administered "note" : [{ Annotation }], // Vaccination notes "explanation" : { // Administration/non-administration reasons "reason" : [{ CodeableConcept }], // Why immunization occurred "reasonNotGiven" : [{ CodeableConcept }] // Why immunization did not occur }, "reaction" : [{ // Details of a reaction that follows immunization "date" : "<dateTime>", // When reaction started "detail" : { Reference(Observation) }, // Additional information on reaction "reported" : <boolean> // Indicates self-reported reaction }], "vaccinationProtocol" : [{ // What protocol was followed "doseSequence" : "<positiveInt>", // R! Dose number within series "description" : "<string>", // Details of vaccine protocol "authority" : { Reference(Organization) }, // Who is responsible for protocol "series" : "<string>", // Name of vaccine series "seriesDoses" : "<positiveInt>", // Recommended number of doses for immunity "targetDisease" : [{ CodeableConcept }], // R! Disease immunized against "doseStatus" : { CodeableConcept }, // R! Indicates if dose counts towards immunity "doseStatusReason" : { CodeableConcept } // Why dose does (not) count }] }
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire
Path | Definition | Type | Reference |
---|---|---|---|
Immunization.status | A set of codes indicating the current status of an Immunization | Required | MedicationAdministrationStatus |
Immunization.vaccineCode | The code for vaccine product administered | Example | Vaccine Administered Value Set |
Immunization.site | The site at which the vaccine was administered | Example | Codes for Immunization Site of Administration |
Immunization.route | The route by which the vaccine was administered | Example | Immunization Route Codes |
Immunization.explanation.reason | The reason why a vaccine was administered | Example | Immunization Reason Codes |
Immunization.explanation.reasonNotGiven | The reason why a vaccine was not administered | Example | Immunization Reasons for Not Immunizing Codes |
Immunization.vaccinationProtocol.targetDisease | The disease target of the vaccination protocol | Example | Vaccination Protocol Dose Target Codes |
Immunization.vaccinationProtocol.doseStatus | The status of the vaccination protocol (i.e. should this count) | Example | Vaccination Protocol Dose Status codes |
Immunization.vaccinationProtocol.doseStatusReason | The reason for the determining if a vaccination should count or why vaccination should not count. | Example | Vaccination Protocol Dose Status Reason codes |
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Paths |
date | date | Vaccination (non)-Administration Date | Immunization.date |
dose-sequence | number | Dose number within series | Immunization.vaccinationProtocol.doseSequence |
identifier | token | Business identifier | Immunization.identifier |
location | reference | The service delivery location or facility in which the vaccine was / was to be administered | Immunization.location (Location) |
lot-number | string | Vaccine Lot Number | Immunization.lotNumber |
manufacturer | reference | Vaccine Manufacturer | Immunization.manufacturer (Organization) |
notgiven | token | Administrations which were not given | Immunization.wasNotGiven |
patient | reference | The patient for the vaccination record | Immunization.patient (Patient) |
performer | reference | The practitioner who administered the vaccination | Immunization.performer (Practitioner) |
reaction | reference | Additional information on reaction | Immunization.reaction.detail (Observation) |
reaction-date | date | When reaction started | Immunization.reaction.date |
reason | token | Why immunization occurred | Immunization.explanation.reason |
reason-not-given | token | Explanation of reason vaccination was not administered | Immunization.explanation.reasonNotGiven |
requester | reference | The practitioner who ordered the vaccination | Immunization.requester (Practitioner) |
status | token | Immunization event status | Immunization.status |
vaccine-code | token | Vaccine Product Administered | Immunization.vaccineCode |