CDSi CDS-Immunization Forecast Implementation Guide - STU 1 Ballot (v0.1.0)

This page is part of the Immunization Decision Support Forecast FHIR IG (v0.1.0: STU 1 Ballot 1) based on FHIR R3. The current version which supercedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions

D.1.0 StructureDefinition: CDS-Immunization-Immunization

The official URL for this profile is:

http://hl7.org/fhir/uv/cdsi/StructureDefinition/cdsi-immunization

Defines constraints and extensions on the Immunization resource for the minimal set of data to be used in an immunization forecast.

This profile builds on Immunization.

This profile was published on Thu Apr 27 00:00:00 AEST 2017 as a draft by PHER.

D.1.0.1 Formal Views of Profile Content

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

This structure is derived from Immunization

Summary

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

This structure is derived from Immunization

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*
... status 1..1code
... notGiven 1..1boolean
... vaccineCode 1..1CodeableConceptVaccine Product Type (bind to CVX)
... patient 1..1Reference(Patient)
... date 1..1dateTime
... manufacturer S0..1Reference(Organization)
... expirationDate S0..1date
... doseQuantity S0..1SimpleQuantity
... vaccinationProtocol S0..1BackboneElement
.... targetDisease 1..1CodeableConcept
.... doseStatus 1..1CodeableConceptBinding: Vaccination Protocol Dose Status codes (extensible)
.... doseStatusReason S0..1CodeableConceptBinding: Vaccination Protocol Dose Status Reason codes (extensible)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*Immunization event information
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..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 ?!Σ1..1codecompleted | entered-in-error
Binding: Immunization Status Codes (required)
... notGiven ?!Σ1..1booleanFlag for whether immunization was given
... vaccineCode 1..1CodeableConceptVaccine Product Type (bind to CVX)
Binding: Vaccine Administered Value Set (example)
... patient 1..1Reference(Patient)Who was immunized
... encounter 0..1Reference(Encounter)Encounter administered as part of
... date 1..1dateTimeVaccination administration date
... primarySource 1..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: Immunization Origin Codes (example)
... location 0..1Reference(Location)Where vaccination occurred
... manufacturer S0..1Reference(Organization)Vaccine manufacturer
... lotNumber 0..1stringVaccine lot number
... expirationDate S0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Binding: Codes for Immunization Site of Administration (example)
... route 0..1CodeableConceptHow vaccine entered body
Binding: Immunization Route Codes (example)
... doseQuantity S0..1SimpleQuantityAmount of vaccine administered
... practitioner ΣI0..*BackboneElementWho performed event
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ0..1CodeableConceptWhat type of performance was done
Binding: Immunization Role Codes (extensible)
.... actor Σ1..1Reference(Practitioner)Individual who was performing
... note Σ0..*AnnotationVaccination notes
... explanation I0..1BackboneElementAdministration/non-administration reasons
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... reason 0..*CodeableConceptWhy immunization occurred
Binding: Immunization Reason Codes (example)
.... reasonNotGiven 0..*CodeableConceptWhy immunization did not occur
Binding: Immunization Reasons for Not Immunizing Codes (example)
... reaction I0..*BackboneElementDetails of a reaction that follows immunization
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(Observation)Additional information on reaction
.... reported 1..1booleanIndicates self-reported reaction
... vaccinationProtocol SI0..1BackboneElementWhat protocol was followed
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... doseSequence 0..1positiveIntDose number within series
.... description 0..1stringDetails of vaccine protocol
.... authority 0..1Reference(Organization)Who is responsible for protocol
.... series 0..1stringName of vaccine series
.... seriesDoses 0..1positiveIntRecommended number of doses for immunity
.... targetDisease 1..1CodeableConceptDisease immunized against
Binding: Vaccination Protocol Dose Target Codes (example)
.... doseStatus 1..1CodeableConceptIndicates if dose counts towards immunity
Binding: Vaccination Protocol Dose Status codes (extensible)
.... doseStatusReason S0..1CodeableConceptWhy dose does (not) count
Binding: Vaccination Protocol Dose Status Reason codes (extensible)

