QI-Core Implementation Guide
8.0.0-ballot - STU 8 - ballot

QI-Core Implementation Guide, published by HL7 International / Clinical Quality Information. This guide is not an authorized publication; it is the continuous build for version 8.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-qi-core/ and changes regularly. See the Directory of published versions

## Resource Profile: QICore Observation Clinical Result

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-observation-clinical-result | Version: 8.0.0-ballot
Standards status: Trial-use Active as of 2022-04-20 | Maturity Level: 4 | Computable Name: QICoreObservationClinicalResult
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

This profile sets minimum expectations for the Observation resource to record and search non-laboratory clinical test results (e.g., radiology and other clinical observations generated from procedures). An example would be when a gastroenterologist reports the size of a polyp observed during a colonoscopy. This profile is the basis for the US Core Clinical Result Profile, which defines additional data elements to record and search laboratory test results.

"Must Have", "QI Elements" and "primary code path" are defined in the QI-Core Must Support section.
Must Have:

- code: (QI) Clinical Test or Procedure Name
- subject: (QI) Who and/or what the observation is about
- category: (QI) Classification of type of observation
- status: (QI) registered | prliminary | final | amended | corrected | cancelled | entered-in-error | unknown

QI Elements:

- value[x]: (QI) Result Value
- dataAbsentReason: (QI) Why the result is missing
- category(us-core): (QI) Classification of type of observation
- effective[x]: (QI) Clinically relevant time/time-period for observation

Primary code path: code
(PCPath) This element is the primary code path for this resource CQL Retrieve
Usage

See the patterns page for implementation and usage patterns.

### Examples

Heart rate rhythm clinical result example

Usages:

- Refer to this Profile: QICore DiagnosticReport Profile for Report and Note Exchange
- Examples for this Profile: Observation/clinical-result-heart-rate-rhythm

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | USCoreObservationClinicalResultProfile | Measurements and simple assertions Constraints: obs-6, obs-7, us-core-2
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ | 1..1 | code | (QI) registered | prliminary | final | amended | corrected | cancelled | entered-in-error | unknown Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category | S | 1..* | CodeableConcept | (QI) Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:us-core | S | 0..* | CodeableConcept | (QI) Classification of type of observation Binding: US Core Clinical Result Observation Category (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | (QI) Clinical Test or Procedure Name Binding: LOINCCodes (extensible)
subject | S Σ | 1..1 | Reference(QICore Patient | Group | Device | QICore Location) | (QI) Who and/or what the observation is about
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with Observation
effective[x] | S Σ C | 0..1 |  | (QI) Clinically relevant time/time-period for observation Constraints: us-core-1
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
effectiveTiming |  |  | Timing |
effectiveInstant |  |  | instant |
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | US Core CareTeam Profile | US Core RelatedPerson Profile) | Who is responsible for the observation
value[x] | S Σ C | 0..1 |  | (QI) Result Value Constraints: us-core-3
valueQuantity |  |  | Quantity S |
valueCodeableConcept |  |  | CodeableConcept S |
valueString |  |  | string S |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason | S C | 0..1 | CodeableConcept | (QI) Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📦4.0.1 | FHIR Std.
Observation.category:us-core | Base | required | US Core Clinical Result Observation Category | 📦8.0.0 | US Core v8.0
Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Observation | 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 | `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-4 | error | Observation | If 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-5 | error | Observation | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Observation | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
obs-6 | error | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present | `dataAbsentReason.empty() or value.empty()`
obs-7 | error | Observation | If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present | `value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()`
us-core-1 | error | Observation.effective[x] | Datetime must be at least to day. | `$this is dateTime implies $this.toString().length() >= 10`
us-core-2 | error | Observation | If there is no component or hasMember element then either a value[x] or a data absent reason must be present | `(component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())`
us-core-3 | error | Observation.value[x] | SHALL use UCUM for coded quantity units. | `ofType(Quantity).system.empty() or ofType(Quantity).system = 'http://unitsofmeasure.org'`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation |  | 0..* | USCoreObservationClinicalResultProfile | Measurements and simple assertions
status |  | 1..1 | code | (QI) registered | prliminary | final | amended | corrected | cancelled | entered-in-error | unknown
Slices for category |  | 1..* | CodeableConcept | (QI) Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:us-core |  | 0..* | CodeableConcept | (QI) Classification of type of observation Binding: US Core Clinical Result Observation Category (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | Σ | 1..1 | CodeableConcept | (QI) Clinical Test or Procedure Name Binding: LOINCCodes (extensible)
subject |  | 1..1 | Reference(QICore Patient | Group | Device | QICore Location) | (QI) Who and/or what the observation is about
effective[x] |  | 0..1 |  | (QI) Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
effectiveTiming |  |  | Timing |
effectiveInstant |  |  | instant |
value[x] |  | 0..1 |  | (QI) Result Value
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason |  | 0..1 | CodeableConcept | (QI) Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Observation.category | Base | preferred | Observation Category Codes | 📦4.0.1 | FHIR Std.
Observation.category:us-core | Base | required | US Core Clinical Result Observation Category | 📦8.0.0 | US Core v8.0
Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | USCoreObservationClinicalResultProfile | Measurements and simple assertions Constraints: obs-6, obs-7, us-core-2
id | Σ | 0..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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business Identifier for observation
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event
status | ?!S Σ | 1..1 | code | (QI) registered | prliminary | final | amended | corrected | cancelled | entered-in-error | unknown Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category | S | 1..* | CodeableConcept | (QI) Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:us-core | S | 0..* | CodeableConcept | (QI) Classification of type of observation Binding: US Core Clinical Result Observation Category (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | (QI) Clinical Test or Procedure Name Binding: LOINCCodes (extensible)
subject | S Σ | 1..1 | Reference(QICore Patient | Group | Device | QICore Location) | (QI) Who and/or what the observation is about
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with Observation
effective[x] | S Σ C | 0..1 |  | (QI) Clinically relevant time/time-period for observation Constraints: us-core-1
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
effectiveTiming |  |  | Timing |
effectiveInstant |  |  | instant |
issued | Σ | 0..1 | instant | Date/Time this version was made available
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | US Core CareTeam Profile | US Core RelatedPerson Profile) | Who is responsible for the observation
value[x] | S Σ C | 0..1 |  | (QI) Result Value Constraints: us-core-3
valueQuantity |  |  | Quantity S |
valueCodeableConcept |  |  | CodeableConcept S |
valueString |  |  | string S |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason | S C | 0..1 | CodeableConcept | (QI) Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
note |  | 0..* | Annotation | Comments about the observation
bodySite |  | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
method |  | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations.
specimen |  | 0..1 | Reference(Specimen) | Specimen used for this observation
device |  | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device
referenceRange | C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3
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
low | C | 0..1 | SimpleQuantity | Low Range, if relevant
high | C | 0..1 | SimpleQuantity | High Range, if relevant
type |  | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
appliesTo |  | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
age |  | 0..1 | Range | Applicable age range, if relevant
text |  | 0..1 | string | Text based reference range in an observation
hasMember | Σ | 0..* | Reference(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group
derivedFrom | Σ | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) | Related measurements the observation is made from
component | Σ | 0..* | BackboneElement | Component results
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
code | Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations.
value[x] | Σ | 0..1 |  | Actual component result
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason | C | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
referenceRange |  | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📦4.0.1 | FHIR Std.
Observation.category:us-core | Base | required | US Core Clinical Result Observation Category | 📦8.0.0 | US Core v8.0
Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.
Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📦4.0.1 | FHIR Std.
Observation.bodySite | Base | example | SNOMED CT Body Structures | 📦4.0.1 | FHIR Std.
Observation.method | Base | example | Observation Methods | 📦4.0.1 | FHIR Std.
Observation.referenceRange.​type | Base | preferred | Observation Reference Range Meaning Codes | 📦4.0.1 | FHIR Std.
Observation.referenceRange.​appliesTo | Base | example | Observation Reference Range Applies To Codes | 📦4.0.1 | FHIR Std.
Observation.component.​code | Base | example | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.component.​dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.
Observation.component.​interpretation | Base | extensible | Observation Interpretation Codes | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Observation | 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 | `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-4 | error | Observation | If 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-5 | error | Observation | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Observation | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
obs-3 | error | Observation.referenceRange | Must have at least a low or a high or text | `low.exists() or high.exists() or text.exists()`
obs-6 | error | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present | `dataAbsentReason.empty() or value.empty()`
obs-7 | error | Observation | If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present | `value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()`
us-core-1 | error | Observation.effective[x] | Datetime must be at least to day. | `$this is dateTime implies $this.toString().length() >= 10`
us-core-2 | error | Observation | If there is no component or hasMember element then either a value[x] or a data absent reason must be present | `(component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())`
us-core-3 | error | Observation.value[x] | SHALL use UCUM for coded quantity units. | `ofType(Quantity).system.empty() or ofType(Quantity).system = 'http://unitsofmeasure.org'`

