HL7 FHIR® US Core Implementation Guide STU 3

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

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

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.

Mandatory Search Parameters:

The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHALL be supported. the modifiers, comparators, chains and composites that are listed as optional SHOULD 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 parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites 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)