StructureDefinition UKCore-Immunization

Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Immunizationactive2.4.02023-12-12

This profile defines the UK constraints and extensions on the International FHIR resource Immunization.


Profile_Purpose

This profile is intended to cover the recording of current and historical administration of vaccines to individuals across all healthcare disciplines in all care settings and all regions.

This profile does not support the administration of non-vaccine agents, even those that may have or claim to have immunological effects. While the terms "immunisation" and "vaccination" are not clinically identical, for the purposes of the FHIR profile, the terms are used synonymously.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
parentPresentI0..1Extension(boolean)
vaccinationProcedureI0..1Extension(CodeableConcept)
modifierExtension?! I0..*Extension
identifier0..*Identifier
statusS Σ ?!1..1codeBinding
statusReason0..1CodeableConceptBinding
vaccineCodeS Σ1..1CodeableConceptBinding
patientS Σ I1..1Reference(Patient)
encounterI0..1Reference(Encounter)
occurrenceDateTimedateTime
occurrenceStringstring
recorded0..1dateTime
primarySourceΣ0..1boolean
reportOrigin0..1CodeableConcept
locationI0..1Reference(Location)
manufacturerS I0..1Reference(Organization)
lotNumberS0..1string
expirationDate0..1date
site0..1CodeableConceptBinding
route0..1CodeableConceptBinding
doseQuantityS I0..1SimpleQuantity
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
functionΣ0..1CodeableConceptBinding
actorΣ I1..1Reference(Practitioner | PractitionerRole | Organization)
noteΣ0..*Annotation
reasonCode0..*CodeableConceptBinding
reasonReferenceI0..*Reference(Condition | Observation | DiagnosticReport)
isSubpotentΣ ?!0..1boolean
subpotentReason0..*CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
documentType0..1string
reference0..1uri
publicationDate0..1dateTime
presentationDate0..1dateTime
programEligibility0..*CodeableConcept
fundingSource0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
date0..1dateTime
detailI0..1Reference(Observation)
reported0..1boolean
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
series0..1string
authorityI0..1Reference(Organization)
targetDisease0..*CodeableConcept
doseNumberPositiveIntpositiveInt
doseNumberStringstring
seriesDosesPositiveIntpositiveInt
seriesDosesStringstring

Detailed Descriptions

Immunization
DefinitionDescribes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
Cardinality0...*
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.empty()
  • dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
  • dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • ukcore-imm-001: If the immunization was not given, then `Immunization.status` value SHALL = 'not-done', and the `Immunization.statusReason` SHALL be populated
    (status != 'not-done') or (status = 'not-done' and statusReason.exists())
Mappings
  • rim: Entity. Role, or Act
  • workflow: Event
  • v2: VXU_V04
  • rim: SubstanceAdministration
Immunization.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typestring
SummaryTrue
Comments

The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

Immunization.meta
DefinitionThe metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
Cardinality0...1
TypeMeta
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Immunization.implicitRules
DefinitionA reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
Cardinality0...1
Typeuri
ModifierTrue
SummaryTrue
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Immunization.language
DefinitionThe base language in which the resource is written.
Cardinality0...1
Typecode
Binding

A human language.

CommonLanguages (preferred)
Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Immunization.text
DefinitionA human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
Cardinality0...1
TypeNarrative
Aliasnarrative, html, xhtml, display
Comments

Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
Immunization.contained
DefinitionThese resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
Cardinality0...*
TypeResource
Aliasinline resources, anonymous resources, contained resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
Immunization.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.extension:parentPresent
DefinitionWas a parent of the patient present at an immunisation?
Cardinality0...1
TypeExtension(boolean)
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.extension:vaccinationProcedure
DefinitionAn extension to hold an immunization procedure code.
Cardinality0...1
TypeExtension(CodeableConcept)
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
Aliasextensions, user content
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.identifier
DefinitionA unique identifier assigned to this immunization record.
Cardinality0...*
TypeIdentifier
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • workflow: Event.identifier
  • w5: FiveWs.identifier
  • rim: .id
  • cda: ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/id
Immunization.status
DefinitionIndicates the current status of the immunization event.
Cardinality1...1
Typecode
Binding

A set of codes indicating the current status of an Immunization.

ImmunizationStatusCodes (required)
Must SupportTrue
ModifierTrue
SummaryTrue
Comments

Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.status
  • w5: FiveWs.status
  • rim: statusCode
Immunization.statusReason
DefinitionIndicates the reason the immunization event was not performed.
Cardinality0...1
TypeCodeableConcept
Binding

The reason why a vaccine was not administered.

UKCoreReasonImmunizationNotAdministered (preferred)
Comments

This is generally only used for the status of "not-done". The reason for performing the immunization event is captured in reasonCode, not here.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • workflow: Event.statusReason
  • rim: .inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde
Immunization.vaccineCode
DefinitionVaccine that was administered or was to be administered.
Cardinality1...1
TypeCodeableConcept
Binding

The code for vaccine product administered.

UKCoreVaccineCode (preferred)
Must SupportTrue
SummaryTrue
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • workflow: Event.code
  • w5: FiveWs.what[x]
  • v2: RXA-5
  • rim: .code
  • cda: ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacturedMaterial/realmCode/code
Immunization.patient
DefinitionThe patient who either received or did not receive the immunization.
Cardinality1...1
TypeReference(Patient)
Must SupportTrue
SummaryTrue
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.subject
  • w5: FiveWs.subject[x]
  • v2: PID-3
  • rim: .partipication[ttypeCode=].role
  • w5: FiveWs.subject
Immunization.encounter
DefinitionThe visit or admission or other contact between patient and health care provider the immunization was performed as part of.
Cardinality0...1
TypeReference(Encounter)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.context
  • w5: FiveWs.context
  • v2: PV1-19
  • rim: component->EncounterEvent
Immunization.occurrence[x]
DefinitionDate vaccine administered or was to be administered.
Cardinality1...1
TypedateTime
Must SupportTrue
SummaryTrue
Comments

When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.occurrence[x]
  • w5: FiveWs.done[x]
  • v2: RXA-3
  • rim: .effectiveTime
  • cda: ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/effectiveTime/value
Immunization.recorded
DefinitionThe date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.
Cardinality0...1
TypedateTime
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.recorded
  • rim: .participation[typeCode=AUT].time
Immunization.primarySource
DefinitionAn 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 recorded.
Cardinality0...1
Typeboolean
SummaryTrue
Comments

Reflects the “reliability” of the content.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • w5: FiveWs.source
  • v2: RXA-9
  • rim: immunization.uncertaintycode (if primary source=false, uncertainty=U)
Immunization.reportOrigin
DefinitionThe source of the data when the report of the immunization event is not based on information from the person who administered the vaccine.
Cardinality0...1
TypeCodeableConcept
Binding

The source of the data for a record which is not from a primary source.

ImmunizationOriginCodes (example)
Comments

Should not be populated if primarySource = True, not required even if primarySource = False.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • w5: FiveWs.source
  • v2: RXA-9
  • rim: .participation[typeCode=INF].role[classCode=PAT] (this syntax for self-reported) .participation[typeCode=INF].role[classCode=LIC] (this syntax for health care professional) .participation[typeCode=INF].role[classCode=PRS] (this syntax for family member)
Immunization.location
DefinitionThe service delivery location where the vaccine administration occurred.
Cardinality0...1
TypeReference(Location)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.location
  • w5: FiveWs.where[x]
  • v2: RXA-27 (or RXA-11, deprecated as of v2.7)
  • rim: .participation[typeCode=LOC].COCT_MT240000UV
Immunization.manufacturer
DefinitionName of vaccine manufacturer.
Cardinality0...1
TypeReference(Organization)
Must SupportTrue
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • v2: RXA-17
  • rim: .participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=ORG]
  • cda: ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacuturerOrganization/name
Immunization.lotNumber
DefinitionLot number of the vaccine product.
Cardinality0...1
Typestring
Must SupportTrue
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXA-15
  • rim: .participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].id
  • cda: ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacturedMaterial/lotNumberText
Immunization.expirationDate
DefinitionDate vaccine batch expires.
Cardinality0...1
Typedate
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXA-16
  • rim: .participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].expirationTime
Immunization.site
DefinitionBody site where vaccine was administered.
Cardinality0...1
TypeCodeableConcept
Binding

The site at which the vaccine was administered.

UKCoreImmunizationAdministrationBodySite (preferred)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-2
  • rim: observation.targetSiteCode
  • cda: ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/approachSiteCode/code
Immunization.route
DefinitionThe path by which the vaccine product is taken into the body.
Cardinality0...1
TypeCodeableConcept
Binding

The route by which the vaccine was administered.

UKCoreSubstanceOrProductAdministrationRoute (preferred)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-1
  • rim: .routeCode
  • cda: ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/routeCode/code
Immunization.doseQuantity
DefinitionThe quantity of vaccine product that was administered.
Cardinality0...1
TypeSimpleQuantity
Must SupportTrue
Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • v2: RXA-6 / RXA-7
  • rim: .doseQuantity
Immunization.performer
DefinitionIndicates who performed the immunization event.
Cardinality0...*
TypeBackboneElement
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.performer
  • v2: ORC-12 / RXA-10
  • rim: .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
Immunization.performer.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
Immunization.performer.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.performer.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.performer.function
DefinitionDescribes the type of performance (e.g. ordering provider, administering provider, etc.).
Cardinality0...1
TypeCodeableConcept
Binding

The role a practitioner or organization plays in the immunization event.

ImmunizationFunctionCodes (extensible)
SummaryTrue
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • workflow: Event.performer.function
  • rim: .participation.functionCode
