HL7 FHIR® US Core Implementation Guide STU3 Release 3.1.0

This page is part of the US Core (v3.1.0: STU3) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions

StructureDefinition-us-core-immunization

This profile sets minimum expectations for the Immunization resource to record, fetch and search immunization history associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.

Example Usage Scenarios:

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

  • Query for immunizations belonging to a Patient
  • Record or update immunizations belonging to a Patient

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each Immunization must have:

  1. a status*
  2. a vaccine code that identifies the kind of vaccine administered
  3. a date the vaccine was administered
  4. a patient

Each Immunization must support:

  1. a statusReason if the vaccine wasn’t given

Profile specific implementation guidance:

  • *Use the status code: not-done to represent that an immunization was not given.
  • NDC codes as a translational data element: Based upon the 2015 Edition Certification Requirements, CVX vaccine codes are required and the NDC vaccine codes SHOULD be supported as translations to them. A NDC to CVX ConceptMap is provided and is based upon the CDC’s CVX crosswalk table. A translation is illustrated in the example below.

Examples

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization

Published on Mon Aug 26 00:00:00 AEST 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on Immunization


Immunization

Summary of the Mandatory Requirements

  1. A code in Immunization.status with a required binding to Immunization Status Codes
  2. A CodeableConcept in Immunization.vaccineCode with an extensible binding to US Core Vaccine Administered Value Set (CVX) with the following constraints: SHOULD have a translation to the NDC value set
  3. A Patient Reference in Immunization.patient
  4. A dateTime in Immunization.occurrence[x]
  5. A boolean in Immunization.primarySource

Summary of the Must Support Requirements

  1. A CodeableConcept in Immunization.statusReason with an example binding to Immunization Status Reason Codes

Summary of Constraints

  1. SHOULD have a translation to the NDC value set
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*Immunization event information
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierBusiness identifier
... status ?!SΣI1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason SI0..1CodeableConceptReason not done
Binding: ImmunizationStatusReasonCodes (example)
... vaccineCode SΣI1..1CodeableConceptVaccine Product Type (bind to CVX)
Binding: US Core Vaccine Administered Value Set (CVX) (extensible)
us-core-1: SHOULD have a translation to the NDC value set
... patient SΣI1..1Reference(US Core Patient Profile)Who was immunized
... encounter I0..1Reference(Encounter)Encounter immunization was part of
... occurrence[x] SΣI1..1Vaccine administration date
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded I0..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource SΣI1..1booleanIndicates context the data was recorded in
... reportOrigin I0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example)
... location I0..1Reference(Location)Where immunization occurred
... manufacturer I0..1Reference(Organization)Vaccine manufacturer
... lotNumber I0..1stringVaccine lot number
... expirationDate I0..1dateVaccine expiration date
... site I0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route I0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity I0..1SimpleQuantityAmount of vaccine administered
... performer ΣI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function ΣI0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible)
.... actor ΣI1..1Reference(Practitioner | PractitionerRole | Organization)Individual or organization who was performing
... note ΣI0..*AnnotationAdditional immunization notes
... reasonCode I0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example)
... reasonReference I0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!ΣI0..1booleanDose potency
... subpotentReason I0..*CodeableConceptReason for being subpotent
Binding: ImmunizationSubpotentReason (example)
... education I0..*BackboneElementEducational material presented to patient
imm-1: One of documentType or reference SHALL be present
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType I0..1stringEducational material document identifier
.... reference I0..1uriEducational material reference pointer
.... publicationDate I0..1dateTimeEducational material publication date
.... presentationDate I0..1dateTimeEducational material presentation date
... programEligibility I0..*CodeableConceptPatient eligibility for a vaccination program
Binding: ImmunizationProgramEligibility (example)
... fundingSource I0..1CodeableConceptFunding source for the vaccine
Binding: ImmunizationFundingSource (example)
... reaction I0..*BackboneElementDetails of a reaction that follows immunization
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date I0..1dateTimeWhen reaction started
.... detail I0..1Reference(Observation)Additional information on reaction
.... reported I0..1booleanIndicates self-reported reaction
... protocolApplied I0..*BackboneElementProtocol followed by the provider
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series I0..1stringName of vaccine series
.... authority I0..1Reference(Organization)Who is responsible for publishing the recommendations
.... targetDisease I0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber[x] I1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] I0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format

Immunization

Summary of the Mandatory Requirements

  1. A code in Immunization.status with a required binding to Immunization Status Codes
  2. A CodeableConcept in Immunization.vaccineCode with an extensible binding to US Core Vaccine Administered Value Set (CVX) with the following constraints: SHOULD have a translation to the NDC value set
  3. A Patient Reference in Immunization.patient
  4. A dateTime in Immunization.occurrence[x]
  5. A boolean in Immunization.primarySource

