STU3 Candidate

This page is part of the FHIR Specification (v1.8.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

11.6 Resource Immunization - Content

Public Health and Emergency Response Work GroupMaturity Level: 1Compartments: 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:

  • Patient
  • Practitioner
  • Organization
  • Location
  • Observation
  • Encounter

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization IDomainResourceImmunization event information
If immunization was administered (wasNotGiven=false) then explanation.reasonNotGiven SHALL be absent.
If immunization was not administered (wasNotGiven=true) then there SHALL be no reaction nor explanation.reason present
... identifier 0..*IdentifierBusiness identifier
... status ?!Σ1..1codecompleted | entered-in-error
Immunization Status Codes (Required)
... date 0..1dateTimeVaccination administration date
... vaccineCode 1..1CodeableConceptVaccine product administered
Vaccine Administered Value Set (Example)
... patient 1..1Reference(Patient)Who was immunized
... wasNotGiven ?!Σ1..1booleanFlag for whether immunization was given
... primarySource 1..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
ImmunizationOrigin (Example)
... performer 0..1Reference(Practitioner)Who administered vaccine
... requester 0..1Reference(Practitioner)Who ordered vaccination
... encounter 0..1Reference(Encounter)Encounter administered as part of
... manufacturer 0..1Reference(Organization)Vaccine manufacturer
... location 0..1Reference(Location)Where vaccination occurred
... lotNumber 0..1stringVaccine lot number
... expirationDate 0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Codes for Immunization Site of Administration (Example)
... route 0..1CodeableConceptHow vaccine entered body
Immunization Route Codes (Example)
... doseQuantity 0..1SimpleQuantityAmount of vaccine administered
... note Σ0..*AnnotationVaccination notes
... explanation 0..1BackboneElementAdministration/non-administration reasons
.... reason 0..*CodeableConceptWhy immunization occurred
Immunization Reason Codes (Example)
.... reasonNotGiven 0..*CodeableConceptWhy immunization did not occur
Immunization Reasons for Not Immunizing Codes (Example)
... reaction 0..*BackboneElementDetails of a reaction that follows immunization
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(Observation)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction
... vaccinationProtocol 0..*BackboneElementWhat protocol was followed
.... doseSequence 0..1positiveIntDose number within series
.... description 0..1stringDetails of vaccine protocol
.... authority 0..1Reference(Organization)Who is responsible for protocol
.... series 0..1stringName of vaccine series
.... seriesDoses 0..1positiveIntRecommended number of doses for immunity
.... targetDisease 1..*CodeableConceptDisease immunized against
Vaccination Protocol Dose Target Codes (Example)
.... doseStatus 1..1CodeableConceptIndicates if dose counts towards immunity
Vaccination Protocol Dose Status codes (Example)
.... doseStatusReason 0..1CodeableConceptWhy dose does (not) count
Vaccination Protocol Dose Status Reason codes (Example)

doco Documentation for this format

UML Diagram (Legend)

Immunization (DomainResource)A unique identifier assigned to this immunization recordidentifier : Identifier [0..*]Indicates the current status of the vaccination event (this element modifies the meaning of other elements)status : code [1..1] « A set of codes indicating the current status of an Immunization (Strength=Required)Immunization Status ! »Date vaccine administered or was to be administereddate : dateTime [0..1]Vaccine that was administered or was to be administeredvaccineCode : CodeableConcept [1..1] « The code for vaccine product administered (Strength=Example)Vaccine Administered Value Set?? »The patient who either received or did not receive the immunizationpatient : Reference [1..1] « Patient »Indicates if the vaccination was or was not given (this element modifies the meaning of other elements)wasNotGiven : boolean [1..1]An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recordedprimarySource : boolean [1..1]The source of the data when the report of the immunization event is not based on information from the person who administered the vaccinereportOrigin : CodeableConcept [0..1] « The source of the data for a record which is not from a primary source. (Strength=Example)ImmunizationOrigin?? »Clinician who administered the vaccineperformer : Reference [0..1] « Practitioner »Clinician who ordered the vaccinationrequester : Reference [0..1] « Practitioner »The visit or admission or other contact between patient and health care provider the immunization was performed as part ofencounter : Reference [0..1] « Encounter »Name of vaccine manufacturermanufacturer : Reference [0..1] « Organization »The service delivery location where the vaccine administration occurredlocation : Reference [0..1] « Location »Lot number of the vaccine productlotNumber : string [0..1]Date vaccine batch expiresexpirationDate : date [0..1]Body site where vaccine was administeredsite : CodeableConcept [0..1] « The site at which the vaccine was administered (Strength=Example)Codes for Immunization Site o...?? »The path by which the vaccine product is taken into the bodyroute : CodeableConcept [0..1] « The route by which the vaccine was administered (Strength=Example)Immunization Route ?? »The quantity of vaccine product that was administereddoseQuantity : Quantity(SimpleQuantity) [0..1]Extra information about the immunization that is not conveyed by the other attributesnote : Annotation [0..*]ExplanationReasons why a vaccine was administeredreason : CodeableConcept [0..*] « The reason why a vaccine was administered (Strength=Example)Immunization Reason ?? »Reason why a vaccine was not administeredreasonNotGiven : CodeableConcept [0..*] « The reason why a vaccine was not administered (Strength=Example)Immunization Reasons for Not ...?? »ReactionDate of reaction to the immunizationdate : dateTime [0..1]Details of the reactiondetail : Reference [0..1] « Observation »Self-reported indicatorreported : boolean [0..1]VaccinationProtocolNominal position in a seriesdoseSequence : positiveInt [0..1]Contains the description about the protocol under which the vaccine was administereddescription : string [0..1]Indicates the authority who published the protocol. E.g. ACIPauthority : Reference [0..1] « Organization »One possible path to achieve presumed immunity against a disease - within the context of an authorityseries : string [0..1]The recommended number of doses to achieve immunityseriesDoses : positiveInt [0..1]The targeted diseasetargetDisease : CodeableConcept [1..*] « The disease target of the vaccination protocol (Strength=Example)Vaccination Protocol Dose Tar...?? »Indicates if the immunization event should "count" against the protocoldoseStatus : CodeableConcept [1..1] « The status of the vaccination protocol (i.e. should this count) (Strength=Example)Vaccination Protocol Dose Sta...?? »Provides an explanation as to why an immunization event should or should not count against the protocoldoseStatusReason : CodeableConcept [0..1] « The reason for the determining if a vaccination should count or why vaccination should not count. (Strength=Example)Vaccination Protocol Dose Sta...?? »Reasons why a vaccine was or was not administeredexplanation[0..1]Categorical data indicating that an adverse event is associated in time to an immunizationreaction[0..*]Contains information about the protocol(s) under which the vaccine was administeredvaccinationProtocol[0..*]

XML Template

<Immunization xmlns="http://hl7.org/fhir"> doco
 <!-- 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 completed | entered-in-error -->
 <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 -->
 <primarySource value="[boolean]"/><!-- 1..1 Indicates context the data was recorded in -->
 <reportOrigin><!-- 0..1 CodeableConcept Indicates the source of a secondarily reported record --></reportOrigin>
 <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]"/><!-- 0..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

