SMART Health Cards: Vaccination & Testing Implementation Guide
0.5.0-rc - ci-build

SMART Health Cards: Vaccination & Testing Implementation Guide, published by vci.org. This is not an authorized publication; it is the continuous build for version 0.5.0-rc). This version is based on the current content of https://github.com/dvci/vaccine-credential-ig/ and changes regularly. See the Directory of published versions

Resource Profile: Immunization Profile - Allowable Data

Defining URL:http://hl7.org/fhir/uv/smarthealthcards-vaccination/StructureDefinition/vaccination-credential-immunization
Version:0.5.0-rc
Name:VaccinationCredentialImmunization
Title:Immunization Profile - Allowable Data
Status:Active as of 2021-05-15T19:35:22+00:00
Definition:

Defines a profile representing a vaccination for a SMART Health Card.

Publisher:vci.org
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/uv/smarthealthcards-vaccination/StructureDefinition/vaccination-credential-immunization

Usage

Scope and terminology

An Immunization resource conforming to this profile SHALL be used to describe a single vaccine given to a patient.

For vaccinations that require multiple doses of a vaccine (e.g., the mRNA-based COVID-19 vaccines that have a two-dose series), a separate Immunization resource SHALL be provided for each vaccine given in the series.

Note that:

While the terms “immunization” and “vaccination” are not clinically identical, for the purposes of the FHIR resources, the terms are used synonymously. (source)

Identifying vaccines

The vaccineCode element is used to identify the vaccine given to the patient.

Implementers SHALL use one of the following code systems for identifying vaccinations in the vaccineCode element:


Code system Value set Example COVID-19: Specify manufacturer?
GTIN: https://www.gs1.org/gtin VaccineProductGTIN 380777273990 (Moderna COVID-19 vaccination, NDC 80777-273) No
CVX: http://hl7.org/fhir/sid/cvx VaccineProductCVX 207 (“COVID-19, mRNA, LNP-S, PF, 100 mcg/0.5 mL dose”) No (optional for other diseases)
AIR* Australian Immunisation Register Vaccine COVAST (“COVID-19 Vaccine AstraZeneca”) No
SNOMED CT: http://snomed.info/sct VaccineTypeSNOMED 1119349007 (“Severe acute respiratory syndrome coronavirus 2 mRNA only vaccine product”) Yes (required)†
ICD-11: http://id.who.int/icd11/mms VaccineTargetICD11 XM0GQ8 (“COVID-19 vaccine, RNA based) Yes (required)
ATC/DDD: https://www.whocc.no/atc_ddd_index/ VaccineTargetATC J07BX03 (“covid-19 vaccines”) Yes (required)

* The URI for AIR is https://www.humanservices.gov.au/organisations/health-professionals/enablers/air-vaccine-code-formats.

† The UK edition of SNOMED CT includes codes for COVID-19 vaccines that identify specific vaccine products. Children of 39330711000001103, such as 39326811000001106 (“Generic COVID-19 mRNA (nucleoside modified) Vaccine Moderna 0.1mg/0.5mL dose dispersion for injection multidose vials (product)”), can therefore be used without separately specifying the manufacturer as long as the Fully Specified Name includes the manufacturer of the vaccine.


Some additional information about the table above:

  • A code system defines a set of “codes” and their mappings onto specific meanings. For example, the CVX code system includes the code 207, which is mapped to the meaning “COVID-19, mRNA, LNP-S, PF, 100 mcg/0.5 mL dose”. Using a code system helps to ensure implementers represent a given concept in a consistent way that other implementers can understand.
  • A value set defines a group of codes that can be used within a specific element. For example, we define a value set of SNOMED-CT codes for vaccine products for use in the vaccineCode element. FHIR allows an element to be “bound” to a value set, meaning that the contents of that element must come from the value set (for a “required binding”) or should come form the value set (for a “preferred binding”).
  • Codes from multiple code systems may be used in vaccineCode. While these codes all generally identify vaccines, they may do so at different levels of granularity. For example, some codes may just identify the target disease and type of vaccine. Others may identify specific vaccine products. The table above is sorted roughly from most to least granular.

Issuers MAY include multiple codes within vaccineCode ONLY IF they believe the additional information is helpful for other actors. For example, an Issuer may be targeting a Verifier that prefers SNOMED, but the Issuer also wishes to provide manufacturer information via the GTIN. In this case, the following would conform:

...
"vaccineCode": {
  "coding": [
    {
      "system": "http://snomed.info/sct",
      "code": "1119349007"
    },
    {
      "system": "https://www.gs1.org/gtin",
      "code": "380777273990"
    }
  ]
},
...

