1.0.0 - release

CambioOpenServicesIG - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: ObservationBoneAgeLite

Official URL: https://fhir.cambio.se/StructureDefinition/ObservationBoneAgeLite/v1 Version: 1.1.0
Active as of 2022-02-21 Computable Name: ObservationBoneAgeLite

Introduction

The ObservationBoneAgeLite profile represents the parameter Bone age and is a profile created from the resource Observation which makes the profile compliant with the FHIR standardized way of communicating vital sign data. Bone age is an observation to indicate the degree of maturation of a child's bones.

This helps doctors estimate the maturity of a child's skeletal system. It's usually done by taking a single X-ray of the left wrist, hand, and fingers. Measured in years.

Intended Use

The profile ObservationBoneAgeLite is used for communicating an entry of degree of maturation of a child's bones, by sending a value in the element observation.value.

**Read Bone Age **

Intended use is in first hand that the API is applied for direct access and should not be used to transfer data between caregivers. If it should be used for copying inbetween care givers patient consent must be handled outside the API.

Specific Rules and Limitations

Type Description
Rule This API should not be used to transfer data between caregivers.
Rule If the performer is Patient, the subject should be the same as given performer.

Versions

COS version Profile version Required COSMIC version Date Description
3.0.0 1.0.0 R8.3.05 May 2022 Initial version, support for GET.

Supported Operations

HTTP Method Description
GET Used to get or search for registrations of Bone age

Query Operations

Parameter Format Mandatory Comment  
code token No SNOMED CT code of the observation type  
patient reference No The subject that the observation is about (if patient). The reference can be a literal reference ex: subject=1 or a Business identifier as well.ex: subject.identifier=urn:oid:1.2.752.129.2.1.3.1 20200109-6078

Supported Queries

  1. GET [baseURL]/Observation/_search?patient=&code= (search)

Error Codes

In the table below, a few error messages specific for observations are listed.

Code Description Comment
400 Subject and Performer Patient references does not match.  
400 The date time: < date > is invalid the dateTime must contain a time component

The profile ObservationBoneAgeLite is used for communicating an entry of a patients bone age by sending a value in the element observation.value. The API can be used to read patient bone age information from COSMIC.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* ObservationBoneAgeCore Measurements and simple assertions
Constraints: obs-6, obs-7
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code preliminary | final | amended | entered-in-error
Binding: VitalSignStatus (required): The status of th result value.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... coding Σ 1..1 Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: 123980006
... effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for observation
... Slices for performer Σ 1..2 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
Slice: Unordered, Open by type:$this
.... performer:patient Σ 0..2 Reference(Patient) Who is responsible for the observation
.... performer:organization Σ 0..2 Reference(Organization) Who is responsible for the observation
.... performer:practitionerRole Σ 0..2 Reference(PractitionerRoleLiteSe) Who is responsible for the observation
.... performer:practitioner Σ 0..2 Reference(Practitioner) Who is responsible for the observation

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredVitalSignStatus
https://cambio.codes/fhir/vs/vital-sign-status/v1
From this IG
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
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()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()

