Order Catalog Implementation Guide
current - CI Build International flag

Order Catalog Implementation Guide, published by HL7 International - Orders and Observations Work Group. This is not an authorized publication; it is the continuous build for version current). This version is based on the current content of https://github.com/HL7/fhir-order-catalog/ and changes regularly. See the Directory of published versions

Resource Profile: LabObservationDefinition Profile

Official URL: http://hl7.org/fhir/uv/order-catalog/StructureDefinition/LabObservationDefinition Version: current
Draft as of 2023-07-08 Computable Name: LabObservationDefinition

This profile constrains the base resource ObservationDefinition when referenced by ActivityDefinition.observationResultRequirement in the context of a catalog of laboratory services. Such a resource specifies the form of an output observation produced by a laboratory service.

Usage:

Formal Views of Profile Content

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

This structure is derived from ObservationDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. ObservationDefinition 0..*ObservationDefinitionDefinition of an observation
... quantitativeDetails S
.... unit S
..... coding
...... system Fixed Value: http://unitsofmeasure.org
... code
.... Slices for coding 0..*CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:LOINC 0..1CodingCode defined by a terminology system
...... system 0..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
... permittedDataType S0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. ObservationDefinition C0..*ObservationDefinitionDefinition of an observation
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... code Σ1..1CodeableConceptType of observation
Binding: LOINCCodes (example): Codes identifying names of simple observations.

... permittedDataType SC0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
Binding: ObservationDataType (required): Permitted data type for observation value.



Example General: CodeableConcept
... multipleResultsAllowed S0..1booleanMultiple results allowed for conforming observations
Example General: true

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
ObservationDefinition.statusrequiredPublicationStatus
ObservationDefinition.codeexampleLOINCCodes (a valid code from LOINC)
ObservationDefinition.permittedDataTyperequiredObservationDataType

Constraints

IdGradePath(s)DetailsRequirements
cnl-0warningObservationDefinitionName should be usable as an identifier for the module by machine processing applications such as code generation
: name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obd-0errorObservationDefinitionIf permittedUnit exists, then permittedDataType=Quantity must exist.
: permittedUnit.exists() implies (permittedDataType = 'Quantity').exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. ObservationDefinition C0..*ObservationDefinitionDefinition of an observation
... 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: AllLanguages (required): IETF language tag for a human language

... 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
... url Σ0..1uriLogical canonical URL to reference this ObservationDefinition (globally unique)
... identifier Σ0..1IdentifierBusiness identifier of the ObservationDefinition
... version Σ0..1stringBusiness version of the ObservationDefinition
... versionAlgorithm[x] Σ0..1How to compare versions
Binding: VersionAlgorithm (extensible)
.... versionAlgorithmStringstring
.... versionAlgorithmCodingCoding
... name ΣC0..1stringName for this ObservationDefinition (computer friendly)
... title Σ0..1stringName for this ObservationDefinition (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): Codes identifying the state of an ObservationDefinition.

... experimental Σ0..1booleanIf for testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringThe name of the individual or organization that published the ObservationDefinition
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the ObservationDefinition
... useContext Σ0..*UsageContextContent intends to support these contexts
... jurisdiction ΣXD0..*CodeableConceptIntended jurisdiction for this ObservationDefinition (if applicable)
Binding: JurisdictionValueSet (extensible): Codes for country, country subdivision and region for indicating where a resource is intended to be used.


... purpose 0..1markdownWhy this ObservationDefinition is defined
... copyright 0..1markdownUse and/or publishing restrictions
... copyrightLabel 0..1stringCopyright holder and year(s)
... approvalDate 0..1dateWhen ObservationDefinition was approved by publisher
... lastReviewDate 0..1dateDate on which the asset content was last reviewed by the publisher
... effectivePeriod Σ0..1PeriodThe effective date range for the ObservationDefinition
... derivedFromCanonical Σ0..*canonical(ObservationDefinition)Based on FHIR definition of another observation
... derivedFromUri Σ0..*uriBased on external definition
... subject Σ0..*CodeableConceptType of subject for the defined observation
... performerType Σ0..1CodeableConceptDesired kind of performer for such kind of observation
... category Σ0..*CodeableConceptGeneral type of observation
Binding: ObservationCategoryCodes (example): Codes for high level observation categories.


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