When using multiple codes, the codes SHALL NOT contradict each other. More information on conformance expectations for multiple codes in a CodeableConcept is available here, and excerpted below:

More than one code may be used in CodeableConcept. The concept may be coded multiple times in different code systems…. Each coding (also referred to as a ‘translation’) is a representation of the concept as described above and may have slightly different granularity due to the differences in the definitions of the underlying codes. There is no meaning associated with the ordering of coding within a CodeableConcept.

However, as described above, for data minimization reasons, Issuers SHOULD typically include ONLY a single code that is the most granular (i.e., includes the greatest level of detail) of the options available in their system UNLESS they believe another actor may benefit from the additional code. Typically at most two codes will be included in vaccineCode: a less granular code paired with a GTIN code to identify manufacturer as described below.

Verifiers SHALL be able to meaningfully process and interpret codes from ALL of the systems listed above.

Support for additional code systems

Implementers may request support for an additional code system by opening a new GitHub issue.

Vaccine manufacturer

There are two approaches for identifying vaccine manufacturer that are supported by this IG:

  1. Include GTIN in vaccineCode (preferred)
  2. Populate manufacturer.identifier (fallback)

Adding a GTIN to vaccineCode is preferred because this is less verbose than using manufacturer.identifier, and because manufacturer.identifier is not a CodeableConcept. This means that it cannot be bound to a value set like vaccineCode.

However, if populating manufacturer.identifier, Issuers SHALL identify a code system URI in system and use a code from that code system in value. Specifically, Issuers SHALL use a code from one of the code systems below in manufacturer.identifier.value:

Code system Example
MVX: http://hl7.org/fhir/sid/mvx MOD (Moderna)
GLN: https://www.gs1.org/gln 0380777000008 (Moderna)

For example, to identify Moderna, either of the following may be used:

  • MVX

      ...
      "manufacturer": {
        "identifier": {
          "system": "http://hl7.org/fhir/sid/mvx",
          "value": "MOD"
        }
      }
      ...
    
  • GLN

      ...
      "manufacturer": {
        "identifier": {
          "system": "https://www.gs1.org/gln",
          "value": "0380777000008"
        }
      }
      ...
    

Verifiers SHALL be able to meaningfully process and interpret codes from ALL of the systems listed above.

When should vaccine manufacturer be provided?

For COVID-19: If vaccineCode contains a code from a code system with No in the “COVID-19: Specify manufacturer?” column in the table above, Issuers SHALL NOT separately provide manufacturer. Otherwise, if vaccineCode contains a code from a code system with Yes (optional) in the “COVID-19: Specify manufacturer?” column, Issuers MAY separately provide manufacturer. Otherwise, Issuers SHALL separately provide manufacturer using one of the approaches described above. (Note the exception for some UK SNOMED CT codes as described with the † with the above table.)

This is necessary to provide sufficient information for Verifiers to assess immunity based on the vaccination data in the SMART Health Cards. For example, the Pfizer and Moderna mRNA COVID-19 vaccines share the same SNOMED code (1119349007) but have different timing for the second dose; Verifiers may wish to know if two doses were administered with the correct timing and confirm that they were both from the same manufacturer. Another example: there is a single ATC/DDD code (J07BX03) for all COVID-19 vaccines; this is not sufficient information for Verifiers to assess immunity because some vaccines require multiple doses and some do not.

For other diseases: If vaccineCode contains a GTIN, Issuers SHALL NOT separately provide manufacturer. Otherwise, Issuers SHOULD provide the manufacturer if they believe this information could be necessary or useful for Verifiers.

For example, if there are multiple vaccines for a specific disease with different numbers of doses, different schedules for doses, or meaningful differences in effectiveness, Issuers SHOULD provide manufacturer using one of the approaches described above.

Note manufacturer and lot number may be recorded together in vaccine records. To conform with this IG, manufacturer SHALL NOT appear in the lotNumber element; instead, Issuers SHALL apply the above conformance criteria to determine when and how manufacturer can be identified.

CVX and MVX codes

When vaccine and manufacturer are provided using US-centric terminology (CVX and MVX, respectively) for COVID-19 vaccinations, CDC provides a list that includes “Sale Proprietary Name” (e.g., Moderna COVID-19 Vaccine). The “Sale Proprietary Name” or other trade name SHALL NOT be included in FHIR resources, but MAY be used by actors when producing human-readable representations of these resources.

Note that as of May 2021, CVX implicitly identifies specific vaccine products and manufacturers only for COVID-19. For other diseases, CVX typically identifies just the target disease and vaccine type. Issuers that only populate vaccineCode with a CVX code therefore SHALL NOT populate a manufacturer for COVID-19 vaccinations UNLESS they believe this information is important for Verifiers. Issuers using CVX MAY populate a manufacturer for non-COVID-19 vaccinations.

Universal terminology: GTIN and GLN

In addition to the US-centric CVX and MVX code systems, this IG supports GTIN for identifying vaccine products, and GLN for identifying manufacturers. GTIN and GLN are international standards governed by GS1 for identifying products and their manufacturers. Note GTINs may differ depending on the packaging of a product and country of sale, so there may be multiple GTINs assigned to the same vaccine product. (Note that for COVID-19, EU member states as well as Norway and Iceland agreed to use the same GTIN for each COVID-19 vaccine product, but this is not typically the case.)

For example, the following GTINs are assigned to the Janssen (Johnson & Johnson) COVID-19 vaccine:

00359676580157
05413868119794
05413868119800
05413868119817
05413868119824
05413868119831
05413868119893
05413868119930
05413868119947
05413868119954
05413868119961
05413868119978
05413868119985
05413868120110
05413868120349
05413868120356

The manufacturer can be looked up from a GTIN using a search tool like this one. For example, the GTIN 00359676580157 is associated with Janssen Products LP, in Piscataway, New Jersey, USA (GLN = 0359676000006).

A “company prefix” appears at the beginning of each GTIN, and ranges of these prefixes are controlled by the GS1 offices in specific countries. For example, the 035 prefix in 00359676580157 means the code was assigned by GS1 US. The 541 prefix in the other GTINs listed above means the GTIN is assigned by GS1 Belgium & Luxembourg.

In the US, the GTIN for pharmaceuticals is derived from the National Drug Code. Because the example above (00359676580157) is a US product, the NDC can be extracted:

GTIN 00359676580157
 NDC    5967658015

The NDC of 59676-580-15 corresponds to a carton of 10 multi-dose vials of the Janssen COVID-19 vaccine.

For Verifiers, the method for identifying the vaccine product associated with a specific GTIN may differ depending on the associated GS1 office and locale. For example:

Some locales may not have a GTIN lookup tool for pharmaceuticals or vaccines. In these cases, it may be necessary to contact the manufacturer of the vaccine to determine the canonical list of GTINs used to represent a given vaccine product. Note that even if product-level GTIN lookup is not available from a central database, the manufacturer associated with a given GTIN can be looked up using a search tool like this one.

Universal terminology: SNOMED CT

This IG also supports the use of SNOMED CT for identifying vaccines. Note that some of the SNOMED CT codes that are part of this value set expansion, including the COVID-19-related SNOMED CT codes, may be used under the a Creative Commons Attribution 4.0 International License as part of the SNOMED Global Patient Set. Please refer to https://gps.snomed.org to determine which specific SNOMED CT codes may be used under this license.

Conformance for status and statusReason

The status element indicates if a given Immunization resource represents a completed vaccination, or if the vaccination was not completed for some reason.

Issuers SHALL only produce resources conforming to this profile IF status has the value completed, which is reflected in the profile by fixing the value of status to completed. Note that status is required rather than being omitted entirely due to inheriting 1..1 cardinality from the Immunization resource, along with an Is-Modifier flag. This profile adds the MustSupport flag indicating Verifiers SHALL meaningfully process this element as described on the Conformance page, which is important in case a non-conforming resource is provided that has status set to a value other than completed.

The statusReason element is disallowed (0..0 cardinality) because it is not meaningful when status is completed.

Why protocolApplied is not allowed

The protocolApplied element is set to 0..0 cardinality because it reflects the provider’s intent, rather than being an authoritative source of information about the dose number and number of doses in the series. Including this element could lead to confusion with verifiers who do not recognize this distinction.

Instead, verifiers should use the presence and timestamps of multiple doses along with vaccineCode to make their own determination about whether or not an Immunization resource represents a valid dose of the vaccine and, if applicable, completion of a series.

Note This is an “allowable data” profile. The corresponding “data minimization” profile is here.

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Immunization

Summary