This structure is derived from ObservationBoneAgeCore

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* ObservationBoneAgeCore Measurements and simple assertions
... basedOn 0..0
... partOf 0..0
... status 1..1 code preliminary | final | amended | entered-in-error
Binding: VitalSignStatus (required): The status of th result value.
... code
.... coding 1..1 Coding Code defined by a terminology system
... focus 0..0
... issued 0..0
... performer 1..2 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
... Slices for performer Content/Rules for all slices
.... performer:patient 0..2 Reference(Patient) Who is responsible for the observation
.... performer:organization 0..2 Reference(Organization) Who is responsible for the observation
.... performer:practitionerRole 0..2 Reference(PractitionerRoleLiteSe) Who is responsible for the observation
.... performer:practitioner 0..2 Reference(Practitioner) Who is responsible for the observation
... value[x]
.... code 1..1 code Coded form of the unit
Fixed Value: a
... dataAbsentReason
.... coding 1..1 Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
..... code 1..1 code System isn't capable of supporting this element
Fixed Value: unsupported
.... text 0..1 string Comment/note about the observation when the value is empty
... interpretation 0..0
... bodySite 0..0
... method
.... coding 1..1 Coding Code defined by a terminology system
..... code 1..1 code Symbol in syntax defined by the system
Binding: BoneAgeMeasuringMethod (required)
... specimen 0..0
... device 0..0
... referenceRange 0..0
... hasMember 0..0
... derivedFrom 0..0
... component 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.statusrequiredVitalSignStatus
https://cambio.codes/fhir/vs/vital-sign-status/v1
From this IG
Observation.method.coding.coderequiredBoneAgeMeasuringMethodValueSet
https://fhir.cambio.se/ValueSet/bone-age-measuring-method/v1
From this IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* ObservationBoneAgeCore Measurements and simple assertions
Constraints: obs-6, obs-7
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business Identifier for observation
... status ?!Σ 1..1 code preliminary | final | amended | entered-in-error
Binding: VitalSignStatus (required): The status of th result value.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: 123980006
..... display Σ 0..1 string Bone maturation age
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 1..1 Reference(Patient) Who and/or what the observation is about
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for observation
... Slices for performer Σ 1..2 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
Slice: Unordered, Open by type:$this
.... performer:patient Σ 0..2 Reference(Patient) Who is responsible for the observation
.... performer:organization Σ 0..2 Reference(Organization) Who is responsible for the observation
.... performer:practitionerRole Σ 0..2 Reference(PractitionerRoleLiteSe) Who is responsible for the observation
.... performer:practitioner Σ 0..2 Reference(Practitioner) Who is responsible for the observation
... value[x] ΣC 0..1 Quantity Actual result
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... unit Σ 1..1 string Unit representation
.... system ΣC 1..1 uri System that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ 1..1 code Coded form of the unit
Fixed Value: a
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code System isn't capable of supporting this element
Fixed Value: unsupported
..... display Σ 0..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Comment/note about the observation when the value is empty
... note 0..* Annotation Comments about the observation
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
Binding: BoneAgeMeasuringMethod (required)
..... display Σ 0..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredVitalSignStatus
https://cambio.codes/fhir/vs/vital-sign-status/v1
From this IG
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.value[x].comparatorrequiredQuantityComparator
http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1
From the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
From the FHIR Standard
Observation.method.coding.coderequiredBoneAgeMeasuringMethodValueSet
https://fhir.cambio.se/ValueSet/bone-age-measuring-method/v1
From this IG
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
From the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
From the FHIR Standard
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
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()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()

This structure is derived from ObservationBoneAgeCore

Summary

Mandatory: 2 elements(4 nested mandatory elements)
Fixed: 3 elements
Prohibited: 13 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* ObservationBoneAgeCore Measurements and simple assertions
Constraints: obs-6, obs-7
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code preliminary | final | amended | entered-in-error
Binding: VitalSignStatus (required): The status of th result value.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... coding Σ 1..1 Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: 123980006
... effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for observation
... Slices for performer Σ 1..2 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
Slice: Unordered, Open by type:$this
.... performer:patient Σ 0..2 Reference(Patient) Who is responsible for the observation
.... performer:organization Σ 0..2 Reference(Organization) Who is responsible for the observation
.... performer:practitionerRole Σ 0..2 Reference(PractitionerRoleLiteSe) Who is responsible for the observation
.... performer:practitioner Σ 0..2 Reference(Practitioner) Who is responsible for the observation

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredVitalSignStatus
https://cambio.codes/fhir/vs/vital-sign-status/v1
From this IG
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
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()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()

Differential View

