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-ImmunizationRecommendation

The official URL for this profile is:

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

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

This profile builds on ImmunizationRecommendation.

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 ImmunizationRecommendation

Summary

Mandatory: 1 element (2 nested mandatory elements)

Extensions

This structure refers to these extensions:

NameFlagsCard.TypeDescription & Constraintsdoco
.. ImmunizationRecommendation I0..*Guidance or advice relating to an immunization
... 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
... patient Σ1..1Reference(Patient)Who this profile is for
... recommendation ΣI1..*BackboneElementVaccine administration recommendations
imr-1: One of vaccineCode or targetDisease SHALL be present
.... id 0..1stringxml:id (or equivalent in JSON)
.... template-forecastStatusReason I0..*codeExtension
URL: http://hl7.org/fhir/uv/cdsi/StructureDefinition/template-forecastStatusReason
Binding: Forecast Status Reason codes (extensible)
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... date Σ1..1dateTimeDate recommendation created
.... vaccineCode Σ0..1CodeableConceptVaccine recommendation applies to
Binding: Vaccine Administered Value Set (example)
.... targetDisease Σ0..1CodeableConceptDisease to be immunized against
Binding: Immunization Recommendation Target Disease Codes (example)
.... doseNumber Σ0..1positiveIntRecommended dose number
.... forecastStatus Σ1..1CodeableConceptVaccine administration status
Binding: Forecast Status codes (extensible)
.... dateCriterion I0..*BackboneElementDates governing proposed immunization
imm-cds-1: if recommendation.forecastStatus is one of (due, due later, not complete, overdue, consider, wavered, recommended but not required) then two dateCriterion elements are required: one with dateCriterion.code=earliest, and one with dateCriterion.code=recommended
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
..... code 1..1CodeableConceptType of date
Binding: Immunization Recommendation Date Criterion Codes  (extensible)
..... value 1..1dateTimeRecommended date
.... protocol I0..1BackboneElementProtocol used by recommendation
..... 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 sequence
..... description 0..1stringProtocol details
..... authority 0..1Reference(Organization)Who is responsible for protocol
..... series 0..1stringName of vaccination series
.... supportingImmunization 0..*Reference(Immunization)Past immunizations supporting recommendation
.... supportingPatientInformation 0..*Reference(Observation), Reference(AllergyIntolerance)Patient observations supporting recommendation

doco Documentation for this format

yet to be done: Xml template

// { "resourceType" : "ImmunizationRecommendation", "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 "patient" : {Reference(Patient)}, // R! Who this profile is for "recommendation" : [{ // C? R! Vaccine administration recommendations "extension": [ { // C?Extension "url": "http://hl7.org/fhir/uv/cdsi/StructureDefinition/template-forecastStatusReason", "valueCode" : "<code>" // Value of extension } ], "date" : "<dateTime>", // R! Date recommendation created "vaccineCode" : {CodeableConcept}, // Vaccine recommendation applies to "targetDisease" : {CodeableConcept}, // Disease to be immunized against "doseNumber" : "<positiveInt>", // Recommended dose number "forecastStatus" : {CodeableConcept}, // R! Vaccine administration status "dateCriterion" : [{ // C? Dates governing proposed immunization "extension": [ ], "code" : {CodeableConcept}, // R! Type of date "value" : "<dateTime>", // R! Recommended date }], "protocol" : { // C? Protocol used by recommendation "extension": [ ], "doseSequence" : "<positiveInt>", // Dose number within sequence "description" : "<string>", // Protocol details "authority" : {Reference(Organization)}, // Who is responsible for protocol "series" : "<string>", // Name of vaccination series }, "supportingImmunization" : [{Reference(Immunization)}], // Past immunizations supporting recommendation "supportingPatientInformation" : [{Reference(Observation)}], // Patient observations supporting recommendation }], }

This structure is derived from ImmunizationRecommendation.

Summary