{doco
  "resourceType" : "Immunization",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business identifier
  "status" : "<code>", // R!  completed | entered-in-error
  "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
  "primarySource" : <boolean>, // R!  Indicates context the data was recorded in
  "reportOrigin" : { CodeableConcept }, // Indicates the source of a secondarily 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>", // 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
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Immunization;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Immunization.identifier [ Identifier ], ... ; # 0..* Business identifier
  fhir:Immunization.status [ code ]; # 1..1 completed | entered-in-error
  fhir:Immunization.date [ dateTime ]; # 0..1 Vaccination administration date
  fhir:Immunization.vaccineCode [ CodeableConcept ]; # 1..1 Vaccine product administered
  fhir:Immunization.patient [ Reference(Patient) ]; # 1..1 Who was immunized
  fhir:Immunization.wasNotGiven [ boolean ]; # 1..1 Flag for whether immunization was given
  fhir:Immunization.primarySource [ boolean ]; # 1..1 Indicates context the data was recorded in
  fhir:Immunization.reportOrigin [ CodeableConcept ]; # 0..1 Indicates the source of a secondarily reported record
  fhir:Immunization.performer [ Reference(Practitioner) ]; # 0..1 Who administered vaccine
  fhir:Immunization.requester [ Reference(Practitioner) ]; # 0..1 Who ordered vaccination
  fhir:Immunization.encounter [ Reference(Encounter) ]; # 0..1 Encounter administered as part of
  fhir:Immunization.manufacturer [ Reference(Organization) ]; # 0..1 Vaccine manufacturer
  fhir:Immunization.location [ Reference(Location) ]; # 0..1 Where vaccination occurred
  fhir:Immunization.lotNumber [ string ]; # 0..1 Vaccine lot number
  fhir:Immunization.expirationDate [ date ]; # 0..1 Vaccine expiration date
  fhir:Immunization.site [ CodeableConcept ]; # 0..1 Body site vaccine  was administered
  fhir:Immunization.route [ CodeableConcept ]; # 0..1 How vaccine entered body
  fhir:Immunization.doseQuantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount of vaccine administered
  fhir:Immunization.note [ Annotation ], ... ; # 0..* Vaccination notes
  fhir:Immunization.explanation [ # 0..1 Administration/non-administration reasons
    fhir:Immunization.explanation.reason [ CodeableConcept ], ... ; # 0..* Why immunization occurred
    fhir:Immunization.explanation.reasonNotGiven [ CodeableConcept ], ... ; # 0..* Why immunization did not occur
  ];
  fhir:Immunization.reaction [ # 0..* Details of a reaction that follows immunization
    fhir:Immunization.reaction.date [ dateTime ]; # 0..1 When reaction started
    fhir:Immunization.reaction.detail [ Reference(Observation) ]; # 0..1 Additional information on reaction
    fhir:Immunization.reaction.reported [ boolean ]; # 0..1 Indicates self-reported reaction
  ], ...;
  fhir:Immunization.vaccinationProtocol [ # 0..* What protocol was followed
    fhir:Immunization.vaccinationProtocol.doseSequence [ positiveInt ]; # 0..1 Dose number within series
    fhir:Immunization.vaccinationProtocol.description [ string ]; # 0..1 Details of vaccine protocol
    fhir:Immunization.vaccinationProtocol.authority [ Reference(Organization) ]; # 0..1 Who is responsible for protocol
    fhir:Immunization.vaccinationProtocol.series [ string ]; # 0..1 Name of vaccine series
    fhir:Immunization.vaccinationProtocol.seriesDoses [ positiveInt ]; # 0..1 Recommended number of doses for immunity
    fhir:Immunization.vaccinationProtocol.targetDisease [ CodeableConcept ], ... ; # 1..* Disease immunized against
    fhir:Immunization.vaccinationProtocol.doseStatus [ CodeableConcept ]; # 1..1 Indicates if dose counts towards immunity
    fhir:Immunization.vaccinationProtocol.doseStatusReason [ CodeableConcept ]; # 0..1 Why dose does (not) count
  ], ...;
]

