OpenMRS Core FHIR Implementation Guide
0.1.0 - ci-build

OpenMRS Core FHIR Implementation Guide, published by . This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/abertnamanya/openmrs-contrib-fhir2-ig/ and changes regularly. See the Directory of published versions

Resource Profile: OpenMRS Immunization

Official URL: http://fhir.openmrs.org/core/StructureDefinition/omrs-immunization Version: 0.1.0
Active as of 2024-12-11 Computable Name: OMRSImmunization

A FHIR Immunization Resource as understood by OpenMRS

Usage:

Formal Views of Profile Content

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

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* Immunization Immunization event information
... id 1..1 id Logical id of this artifact
... identifier 0..0
... status 1..1 code completed | entered-in-error | not-done
... statusReason 0..0
... vaccineCode 1..1 CodeableConcept Vaccine product administered
... patient 1..1 Reference(OpenMRS Patient) Who was immunized
... encounter 0..1 Reference(Openmrs Encounter) Encounter immunization was part of
... Slices for occurrence[x] 1..1 dateTime, string Vaccine administration date
Slice: Unordered, Open by type:$this
.... occurrence[x]:occurrenceDateTime 0..1 dateTime Vaccine administration date
... recorded 0..0
... primarySource 0..0
... reportOrigin 0..0
... location 0..1 Reference(OpenMRS Location) Where immunization occurred
... manufacturer 0..1 Reference(Organization) Vaccine manufacturer
... lotNumber 0..1 string Vaccine lot number
... expirationDate 0..1 date Vaccine expiration date
... site 0..0
... route 0..0
... doseQuantity 0..0
... performer
.... function 0..0
.... actor 1..1 Reference(Openmrs Practitioner) Individual or organization who was performing
... note 0..0
... reasonCode 0..0
... reasonReference 0..0
... isSubpotent 0..0
... education 0..0
... programEligibility 0..0
... fundingSource 0..0
... reaction 0..0
... protocolApplied 0..1 BackboneElement Protocol followed by the provider
.... doseNumber[x] 1..1 positiveInt, string Dose number within series
.... seriesDoses[x] 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* Immunization Immunization event information
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... vaccineCode Σ 1..1 CodeableConcept Vaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.


ele-1: All FHIR elements must have a @value or children
... patient Σ 1..1 Reference(OpenMRS Patient) Who was immunized
ele-1: All FHIR elements must have a @value or children
... encounter 0..1 Reference(Openmrs Encounter) Encounter immunization was part of
ele-1: All FHIR elements must have a @value or children
... Slices for occurrence[x] Σ 1..1 Vaccine administration date
Slice: Unordered, Open by type:$this
ele-1: All FHIR elements must have a @value or children
.... occurrenceDateTime dateTime
.... occurrenceString string
.... occurrence[x]:occurrenceDateTime Σ 0..1 dateTime Vaccine administration date
ele-1: All FHIR elements must have a @value or children
... location 0..1 Reference(OpenMRS Location) Where immunization occurred
ele-1: All FHIR elements must have a @value or children
... manufacturer 0..1 Reference(Organization) Vaccine manufacturer
ele-1: All FHIR elements must have a @value or children
... lotNumber 0..1 string Vaccine lot number
ele-1: All FHIR elements must have a @value or children
... expirationDate 0..1 date Vaccine expiration date
ele-1: All FHIR elements must have a @value or children
... protocolApplied 0..1 BackboneElement Protocol followed by the provider
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... doseNumber[x] 1..1 Dose number within series
ele-1: All FHIR elements must have a @value or children
..... doseNumberPositiveInt positiveInt
..... doseNumberString string

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Immunization.statusrequiredImmunizationStatusCodes
http://hl7.org/fhir/ValueSet/immunization-status|4.0.1
from the FHIR Standard
Immunization.vaccineCodeexampleVaccineAdministeredValueSet
http://hl7.org/fhir/ValueSet/vaccine-code
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorImmunizationIf 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-4errorImmunizationIf 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-5errorImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* Immunization Immunization event information
... id Σ 1..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code completed | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.

... vaccineCode Σ 1..1 CodeableConcept Vaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.

... patient Σ 1..1 Reference(OpenMRS Patient) Who was immunized
... encounter 0..1 Reference(Openmrs Encounter) Encounter immunization was part of
... Slices for occurrence[x] Σ 1..1 Vaccine administration date
Slice: Unordered, Open by type:$this
.... occurrenceDateTime dateTime
.... occurrenceString string
.... occurrence[x]:occurrenceDateTime Σ 0..1 dateTime Vaccine administration date
... location 0..1 Reference(OpenMRS Location) Where immunization occurred
... manufacturer 0..1 Reference(Organization) Vaccine manufacturer
... lotNumber 0..1 string Vaccine lot number
... expirationDate 0..1 date Vaccine expiration date
... performer Σ 0..* BackboneElement Who performed event
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor Σ 1..1 Reference(Openmrs Practitioner) Individual or organization who was performing
... subpotentReason 0..* CodeableConcept Reason for being subpotent
Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.


... protocolApplied 0..1 BackboneElement Protocol followed by the provider
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... series 0..1 string Name of vaccine series
.... authority 0..1 Reference(Organization) Who is responsible for publishing the recommendations
.... targetDisease 0..* CodeableConcept Vaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.


.... doseNumber[x] 1..1 Dose number within series
..... doseNumberPositiveInt positiveInt
..... doseNumberString string

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Immunization.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Immunization.statusrequiredImmunizationStatusCodes
http://hl7.org/fhir/ValueSet/immunization-status|4.0.1
from the FHIR Standard
Immunization.vaccineCodeexampleVaccineAdministeredValueSet
http://hl7.org/fhir/ValueSet/vaccine-code
from the FHIR Standard
Immunization.subpotentReasonexampleImmunizationSubpotentReason
http://hl7.org/fhir/ValueSet/immunization-subpotent-reason
from the FHIR Standard
Immunization.protocolApplied.targetDiseaseexampleImmunizationTargetDiseaseCodes
http://hl7.org/fhir/ValueSet/immunization-target-disease
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorImmunizationIf 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-4errorImmunizationIf 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-5errorImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Immunization

Summary

Mandatory: 1 element
Prohibited: 18 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Immunization.occurrence[x]

Differential View

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* Immunization Immunization event information
... id 1..1 id Logical id of this artifact
... identifier 0..0
... status 1..1 code completed | entered-in-error | not-done
... statusReason 0..0
... vaccineCode 1..1 CodeableConcept Vaccine product administered
... patient 1..1 Reference(OpenMRS Patient) Who was immunized
... encounter 0..1 Reference(Openmrs Encounter) Encounter immunization was part of
... Slices for occurrence[x] 1..1 dateTime, string Vaccine administration date
Slice: Unordered, Open by type:$this
.... occurrence[x]:occurrenceDateTime 0..1 dateTime Vaccine administration date
... recorded 0..0
... primarySource 0..0
... reportOrigin 0..0
... location 0..1 Reference(OpenMRS Location) Where immunization occurred
... manufacturer 0..1 Reference(Organization) Vaccine manufacturer
... lotNumber 0..1 string Vaccine lot number
... expirationDate 0..1 date Vaccine expiration date
... site 0..0
... route 0..0
... doseQuantity 0..0
... performer
.... function 0..0
.... actor 1..1 Reference(Openmrs Practitioner) Individual or organization who was performing
... note 0..0
... reasonCode 0..0
... reasonReference 0..0
... isSubpotent 0..0
... education 0..0
... programEligibility 0..0
... fundingSource 0..0
... reaction 0..0
... protocolApplied 0..1 BackboneElement Protocol followed by the provider
.... doseNumber[x] 1..1 positiveInt, string Dose number within series
.... seriesDoses[x] 0..0

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* Immunization Immunization event information
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... id Σ 1..1 id Logical id of this artifact
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... vaccineCode Σ 1..1 CodeableConcept Vaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.