doco Documentation for this format

yet to be done: Xml template

// { "resourceType" : "Immunization", "id" : "<id>", // Logical id of this artifact "meta" : {Meta}, // Metadata about the resource "implicitRules" : "<uri>", // A set of rules under which this content was created "language" : "<code>", // Language of the resource content "text" : {Narrative}, // Text summary of the resource, for human interpretation "contained" : [{Resource}], // Contained, inline Resources "extension": [ ], "identifier" : [{Identifier}], // Business identifier "status" : "<code>", // R! completed | entered-in-error "notGiven" : <boolean>, // R! Flag for whether immunization was given "vaccineCode" : {CodeableConcept}, // R! Vaccine Product Type (bind to CVX) "patient" : {Reference(Patient)}, // R! Who was immunized "encounter" : {Reference(Encounter)}, // Encounter administered as part of "date" : "<dateTime>", // R! Vaccination administration date "primarySource" : <boolean>, // R! Indicates context the data was recorded in "reportOrigin" : {CodeableConcept}, // Indicates the source of a secondarily reported record "location" : {Reference(Location)}, // Where vaccination occurred "manufacturer" : {Reference(Organization)}, // Vaccine manufacturer "lotNumber" : "<string>", // Vaccine lot number "expirationDate" : "<date>", // Vaccine expiration date "site" : {CodeableConcept}, // Body site vaccine was administered "route" : {CodeableConcept}, // How vaccine entered body "doseQuantity" : {Quantity (as SimpleQuantity)}, // Amount of vaccine administered "practitioner" : [{ // C? Who performed event "extension": [ ], "role" : {CodeableConcept}, // What type of performance was done "actor" : {Reference(Practitioner)}, // R! Individual who was performing }], "note" : [{Annotation}], // Vaccination notes "explanation" : { // C? Administration/non-administration reasons "extension": [ ], "reason" : [{CodeableConcept}], // Why immunization occurred "reasonNotGiven" : [{CodeableConcept}], // Why immunization did not occur }, "reaction" : [{ // C? Details of a reaction that follows immunization "extension": [ ], "date" : "<dateTime>", // When reaction started "detail" : {Reference(Observation)}, // Additional information on reaction "reported" : <boolean>, // R! Indicates self-reported reaction }], "vaccinationProtocol" : [{ // C? Only One! What protocol was followed "extension": [ ], "doseSequence" : "<positiveInt>", // Dose number within series "description" : "<string>", // Details of vaccine protocol "authority" : {Reference(Organization)}, // Who is responsible for protocol "series" : "<string>", // Name of vaccine series "seriesDoses" : "<positiveInt>", // Recommended number of doses for immunity "targetDisease" : [{CodeableConcept}], // R! Only One! Disease immunized against "doseStatus" : {CodeableConcept}, // R! Indicates if dose counts towards immunity "doseStatusReason" : {CodeableConcept}, // Why dose does (not) count }], }

This structure is derived from Immunization.

Summary

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

Differential View