This structure is derived from ObservationBoneAgeCore

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation 0..* ObservationBoneAgeCore Measurements and simple assertions
... basedOn 0..0
... partOf 0..0
... status 1..1 code preliminary | final | amended | entered-in-error
Binding: VitalSignStatus (required): The status of th result value.
... code
.... coding 1..1 Coding Code defined by a terminology system
... focus 0..0
... issued 0..0
... performer 1..2 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
... Slices for performer Content/Rules for all slices
.... performer:patient 0..2 Reference(Patient) Who is responsible for the observation
.... performer:organization 0..2 Reference(Organization) Who is responsible for the observation
.... performer:practitionerRole 0..2 Reference(PractitionerRoleLiteSe) Who is responsible for the observation
.... performer:practitioner 0..2 Reference(Practitioner) Who is responsible for the observation
... value[x]
.... code 1..1 code Coded form of the unit
Fixed Value: a
... dataAbsentReason
.... coding 1..1 Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
..... code 1..1 code System isn't capable of supporting this element
Fixed Value: unsupported
.... text 0..1 string Comment/note about the observation when the value is empty
... interpretation 0..0
... bodySite 0..0
... method
.... coding 1..1 Coding Code defined by a terminology system
..... code 1..1 code Symbol in syntax defined by the system
Binding: BoneAgeMeasuringMethod (required)
... specimen 0..0
... device 0..0
... referenceRange 0..0
... hasMember 0..0
... derivedFrom 0..0
... component 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.statusrequiredVitalSignStatus
https://cambio.codes/fhir/vs/vital-sign-status/v1
From this IG
Observation.method.coding.coderequiredBoneAgeMeasuringMethodValueSet
https://fhir.cambio.se/ValueSet/bone-age-measuring-method/v1
From this IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* ObservationBoneAgeCore Measurements and simple assertions
Constraints: obs-6, obs-7
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... contained 0..* Resource Contained, inline Resources
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Business Identifier for observation
... status ?!Σ 1..1 code preliminary | final | amended | entered-in-error
Binding: VitalSignStatus (required): The status of th result value.
... code Σ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
Fixed Value: 123980006
..... display Σ 0..1 string Bone maturation age
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept
... subject Σ 1..1 Reference(Patient) Who and/or what the observation is about
... encounter Σ 0..1 Reference(Encounter) Healthcare event during which this observation is made
... effective[x] Σ 1..1 dateTime Clinically relevant time/time-period for observation
... Slices for performer Σ 1..2 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who is responsible for the observation
Slice: Unordered, Open by type:$this
.... performer:patient Σ 0..2 Reference(Patient) Who is responsible for the observation
.... performer:organization Σ 0..2 Reference(Organization) Who is responsible for the observation
.... performer:practitionerRole Σ 0..2 Reference(PractitionerRoleLiteSe) Who is responsible for the observation
.... performer:practitioner Σ 0..2 Reference(Practitioner) Who is responsible for the observation
... value[x] ΣC 0..1 Quantity Actual result
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... value Σ 1..1 decimal Numerical value (with implicit precision)
.... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... unit Σ 1..1 string Unit representation
.... system ΣC 1..1 uri System that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ 1..1 code Coded form of the unit
Fixed Value: a
... dataAbsentReason C 0..1 CodeableConcept Why the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code System isn't capable of supporting this element
Fixed Value: unsupported
..... display Σ 0..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Comment/note about the observation when the value is empty
... note 0..* Annotation Comments about the observation
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (example): Methods for simple observations.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
Binding: BoneAgeMeasuringMethod (required)
..... display Σ 0..1 string Representation defined by the system
..... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
.... text Σ 0..1 string Plain text representation of the concept

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredVitalSignStatus
https://cambio.codes/fhir/vs/vital-sign-status/v1
From this IG
Observation.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.value[x].comparatorrequiredQuantityComparator
http://hl7.org/fhir/ValueSet/quantity-comparator|4.0.1
From the FHIR Standard
Observation.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.methodexampleObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
From the FHIR Standard
Observation.method.coding.coderequiredBoneAgeMeasuringMethodValueSet
https://fhir.cambio.se/ValueSet/bone-age-measuring-method/v1
From this IG
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
From the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
From the FHIR Standard
Observation.component.codeexampleLOINCCodes(a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
From the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
From the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
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()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf 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()

This structure is derived from ObservationBoneAgeCore

Summary

Mandatory: 2 elements(4 nested mandatory elements)
Fixed: 3 elements
Prohibited: 13 elements

 

Other representations of profile: CSV, Excel, Schematron