ele-1: All FHIR elements must have a @value or children
... patient Σ 1..1 Reference(OpenMRS Patient) Who was immunized
ele-1: All FHIR elements must have a @value or children
... encounter 0..1 Reference(Openmrs Encounter) Encounter immunization was part of
ele-1: All FHIR elements must have a @value or children
... Slices for occurrence[x] Σ 1..1 Vaccine administration date
Slice: Unordered, Open by type:$this
ele-1: All FHIR elements must have a @value or children
.... occurrenceDateTime dateTime
.... occurrenceString string
.... occurrence[x]:occurrenceDateTime Σ 0..1 dateTime Vaccine administration date
ele-1: All FHIR elements must have a @value or children
... location 0..1 Reference(OpenMRS Location) Where immunization occurred
ele-1: All FHIR elements must have a @value or children
... manufacturer 0..1 Reference(Organization) Vaccine manufacturer
ele-1: All FHIR elements must have a @value or children
... lotNumber 0..1 string Vaccine lot number
ele-1: All FHIR elements must have a @value or children
... expirationDate 0..1 date Vaccine expiration date
ele-1: All FHIR elements must have a @value or children
... protocolApplied 0..1 BackboneElement Protocol followed by the provider
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... doseNumber[x] 1..1 Dose number within series
ele-1: All FHIR elements must have a @value or children
..... doseNumberPositiveInt positiveInt
..... doseNumberString string

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Immunization.statusrequiredImmunizationStatusCodes
http://hl7.org/fhir/ValueSet/immunization-status|4.0.1
from the FHIR Standard
Immunization.vaccineCodeexampleVaccineAdministeredValueSet
http://hl7.org/fhir/ValueSet/vaccine-code
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorImmunizationIf 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-4errorImmunizationIf 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-5errorImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..* Immunization Immunization event information
... id Σ 1..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code completed | entered-in-error | not-done
Binding: ImmunizationStatusCodes (required): A set of codes indicating the current status of an Immunization.

... vaccineCode Σ 1..1 CodeableConcept Vaccine product administered
Binding: VaccineAdministeredValueSet (example): The code for vaccine product administered.

... patient Σ 1..1 Reference(OpenMRS Patient) Who was immunized
... encounter 0..1 Reference(Openmrs Encounter) Encounter immunization was part of
... Slices for occurrence[x] Σ 1..1 Vaccine administration date
Slice: Unordered, Open by type:$this
.... occurrenceDateTime dateTime
.... occurrenceString string
.... occurrence[x]:occurrenceDateTime Σ 0..1 dateTime Vaccine administration date
... location 0..1 Reference(OpenMRS Location) Where immunization occurred
... manufacturer 0..1 Reference(Organization) Vaccine manufacturer
... lotNumber 0..1 string Vaccine lot number
... expirationDate 0..1 date Vaccine expiration date
... performer Σ 0..* BackboneElement Who performed event
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... actor Σ 1..1 Reference(Openmrs Practitioner) Individual or organization who was performing
... subpotentReason 0..* CodeableConcept Reason for being subpotent
Binding: ImmunizationSubpotentReason (example): The reason why a dose is considered to be subpotent.


... protocolApplied 0..1 BackboneElement Protocol followed by the provider
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... series 0..1 string Name of vaccine series
.... authority 0..1 Reference(Organization) Who is responsible for publishing the recommendations
.... targetDisease 0..* CodeableConcept Vaccine preventatable disease being targetted
Binding: ImmunizationTargetDiseaseCodes (example): The vaccine preventable disease the dose is being administered for.


.... doseNumber[x] 1..1 Dose number within series
..... doseNumberPositiveInt positiveInt
..... doseNumberString string

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Immunization.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Immunization.statusrequiredImmunizationStatusCodes
http://hl7.org/fhir/ValueSet/immunization-status|4.0.1
from the FHIR Standard
Immunization.vaccineCodeexampleVaccineAdministeredValueSet
http://hl7.org/fhir/ValueSet/vaccine-code
from the FHIR Standard
Immunization.subpotentReasonexampleImmunizationSubpotentReason
http://hl7.org/fhir/ValueSet/immunization-subpotent-reason
from the FHIR Standard
Immunization.protocolApplied.targetDiseaseexampleImmunizationTargetDiseaseCodes
http://hl7.org/fhir/ValueSet/immunization-target-disease
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorImmunizationIf 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-4errorImmunizationIf 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-5errorImmunizationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceImmunizationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Immunization

Summary

Mandatory: 1 element
Prohibited: 18 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Immunization.occurrence[x]

 

Other representations of profile: CSV, Excel, Schematron