Changes since DSTU2

Immunization
Immunization.status Change value set from http://hl7.org/fhir/ValueSet/medication-admin-status to http://hl7.org/fhir/ValueSet/immunization-status
Immunization.primarySource added Element
Immunization.reportOrigin added Element
Immunization.vaccinationProtocol.doseSequence Min Cardinality changed from 1 to 0
Immunization.reported deleted

See the Full Difference for further information

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization IDomainResourceImmunization event information
If immunization was administered (wasNotGiven=false) then explanation.reasonNotGiven SHALL be absent.
If immunization was not administered (wasNotGiven=true) then there SHALL be no reaction nor explanation.reason present
... identifier 0..*IdentifierBusiness identifier
... status ?!Σ1..1codecompleted | entered-in-error
Immunization Status Codes (Required)
... date 0..1dateTimeVaccination administration date
... vaccineCode 1..1CodeableConceptVaccine product administered
Vaccine Administered Value Set (Example)
... patient 1..1Reference(Patient)Who was immunized
... wasNotGiven ?!Σ1..1booleanFlag for whether immunization was given
... primarySource 1..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
ImmunizationOrigin (Example)
... performer 0..1Reference(Practitioner)Who administered vaccine
... requester 0..1Reference(Practitioner)Who ordered vaccination
... encounter 0..1Reference(Encounter)Encounter administered as part of
... manufacturer 0..1Reference(Organization)Vaccine manufacturer
... location 0..1Reference(Location)Where vaccination occurred
... lotNumber 0..1stringVaccine lot number
... expirationDate 0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Codes for Immunization Site of Administration (Example)
... route 0..1CodeableConceptHow vaccine entered body
Immunization Route Codes (Example)
... doseQuantity 0..1SimpleQuantityAmount of vaccine administered
... note Σ0..*AnnotationVaccination notes
... explanation 0..1BackboneElementAdministration/non-administration reasons
.... reason 0..*CodeableConceptWhy immunization occurred
Immunization Reason Codes (Example)
.... reasonNotGiven 0..*CodeableConceptWhy immunization did not occur
Immunization Reasons for Not Immunizing Codes (Example)
... reaction 0..*BackboneElementDetails of a reaction that follows immunization
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(Observation)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction
... vaccinationProtocol 0..*BackboneElementWhat protocol was followed
.... doseSequence 0..1positiveIntDose number within series
.... description 0..1stringDetails of vaccine protocol
.... authority 0..1Reference(Organization)Who is responsible for protocol
.... series 0..1stringName of vaccine series
.... seriesDoses 0..1positiveIntRecommended number of doses for immunity
.... targetDisease 1..*CodeableConceptDisease immunized against
Vaccination Protocol Dose Target Codes (Example)
.... doseStatus 1..1CodeableConceptIndicates if dose counts towards immunity
Vaccination Protocol Dose Status codes (Example)
.... doseStatusReason 0..1CodeableConceptWhy dose does (not) count
Vaccination Protocol Dose Status Reason codes (Example)