... permittedDataType SC0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
Binding: ObservationDataType (required): Permitted data type for observation value.



Example General: CodeableConcept
... multipleResultsAllowed S0..1booleanMultiple results allowed for conforming observations
Example General: true
... bodySite 0..1CodeableConceptBody part to be observed
Binding: SNOMEDCTBodyStructures (example): SNOMED CT body structures.

... method 0..1CodeableConceptMethod used to produce the observation
Binding: ObservationMethods (example): Methods for simple observations.

... specimen 0..*Reference(SpecimenDefinition)Kind of specimen used by this type of observation
... device 0..*Reference(DeviceDefinition | Device)Measurement device or model of device
... preferredReportName 0..1stringThe preferred name to be used when reporting the observation results
... permittedUnit C0..*CodingUnit for quantitative results
Binding: UCUMCodes (preferred): Codes identifying units of measure.


... qualifiedValue 0..*BackboneElementSet of qualified values for observation results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... context 0..1CodeableConceptContext qualifier for the set of qualified values
Binding: ObservationReferenceRangeMeaningCodes (extensible)
.... appliesTo 0..*CodeableConceptTargetted population for the set of qualified values
Binding: ObservationReferenceRangeAppliesToCodes (example)
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
Example General: female
.... age 0..1RangeApplicable age range for the set of qualified values
.... gestationalAge 0..1RangeApplicable gestational age range for the set of qualified values
.... condition 0..1stringCondition associated with the set of qualified values
.... rangeCategory 0..1codereference | critical | absolute
Binding: ObservationRangeCategory (required)
Example General: critical
.... range 0..1RangeThe range for continuous or ordinal observations
.... validCodedValueSet 0..1canonical(ValueSet)Value set of valid coded values as part of this set of qualified values
.... normalCodedValueSet 0..1canonical(ValueSet)Value set of normal coded values as part of this set of qualified values
.... abnormalCodedValueSet 0..1canonical(ValueSet)Value set of abnormal coded values as part of this set of qualified values
.... criticalCodedValueSet 0..1canonical(ValueSet)Value set of critical coded values as part of this set of qualified values
... hasMember 0..*Reference(ObservationDefinition | Questionnaire)Definitions of related resources belonging to this kind of observation group
... component C0..*BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 1..1CodeableConceptType of observation
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... permittedDataType C0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
Binding: ObservationDataType (required): Permitted data type for observation value.



Example General: CodeableConcept
.... permittedUnit C0..*CodingUnit for quantitative results
Binding: UCUMCodes (preferred): Codes identifying units of measure.


.... qualifiedValue 0..*See qualifiedValue (ObservationDefinition)Set of qualified values for observation results

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
ObservationDefinition.languagerequiredAllLanguages
ObservationDefinition.versionAlgorithm[x]extensibleVersionAlgorithm
ObservationDefinition.statusrequiredPublicationStatus
ObservationDefinition.jurisdictionextensibleJurisdictionValueSet
ObservationDefinition.categoryexampleObservationCategoryCodes
ObservationDefinition.codeexampleLOINCCodes (a valid code from LOINC)
ObservationDefinition.permittedDataTyperequiredObservationDataType
ObservationDefinition.bodySiteexampleSNOMEDCTBodyStructures
ObservationDefinition.methodexampleObservationMethods
ObservationDefinition.permittedUnitpreferredUCUMCodes (a valid code from UCUM)
ObservationDefinition.qualifiedValue.contextextensibleObservationReferenceRangeMeaningCodes
ObservationDefinition.qualifiedValue.appliesToexampleObservationReferenceRangeAppliesToCodes
ObservationDefinition.qualifiedValue.genderrequiredAdministrativeGender
ObservationDefinition.qualifiedValue.rangeCategoryrequiredObservationRangeCategory
ObservationDefinition.component.codeexampleLOINCCodes (a valid code from LOINC)
ObservationDefinition.component.permittedDataTyperequiredObservationDataType
ObservationDefinition.component.permittedUnitpreferredUCUMCodes (a valid code from UCUM)

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obd-1errorObservationDefinition.componentIf permittedUnit exists, then permittedDataType=Quantity must exist.
: permittedUnit.exists() implies (permittedDataType = 'Quantity').exists()

This structure is derived from ObservationDefinition

Summary

Must-Support: 4 elements
Fixed Value: 2 elements