Summary of the Must Support Requirements

  1. A CodeableConcept in Immunization.statusReason with an example binding to Immunization Status Reason Codes

Summary of Constraints

  1. SHOULD have a translation to the NDC value set

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*Immunization event information
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierBusiness identifier
... status ?!SΣI1..1codecompleted | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required)
... statusReason SI0..1CodeableConceptReason not done
Binding: ImmunizationStatusReasonCodes (example)
... vaccineCode SΣI1..1CodeableConceptVaccine Product Type (bind to CVX)
Binding: US Core Vaccine Administered Value Set (CVX) (extensible)
us-core-1: SHOULD have a translation to the NDC value set
... patient SΣI1..1Reference(US Core Patient Profile)Who was immunized
... encounter I0..1Reference(Encounter)Encounter immunization was part of
... occurrence[x] SΣI1..1Vaccine administration date
.... occurrenceDateTimedateTime
.... occurrenceStringstring
... recorded I0..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource SΣI1..1booleanIndicates context the data was recorded in
... reportOrigin I0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example)
... location I0..1Reference(Location)Where immunization occurred
... manufacturer I0..1Reference(Organization)Vaccine manufacturer
... lotNumber I0..1stringVaccine lot number
... expirationDate I0..1dateVaccine expiration date
... site I0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example)
... route I0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example)
... doseQuantity I0..1SimpleQuantityAmount of vaccine administered
... performer ΣI0..*BackboneElementWho performed event
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function ΣI0..1CodeableConceptWhat type of performance was done
Binding: ImmunizationFunctionCodes (extensible)
.... actor ΣI1..1Reference(Practitioner | PractitionerRole | Organization)Individual or organization who was performing
... note ΣI0..*AnnotationAdditional immunization notes
... reasonCode I0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example)
... reasonReference I0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!ΣI0..1booleanDose potency
... subpotentReason I0..*CodeableConceptReason for being subpotent
Binding: ImmunizationSubpotentReason (example)
... education I0..*BackboneElementEducational material presented to patient
imm-1: One of documentType or reference SHALL be present
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... documentType I0..1stringEducational material document identifier
.... reference I0..1uriEducational material reference pointer
.... publicationDate I0..1dateTimeEducational material publication date
.... presentationDate I0..1dateTimeEducational material presentation date
... programEligibility I0..*CodeableConceptPatient eligibility for a vaccination program
Binding: ImmunizationProgramEligibility (example)
... fundingSource I0..1CodeableConceptFunding source for the vaccine
Binding: ImmunizationFundingSource (example)
... reaction I0..*BackboneElementDetails of a reaction that follows immunization
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... date I0..1dateTimeWhen reaction started
.... detail I0..1Reference(Observation)Additional information on reaction
.... reported I0..1booleanIndicates self-reported reaction
... protocolApplied I0..*BackboneElementProtocol followed by the provider
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... series I0..1stringName of vaccine series
.... authority I0..1Reference(Organization)Who is responsible for publishing the recommendations
.... targetDisease I0..*CodeableConceptVaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example)
.... doseNumber[x] I1..1Dose number within series
..... doseNumberPositiveIntpositiveInt
..... doseNumberStringstring
.... seriesDoses[x] I0..1Recommended number of doses for immunity
..... seriesDosesPositiveIntpositiveInt
..... seriesDosesStringstring

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron


Quick Start

Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

  • See the General Guidance section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported.:

  1. SHALL support searching for all immunizations for a patient using the patient search parameter:

    GET [base]/Immunization?patient=[reference]

    Example:

    1. GET [base]/Immunization?patient=1137192

    Implementation Notes: Fetches a bundle of all Immunization resources for the specified patient (how to search by reference)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported.:

  1. SHOULD support searching using the combination of the patient and date search parameters:
    • including support for these date comparators: gt,lt,ge,le
    • including optional support for composite AND search on date (e.g.date=[date]&date=[date]]&...)

    GET [base]/Immunization?patient=[reference]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/Immunization?patient=1137192&date=ge2019-01-14

    Implementation Notes: Fetches a bundle of all Immunization resources for the specified patient and date (how to search by date and how to search by reference)

  2. SHOULD support searching using the combination of the patient and status search parameters:

    GET [base]/Immunization?patient=[reference]&status={[system]}|[code]

    Example:

    1. GET [base]/Immunization?patient=1137192&status=completed

    Implementation Notes: Fetches a bundle of all Immunization resources for the specified patient and status (how to search by reference and how to search by date)