Immunization.performer.actor
DefinitionThe practitioner or organization who performed the action.
Cardinality1...1
TypeReference(Practitioner | PractitionerRole | Organization)
SummaryTrue
Comments

When the individual practitioner who performed the action is known, it is best to send.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.performer.actor
  • w5: FiveWs.actor
  • rim: .player
Immunization.note
DefinitionExtra information about the immunization that is not conveyed by the other attributes.
Cardinality0...*
TypeAnnotation
SummaryTrue
Comments

For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: Act
  • workflow: Event.note
  • v2: OBX-5 : OBX-3 = 48767-8
  • rim: note
Immunization.reasonCode
DefinitionReasons why the vaccine was administered.
Cardinality0...*
TypeCodeableConcept
Binding

The reason why a vaccine was administered.

UKCoreImmunizationExplanationReason (preferred)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • workflow: Event.reasonCode
  • rim: [actionNegationInd=false].reasonCode
Immunization.reasonReference
DefinitionCondition, Observation or DiagnosticReport that supports why the immunization was administered.
Cardinality0...*
TypeReference(Condition | Observation | DiagnosticReport)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.reasonReference
  • rim: N/A
Immunization.isSubpotent
DefinitionIndication if a dose is considered to be subpotent. By default, a dose should be considered to be potent.
Cardinality0...1
Typeboolean
ModifierTrue
SummaryTrue
Comments

Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXA-20 = PA (partial administration)
  • rim: N/A
Immunization.subpotentReason
DefinitionReason why a dose is considered to be subpotent.
Cardinality0...*
TypeCodeableConcept
Binding

The reason why a dose is considered to be subpotent.

