Opioid Prescribing Support Implementation Guide, published by Centers for Disease Control and Prevention (CDC). This is not an authorized publication; it is the continuous build for version 1.2.3). This version is based on the current content of https://github.com/cqframework/opioid-cds/ and changes regularly. See the Directory of published versions

D.4.1 StructureDefinition: cdc-observation

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://fhir.org/guides/cdc/opioid-cds/StructureDefinition/cdc-observation

Profile of Observation for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on Observation.

This profile was published on 2018-11-20 as a draft by Health Level Seven, Inc. - CQI WG.

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

This structure is derived from Observation

Summary

Mandatory: 1 element
Must-Support: 1 element

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation I0..*ObservationMeasurements and simple assertions
... 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): A human language.

Additional BindingsPurpose
All LanguagesMax Binding
... 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 for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)Fulfills plan, proposal or order
... status ?!Σ1..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.

... category 0..*CodeableConceptClassification of type of observation
Binding: Observation Category Codes (preferred): Codes for high level observation categories.


... code Σ1..1CodeableConceptType of observation (code / type)
Binding: LOINC Codes (example): Codes identifying names of simple observations.

... subject Σ0..1Reference(Patient | Group | Device | Location)Who and/or what this is about
... context 0..1Reference(Encounter | EpisodeOfCare)Healthcare event during which this observation is made
... effective[x] Σ0..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantDate/Time this was made available
... performer Σ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)Who is responsible for the observation
... value[x] ΣI0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueAttachmentAttachment
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
Binding: Observation Value Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... interpretation S1..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations.

... comment 0..1stringComments about result
... bodySite 0..1CodeableConceptObserved body part
Binding: SNOMED CT Body Structures (example): Codes describing anatomical locations. May include laterality.

... method 0..1CodeableConceptHow it was done
Binding: Observation Methods (example): Methods for simple observations.

... specimen 0..1Reference(Specimen)Specimen used for this observation
... device 0..1Reference(Device | DeviceMetric)(Measurement) Device
... referenceRange I0..*BackboneElementProvides guide for interpretation
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... low I0..1SimpleQuantityLow Range, if relevant
.... high I0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: Observation Reference Range Meaning Codes (extensible): Code for the meaning of a reference range.

.... appliesTo 0..*CodeableConceptReference range population
Binding: Observation Reference Range Applies To Codes (example): Codes identifying the population the reference range applies to.


.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... related Σ0..*BackboneElementResource related to this observation
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 0..1codehas-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
Binding: ObservationRelationshipType (required): Codes specifying how two observations are related.

.... target 1..1Reference(Observation | QuestionnaireResponse | Sequence)Resource that is related to this one
... component Σ0..*BackboneElementComponent results
.... 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 component observation (code / type)
Binding: LOINC Codes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueAttachmentAttachment
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: Observation Value Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations.

.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

This structure is derived from http://hl7.org/fhir/STU3/observation.html.

Summary

Mandatory: 1 element
Must-Support: 1 element

Differential View

This structure is derived from http://hl7.org/fhir/STU3/observation.html.

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation I0..*ObservationMeasurements and simple assertions
... 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): A human language.

Additional BindingsPurpose
All LanguagesMax Binding
... 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 for observation
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ProcedureRequest | ReferralRequest)Fulfills plan, proposal or order
... status ?!Σ1..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.

... category 0..*CodeableConceptClassification of type of observation
Binding: Observation Category Codes (preferred): Codes for high level observation categories.


... code Σ1..1CodeableConceptType of observation (code / type)
Binding: LOINC Codes (example): Codes identifying names of simple observations.

... subject Σ0..1Reference(Patient | Group | Device | Location)Who and/or what this is about
... context 0..1Reference(Encounter | EpisodeOfCare)Healthcare event during which this observation is made
... effective[x] Σ0..1Clinically relevant time/time-period for observation
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued Σ0..1instantDate/Time this was made available
... performer Σ0..*Reference(Practitioner | Organization | Patient | RelatedPerson)Who is responsible for the observation
... value[x] ΣI0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueAttachmentAttachment
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
... dataAbsentReason I0..1CodeableConceptWhy the result is missing
Binding: Observation Value Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... interpretation S1..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations.

... comment 0..1stringComments about result
... bodySite 0..1CodeableConceptObserved body part
Binding: SNOMED CT Body Structures (example): Codes describing anatomical locations. May include laterality.

... method 0..1CodeableConceptHow it was done
Binding: Observation Methods (example): Methods for simple observations.

... specimen 0..1Reference(Specimen)Specimen used for this observation
... device 0..1Reference(Device | DeviceMetric)(Measurement) Device
... referenceRange I0..*BackboneElementProvides guide for interpretation
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... low I0..1SimpleQuantityLow Range, if relevant
.... high I0..1SimpleQuantityHigh Range, if relevant
.... type 0..1CodeableConceptReference range qualifier
Binding: Observation Reference Range Meaning Codes (extensible): Code for the meaning of a reference range.

.... appliesTo 0..*CodeableConceptReference range population
Binding: Observation Reference Range Applies To Codes (example): Codes identifying the population the reference range applies to.


.... age 0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation
... related Σ0..*BackboneElementResource related to this observation
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 0..1codehas-member | derived-from | sequel-to | replaces | qualified-by | interfered-by
Binding: ObservationRelationshipType (required): Codes specifying how two observations are related.

.... target 1..1Reference(Observation | QuestionnaireResponse | Sequence)Resource that is related to this one
... component Σ0..*BackboneElementComponent results
.... 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 component observation (code / type)
Binding: LOINC Codes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueAttachmentAttachment
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason I0..1CodeableConceptWhy the component result is missing
Binding: Observation Value Absent Reason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..1CodeableConceptHigh, low, normal, etc.
Binding: Observation Interpretation Codes (extensible): Codes identifying interpretations of observations.

.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Observation.languageextensibleCommon Languages
Max Binding: All Languages
Observation.statusrequiredObservationStatus
Observation.categorypreferredObservation Category Codes
Observation.codeexampleLOINC Codes
Observation.dataAbsentReasonextensibleObservation Value Absent Reason
Observation.interpretationextensibleObservation Interpretation Codes
Observation.bodySiteexampleSNOMED CT Body Structures
Observation.methodexampleObservation Methods
Observation.referenceRange.typeextensibleObservation Reference Range Meaning Codes
Observation.referenceRange.appliesToexampleObservation Reference Range Applies To Codes
Observation.related.typerequiredObservationRelationshipType
Observation.component.codeexampleLOINC Codes
Observation.component.dataAbsentReasonextensibleObservation Value Absent Reason
Observation.component.interpretationextensibleObservation Interpretation Codes

D.4.1.3 Constraints

Constraints

IdGradePathDetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1errorObservationIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4errorObservationIf 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-3errorObservationIf 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()
obs-7errorObservationIf code is the same as a component code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where( (coding.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
ele-1errorObservation.referenceRangeAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
ele-1errorObservation.relatedAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1errorObservation.componentAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
.

s