Summary

Mandatory: 2 elements

Structures

This structure refers to these other structures:

- QICore Patient (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient)
- QICore Location (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-location)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Observation.category

Maturity: 4

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | USCoreObservationClinicalResultProfile | Measurements and simple assertions Constraints: obs-6, obs-7, us-core-2
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ | 1..1 | code | (QI) registered | prliminary | final | amended | corrected | cancelled | entered-in-error | unknown Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category | S | 1..* | CodeableConcept | (QI) Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:us-core | S | 0..* | CodeableConcept | (QI) Classification of type of observation Binding: US Core Clinical Result Observation Category (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | (QI) Clinical Test or Procedure Name Binding: LOINCCodes (extensible)
subject | S Σ | 1..1 | Reference(QICore Patient | Group | Device | QICore Location) | (QI) Who and/or what the observation is about
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with Observation
effective[x] | S Σ C | 0..1 |  | (QI) Clinically relevant time/time-period for observation Constraints: us-core-1
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
effectiveTiming |  |  | Timing |
effectiveInstant |  |  | instant |
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | US Core CareTeam Profile | US Core RelatedPerson Profile) | Who is responsible for the observation
value[x] | S Σ C | 0..1 |  | (QI) Result Value Constraints: us-core-3
valueQuantity |  |  | Quantity S |
valueCodeableConcept |  |  | CodeableConcept S |
valueString |  |  | string S |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason | S C | 0..1 | CodeableConcept | (QI) Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📦4.0.1 | FHIR Std.
Observation.category:us-core | Base | required | US Core Clinical Result Observation Category | 📦8.0.0 | US Core v8.0
Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Observation | 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 | `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-4 | error | Observation | If 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-5 | error | Observation | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Observation | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
obs-6 | error | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present | `dataAbsentReason.empty() or value.empty()`
obs-7 | error | Observation | If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present | `value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()`
us-core-1 | error | Observation.effective[x] | Datetime must be at least to day. | `$this is dateTime implies $this.toString().length() >= 10`
us-core-2 | error | Observation | If there is no component or hasMember element then either a value[x] or a data absent reason must be present | `(component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())`
us-core-3 | error | Observation.value[x] | SHALL use UCUM for coded quantity units. | `ofType(Quantity).system.empty() or ofType(Quantity).system = 'http://unitsofmeasure.org'`

Differential View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation |  | 0..* | USCoreObservationClinicalResultProfile | Measurements and simple assertions
status |  | 1..1 | code | (QI) registered | prliminary | final | amended | corrected | cancelled | entered-in-error | unknown
Slices for category |  | 1..* | CodeableConcept | (QI) Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:us-core |  | 0..* | CodeableConcept | (QI) Classification of type of observation Binding: US Core Clinical Result Observation Category (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | Σ | 1..1 | CodeableConcept | (QI) Clinical Test or Procedure Name Binding: LOINCCodes (extensible)
subject |  | 1..1 | Reference(QICore Patient | Group | Device | QICore Location) | (QI) Who and/or what the observation is about
effective[x] |  | 0..1 |  | (QI) Clinically relevant time/time-period for observation
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
effectiveTiming |  |  | Timing |
effectiveInstant |  |  | instant |
value[x] |  | 0..1 |  | (QI) Result Value
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason |  | 0..1 | CodeableConcept | (QI) Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
Observation.category | Base | preferred | Observation Category Codes | 📦4.0.1 | FHIR Std.
Observation.category:us-core | Base | required | US Core Clinical Result Observation Category | 📦8.0.0 | US Core v8.0
Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Observation | C | 0..* | USCoreObservationClinicalResultProfile | Measurements and simple assertions Constraints: obs-6, obs-7, us-core-2
id | Σ | 0..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
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business Identifier for observation
basedOn | Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order
partOf | Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event
status | ?!S Σ | 1..1 | code | (QI) registered | prliminary | final | amended | corrected | cancelled | entered-in-error | unknown Binding: ObservationStatus (required): Codes providing the status of an observation.
Slices for category | S | 1..* | CodeableConcept | (QI) Classification of type of observation Slice: Unordered, Open by value:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.
category:us-core | S | 0..* | CodeableConcept | (QI) Classification of type of observation Binding: US Core Clinical Result Observation Category (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | (QI) Clinical Test or Procedure Name Binding: LOINCCodes (extensible)
subject | S Σ | 1..1 | Reference(QICore Patient | Group | Device | QICore Location) | (QI) Who and/or what the observation is about
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with Observation
effective[x] | S Σ C | 0..1 |  | (QI) Clinically relevant time/time-period for observation Constraints: us-core-1
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
effectiveTiming |  |  | Timing |
effectiveInstant |  |  | instant |
issued | Σ | 0..1 | instant | Date/Time this version was made available
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core Patient Profile | PractitionerRole | US Core CareTeam Profile | US Core RelatedPerson Profile) | Who is responsible for the observation
value[x] | S Σ C | 0..1 |  | (QI) Result Value Constraints: us-core-3
valueQuantity |  |  | Quantity S |
valueCodeableConcept |  |  | CodeableConcept S |
valueString |  |  | string S |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason | S C | 0..1 | CodeableConcept | (QI) Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
note |  | 0..* | Annotation | Comments about the observation
bodySite |  | 0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
method |  | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations.
specimen |  | 0..1 | Reference(Specimen) | Specimen used for this observation
device |  | 0..1 | Reference(Device | DeviceMetric) | (Measurement) Device
referenceRange | C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3
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
low | C | 0..1 | SimpleQuantity | Low Range, if relevant
high | C | 0..1 | SimpleQuantity | High Range, if relevant
type |  | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
appliesTo |  | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.
age |  | 0..1 | Range | Applicable age range, if relevant
text |  | 0..1 | string | Text based reference range in an observation
hasMember | Σ | 0..* | Reference(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group
derivedFrom | Σ | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) | Related measurements the observation is made from
component | Σ | 0..* | BackboneElement | Component results
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
code | Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations.
value[x] | Σ | 0..1 |  | Actual component result
valueQuantity |  |  | Quantity |
valueCodeableConcept |  |  | CodeableConcept |
valueString |  |  | string |
valueBoolean |  |  | boolean |
valueInteger |  |  | integer |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueSampledData |  |  | SampledData |
valueTime |  |  | time |
valueDateTime |  |  | dateTime |
valuePeriod |  |  | Period |
dataAbsentReason | C | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
interpretation |  | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.
referenceRange |  | 0..* | See referenceRange (Observation) | Provides guide for interpretation of component result
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Observation.language | Base | preferred | Common Languages | 📦4.0.1 | FHIR Std.
Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std.
Observation.category | Base | preferred | Observation Category Codes | 📦4.0.1 | FHIR Std.
Observation.category:us-core | Base | required | US Core Clinical Result Observation Category | 📦8.0.0 | US Core v8.0
Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.
Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📦4.0.1 | FHIR Std.
Observation.bodySite | Base | example | SNOMED CT Body Structures | 📦4.0.1 | FHIR Std.
Observation.method | Base | example | Observation Methods | 📦4.0.1 | FHIR Std.
Observation.referenceRange.​type | Base | preferred | Observation Reference Range Meaning Codes | 📦4.0.1 | FHIR Std.
Observation.referenceRange.​appliesTo | Base | example | Observation Reference Range Applies To Codes | 📦4.0.1 | FHIR Std.
Observation.component.​code | Base | example | LOINC Codes | 📦4.0.1 | FHIR Std.
Observation.component.​dataAbsentReason | Base | extensible | DataAbsentReason | 📦4.0.1 | FHIR Std.
Observation.component.​interpretation | Base | extensible | Observation Interpretation Codes | 📦4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Observation | 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 | `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-4 | error | Observation | If 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-5 | error | Observation | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Observation | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
obs-3 | error | Observation.referenceRange | Must have at least a low or a high or text | `low.exists() or high.exists() or text.exists()`
obs-6 | error | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present | `dataAbsentReason.empty() or value.empty()`
obs-7 | error | Observation | If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present | `value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()`
us-core-1 | error | Observation.effective[x] | Datetime must be at least to day. | `$this is dateTime implies $this.toString().length() >= 10`
us-core-2 | error | Observation | If there is no component or hasMember element then either a value[x] or a data absent reason must be present | `(component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())`
us-core-3 | error | Observation.value[x] | SHALL use UCUM for coded quantity units. | `ofType(Quantity).system.empty() or ofType(Quantity).system = 'http://unitsofmeasure.org'`

Summary

Mandatory: 2 elements

Structures

This structure refers to these other structures:

- QICore Patient (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient)
- QICore Location (http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-location)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Observation.category

Maturity: 4

Other representations of profile: CSV, Excel, Schematron