ImmunizationSubpotentReason (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: N/A
Immunization.education
DefinitionEducational material presented to the patient (or guardian) at the time of vaccine administration.
Cardinality0...*
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • imm-1: One of documentType or reference SHALL be present
    documentType.exists() or reference.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.education.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
Immunization.education.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.education.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.education.documentType
DefinitionIdentifier of the material presented to the patient.
Cardinality0...1
Typestring
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: OBX-5 : OBX-3 = 69764-9
  • rim: N/A
Immunization.education.reference
DefinitionReference pointer to the educational material given to the patient if the information was on line.
Cardinality0...1
Typeuri
Comments

see http://en.wikipedia.org/wiki/Uniform_resource_identifier

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Immunization.education.publicationDate
DefinitionDate the educational material was published.
Cardinality0...1
TypedateTime
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: OBX-5 : OBX-3 = 29768-9
  • rim: N/A
Immunization.education.presentationDate
DefinitionDate the educational material was given to the patient.
Cardinality0...1
TypedateTime
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: OBX-5 : OBX-3 = 29769-7
  • rim: N/A
Immunization.programEligibility
DefinitionIndicates a patient's eligibility for a funding program.
Cardinality0...*
TypeCodeableConcept
Binding

The patient's eligibility for a vaccation program.

ImmunizationProgramEligibility (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: OBX-5 : OBX-3 = 64994-7
  • rim: N/A
Immunization.fundingSource
DefinitionIndicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered).
Cardinality0...1
TypeCodeableConcept
Binding

The source of funding used to purchase the vaccine administered.

ImmunizationFundingSource (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: N/A
Immunization.reaction
DefinitionCategorical data indicating that an adverse event is associated in time to an immunization.
Cardinality0...*
TypeBackboneElement
Comments

A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: OBX-3
  • rim: Observation[classCode=obs].code
Immunization.reaction.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
Immunization.reaction.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.reaction.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.reaction.date
DefinitionDate of reaction to the immunization.
Cardinality0...1
TypedateTime
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: OBX-14 (ideally this would be reported in an IAM segment, but IAM is not part of the HL7 v2 VXU message - most likely would appear in OBX segments if at all)
  • rim: .effectiveTime
Immunization.reaction.detail
DefinitionDetails of the reaction.
Cardinality0...1
TypeReference(Observation)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • v2: OBX-5
  • rim: .value
Immunization.reaction.reported
DefinitionSelf-reported indicator.
Cardinality0...1
Typeboolean
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: (HL7 v2 doesn't seem to provide for this)
  • rim: .participation[typeCode=INF].role[classCode=PAT] (this syntax for self-reported=true)
Immunization.protocolApplied
DefinitionThe protocol (set of recommendations) being followed by the provider who administered the dose.
Cardinality0...*
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Immunization.protocolApplied.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
Immunization.protocolApplied.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.protocolApplied.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Immunization.protocolApplied.series
DefinitionOne possible path to achieve presumed immunity against a disease - within the context of an authority.
Cardinality0...1
Typestring
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Immunization.protocolApplied.authority
DefinitionIndicates the authority who published the protocol (e.g. ACIP) that is being followed.
Cardinality0...1
TypeReference(Organization)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: N/A
Immunization.protocolApplied.targetDisease
DefinitionThe vaccine preventable disease the dose is being administered against.
Cardinality0...*
TypeCodeableConcept
Binding

The vaccine preventable disease the dose is being administered for.

ImmunizationTargetDiseaseCodes (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: N/A
Immunization.protocolApplied.doseNumber[x]
DefinitionNominal position in a series.
Cardinality1...1
TypepositiveInt
Comments

The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Immunization.protocolApplied.seriesDoses[x]
DefinitionThe recommended number of doses to achieve immunity.
Cardinality0...1
TypepositiveInt
Comments

The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A

Table View

Immunization..
Immunization.extensionExtension..
Immunization.extensionExtension..
Immunization.status..
Immunization.statusReason..
Immunization.vaccineCode..
Immunization.patient..
Immunization.occurrence[x]..
Immunization.manufacturer..
Immunization.lotNumber..
Immunization.site..
Immunization.route..
Immunization.doseQuantity..
Immunization.reasonCode..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Immunization" />
    <version value="2.4.0" />
    <name value="UKCoreImmunization" />
    <title value="UK Core Immunization" />
    <status value="active" />
    <date value="2023-12-12" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [Immunization](https://hl7.org/fhir/R4/Immunization.html)." />
    <purpose value="This profile is intended to cover the recording of current and historical administration of vaccines to individuals across all healthcare disciplines in all care settings and all regions. \n\nThis profile does not support the administration of non-vaccine agents, even those that may have or claim to have immunological effects. While the terms &quot;immunisation&quot; and &quot;vaccination&quot; are not clinically identical, for the purposes of the FHIR profile, the terms are used synonymously." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Immunization" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Immunization" />
    <derivation value="constraint" />
    <differential>
        <element id="Immunization">
            <path value="Immunization" />
            <constraint>
                <key value="ukcore-imm-001" />
                <severity value="error" />
                <human value="If the immunization was not given, then `Immunization.status` value SHALL = &#39;not-done&#39;, and the `Immunization.statusReason` SHALL be populated" />
                <expression value="(status != &#39;not-done&#39;) or (status = &#39;not-done&#39; and statusReason.exists())" />
            </constraint>
        </element>
        <element id="Immunization.extension:parentPresent">
            <path value="Immunization.extension" />
            <sliceName value="parentPresent" />
            <short value="Indicates if a parent was present at an immunisation." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ParentPresent" />
            </type>
        </element>
        <element id="Immunization.extension:vaccinationProcedure">
            <path value="Immunization.extension" />
            <sliceName value="vaccinationProcedure" />
            <short value="Used to hold an immunisation procedure code. \n\nThis extension SHOULD be used when `Immunization.status`=`completed`. \n\nThis relates to the vaccine that was administered (procedure) and SHOULD be a SNOMED CT from `ValueSet-UKCore-VaccinationProcedure`." />
            <type>
                <code value="Extension" />
                <profile value="https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure" />
            </type>
        </element>
        <element id="Immunization.status">
            <path value="Immunization.status" />
            <short value="Indicates the current status of the immunization event." />
            <mustSupport value="true" />
        </element>
        <element id="Immunization.statusReason">
            <path value="Immunization.statusReason" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ReasonImmunizationNotAdministered" />
            </binding>
        </element>
        <element id="Immunization.vaccineCode">
            <path value="Immunization.vaccineCode" />
            <short value="Vaccine that was administered or was to be administered." />
            <mustSupport value="true" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-VaccineCode" />
            </binding>
        </element>
        <element id="Immunization.patient">
            <path value="Immunization.patient" />
            <short value="The patient who either received or did not receive the immunization." />
            <mustSupport value="true" />
        </element>
        <element id="Immunization.occurrence[x]">
            <path value="Immunization.occurrence[x]" />
            <short value="When the vaccine was administered or was to be administered." />
            <mustSupport value="true" />
        </element>
        <element id="Immunization.manufacturer">
            <path value="Immunization.manufacturer" />
            <short value="Name of vaccine manufacturer." />
            <mustSupport value="true" />
        </element>
        <element id="Immunization.lotNumber">
            <path value="Immunization.lotNumber" />
            <short value="Lot number of the vaccine." />
            <mustSupport value="true" />
        </element>
        <element id="Immunization.site">
            <path value="Immunization.site" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ImmunizationAdministrationBodySite" />
            </binding>
        </element>
        <element id="Immunization.route">
            <path value="Immunization.route" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-SubstanceOrProductAdministrationRoute" />
            </binding>
        </element>
        <element id="Immunization.doseQuantity">
            <path value="Immunization.doseQuantity" />
            <short value="&gt;How much of the vaccine was administered." />
            <mustSupport value="true" />
        </element>
        <element id="Immunization.reasonCode">
            <path value="Immunization.reasonCode" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-ImmunizationExplanationReason" />
            </binding>
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-Immunization",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Immunization",
    "version": "2.4.0",
    "name": "UKCoreImmunization",
    "title": "UK Core Immunization",
    "status": "active",
    "date": "2023-12-12",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [Immunization](https://hl7.org/fhir/R4/Immunization.html).",
    "purpose": "This profile is intended to cover the recording of current and historical administration of vaccines to individuals across all healthcare disciplines in all care settings and all regions. \n\nThis profile does not support the administration of non-vaccine agents, even those that may have or claim to have immunological effects. While the terms \"immunisation\" and \"vaccination\" are not clinically identical, for the purposes of the FHIR profile, the terms are used synonymously.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Immunization",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Immunization",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Immunization",
                "path": "Immunization",
                "constraint":  [
                    {
                        "key": "ukcore-imm-001",
                        "severity": "error",
                        "human": "If the immunization was not given, then `Immunization.status` value SHALL = 'not-done', and the `Immunization.statusReason` SHALL be populated",
                        "expression": "(status != 'not-done') or (status = 'not-done' and statusReason.exists())"
                    }
                ]
            },
            {
                "id": "Immunization.extension:parentPresent",
                "path": "Immunization.extension",
                "sliceName": "parentPresent",
                "short": "Indicates if a parent was present at an immunisation.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ParentPresent"
                        ]
                    }
                ]
            },
            {
                "id": "Immunization.extension:vaccinationProcedure",
                "path": "Immunization.extension",
                "sliceName": "vaccinationProcedure",
                "short": "Used to hold an immunisation procedure code. \n\nThis extension SHOULD be used when `Immunization.status`=`completed`. \n\nThis relates to the vaccine that was administered (procedure) and SHOULD be a SNOMED CT from `ValueSet-UKCore-VaccinationProcedure`.",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedure"
                        ]
                    }
                ]
            },
            {
                "id": "Immunization.status",
                "path": "Immunization.status",
                "short": "Indicates the current status of the immunization event.",
                "mustSupport": true
            },
            {
                "id": "Immunization.statusReason",
                "path": "Immunization.statusReason",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-ReasonImmunizationNotAdministered"
                }
            },
            {
                "id": "Immunization.vaccineCode",
                "path": "Immunization.vaccineCode",
                "short": "Vaccine that was administered or was to be administered.",
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-VaccineCode"
                }
            },
            {
                "id": "Immunization.patient",
                "path": "Immunization.patient",
                "short": "The patient who either received or did not receive the immunization.",
                "mustSupport": true
            },
            {
                "id": "Immunization.occurrence[x]",
                "path": "Immunization.occurrence[x]",
                "short": "When the vaccine was administered or was to be administered.",
                "mustSupport": true
            },
            {
                "id": "Immunization.manufacturer",
                "path": "Immunization.manufacturer",
                "short": "Name of vaccine manufacturer.",
                "mustSupport": true
            },
            {
                "id": "Immunization.lotNumber",
                "path": "Immunization.lotNumber",
                "short": "Lot number of the vaccine.",
                "mustSupport": true
            },
            {
                "id": "Immunization.site",
                "path": "Immunization.site",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-ImmunizationAdministrationBodySite"
                }
            },
            {
                "id": "Immunization.route",
                "path": "Immunization.route",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-SubstanceOrProductAdministrationRoute"
                }
            },
            {
                "id": "Immunization.doseQuantity",
                "path": "Immunization.doseQuantity",
                "short": ">How much of the vaccine was administered.",
                "mustSupport": true
            },
            {
                "id": "Immunization.reasonCode",
                "path": "Immunization.reasonCode",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-ImmunizationExplanationReason"
                }
            }
        ]
    }
}

Feedback

Click here to:

Report issue for UKCore-Immunization

Examples

Influenza virus vaccine - An example to illustrate an Influenza virus vaccine.
Example UKCore-Immunization-InfluenzaVaccine

Parent Present - An example to illustrate the ParentPresent extension.
Example UKCore-Extension-ParentPresent

Vaccination Procedure - An example to illustrate the VaccinationProcedure extension, with a vaccination procedure for an administered Influenza virus vaccine.
Example UKCore-Extension-VaccinationProcedure

Vaccination Procedure Covid - An example to illustrate the VaccinationProcedureCovid extension, with a vaccination procedure for the COVID-19 Vaccine Vaxzevria.
Example UKCore-Extension-VaccinationProcedure-COVID

Example Usage Scenarios

The following are example usage scenarios for the UK Core Immunization profile:

  • Query and retrieve an individual’s immunisations (vaccinations)
  • Record or update an individual’s immunisations (vaccinations).

Profile Specific Implementation Guidance:

Mandatory and Must Support Data Elements

The following elements are identified as MustSupport, and it is expected that consumers and suppliers SHALL support these as per the MustSupport Guidance.

ElementReason
Immunization.statusIndicates the current status of the immunization event.
Immunization.vaccineCodeVaccine that was administered or was to be administered.
Immunization.patientThe patient who either received or did not receive the immunization.
Immunization.occurrence[x]When the vaccine was administered or was to be administered.
Immunization.manufacturerName of vaccine manufacturer.
Immunization.lotNumberLot number of the vaccine.
Immunization.doseQuantity>How much of the vaccine was administered.


Extensions

More information about the extensions on the UKCore-Immunization profile can be found using the links below.

ExtensionContextLinkComment
parentPresentImmunization.extensionhttps://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ParentPresentIndicates if a parent was present at an immunisation.
vaccinationProcedureImmunization.extensionhttps://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-VaccinationProcedureUsed to hold an immunisation procedure code.

This extension SHOULD be used when Immunization.status=completed.

This relates to the vaccine that was administered (procedure) and SHOULD be a SNOMED CT from ValueSet-UKCore-VaccinationProcedure.


Bindings (differential)

More information about the bindings to UK Core ValueSets can be found below.

ContextStrengthLink
Immunization.statusReasonpreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-ReasonImmunizationNotAdministered
Immunization.vaccineCodepreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-VaccineCode
Immunization.sitepreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-ImmunizationAdministrationBodySite
Immunization.routepreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-SubstanceOrProductAdministrationRoute
Immunization.reasonCodepreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-ImmunizationExplanationReason

Immunization.extension:vaccinationProcedure preferred ValueSet UKCore-VaccinationProcedure

Constraints (differential)

More information about the constraints on the UKCore-Immunization profile can be found below.

KeySeverityExpressionHuman_Description
ukcore-imm-001error(status != 'not-done') or (status = 'not-done' and statusReason.exists())If the immunization was not given, then `Immunization.status` value SHALL = 'not-done', and the `Immunization.statusReason` SHALL be populated


status

Indicates the current status of the immunisation event.

For a vaccination that has been administered, the status will be completed. This status does not indicate a vaccination course has been completed. When the vaccination has not been administered, the status will be not-done and a Immunization.statusReason SHALL be populated.


vaccineCode

Vaccine that was administered or was to be administered.

This indicates vaccine product administered. This SHOULD be a dm+d code from ValueSet UKCore-VaccineCode. AMPP codes SHOULD NOT be used.

Example of Immunization.vaccineCode usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-AstraZenecaVaccine-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-AstraZenecaVaccine-Example" />
    <status value="completed" />
    <!--  **************snippet start**************  -->
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <!--  **************snippet end**************  -->
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-AstraZenecaVaccine-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20"
}

patient

A reference to the patient who either received or did not receive the immunisation. Where possible, it is expected that the resource being referenced SHOULD conform to Profile UKCore-Patient.

Example of Immunization.patient usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-PatientConformVaccination-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.patient[0].type[0]Patient
Immunization.patient[0].identifier[0].system[0]https://fhir.nhs.uk/Id/nhs-number
Immunization.patient[0].identifier[0].value[0]9912003888
Immunization.occurrence[0]2021-07-20

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-PatientConformVaccination-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <!--   **************snippet start**************   -->
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
        <type value="Patient" />
        <identifier>
            <system value="https://fhir.nhs.uk/Id/nhs-number" />
            <value value="9912003888" />
        </identifier>
    </patient>
    <!--   **************snippet end**************   -->
    <occurrenceDateTime value="2021-07-20" />
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-PatientConformVaccination-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example",
        "type": "Patient",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9912003888"
        }
    },
    "occurrenceDateTime": "2021-07-20"
}

encounter

Where possible, it is expected that the resource being referenced SHOULD conform to Profile UKCore-Encounter.


primarySource

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 recorded.

Set as true when the content of the record is based on information from the person performing the vaccine or who has clinical responsibility for the vaccination, and the system can be considered a primary source of the vaccination event. Set as false when the information has not come directly from people performing the vaccine (e.g. a patient or patient’s carer), and the system should not be treated as a primary source for this record. This is used to help identify and eliminate duplicate records held centrally.


location

The service delivery location where the vaccine administration occurred by reference to the location.

Where possible, it is expected that the resource being referenced SHOULD conform to Profile UKCore-Location.


manufacturer

Name of vaccine manufacturer by reference to the organisation. Where possible, it is expected that the resource being referenced SHOULD conform to Profile UKCore-Organization.

Example of Immunization.manufacturer usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-Manufacturer-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20
Immunization.manufacturer[0].display[0]DREAMLAND Pharmaceuticals Ltd

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-Manufacturer-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
    <!--  **************snippet start**************  -->
    <manufacturer>
        <display value="DREAMLAND Pharmaceuticals Ltd" />
    </manufacturer>
    <!--  **************snippet end**************  -->
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-Manufacturer-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20",
    "manufacturer": {
        "display": "DREAMLAND Pharmaceuticals Ltd"
    }
}