Slices

This structure defines the following Slices:

  • The element ObservationDefinition.code.coding is sliced based on the value of value:system

Differential View

This structure is derived from ObservationDefinition

NameFlagsCard.TypeDescription & Constraintsdoco
.. ObservationDefinition 0..*ObservationDefinitionDefinition of an observation
... quantitativeDetails S
.... unit S
..... coding
...... system Fixed Value: http://unitsofmeasure.org
... code
.... Slices for coding 0..*CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:LOINC 0..1CodingCode defined by a terminology system
...... system 0..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
... permittedDataType S0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ObservationDefinition C0..*ObservationDefinitionDefinition of an observation
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... code Σ1..1CodeableConceptType of observation
Binding: LOINCCodes (example): Codes identifying names of simple observations.

... permittedDataType SC0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
Binding: ObservationDataType (required): Permitted data type for observation value.



Example General: CodeableConcept
... multipleResultsAllowed S0..1booleanMultiple results allowed for conforming observations
Example General: true

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
ObservationDefinition.statusrequiredPublicationStatus
ObservationDefinition.codeexampleLOINCCodes (a valid code from LOINC)
ObservationDefinition.permittedDataTyperequiredObservationDataType

Constraints

IdGradePath(s)DetailsRequirements
cnl-0warningObservationDefinitionName should be usable as an identifier for the module by machine processing applications such as code generation
: name.exists() implies name.matches('^[A-Z]([A-Za-z0-9_]){1,254}$')
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obd-0errorObservationDefinitionIf permittedUnit exists, then permittedDataType=Quantity must exist.
: permittedUnit.exists() implies (permittedDataType = 'Quantity').exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ObservationDefinition C0..*ObservationDefinitionDefinition of an observation
... 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: AllLanguages (required): IETF language tag for a human language

... 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
... url Σ0..1uriLogical canonical URL to reference this ObservationDefinition (globally unique)
... identifier Σ0..1IdentifierBusiness identifier of the ObservationDefinition
... version Σ0..1stringBusiness version of the ObservationDefinition
... versionAlgorithm[x] Σ0..1How to compare versions
Binding: VersionAlgorithm (extensible)
.... versionAlgorithmStringstring
.... versionAlgorithmCodingCoding
... name ΣC0..1stringName for this ObservationDefinition (computer friendly)
... title Σ0..1stringName for this ObservationDefinition (human friendly)
... status ?!Σ1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required): Codes identifying the state of an ObservationDefinition.

... experimental Σ0..1booleanIf for testing purposes, not real usage
... date Σ0..1dateTimeDate last changed
... publisher Σ0..1stringThe name of the individual or organization that published the ObservationDefinition
... contact Σ0..*ContactDetailContact details for the publisher
... description 0..1markdownNatural language description of the ObservationDefinition
... useContext Σ0..*UsageContextContent intends to support these contexts
... jurisdiction ΣXD0..*CodeableConceptIntended jurisdiction for this ObservationDefinition (if applicable)
Binding: JurisdictionValueSet (extensible): Codes for country, country subdivision and region for indicating where a resource is intended to be used.


... purpose 0..1markdownWhy this ObservationDefinition is defined
... copyright 0..1markdownUse and/or publishing restrictions
... copyrightLabel 0..1stringCopyright holder and year(s)
... approvalDate 0..1dateWhen ObservationDefinition was approved by publisher
... lastReviewDate 0..1dateDate on which the asset content was last reviewed by the publisher
... effectivePeriod Σ0..1PeriodThe effective date range for the ObservationDefinition
... derivedFromCanonical Σ0..*canonical(ObservationDefinition)Based on FHIR definition of another observation
... derivedFromUri Σ0..*uriBased on external definition
... subject Σ0..*CodeableConceptType of subject for the defined observation
... performerType Σ0..1CodeableConceptDesired kind of performer for such kind of observation
... category Σ0..*CodeableConceptGeneral type of observation
Binding: ObservationCategoryCodes (example): Codes for high level observation categories.


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

... permittedDataType SC0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
Binding: ObservationDataType (required): Permitted data type for observation value.



Example General: CodeableConcept
... multipleResultsAllowed S0..1booleanMultiple results allowed for conforming observations
Example General: true
... bodySite 0..1CodeableConceptBody part to be observed
Binding: SNOMEDCTBodyStructures (example): SNOMED CT body structures.

... method 0..1CodeableConceptMethod used to produce the observation
Binding: ObservationMethods (example): Methods for simple observations.

... specimen 0..*Reference(SpecimenDefinition)Kind of specimen used by this type of observation
... device 0..*Reference(DeviceDefinition | Device)Measurement device or model of device
... preferredReportName 0..1stringThe preferred name to be used when reporting the observation results
... permittedUnit C0..*CodingUnit for quantitative results
Binding: UCUMCodes (preferred): Codes identifying units of measure.


... qualifiedValue 0..*BackboneElementSet of qualified values for observation results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... context 0..1CodeableConceptContext qualifier for the set of qualified values
Binding: ObservationReferenceRangeMeaningCodes (extensible)
.... appliesTo 0..*CodeableConceptTargetted population for the set of qualified values
Binding: ObservationReferenceRangeAppliesToCodes (example)
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required)
Example General: female
.... age 0..1RangeApplicable age range for the set of qualified values
.... gestationalAge 0..1RangeApplicable gestational age range for the set of qualified values
.... condition 0..1stringCondition associated with the set of qualified values
.... rangeCategory 0..1codereference | critical | absolute
Binding: ObservationRangeCategory (required)
Example General: critical
.... range 0..1RangeThe range for continuous or ordinal observations
.... validCodedValueSet 0..1canonical(ValueSet)Value set of valid coded values as part of this set of qualified values
.... normalCodedValueSet 0..1canonical(ValueSet)Value set of normal coded values as part of this set of qualified values
.... abnormalCodedValueSet 0..1canonical(ValueSet)Value set of abnormal coded values as part of this set of qualified values
.... criticalCodedValueSet 0..1canonical(ValueSet)Value set of critical coded values as part of this set of qualified values
... hasMember 0..*Reference(ObservationDefinition | Questionnaire)Definitions of related resources belonging to this kind of observation group
... component C0..*BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 1..1CodeableConceptType of observation
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... permittedDataType C0..*codeQuantity | CodeableConcept | string | boolean | integer | Range | Ratio | SampledData | time | dateTime | Period
Binding: ObservationDataType (required): Permitted data type for observation value.



Example General: CodeableConcept
.... permittedUnit C0..*CodingUnit for quantitative results
Binding: UCUMCodes (preferred): Codes identifying units of measure.


.... qualifiedValue 0..*See qualifiedValue (ObservationDefinition)Set of qualified values for observation results

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
ObservationDefinition.languagerequiredAllLanguages
ObservationDefinition.versionAlgorithm[x]extensibleVersionAlgorithm
ObservationDefinition.statusrequiredPublicationStatus
ObservationDefinition.jurisdictionextensibleJurisdictionValueSet
ObservationDefinition.categoryexampleObservationCategoryCodes
ObservationDefinition.codeexampleLOINCCodes (a valid code from LOINC)
ObservationDefinition.permittedDataTyperequiredObservationDataType
ObservationDefinition.bodySiteexampleSNOMEDCTBodyStructures
ObservationDefinition.methodexampleObservationMethods
ObservationDefinition.permittedUnitpreferredUCUMCodes (a valid code from UCUM)
ObservationDefinition.qualifiedValue.contextextensibleObservationReferenceRangeMeaningCodes
ObservationDefinition.qualifiedValue.appliesToexampleObservationReferenceRangeAppliesToCodes
ObservationDefinition.qualifiedValue.genderrequiredAdministrativeGender
ObservationDefinition.qualifiedValue.rangeCategoryrequiredObservationRangeCategory
ObservationDefinition.component.codeexampleLOINCCodes (a valid code from LOINC)
ObservationDefinition.component.permittedDataTyperequiredObservationDataType
ObservationDefinition.component.permittedUnitpreferredUCUMCodes (a valid code from UCUM)

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obd-1errorObservationDefinition.componentIf permittedUnit exists, then permittedDataType=Quantity must exist.
: permittedUnit.exists() implies (permittedDataType = 'Quantity').exists()

This structure is derived from ObservationDefinition

Summary

Must-Support: 4 elements
Fixed Value: 2 elements

Slices

This structure defines the following Slices:

  • The element ObservationDefinition.code.coding is sliced based on the value of value:system

 

Other representations of profile: CSV, Excel, Schematron