doco Documentation for this format

UML Diagram (Legend)

Immunization (DomainResource)A unique identifier assigned to this immunization recordidentifier : Identifier [0..*]Indicates the current status of the vaccination event (this element modifies the meaning of other elements)status : code [1..1] « A set of codes indicating the current status of an Immunization (Strength=Required)Immunization Status ! »Date vaccine administered or was to be administereddate : dateTime [0..1]Vaccine that was administered or was to be administeredvaccineCode : CodeableConcept [1..1] « The code for vaccine product administered (Strength=Example)Vaccine Administered Value Set?? »The patient who either received or did not receive the immunizationpatient : Reference [1..1] « Patient »Indicates if the vaccination was or was not given (this element modifies the meaning of other elements)wasNotGiven : boolean [1..1]An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recordedprimarySource : boolean [1..1]The source of the data when the report of the immunization event is not based on information from the person who administered the vaccinereportOrigin : CodeableConcept [0..1] « The source of the data for a record which is not from a primary source. (Strength=Example)ImmunizationOrigin?? »Clinician who administered the vaccineperformer : Reference [0..1] « Practitioner »Clinician who ordered the vaccinationrequester : Reference [0..1] « Practitioner »The visit or admission or other contact between patient and health care provider the immunization was performed as part ofencounter : Reference [0..1] « Encounter »Name of vaccine manufacturermanufacturer : Reference [0..1] « Organization »The service delivery location where the vaccine administration occurredlocation : Reference [0..1] « Location »Lot number of the vaccine productlotNumber : string [0..1]Date vaccine batch expiresexpirationDate : date [0..1]Body site where vaccine was administeredsite : CodeableConcept [0..1] « The site at which the vaccine was administered (Strength=Example)Codes for Immunization Site o...?? »The path by which the vaccine product is taken into the bodyroute : CodeableConcept [0..1] « The route by which the vaccine was administered (Strength=Example)Immunization Route ?? »The quantity of vaccine product that was administereddoseQuantity : Quantity(SimpleQuantity) [0..1]Extra information about the immunization that is not conveyed by the other attributesnote : Annotation [0..*]ExplanationReasons why a vaccine was administeredreason : CodeableConcept [0..*] « The reason why a vaccine was administered (Strength=Example)Immunization Reason ?? »Reason why a vaccine was not administeredreasonNotGiven : CodeableConcept [0..*] « The reason why a vaccine was not administered (Strength=Example)Immunization Reasons for Not ...?? »ReactionDate of reaction to the immunizationdate : dateTime [0..1]Details of the reactiondetail : Reference [0..1] « Observation »Self-reported indicatorreported : boolean [0..1]VaccinationProtocolNominal position in a seriesdoseSequence : positiveInt [0..1]Contains the description about the protocol under which the vaccine was administereddescription : string [0..1]Indicates the authority who published the protocol. E.g. ACIPauthority : Reference [0..1] « Organization »One possible path to achieve presumed immunity against a disease - within the context of an authorityseries : string [0..1]The recommended number of doses to achieve immunityseriesDoses : positiveInt [0..1]The targeted diseasetargetDisease : CodeableConcept [1..*] « The disease target of the vaccination protocol (Strength=Example)Vaccination Protocol Dose Tar...?? »Indicates if the immunization event should "count" against the protocoldoseStatus : CodeableConcept [1..1] « The status of the vaccination protocol (i.e. should this count) (Strength=Example)Vaccination Protocol Dose Sta...?? »Provides an explanation as to why an immunization event should or should not count against the protocoldoseStatusReason : CodeableConcept [0..1] « The reason for the determining if a vaccination should count or why vaccination should not count. (Strength=Example)Vaccination Protocol Dose Sta...?? »Reasons why a vaccine was or was not administeredexplanation[0..1]Categorical data indicating that an adverse event is associated in time to an immunizationreaction[0..*]Contains information about the protocol(s) under which the vaccine was administeredvaccinationProtocol[0..*]