lotNumber

Lot number of the vaccine product.

Where Immunization.status=completed this SHOULD be present.

This should be captured at source ideally via use of automated scanning technology (GS1 GTIN / NTIN standard).

Example of Immunization.lotNumber usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-LotNumber-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20
Immunization.lotNumber[0]R04X

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-LotNumber-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
    <!--  **************snippet start**************  -->
    <lotNumber value="R04X" />
    <!--  **************snippet end**************  -->
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-LotNumber-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20",
    "lotNumber": "R04X"
}

site

Body site where vaccine was administered.

A SNOMED CT concept ID value from UK published reference set “Vaccine body site of administration simple reference set” (1127941000000100) SHOULD be used ValueSet UKCore-ImmunizationAdministrationBodySite.

Example of Immunization.site usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-LeftUpperArmStructure-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20
Immunization.site[0].coding[0].system[0]http://snomed.info/sct
Immunization.site[0].coding[0].code[0]368208006
Immunization.site[0].coding[0].display[0]Left upper arm structure (body structure)

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-LeftUpperArmStructure-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
    <!--  **************snippet start**************  -->
    <site>
        <coding>
            <system value="http://snomed.info/sct" />
            <code value="368208006" />
            <display value="Left upper arm structure (body structure)" />
        </coding>
    </site>
    <!--  **************snippet end**************  -->
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-LeftUpperArmStructure-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20",
    "site": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "368208006",
                "display": "Left upper arm structure (body structure)"
            }
        ]
    }
}

route

The path by which the vaccine product is taken into the body.

A SNOMED CT concept ID value from either of the following SHOULD be used:
UK “ePrescribing route of administration simple reference set (foundation metadata concept)” (999000051000001100) ValueSet UKCore-SubstanceOrProductAdministrationRoute
or:
UK published reference set “Vaccine route of administration simple reference set” (115231000001104).

Example of Immunization.route usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-IntramuscularRoute-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20
Immunization.route[0].coding[0].system[0]http://snomed.info/sct
Immunization.route[0].coding[0].code[0]78421000
Immunization.route[0].coding[0].display[0]Intramuscular route (qualifier value)

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-IntramuscularRoute-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
    <!--  **************snippet start**************  -->
    <route>
        <coding>
            <system value="http://snomed.info/sct" />
            <code value="78421000" />
            <display value="Intramuscular route (qualifier value)" />
        </coding>
    </route>
    <!--  **************snippet end**************  -->
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-IntramuscularRoute-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20",
    "route": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "78421000",
                "display": "Intramuscular route (qualifier value)"
            }
        ]
    }
}

doseQuantity

The quantity of vaccine product that was administered.

By preference, use UCUM units of measure. Examples of when a UCUM unit of measure would be used are “gram” or “milliliter” or “percent”.

Where a UCUM unit of measure is not defined, use a SNOMED CT unit of measure. Examples of when a SNOMED CT unit of measure would typically be used are “tablet”, “capsule” or “ampule”.

Example of Immunization.doseQuantity usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-UnitsOfMeasure-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20
Immunization.doseQuantity[0].value[0]0.5
Immunization.doseQuantity[0].unit[0]milliliter
Immunization.doseQuantity[0].system[0]http://unitsofmeasure.org
Immunization.doseQuantity[0].code[0]ml

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-UnitsOfMeasure-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
    <!--  **************snippet start**************  -->
    <doseQuantity>
        <value value="0.5" />
        <unit value="milliliter" />
        <system value="http://unitsofmeasure.org" />
        <code value="ml" />
    </doseQuantity>
    <!--  **************snippet end**************  -->
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-UnitsOfMeasure-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20",
    "doseQuantity": {
        "value": 0.5,
        "unit": "milliliter",
        "system": "http://unitsofmeasure.org",
        "code": "ml"
    }
}

performer

Indicates who performed the immunisation event by reference. Where possible, it is expected that the resource being referenced SHOULD conform to one of the following UK Core profiles:

Example of Immunization.performer usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-Performer-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20
Immunization.performer[0].actor[0].type[0]Practitioner
Immunization.performer[0].actor[0].identifier[0].system[0]https://fhir.hl7.org.uk/Id/nmc-number
Immunization.performer[0].actor[0].identifier[0].value[0]5566789
Immunization.performer[0].actor[0].display[0]HOLDING, Rafferty
Immunization.performer[1].actor[0].type[0]Organization
Immunization.performer[1].actor[0].identifier[0].system[0]https://fhir.nhs.uk/Id/ods-organization-code
Immunization.performer[1].actor[0].identifier[0].value[0]C4B2A
Immunization.performer[1].actor[0].display[0]ELLAND ROAD STADIUM - COVID VACCINATION CENTRE

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-Performer-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
    <!--  **************snippet start**************  -->
    <performer>
        <actor>
            <type value="Practitioner" />
            <identifier>
                <system value="https://fhir.hl7.org.uk/Id/nmc-number" />
                <value value="5566789" />
            </identifier>
            <display value="HOLDING, Rafferty" />
        </actor>
    </performer>
    <performer>
        <actor>
            <type value="Organization" />
            <identifier>
                <system value="https://fhir.nhs.uk/Id/ods-organization-code" />
                <value value="C4B2A" />
            </identifier>
            <display value="ELLAND ROAD STADIUM - COVID VACCINATION CENTRE" />
        </actor>
    </performer>
    <!--  **************snippet end**************  -->
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-Performer-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20",
    "performer":  [
        {
            "actor": {
                "type": "Practitioner",
                "identifier": {
                    "system": "https://fhir.hl7.org.uk/Id/nmc-number",
                    "value": "5566789"
                },
                "display": "HOLDING, Rafferty"
            }
        },
        {
            "actor": {
                "type": "Organization",
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                    "value": "C4B2A"
                },
                "display": "ELLAND ROAD STADIUM - COVID VACCINATION CENTRE"
            }
        }
    ]
}

reasonReference

Why immunisation occurred by reference to Condition, Observation or DiagnosticReport.

Where possible, it is expected that the resource being referenced SHOULD conform to one of the following UK Core profiles:


protocolApplied

The protocol (set of recommendations) being followed by the provider who administered the dose.

protocolApplied.targetDisease

It is recommended for international/EU interoperability that Immunization.protocolApplied.targetDisease is populated. The SNOMED CT concept SHOULD be from EU COVID-19 Diseases or Vaccine Target Diseases (GPS) - IPS

Disease UK SNOMED self
COVID-19 840539006
Others See "Vaccine Target Diseases (GPS) - IPS"

protocolApplied.doseNumberPositiveInt

Nominal position in a series of vaccines, N.B. This field will not always be reliable, therefore for Covid vaccinations, the vaccination procedure code or situation code SHOULD be used as that includes the dose number.

Example of Immunization.protocolApplied usage:

Table View

Immunization.id[0]UKCore-Immunization-Sn-ProtocolApplied-Example
Immunization.status[0]completed
Immunization.vaccineCode[0].coding[0].system[0]https://dmd.nhs.uk
Immunization.vaccineCode[0].coding[0].code[0]39114911000001105
Immunization.vaccineCode[0].coding[0].display[0]COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)
Immunization.patient[0].reference[0]Patient/UKCore-Patient-RichardSmith-Example
Immunization.occurrence[0]2021-07-20
Immunization.protocolApplied[0].targetDisease[0].coding[0].system[0]http://snomed.info/sct
Immunization.protocolApplied[0].targetDisease[0].coding[0].code[0]840539006
Immunization.protocolApplied[0].targetDisease[0].coding[0].display[0]COVID-19
Immunization.protocolApplied[0].doseNumber[0]1

Tree View

Immunization

XML View

<Immunization xmlns="http://hl7.org/fhir">
    <id value="UKCore-Immunization-Sn-ProtocolApplied-Example" />
    <status value="completed" />
    <vaccineCode>
        <coding>
            <system value="https://dmd.nhs.uk" />
            <code value="39114911000001105" />
            <display value="COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)" />
        </coding>
    </vaccineCode>
    <patient>
        <reference value="Patient/UKCore-Patient-RichardSmith-Example" />
    </patient>
    <occurrenceDateTime value="2021-07-20" />
    <!--  **************snippet start**************  -->
    <protocolApplied>
        <targetDisease>
            <coding>
                <system value="http://snomed.info/sct" />
                <code value="840539006" />
                <display value="COVID-19" />
            </coding>
        </targetDisease>
        <doseNumberPositiveInt value="1" />
    </protocolApplied>
    <!--  **************snippet end**************  -->
</Immunization>

JSON View

{
    "resourceType": "Immunization",
    "id": "UKCore-Immunization-Sn-ProtocolApplied-Example",
    "status": "completed",
    "vaccineCode": {
        "coding":  [
            {
                "system": "https://dmd.nhs.uk",
                "code": "39114911000001105",
                "display": "COVID-19 Vaccine Vaxzevria (ChAdOx1 S [recombinant]) not less than 2.5x100,000,000 infectious units/0.5ml dose suspension for injection multidose vials (AstraZeneca UK Ltd)"
            }
        ]
    },
    "patient": {
        "reference": "Patient/UKCore-Patient-RichardSmith-Example"
    },
    "occurrenceDateTime": "2021-07-20",
    "protocolApplied":  [
        {
            "targetDisease":  [
                {
                    "coding":  [
                        {
                            "system": "http://snomed.info/sct",
                            "code": "840539006",
                            "display": "COVID-19"
                        }
                    ]
                }
            ],
            "doseNumberPositiveInt": 1
        }
    ]
}