Mandatory: 1 element (2 nested mandatory elements)

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from ImmunizationRecommendation.

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ImmunizationRecommendation I0..*Guidance or advice relating to an immunization
... 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
... patient Σ1..1Reference(Patient)Who this profile is for
... recommendation ΣI1..*BackboneElementVaccine administration recommendations
imr-1: One of vaccineCode or targetDisease SHALL be present
.... id 0..1stringxml:id (or equivalent in JSON)
.... template-forecastStatusReason I0..*codeExtension
URL: http://hl7.org/fhir/uv/cdsi/StructureDefinition/template-forecastStatusReason
Binding: Forecast Status Reason codes (extensible)
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... date Σ1..1dateTimeDate recommendation created
.... vaccineCode Σ0..1CodeableConceptVaccine recommendation applies to
Binding: Vaccine Administered Value Set (example)
.... targetDisease Σ0..1CodeableConceptDisease to be immunized against
Binding: Immunization Recommendation Target Disease Codes (example)
.... doseNumber Σ0..1positiveIntRecommended dose number
.... forecastStatus Σ1..1CodeableConceptVaccine administration status
Binding: Forecast Status codes (extensible)
.... dateCriterion I0..*BackboneElementDates governing proposed immunization
imm-cds-1: if recommendation.forecastStatus is one of (due, due later, not complete, overdue, consider, wavered, recommended but not required) then two dateCriterion elements are required: one with dateCriterion.code=earliest, and one with dateCriterion.code=recommended
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
..... code 1..1CodeableConceptType of date
Binding: Immunization Recommendation Date Criterion Codes  (extensible)
..... value 1..1dateTimeRecommended date
.... protocol I0..1BackboneElementProtocol used by recommendation
..... 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 sequence
..... description 0..1stringProtocol details
..... authority 0..1Reference(Organization)Who is responsible for protocol
..... series 0..1stringName of vaccination series
.... supportingImmunization 0..*Reference(Immunization)Past immunizations supporting recommendation
.... supportingPatientInformation 0..*Reference(Observation), Reference(AllergyIntolerance)Patient observations supporting recommendation

doco Documentation for this format

XML Template

yet to be done: Xml template

JSON Template

// { "resourceType" : "ImmunizationRecommendation", "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 "patient" : {Reference(Patient)}, // R! Who this profile is for "recommendation" : [{ // C? R! Vaccine administration recommendations "extension": [ { // C?Extension "url": "http://hl7.org/fhir/uv/cdsi/StructureDefinition/template-forecastStatusReason", "valueCode" : "<code>" // Value of extension } ], "date" : "<dateTime>", // R! Date recommendation created "vaccineCode" : {CodeableConcept}, // Vaccine recommendation applies to "targetDisease" : {CodeableConcept}, // Disease to be immunized against "doseNumber" : "<positiveInt>", // Recommended dose number "forecastStatus" : {CodeableConcept}, // R! Vaccine administration status "dateCriterion" : [{ // C? Dates governing proposed immunization "extension": [ ], "code" : {CodeableConcept}, // R! Type of date "value" : "<dateTime>", // R! Recommended date }], "protocol" : { // C? Protocol used by recommendation "extension": [ ], "doseSequence" : "<positiveInt>", // Dose number within sequence "description" : "<string>", // Protocol details "authority" : {Reference(Organization)}, // Who is responsible for protocol "series" : "<string>", // Name of vaccination series }, "supportingImmunization" : [{Reference(Immunization)}], // Past immunizations supporting recommendation "supportingPatientInformation" : [{Reference(Observation)}], // Patient observations supporting recommendation }], }

 

D.1.0.2 Terminology Bindings

Terminology Bindings

PathNameConformanceValueSet
ImmunizationRecommendation.languageCommon LanguagesextensibleCommon Languages
ImmunizationRecommendation.recommendation.vaccineCodeVaccine Administered Value SetexampleVaccine Administered Value Set
ImmunizationRecommendation.recommendation.targetDiseaseImmunization Recommendation Target Disease CodesexampleImmunization Recommendation Target Disease Codes
ImmunizationRecommendation.recommendation.forecastStatusForecast Status codesextensibleForecast Status codes
ImmunizationRecommendation.recommendation.dateCriterion.codeImmunization Recommendation Date Criterion Codes extensibleImmunization Recommendation Date Criterion Codes 

D.1.0.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2ImmunizationRecommendationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1ImmunizationRecommendationIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4ImmunizationRecommendationIf 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-3ImmunizationRecommendationIf 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()
ele-1ImmunizationRecommendation.recommendationAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
imr-1ImmunizationRecommendation.recommendationOne of vaccineCode or targetDisease SHALL be present
: vaccineCode.exists() or targetDisease.exists()
ele-1ImmunizationRecommendation.recommendation.extensionAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1ImmunizationRecommendation.recommendation.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1ImmunizationRecommendation.recommendation.extensionAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1ImmunizationRecommendation.recommendation.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1ImmunizationRecommendation.recommendation.dateCriterionAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
imm-cds-1ImmunizationRecommendation.recommendation.dateCriterionif recommendation.forecastStatus is one of (due, due later, not complete, overdue, consider, wavered, recommended but not required) then two dateCriterion elements are required: one with dateCriterion.code=earliest, and one with dateCriterion.code=recommended
: recommendation.where(($this.forecastStatus.coding.where(code = 'due') or $this.forecastStatus.coding.where(code = 'duelater')).not() or ($this.dateCriterion.code.coding.where(code = 'due') and $this.dateCriterion.code.coding.where(code = 'overdue'))).count() = recommendation.count()
ele-1ImmunizationRecommendation.recommendation.protocolAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())