XML Template

<Immunization xmlns="http://hl7.org/fhir"> doco
 <!-- 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 completed | entered-in-error -->
 <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 -->
 <primarySource value="[boolean]"/><!-- 1..1 Indicates context the data was recorded in -->
 <reportOrigin><!-- 0..1 CodeableConcept Indicates the source of a secondarily reported record --></reportOrigin>
 <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]"/><!-- 0..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

{doco
  "resourceType" : "Immunization",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Business identifier
  "status" : "<code>", // R!  completed | entered-in-error
  "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
  "primarySource" : <boolean>, // R!  Indicates context the data was recorded in
  "reportOrigin" : { CodeableConcept }, // Indicates the source of a secondarily 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>", // 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
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Immunization;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Immunization.identifier [ Identifier ], ... ; # 0..* Business identifier
  fhir:Immunization.status [ code ]; # 1..1 completed | entered-in-error
  fhir:Immunization.date [ dateTime ]; # 0..1 Vaccination administration date
  fhir:Immunization.vaccineCode [ CodeableConcept ]; # 1..1 Vaccine product administered
  fhir:Immunization.patient [ Reference(Patient) ]; # 1..1 Who was immunized
  fhir:Immunization.wasNotGiven [ boolean ]; # 1..1 Flag for whether immunization was given
  fhir:Immunization.primarySource [ boolean ]; # 1..1 Indicates context the data was recorded in
  fhir:Immunization.reportOrigin [ CodeableConcept ]; # 0..1 Indicates the source of a secondarily reported record
  fhir:Immunization.performer [ Reference(Practitioner) ]; # 0..1 Who administered vaccine
  fhir:Immunization.requester [ Reference(Practitioner) ]; # 0..1 Who ordered vaccination
  fhir:Immunization.encounter [ Reference(Encounter) ]; # 0..1 Encounter administered as part of
  fhir:Immunization.manufacturer [ Reference(Organization) ]; # 0..1 Vaccine manufacturer
  fhir:Immunization.location [ Reference(Location) ]; # 0..1 Where vaccination occurred
  fhir:Immunization.lotNumber [ string ]; # 0..1 Vaccine lot number
  fhir:Immunization.expirationDate [ date ]; # 0..1 Vaccine expiration date
  fhir:Immunization.site [ CodeableConcept ]; # 0..1 Body site vaccine  was administered
  fhir:Immunization.route [ CodeableConcept ]; # 0..1 How vaccine entered body
  fhir:Immunization.doseQuantity [ Quantity(SimpleQuantity) ]; # 0..1 Amount of vaccine administered
  fhir:Immunization.note [ Annotation ], ... ; # 0..* Vaccination notes
  fhir:Immunization.explanation [ # 0..1 Administration/non-administration reasons
    fhir:Immunization.explanation.reason [ CodeableConcept ], ... ; # 0..* Why immunization occurred
    fhir:Immunization.explanation.reasonNotGiven [ CodeableConcept ], ... ; # 0..* Why immunization did not occur
  ];
  fhir:Immunization.reaction [ # 0..* Details of a reaction that follows immunization
    fhir:Immunization.reaction.date [ dateTime ]; # 0..1 When reaction started
    fhir:Immunization.reaction.detail [ Reference(Observation) ]; # 0..1 Additional information on reaction
    fhir:Immunization.reaction.reported [ boolean ]; # 0..1 Indicates self-reported reaction
  ], ...;
  fhir:Immunization.vaccinationProtocol [ # 0..* What protocol was followed
    fhir:Immunization.vaccinationProtocol.doseSequence [ positiveInt ]; # 0..1 Dose number within series
    fhir:Immunization.vaccinationProtocol.description [ string ]; # 0..1 Details of vaccine protocol
    fhir:Immunization.vaccinationProtocol.authority [ Reference(Organization) ]; # 0..1 Who is responsible for protocol
    fhir:Immunization.vaccinationProtocol.series [ string ]; # 0..1 Name of vaccine series
    fhir:Immunization.vaccinationProtocol.seriesDoses [ positiveInt ]; # 0..1 Recommended number of doses for immunity
    fhir:Immunization.vaccinationProtocol.targetDisease [ CodeableConcept ], ... ; # 1..* Disease immunized against
    fhir:Immunization.vaccinationProtocol.doseStatus [ CodeableConcept ]; # 1..1 Indicates if dose counts towards immunity
    fhir:Immunization.vaccinationProtocol.doseStatusReason [ CodeableConcept ]; # 0..1 Why dose does (not) count
  ], ...;
]