This structure is derived from Immunization.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization 0..*
... status 1..1code
... notGiven 1..1boolean
... vaccineCode 1..1CodeableConceptVaccine Product Type (bind to CVX)
... patient 1..1Reference(Patient)
... date 1..1dateTime
... manufacturer S0..1Reference(Organization)
... expirationDate S0..1date
... doseQuantity S0..1SimpleQuantity
... vaccinationProtocol S0..1BackboneElement
.... targetDisease 1..1CodeableConcept
.... doseStatus 1..1CodeableConceptBinding: Vaccination Protocol Dose Status codes (extensible)
.... doseStatusReason S0..1CodeableConceptBinding: Vaccination Protocol Dose Status Reason codes (extensible)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Immunization I0..*Immunization event information
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..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 ?!Σ1..1codecompleted | entered-in-error
Binding: Immunization Status Codes (required)
... notGiven ?!Σ1..1booleanFlag for whether immunization was given
... vaccineCode 1..1CodeableConceptVaccine Product Type (bind to CVX)
Binding: Vaccine Administered Value Set (example)
... patient 1..1Reference(Patient)Who was immunized
... encounter 0..1Reference(Encounter)Encounter administered as part of
... date 1..1dateTimeVaccination administration date
... primarySource 1..1booleanIndicates context the data was recorded in
... reportOrigin 0..1CodeableConceptIndicates the source of a secondarily reported record
Binding: Immunization Origin Codes (example)
... location 0..1Reference(Location)Where vaccination occurred
... manufacturer S0..1Reference(Organization)Vaccine manufacturer
... lotNumber 0..1stringVaccine lot number
... expirationDate S0..1dateVaccine expiration date
... site 0..1CodeableConceptBody site vaccine was administered
Binding: Codes for Immunization Site of Administration (example)
... route 0..1CodeableConceptHow vaccine entered body
Binding: Immunization Route Codes (example)
... doseQuantity S0..1SimpleQuantityAmount of vaccine administered
... practitioner ΣI0..*BackboneElementWho performed event
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ0..1CodeableConceptWhat type of performance was done
Binding: Immunization Role Codes (extensible)
.... actor Σ1..1Reference(Practitioner)Individual who was performing
... note Σ0..*AnnotationVaccination notes
... explanation I0..1BackboneElementAdministration/non-administration reasons
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... reason 0..*CodeableConceptWhy immunization occurred
Binding: Immunization Reason Codes (example)
.... reasonNotGiven 0..*CodeableConceptWhy immunization did not occur
Binding: Immunization Reasons for Not Immunizing Codes (example)
... reaction I0..*BackboneElementDetails of a reaction that follows immunization
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... date 0..1dateTimeWhen reaction started
.... detail 0..1Reference(Observation)Additional information on reaction
.... reported 1..1booleanIndicates self-reported reaction
... vaccinationProtocol SI0..1BackboneElementWhat protocol was followed
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... doseSequence 0..1positiveIntDose number within series
.... description 0..1stringDetails of vaccine protocol
.... authority 0..1Reference(Organization)Who is responsible for protocol
.... series 0..1stringName of vaccine series
.... seriesDoses 0..1positiveIntRecommended number of doses for immunity
.... targetDisease 1..1CodeableConceptDisease immunized against
Binding: Vaccination Protocol Dose Target Codes (example)
.... doseStatus 1..1CodeableConceptIndicates if dose counts towards immunity
Binding: Vaccination Protocol Dose Status codes (extensible)
.... doseStatusReason S0..1CodeableConceptWhy dose does (not) count
Binding: Vaccination Protocol Dose Status Reason codes (extensible)

doco Documentation for this format

XML Template

yet to be done: Xml template

JSON Template

// { "resourceType" : "Immunization", "id" : "<id>", // Logical id of this artifact "meta" : {Meta}, // Metadata about the resource "implicitRules" : "<uri>", // A set of rules under which this content was created "language" : "<code>", // Language of the resource content "text" : {Narrative}, // Text summary of the resource, for human interpretation "contained" : [{Resource}], // Contained, inline Resources "extension": [ ], "identifier" : [{Identifier}], // Business identifier "status" : "<code>", // R! completed | entered-in-error "notGiven" : <boolean>, // R! Flag for whether immunization was given "vaccineCode" : {CodeableConcept}, // R! Vaccine Product Type (bind to CVX) "patient" : {Reference(Patient)}, // R! Who was immunized "encounter" : {Reference(Encounter)}, // Encounter administered as part of "date" : "<dateTime>", // R! Vaccination administration date "primarySource" : <boolean>, // R! Indicates context the data was recorded in "reportOrigin" : {CodeableConcept}, // Indicates the source of a secondarily reported record "location" : {Reference(Location)}, // Where vaccination occurred "manufacturer" : {Reference(Organization)}, // Vaccine manufacturer "lotNumber" : "<string>", // Vaccine lot number "expirationDate" : "<date>", // Vaccine expiration date "site" : {CodeableConcept}, // Body site vaccine was administered "route" : {CodeableConcept}, // How vaccine entered body "doseQuantity" : {Quantity (as SimpleQuantity)}, // Amount of vaccine administered "practitioner" : [{ // C? Who performed event "extension": [ ], "role" : {CodeableConcept}, // What type of performance was done "actor" : {Reference(Practitioner)}, // R! Individual who was performing }], "note" : [{Annotation}], // Vaccination notes "explanation" : { // C? Administration/non-administration reasons "extension": [ ], "reason" : [{CodeableConcept}], // Why immunization occurred "reasonNotGiven" : [{CodeableConcept}], // Why immunization did not occur }, "reaction" : [{ // C? Details of a reaction that follows immunization "extension": [ ], "date" : "<dateTime>", // When reaction started "detail" : {Reference(Observation)}, // Additional information on reaction "reported" : <boolean>, // R! Indicates self-reported reaction }], "vaccinationProtocol" : [{ // C? Only One! What protocol was followed "extension": [ ], "doseSequence" : "<positiveInt>", // Dose number within series "description" : "<string>", // Details of vaccine protocol "authority" : {Reference(Organization)}, // Who is responsible for protocol "series" : "<string>", // Name of vaccine series "seriesDoses" : "<positiveInt>", // Recommended number of doses for immunity "targetDisease" : [{CodeableConcept}], // R! Only One! Disease immunized against "doseStatus" : {CodeableConcept}, // R! Indicates if dose counts towards immunity "doseStatusReason" : {CodeableConcept}, // Why dose does (not) count }], }

 

D.1.0.2 Terminology Bindings

Terminology Bindings

PathNameConformanceValueSet
Immunization.languageCommon LanguagesextensibleCommon Languages
Immunization.statusImmunization Status CodesrequiredImmunization Status Codes
Immunization.vaccineCodeVaccine Administered Value SetexampleVaccine Administered Value Set
Immunization.reportOriginImmunization Origin CodesexampleImmunization Origin Codes
Immunization.siteCodes for Immunization Site of AdministrationexampleCodes for Immunization Site of Administration
Immunization.routeImmunization Route CodesexampleImmunization Route Codes
Immunization.practitioner.roleImmunization Role CodesextensibleImmunization Role Codes
Immunization.explanation.reasonImmunization Reason CodesexampleImmunization Reason Codes
Immunization.explanation.reasonNotGivenImmunization Reasons for Not Immunizing CodesexampleImmunization Reasons for Not Immunizing Codes
Immunization.vaccinationProtocol.targetDiseaseVaccination Protocol Dose Target CodesexampleVaccination Protocol Dose Target Codes
Immunization.vaccinationProtocol.doseStatusVaccination Protocol Dose Status codesextensibleVaccination Protocol Dose Status codes
Immunization.vaccinationProtocol.doseStatusReasonVaccination Protocol Dose Status Reason codesextensibleVaccination Protocol Dose Status Reason codes

D.1.0.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2ImmunizationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1ImmunizationIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.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-3ImmunizationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
: contained.where(('#'+id in %resource.descendants().reference).not()).empty()
imm-2ImmunizationIf immunization was administered (notGiven=false) then explanation.reasonNotGiven SHALL be absent.
: (notGiven = true) or explanation.reasonNotGiven.empty()
imm-1ImmunizationIf immunization was not administered (notGiven=true) then there SHALL be no reaction nor explanation.reason present
: (notGiven = true).not() or (reaction.empty() and explanation.reason.empty())
ele-1Immunization.practitionerAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Immunization.explanationAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Immunization.reactionAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Immunization.vaccinationProtocolAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())