Mandatory: 3 elements (8 nested mandatory elements)
Must-Support: 16 elements
Prohibited: 5 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Immunization.vaccineCode.coding is sliced based on the value of value:system (Closed)
  • The element Immunization.occurrence[x] is sliced based on the value of type:$this

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*ImmunizationImmunization event information
... id 0..1stringShould not be populated
... meta
.... security S0..1CodingLimited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
... status S1..1codeWhether or not the vaccination was completed
Required Pattern: completed
... vaccineCode S1..1CodeableConceptCodes identifying the vaccine product administered
.... coding S1..*(Slice Definition)Code defined by a terminology system
Slice: Unordered, Closed by value:system
..... coding:cvx 0..1CodingCVX code identifying the administered vaccine product
Binding: Vaccine product: CVX (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: http://hl7.org/fhir/sid/cvx
..... coding:gtin 0..1CodingGTIN code identifying the administered vaccine product
Binding: Vaccine product: GTIN (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: https://www.gs1.org/gtin
..... coding:snomed 0..1CodingSNOMED CT code identifying the administered vaccine product
Binding: Vaccine type: SNOMED CT (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: http://snomed.info/sct
..... coding:icd11 0..1CodingICD11 code identifying the administered vaccine product
Binding: Vaccine target: ICD-11 (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: http://id.who.int/icd11/mms
..... coding:air 0..1CodingAustralian Immunisation Register Vaccine code identifying the administered vaccine product
Binding: https://healthterminologies.gov.au/fhir/ValueSet/australian-immunisation-register-vaccine-1 (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: https://www.humanservices.gov.au/organisations/health-professionals/enablers/air-vaccine-code-formats
... patient S1..1Reference(Patient Profile - Allowable Data)Who was immunized
.... reference 1..1stringThis SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
.... type 0..0
.... identifier 0..0
.... display 0..0
... occurrence[x] S1..1(Slice Definition)Vaccine administration date
Slice: Unordered, Open by type:$this
... occurrenceDateTime SI1..1dateTimeVaccine administration date
vc-date-invariant: All timestamps SHOULD be represented as Dates (YYYY-MM-DD only).
... primarySource 0..1booleanInformation in this record from person who administered vaccine?
... manufacturer S0..1Reference(Organization)Vaccine manufacturer
.... identifier S0..1IdentifierOnly populate when vaccine type is not provided in vaccineCode
..... system SI1..1uriCode identifying vaccine manufacturer
shall-use-known-vaccine-manufacturer-code-system: SHALL use a known code system for identifying vaccine manufacturers
..... value S1..1stringThe value that is unique
... lotNumber SI0..1stringString representing lot number like `0123L45A`
vc-should-be-under-20-chars: Length SHOULD be <20 for data minimization.
vc-should-not-include-string-lot: lotNumber SHOULD NOT include `Lot #`, `Lot Number`, etc.
... performer S0..1BackboneElementWho performed event
.... actor S1..1Reference(Organization)Organization which was responsible for vaccine administration.
..... display SI1..1stringShort, human-readable text representation of the organization.
vc-should-be-under-30-chars: Length SHOULD be <30 for data minimization.
... isSubpotent SI0..1booleanSet to `true` if dose is subpotent; omit otherwise
vc-shall-be-true-if-populated-invariant: Shall be `true` if populated
... reaction
.... detail 0..1Reference(Vaccine Reaction Observation Profile - Allowable Data)Additional information on reaction
... protocolApplied 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*ImmunizationImmunization event information
... id Σ0..1stringShould not be populated
... meta Σ0..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... profile Σ0..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security SΣ0..1CodingLimited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
.... tag Σ0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... 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: A human language.

... 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..1codeWhether or not the vaccination was completed
Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.


Required Pattern: completed
... vaccineCode SΣ1..1CodeableConceptCodes identifying the vaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ1..*(Slice Definition)Code defined by a terminology system
Slice: Unordered, Closed by value:system
..... coding:cvx Σ0..1CodingCVX code identifying the administered vaccine product
Binding: Vaccine product: CVX (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: http://hl7.org/fhir/sid/cvx
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:gtin Σ0..1CodingGTIN code identifying the administered vaccine product
Binding: Vaccine product: GTIN (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: https://www.gs1.org/gtin
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:snomed Σ0..1CodingSNOMED CT code identifying the administered vaccine product
Binding: Vaccine type: SNOMED CT (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: http://snomed.info/sct
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:icd11 Σ0..1CodingICD11 code identifying the administered vaccine product
Binding: Vaccine target: ICD-11 (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: http://id.who.int/icd11/mms
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:air Σ0..1CodingAustralian Immunisation Register Vaccine code identifying the administered vaccine product
Binding: https://healthterminologies.gov.au/fhir/ValueSet/australian-immunisation-register-vaccine-1 (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: https://www.humanservices.gov.au/organisations/health-professionals/enablers/air-vaccine-code-formats
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... patient SΣ1..1Reference(Patient Profile - Allowable Data)Who was immunized
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣI1..1stringThis SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
... encounter 0..1Reference(Encounter)Encounter immunization was part of
... occurrence[x] SΣ1..1(Slice Definition)Vaccine administration date
Slice: Unordered, Closed by type:$this
.... occurrence[x]:occurrenceDateTime SΣI1..1dateTimeVaccine administration date
vc-date-invariant: All timestamps SHOULD be represented as Dates (YYYY-MM-DD only).
... recorded 0..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource Σ0..1booleanInformation in this record from person who administered vaccine?
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example): The source of the data for a record which is not from a primary source.

... location 0..1Reference(Location)Where immunization occurred
... manufacturer S0..1Reference(Organization)Vaccine manufacturer
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣI0..1stringLiteral reference, Relative, internal or absolute URL
.... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier SΣ0..1IdentifierOnly populate when vaccine type is not provided in vaccineCode
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system SΣI1..1uriCode identifying vaccine manufacturer
shall-use-known-vaccine-manufacturer-code-system: SHALL use a known code system for identifying vaccine manufacturers
Example General: http://www.acme.com/identifiers/patient
..... value SΣ1..1stringThe value that is unique
Example General: 123456
..... period Σ0..1PeriodTime period when id is/was valid for use
..... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
.... display Σ0..1stringText alternative for the resource
... lotNumber SI0..1stringString representing lot number like `0123L45A`
vc-should-be-under-20-chars: Length SHOULD be <20 for data minimization.
vc-should-not-include-string-lot: lotNumber SHOULD NOT include `Lot #`, `Lot Number`, etc.
... expirationDate 0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example): The site at which the vaccine was administered.

... route 0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example): The route by which the vaccine was administered.

... doseQuantity 0..1SimpleQuantityAmount of vaccine administered
... performer SΣ0..1BackboneElementWho 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): The role a practitioner or organization plays in the immunization event.

.... actor SΣ1..1Reference(Organization)Organization which was responsible for vaccine administration.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... reference ΣI0..1stringLiteral reference, Relative, internal or absolute URL
..... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

..... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
..... display SΣI1..1stringShort, human-readable text representation of the organization.
vc-should-be-under-30-chars: Length SHOULD be <30 for data minimization.
... note Σ0..*AnnotationAdditional immunization notes
... reasonCode 0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example): The reason why a vaccine was administered.


... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!SΣI0..1booleanSet to `true` if dose is subpotent; omit otherwise
vc-shall-be-true-if-populated-invariant: Shall be `true` if populated
... subpotentReason 0..*CodeableConceptReason for being subpotent
Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.


... 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): The patient's eligibility for a vaccation program.


... fundingSource 0..1CodeableConceptFunding source for the vaccine
Binding: ImmunizationFundingSource (example): The source of funding used to purchase the vaccine administered.

... reaction 0..*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(Vaccine Reaction Observation Profile - Allowable Data)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*ImmunizationImmunization event information
... meta Σ0..1MetaMetadata about the resource
.... security Σ0..1CodingLimited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
... status ?!Σ1..1codeWhether or not the vaccination was completed
Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.


Required Pattern: completed
... vaccineCode Σ1..1CodeableConceptCodes identifying the vaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.

.... coding Σ1..*(Slice Definition)Code defined by a terminology system
Slice: Unordered, Closed by value:system
... occurrence[x] Σ1..1(Slice Definition)Vaccine administration date
Slice: Unordered, Closed by type:$this
.... occurrence[x]:occurrenceDateTime ΣI1..1dateTimeVaccine administration date
vc-date-invariant: All timestamps SHOULD be represented as Dates (YYYY-MM-DD only).
... manufacturer 0..1Reference(Organization)Vaccine manufacturer
.... identifier Σ0..1IdentifierOnly populate when vaccine type is not provided in vaccineCode
..... system ΣI1..1uriCode identifying vaccine manufacturer
shall-use-known-vaccine-manufacturer-code-system: SHALL use a known code system for identifying vaccine manufacturers
..... value Σ1..1stringThe value that is unique
... lotNumber I0..1stringString representing lot number like `0123L45A`
vc-should-be-under-20-chars: Length SHOULD be <20 for data minimization.
vc-should-not-include-string-lot: lotNumber SHOULD NOT include `Lot #`, `Lot Number`, etc.
... performer Σ0..1BackboneElementWho performed event
.... actor Σ1..1Reference(Organization)Organization which was responsible for vaccine administration.
..... display ΣI1..1stringShort, human-readable text representation of the organization.
vc-should-be-under-30-chars: Length SHOULD be <30 for data minimization.
... isSubpotent ?!ΣI0..1booleanSet to `true` if dose is subpotent; omit otherwise
vc-shall-be-true-if-populated-invariant: Shall be `true` if populated

doco Documentation for this format

This structure is derived from Immunization

Summary

Mandatory: 3 elements (8 nested mandatory elements)
Must-Support: 16 elements
Prohibited: 5 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Immunization.vaccineCode.coding is sliced based on the value of value:system (Closed)
  • The element Immunization.occurrence[x] is sliced based on the value of type:$this

Differential View

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*ImmunizationImmunization event information
... id 0..1stringShould not be populated
... meta
.... security S0..1CodingLimited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
... status S1..1codeWhether or not the vaccination was completed
Required Pattern: completed
... vaccineCode S1..1CodeableConceptCodes identifying the vaccine product administered
.... coding S1..*(Slice Definition)Code defined by a terminology system
Slice: Unordered, Closed by value:system
..... coding:cvx 0..1CodingCVX code identifying the administered vaccine product
Binding: Vaccine product: CVX (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: http://hl7.org/fhir/sid/cvx
..... coding:gtin 0..1CodingGTIN code identifying the administered vaccine product
Binding: Vaccine product: GTIN (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: https://www.gs1.org/gtin
..... coding:snomed 0..1CodingSNOMED CT code identifying the administered vaccine product
Binding: Vaccine type: SNOMED CT (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: http://snomed.info/sct
..... coding:icd11 0..1CodingICD11 code identifying the administered vaccine product
Binding: Vaccine target: ICD-11 (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: http://id.who.int/icd11/mms
..... coding:air 0..1CodingAustralian Immunisation Register Vaccine code identifying the administered vaccine product
Binding: https://healthterminologies.gov.au/fhir/ValueSet/australian-immunisation-register-vaccine-1 (required)
...... system 1..1uriIdentity of the terminology system
Required Pattern: https://www.humanservices.gov.au/organisations/health-professionals/enablers/air-vaccine-code-formats
... patient S1..1Reference(Patient Profile - Allowable Data)Who was immunized
.... reference 1..1stringThis SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
.... type 0..0
.... identifier 0..0
.... display 0..0
... occurrence[x] S1..1(Slice Definition)Vaccine administration date
Slice: Unordered, Open by type:$this
... occurrenceDateTime SI1..1dateTimeVaccine administration date
vc-date-invariant: All timestamps SHOULD be represented as Dates (YYYY-MM-DD only).
... primarySource 0..1booleanInformation in this record from person who administered vaccine?
... manufacturer S0..1Reference(Organization)Vaccine manufacturer
.... identifier S0..1IdentifierOnly populate when vaccine type is not provided in vaccineCode
..... system SI1..1uriCode identifying vaccine manufacturer
shall-use-known-vaccine-manufacturer-code-system: SHALL use a known code system for identifying vaccine manufacturers
..... value S1..1stringThe value that is unique
... lotNumber SI0..1stringString representing lot number like `0123L45A`
vc-should-be-under-20-chars: Length SHOULD be <20 for data minimization.
vc-should-not-include-string-lot: lotNumber SHOULD NOT include `Lot #`, `Lot Number`, etc.
... performer S0..1BackboneElementWho performed event
.... actor S1..1Reference(Organization)Organization which was responsible for vaccine administration.
..... display SI1..1stringShort, human-readable text representation of the organization.
vc-should-be-under-30-chars: Length SHOULD be <30 for data minimization.
... isSubpotent SI0..1booleanSet to `true` if dose is subpotent; omit otherwise
vc-shall-be-true-if-populated-invariant: Shall be `true` if populated
... reaction
.... detail 0..1Reference(Vaccine Reaction Observation Profile - Allowable Data)Additional information on reaction
... protocolApplied 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*ImmunizationImmunization event information
... id Σ0..1stringShould not be populated
... meta Σ0..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... profile Σ0..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security SΣ0..1CodingLimited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
.... tag Σ0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... 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: A human language.

... 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..1codeWhether or not the vaccination was completed
Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.


Required Pattern: completed
... vaccineCode SΣ1..1CodeableConceptCodes identifying the vaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding SΣ1..*(Slice Definition)Code defined by a terminology system
Slice: Unordered, Closed by value:system
..... coding:cvx Σ0..1CodingCVX code identifying the administered vaccine product
Binding: Vaccine product: CVX (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: http://hl7.org/fhir/sid/cvx
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:gtin Σ0..1CodingGTIN code identifying the administered vaccine product
Binding: Vaccine product: GTIN (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: https://www.gs1.org/gtin
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:snomed Σ0..1CodingSNOMED CT code identifying the administered vaccine product
Binding: Vaccine type: SNOMED CT (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: http://snomed.info/sct
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:icd11 Σ0..1CodingICD11 code identifying the administered vaccine product
Binding: Vaccine target: ICD-11 (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: http://id.who.int/icd11/mms
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:air Σ0..1CodingAustralian Immunisation Register Vaccine code identifying the administered vaccine product
Binding: https://healthterminologies.gov.au/fhir/ValueSet/australian-immunisation-register-vaccine-1 (required)
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Required Pattern: https://www.humanservices.gov.au/organisations/health-professionals/enablers/air-vaccine-code-formats
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... patient SΣ1..1Reference(Patient Profile - Allowable Data)Who was immunized
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣI1..1stringThis SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
... encounter 0..1Reference(Encounter)Encounter immunization was part of
... occurrence[x] SΣ1..1(Slice Definition)Vaccine administration date
Slice: Unordered, Closed by type:$this
.... occurrence[x]:occurrenceDateTime SΣI1..1dateTimeVaccine administration date
vc-date-invariant: All timestamps SHOULD be represented as Dates (YYYY-MM-DD only).
... recorded 0..1dateTimeWhen the immunization was first captured in the subject's record
... primarySource Σ0..1booleanInformation in this record from person who administered vaccine?
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: ImmunizationOriginCodes (example): The source of the data for a record which is not from a primary source.

... location 0..1Reference(Location)Where immunization occurred
... manufacturer S0..1Reference(Organization)Vaccine manufacturer
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣI0..1stringLiteral reference, Relative, internal or absolute URL
.... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier SΣ0..1IdentifierOnly populate when vaccine type is not provided in vaccineCode
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system SΣI1..1uriCode identifying vaccine manufacturer
shall-use-known-vaccine-manufacturer-code-system: SHALL use a known code system for identifying vaccine manufacturers
Example General: http://www.acme.com/identifiers/patient
..... value SΣ1..1stringThe value that is unique
Example General: 123456
..... period Σ0..1PeriodTime period when id is/was valid for use
..... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
.... display Σ0..1stringText alternative for the resource
... lotNumber SI0..1stringString representing lot number like `0123L45A`
vc-should-be-under-20-chars: Length SHOULD be <20 for data minimization.
vc-should-not-include-string-lot: lotNumber SHOULD NOT include `Lot #`, `Lot Number`, etc.
... expirationDate 0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Binding: CodesForImmunizationSiteOfAdministration (example): The site at which the vaccine was administered.

... route 0..1CodeableConceptHow vaccine entered body
Binding: ImmunizationRouteCodes (example): The route by which the vaccine was administered.

... doseQuantity 0..1SimpleQuantityAmount of vaccine administered
... performer SΣ0..1BackboneElementWho 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): The role a practitioner or organization plays in the immunization event.

.... actor SΣ1..1Reference(Organization)Organization which was responsible for vaccine administration.
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... reference ΣI0..1stringLiteral reference, Relative, internal or absolute URL
..... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

..... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
..... display SΣI1..1stringShort, human-readable text representation of the organization.
vc-should-be-under-30-chars: Length SHOULD be <30 for data minimization.
... note Σ0..*AnnotationAdditional immunization notes
... reasonCode 0..*CodeableConceptWhy immunization occurred
Binding: ImmunizationReasonCodes (example): The reason why a vaccine was administered.


... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Why immunization occurred
... isSubpotent ?!SΣI0..1booleanSet to `true` if dose is subpotent; omit otherwise
vc-shall-be-true-if-populated-invariant: Shall be `true` if populated
... subpotentReason 0..*CodeableConceptReason for being subpotent
Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.


... 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): The patient's eligibility for a vaccation program.


... fundingSource 0..1CodeableConceptFunding source for the vaccine
Binding: ImmunizationFundingSource (example): The source of funding used to purchase the vaccine administered.

... reaction 0..*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(Vaccine Reaction Observation Profile - Allowable Data)Additional information on reaction
.... reported 0..1booleanIndicates self-reported reaction

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet / Code
Immunization.meta.securityrequiredIdentityAssuranceLevel
Immunization.meta.tagexampleCommonTags
Immunization.languagepreferredCommonLanguages
Max Binding: AllLanguages
Immunization.statusrequiredPattern: completed
Immunization.vaccineCodeexampleVaccineAdministeredValueSet
Immunization.vaccineCode.coding:cvxrequiredVaccineProductCVX
Immunization.vaccineCode.coding:gtinrequiredVaccineProductGTIN
Immunization.vaccineCode.coding:snomedrequiredVaccineTypeSNOMED
Immunization.vaccineCode.coding:icd11requiredVaccineTargetICD11
Immunization.vaccineCode.coding:airrequiredhttps://healthterminologies.gov.au/fhir/ValueSet/australian-immunisation-register-vaccine-1
Immunization.reportOriginexampleImmunizationOriginCodes
Immunization.manufacturer.typeextensibleResourceType
Immunization.manufacturer.identifier.userequiredIdentifierUse
Immunization.manufacturer.identifier.typeextensibleIdentifier Type Codes
Immunization.siteexampleCodesForImmunizationSiteOfAdministration
Immunization.routeexampleImmunizationRouteCodes
Immunization.performer.functionextensibleImmunizationFunctionCodes
Immunization.performer.actor.typeextensibleResourceType
Immunization.reasonCodeexampleImmunizationReasonCodes
Immunization.subpotentReasonexampleImmunizationSubpotentReason
Immunization.programEligibilityexampleImmunizationProgramEligibility
Immunization.fundingSourceexampleImmunizationFundingSource
Immunization.protocolApplied.targetDiseaseexampleImmunizationTargetDiseaseCodes

Constraints

IdPathDetailsRequirements
dom-2ImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3ImmunizationIf 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-4ImmunizationIf 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-5ImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6ImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1Immunization.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.meta.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.meta.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.meta.versionIdAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.meta.lastUpdatedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.meta.sourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.meta.profileAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.meta.securityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.meta.tagAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.vaccineCode.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.vaccineCode.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:cvxAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:cvx.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.vaccineCode.coding:cvx.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.vaccineCode.coding:cvx.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:cvx.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:cvx.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:cvx.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:cvx.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:gtinAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:gtin.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.vaccineCode.coding:gtin.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.vaccineCode.coding:gtin.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:gtin.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:gtin.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:gtin.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:gtin.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:snomedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:snomed.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.vaccineCode.coding:snomed.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.vaccineCode.coding:snomed.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:snomed.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:snomed.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:snomed.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:snomed.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:icd11All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:icd11.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.vaccineCode.coding:icd11.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.vaccineCode.coding:icd11.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:icd11.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:icd11.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:icd11.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:icd11.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:airAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:air.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.vaccineCode.coding:air.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.vaccineCode.coding:air.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:air.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:air.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:air.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.coding:air.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.vaccineCode.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.patient.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.patient.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.patient.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.occurrence[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.occurrence[x]:occurrenceDateTimeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
vc-date-invariantImmunization.occurrence[x]:occurrenceDateTimeAll timestamps SHOULD be represented as Dates (YYYY-MM-DD only).
: $this.toString().matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}$')
ele-1Immunization.recordedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.primarySourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reportOriginAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.manufacturer.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.manufacturer.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.identifier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.manufacturer.identifier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.manufacturer.identifier.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.identifier.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.identifier.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
shall-use-known-vaccine-manufacturer-code-systemImmunization.manufacturer.identifier.systemSHALL use a known code system for identifying vaccine manufacturers
: $this.matches('http://hl7.org/fhir/sid/mvx') or $this.matches('https://www.gs1.org/gln')
ele-1Immunization.manufacturer.identifier.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.identifier.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.identifier.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.manufacturer.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
vc-should-be-under-20-charsImmunization.lotNumberLength SHOULD be <20 for data minimization.
: $this.length() < 20
vc-should-not-include-string-lotImmunization.lotNumberlotNumber SHOULD NOT include `Lot #`, `Lot Number`, etc.
: $this.lower().contains('lot').not()
ele-1Immunization.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.siteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.routeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.doseQuantityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.performer.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.performer.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.performer.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.performer.functionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.actorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.actor.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.performer.actor.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.performer.actor.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.actor.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.actor.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.performer.actor.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
vc-should-be-under-30-charsImmunization.performer.actor.displayLength SHOULD be <30 for data minimization.
: $this.length() < 30
ele-1Immunization.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.isSubpotentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
vc-shall-be-true-if-populated-invariantImmunization.isSubpotentShall be `true` if populated
: $this.exists().not() or $this = true
ele-1Immunization.subpotentReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.educationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
imm-1Immunization.educationOne of documentType or reference SHALL be present
: documentType.exists() or reference.exists()
ele-1Immunization.education.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.education.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.education.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.education.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.education.documentTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.education.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.education.publicationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.education.presentationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.programEligibilityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.fundingSourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reactionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reaction.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.reaction.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.reaction.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.reaction.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.reaction.dateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reaction.detailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.reaction.reportedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.protocolApplied.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.protocolApplied.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Immunization.protocolApplied.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Immunization.protocolApplied.seriesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.authorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.targetDiseaseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.doseNumber[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Immunization.protocolApplied.seriesDoses[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())