Changes since DSTU2

Immunization
Immunization.status Change value set from http://hl7.org/fhir/ValueSet/medication-admin-status to http://hl7.org/fhir/ValueSet/immunization-status
Immunization.primarySource added Element
Immunization.reportOrigin added Element
Immunization.vaccinationProtocol.doseSequence Min Cardinality changed from 1 to 0
Immunization.reported deleted

See the Full Difference for further information

 

Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle), JSON-LD (for RDF as JSON-LD),

PathDefinitionTypeReference
Immunization.status A set of codes indicating the current status of an ImmunizationRequiredImmunization Status Codes
Immunization.vaccineCode The code for vaccine product administeredExampleVaccine Administered Value Set
Immunization.reportOrigin The source of the data for a record which is not from a primary source.ExampleImmunizationOrigin
Immunization.site The site at which the vaccine was administeredExampleCodes for Immunization Site of Administration
Immunization.route The route by which the vaccine was administeredExampleImmunization Route Codes
Immunization.explanation.reason The reason why a vaccine was administeredExampleImmunization Reason Codes
Immunization.explanation.reasonNotGiven The reason why a vaccine was not administeredExampleImmunization Reasons for Not Immunizing Codes
Immunization.vaccinationProtocol.targetDisease The disease target of the vaccination protocolExampleVaccination Protocol Dose Target Codes
Immunization.vaccinationProtocol.doseStatus The status of the vaccination protocol (i.e. should this count)ExampleVaccination Protocol Dose Status codes
Immunization.vaccinationProtocol.doseStatusReason The reason for the determining if a vaccination should count or why vaccination should not count.ExampleVaccination Protocol Dose Status Reason codes

  • imm-1: If immunization was not administered (wasNotGiven=true) then there SHALL be no reaction nor explanation.reason present (expression : (wasNotGiven = true).not() or (reaction.empty() and explanation.reason.empty()))
  • imm-2: If immunization was administered (wasNotGiven=false) then explanation.reasonNotGiven SHALL be absent. (expression : (wasNotGiven = true) or explanation.reasonNotGiven.empty())

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionPathsIn Common
datedateVaccination (non)-Administration DateImmunization.date18 Resources
dose-sequencenumberDose number within seriesImmunization.vaccinationProtocol.doseSequence
identifiertokenBusiness identifierImmunization.identifier26 Resources
locationreferenceThe service delivery location or facility in which the vaccine was / was to be administeredImmunization.location
(Location)
lot-numberstringVaccine Lot NumberImmunization.lotNumber
manufacturerreferenceVaccine ManufacturerImmunization.manufacturer
(Organization)
notgiventokenAdministrations which were not givenImmunization.wasNotGiven
patientreferenceThe patient for the vaccination recordImmunization.patient
(Patient)
31 Resources
performerreferenceThe practitioner who administered the vaccinationImmunization.performer
(Practitioner)
reactionreferenceAdditional information on reactionImmunization.reaction.detail
(Observation)
reaction-datedateWhen reaction startedImmunization.reaction.date
reasontokenWhy immunization occurredImmunization.explanation.reason
reason-not-giventokenExplanation of reason vaccination was not administeredImmunization.explanation.reasonNotGiven
requesterreferenceThe practitioner who ordered the vaccinationImmunization.requester
(Practitioner)
statustokenImmunization event statusImmunization.status
vaccine-codetokenVaccine Product AdministeredImmunization.vaccineCode