This page is part of the HL7 FHIR Implementation Guide: minimal Common Oncology Data Elements (mCODE) Release 1 - US Realm | STU1 (v0.9.1: STU 1 Ballot 1) based on FHIR R4. The current version which supercedes this version is 2.0.0. For a full list of available versions, see the Directory of published versions
The official URL for this profile is:
http://hl7.org/fhir/us/mcode/StructureDefinition/obf-NonLaboratoryObservation
An observation that is not based on a specimen.
This profile builds on Observation.
This profile was published on Thu Aug 01 00:00:00 EDT 2019 as a active by HL7 International Clinical Interoperability Council.
Summary
Mandatory: 0 element (1 nested mandatory element)
Prohibited: 1 element
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Mapping Source
This structure represents the following mapping definition:
obf.NonLaboratoryObservation maps to Observation: Language maps to language ImplicitRules maps to implicitRules Metadata.VersionId maps to meta.versionId Metadata.SourceSystem maps to meta.source Metadata.Profile maps to meta.profile Metadata.LastUpdated maps to meta.lastUpdated Metadata.SecurityLabel maps to meta.security Metadata.Tag maps to meta.tag Narrative maps to text Identifier maps to identifier ObservationBasedOn maps to basedOn ObservationPartOf maps to partOf Status maps to status Category maps to category Code maps to code ObservationSubjectOfRecord maps to subject FocalSubject maps to focus CareContext maps to encounter RelevantTime maps to effective[x] // Add Types Timing, instant StatementDateTime maps to issued Performer maps to performer // Added Target Types PractitionerRole, CareTeam DataValue maps to value[x] // Add Type integer, remove Type Attachment DataAbsentReason maps to dataAbsentReason Interpretation maps to interpretation Annotation maps to note BodyLocation.Code maps to bodySite BodyLocation.Laterality maps to bodySite.extension BodyLocation.AnatomicalOrientation maps to bodySite.extension BodyLocation.RelationToLandmark maps to bodySite.extension Method maps to method Specimen maps to specimen Device maps to device ReferenceRange maps to referenceRange ReferenceRange.LowerBound maps to referenceRange.low ReferenceRange.UpperBound maps to referenceRange.high ReferenceRange.Type maps to referenceRange.type ReferenceRange.ApplicableSubpopulation maps to referenceRange.appliesTo ReferenceRange.ApplicableAgeRange maps to referenceRange.age ReferenceRange.Text maps to referenceRange.text PanelMembers.Observation maps to hasMember (slice on = $this.resolve().code.coding.code; slice strategy = includes) ObservationDerivedFrom maps to derivedFrom Components.ObservationComponent maps to component (slice on = code.coding.code; slice strategy = includes) Components.ObservationComponent.Code maps to component.code Components.ObservationComponent.DataValue maps to component.value[x] Components.ObservationComponent.DataAbsentReason maps to component.dataAbsentReason Components.ObservationComponent.Interpretation maps to component.interpretation Components.ObservationComponent.ReferenceRange maps to component.referenceRange Components.ObservationComponent.ReferenceRange.LowerBound maps to component.referenceRange.low Components.ObservationComponent.ReferenceRange.UpperBound maps to component.referenceRange.high Components.ObservationComponent.ReferenceRange.Type maps to component.referenceRange.type Components.ObservationComponent.ReferenceRange.ApplicableSubpopulation maps to component.referenceRange.appliesTo Components.ObservationComponent.ReferenceRange.ApplicableAgeRange maps to component.referenceRange.age Components.ObservationComponent.ReferenceRange.Text maps to component.referenceRange.text
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | obf-NonLaboratoryObservation obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present | |
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) Max Binding: AllLanguages | |
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 |
identifier | Σ | 0..* | Identifier | Business Identifier for observation |
basedOn | Σ | 0..* | Reference(US Core MedicationRequest Profile | ServiceRequest) | Fulfills plan, proposal or order |
partOf | Σ | 0..* | Reference(MedicationAdministration | obf-MedicationStatement | obf-Procedure) | A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure. |
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | 0..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (extensible) | |
code | Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example) |
subject | Σ | 1..1 | Reference(obf-Patient | Group | US Core Device Profile | US Core Location Profile) | The subject of an observation |
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
encounter | Σ | 0..1 | Reference(US Core Encounter Profile) | Healthcare event during which this observation is made |
effective[x] | Σ | 0..1 | dateTime, Period | Clinically relevant time/time-period for observation |
issued | Σ | 0..1 | instant | Date/Time this version was made available |
performer | Σ | 0..* | Reference(US Core Practitioner Profile | US Core Organization Profile | obf-Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | ΣI | 0..1 | Quantity, CodeableConcept, string, Range, Ratio, SampledData, time, dateTime, Period | Actual result |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) | |
note | 0..* | Annotation | Comments about the observation | |
bodySite | 0..1 | CodeableConcept | Observed body part Binding: BodyLocationVS (preferred) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
obf-datatype-Laterality-extension | 0..1 | CodeableConcept | Laterality URL: http://hl7.org/fhir/us/mcode/StructureDefinition/obf-datatype-Laterality-extension Binding: Laterality (extensible) | |
obf-datatype-AnatomicalOrientation-extension | 0..1 | CodeableConcept | AnatomicalOrientation URL: http://hl7.org/fhir/us/mcode/StructureDefinition/obf-datatype-AnatomicalOrientation-extension Binding: AnatomicalOrientationVS (extensible) | |
obf-datatype-RelationToLandmark-extension | 0..* | (Complex) | RelationToLandmark URL: http://hl7.org/fhir/us/mcode/StructureDefinition/obf-datatype-RelationToLandmark-extension | |
coding | Σ | 0..* | Coding | Code defined by a terminology system |
text | Σ | 0..1 | string | Plain text representation of the concept |
method | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) | |
device | 0..1 | Reference(US Core Device Profile) | (Measurement) Device | |
referenceRange | I | 0..1 | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
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 | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (extensible) | |
appliesTo | 0..1 | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (extensible) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
hasMember | Σ | 0..* | Reference(obf-Observation) | Related resource that belongs to the Observation group |
derivedFrom | Σ | 0..* | Reference(US Core DocumentReference Profile | Media | QuestionnaireResponse | obf-Observation) | Related measurements the observation is made from |
component | ΣI | 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) |
value[x] | Σ | 0..1 | Quantity, CodeableConcept, string, Range, Ratio, SampledData, time, dateTime, Period | Actual component result |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) | |
referenceRange | 0..* | BackboneElement | Provides guide for interpretation of component result | |
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 | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (extensible) | |
appliesTo | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (extensible) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
Documentation for this format |
Summary
Mandatory: 0 element (1 nested mandatory element)
Prohibited: 1 element
Structures
This structure refers to these other structures:
Extensions
This structure refers to these extensions:
Mapping Source
This structure represents the following mapping definition:
obf.NonLaboratoryObservation maps to Observation: Language maps to language ImplicitRules maps to implicitRules Metadata.VersionId maps to meta.versionId Metadata.SourceSystem maps to meta.source Metadata.Profile maps to meta.profile Metadata.LastUpdated maps to meta.lastUpdated Metadata.SecurityLabel maps to meta.security Metadata.Tag maps to meta.tag Narrative maps to text Identifier maps to identifier ObservationBasedOn maps to basedOn ObservationPartOf maps to partOf Status maps to status Category maps to category Code maps to code ObservationSubjectOfRecord maps to subject FocalSubject maps to focus CareContext maps to encounter RelevantTime maps to effective[x] // Add Types Timing, instant StatementDateTime maps to issued Performer maps to performer // Added Target Types PractitionerRole, CareTeam DataValue maps to value[x] // Add Type integer, remove Type Attachment DataAbsentReason maps to dataAbsentReason Interpretation maps to interpretation Annotation maps to note BodyLocation.Code maps to bodySite BodyLocation.Laterality maps to bodySite.extension BodyLocation.AnatomicalOrientation maps to bodySite.extension BodyLocation.RelationToLandmark maps to bodySite.extension Method maps to method Specimen maps to specimen Device maps to device ReferenceRange maps to referenceRange ReferenceRange.LowerBound maps to referenceRange.low ReferenceRange.UpperBound maps to referenceRange.high ReferenceRange.Type maps to referenceRange.type ReferenceRange.ApplicableSubpopulation maps to referenceRange.appliesTo ReferenceRange.ApplicableAgeRange maps to referenceRange.age ReferenceRange.Text maps to referenceRange.text PanelMembers.Observation maps to hasMember (slice on = $this.resolve().code.coding.code; slice strategy = includes) ObservationDerivedFrom maps to derivedFrom Components.ObservationComponent maps to component (slice on = code.coding.code; slice strategy = includes) Components.ObservationComponent.Code maps to component.code Components.ObservationComponent.DataValue maps to component.value[x] Components.ObservationComponent.DataAbsentReason maps to component.dataAbsentReason Components.ObservationComponent.Interpretation maps to component.interpretation Components.ObservationComponent.ReferenceRange maps to component.referenceRange Components.ObservationComponent.ReferenceRange.LowerBound maps to component.referenceRange.low Components.ObservationComponent.ReferenceRange.UpperBound maps to component.referenceRange.high Components.ObservationComponent.ReferenceRange.Type maps to component.referenceRange.type Components.ObservationComponent.ReferenceRange.ApplicableSubpopulation maps to component.referenceRange.appliesTo Components.ObservationComponent.ReferenceRange.ApplicableAgeRange maps to component.referenceRange.age Components.ObservationComponent.ReferenceRange.Text maps to component.referenceRange.text
Differential View
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | I | 0..* | obf-NonLaboratoryObservation obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present | |
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) Max Binding: AllLanguages | |
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 |
identifier | Σ | 0..* | Identifier | Business Identifier for observation |
basedOn | Σ | 0..* | Reference(US Core MedicationRequest Profile | ServiceRequest) | Fulfills plan, proposal or order |
partOf | Σ | 0..* | Reference(MedicationAdministration | obf-MedicationStatement | obf-Procedure) | A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure. |
status | ?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required) |
category | 0..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (extensible) | |
code | Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example) |
subject | Σ | 1..1 | Reference(obf-Patient | Group | US Core Device Profile | US Core Location Profile) | The subject of an observation |
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record |
encounter | Σ | 0..1 | Reference(US Core Encounter Profile) | Healthcare event during which this observation is made |
effective[x] | Σ | 0..1 | dateTime, Period | Clinically relevant time/time-period for observation |
issued | Σ | 0..1 | instant | Date/Time this version was made available |
performer | Σ | 0..* | Reference(US Core Practitioner Profile | US Core Organization Profile | obf-Patient | RelatedPerson) | Who is responsible for the observation |
value[x] | ΣI | 0..1 | Quantity, CodeableConcept, string, Range, Ratio, SampledData, time, dateTime, Period | Actual result |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..1 | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) | |
note | 0..* | Annotation | Comments about the observation | |
bodySite | 0..1 | CodeableConcept | Observed body part Binding: BodyLocationVS (preferred) | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
obf-datatype-Laterality-extension | 0..1 | CodeableConcept | Laterality URL: http://hl7.org/fhir/us/mcode/StructureDefinition/obf-datatype-Laterality-extension Binding: Laterality (extensible) | |
obf-datatype-AnatomicalOrientation-extension | 0..1 | CodeableConcept | AnatomicalOrientation URL: http://hl7.org/fhir/us/mcode/StructureDefinition/obf-datatype-AnatomicalOrientation-extension Binding: AnatomicalOrientationVS (extensible) | |
obf-datatype-RelationToLandmark-extension | 0..* | (Complex) | RelationToLandmark URL: http://hl7.org/fhir/us/mcode/StructureDefinition/obf-datatype-RelationToLandmark-extension | |
coding | Σ | 0..* | Coding | Code defined by a terminology system |
text | Σ | 0..1 | string | Plain text representation of the concept |
method | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example) | |
device | 0..1 | Reference(US Core Device Profile) | (Measurement) Device | |
referenceRange | I | 0..1 | BackboneElement | Provides guide for interpretation obs-3: Must have at least a low or a high or text |
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 | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (extensible) | |
appliesTo | 0..1 | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (extensible) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
hasMember | Σ | 0..* | Reference(obf-Observation) | Related resource that belongs to the Observation group |
derivedFrom | Σ | 0..* | Reference(US Core DocumentReference Profile | Media | QuestionnaireResponse | obf-Observation) | Related measurements the observation is made from |
component | ΣI | 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) |
value[x] | Σ | 0..1 | Quantity, CodeableConcept, string, Range, Ratio, SampledData, time, dateTime, Period | Actual component result |
dataAbsentReason | I | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible) |
interpretation | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible) | |
referenceRange | 0..* | BackboneElement | Provides guide for interpretation of component result | |
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 | I | 0..1 | SimpleQuantity | Low Range, if relevant |
high | I | 0..1 | SimpleQuantity | High Range, if relevant |
type | 0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (extensible) | |
appliesTo | 0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (extensible) | |
age | 0..1 | Range | Applicable age range, if relevant | |
text | 0..1 | string | Text based reference range in an observation | |
Documentation for this format |
Downloads: StructureDefinition: (XML, JSON, TTL), Schema: XML Schematron
Path | Conformance | ValueSet |
Observation.language | preferred | CommonLanguages Max Binding: AllLanguages |
Observation.status | required | ObservationStatus |
Observation.category | extensible | ObservationCategoryCodes |
Observation.code | example | LOINCCodes |
Observation.dataAbsentReason | extensible | DataAbsentReason |
Observation.interpretation | extensible | ObservationInterpretationCodes |
Observation.bodySite | preferred | BodyLocationVS |
Observation.method | example | ObservationMethods |
Observation.referenceRange.type | extensible | ObservationReferenceRangeMeaningCodes |
Observation.referenceRange.appliesTo | extensible | ObservationReferenceRangeAppliesToCodes |
Observation.component.code | example | LOINCCodes |
Observation.component.dataAbsentReason | extensible | DataAbsentReason |
Observation.component.interpretation | extensible | ObservationInterpretationCodes |
Observation.component.referenceRange.type | extensible | ObservationReferenceRangeMeaningCodes |
Observation.component.referenceRange.appliesTo | extensible | ObservationReferenceRangeAppliesToCodes |
Id | Path | Details | Requirements |
dom-2 | Observation | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-4 | 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-3 | 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-6 | Observation | A resource should have narrative for robust management : text.div.exists() | |
dom-5 | Observation | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
obs-7 | 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.code = %resource.code.coding.code) and (coding.system = %resource.code.coding.system)).empty() | |
obs-6 | Observation | dataAbsentReason SHALL only be present if Observation.value[x] is not present : dataAbsentReason.empty() or value.empty() | |
ele-1 | Observation.referenceRange | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
obs-3 | Observation.referenceRange | Must have at least a low or a high or text : low.exists() or high.exists() or text.exists() | |
ele-1 | Observation.component | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |