Australian Digital Health Agency FHIR Implementation Guide
1.2.0-ci-build - draft
Australian Digital Health Agency FHIR Implementation Guide, published by Australian Digital Health Agency. This guide is not an authorized publication; it is the continuous build for version 1.2.0-ci-build built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/AuDigitalHealth/ci-fhir-r4/ and changes regularly. See the Directory of published versions
Official URL: http://ns.electronichealth.net.au/fhir/StructureDefinition/dh-observation-core-1 | Version: 1.0.0 | |||
Active as of 2024-09-12 | Computable Name: ADHAObservationCore | |||
Copyright/Legal: Copyright © 2022 Australian Digital Health Agency - All rights reserved. This content is licensed under a Creative Commons Attribution 4.0 International License. See https://creativecommons.org/licenses/by/4.0/. |
The purpose of this profile is to provide a core representation of a generic observation for the electronic exchange of health information between individuals, healthcare providers, and the My Health Record system infrastructure in Australia.
This profile identifies the additional constraints, extensions, and value sets that build on and extend Observation that are supported.
Where a more specific Observation profile is applicable, e.g. diagnostic result or vital signs, an implementation SHALL ensure the resource conforms to that specific profile.
This profile is designed to set a core Observation standard for:
This profile may be referred to by APIs, which will be listed here when available.
Observation.category
provides an efficient way of supporting system interactions, e.g. restricting searches. Implementers need to understand that data categorisation is somewhat subjective. The categorisation applied by the source may not align with a receiver’s expectations.Observation.subject
and the fetus as Observation.focus
.Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | C | 0..* | Observation | Measurements and simple assertions inv-dh-obs-05: If there is no component or hasMember element then at least value or data absent reason shall be present |
status | S | 1..1 | code | registered | preliminary | final | amended + |
category | S | 1..* | CodeableConcept | Classification of type of observation |
code | S | 1..1 | CodeableConcept | Type of observation (code / type) |
subject | SC | 1..1 | Reference(ADHA Core Patient) | Who and/or what the observation is about inv-dh-obs-01: At least reference or a valid identifier shall be present |
encounter | S | 0..1 | Reference(ADHA Core Encounter) | Healthcare event during which this observation is made |
effective[x] | SC | 1..1 | dateTime, Period, Timing, instant | Clinically relevant time/time-period for observation inv-dh-obs-07: Date shall be at least to day |
performer | SC | 1..* | Reference(ADHA Authoring PractitionerRole | ADHA Core Organization | ADHA Core Patient | ADHA Authoring RelatedPerson) | Who is responsible for the observation inv-dh-obs-03: At least reference or display or a valid identifier shall be present |
value[x] | SC | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Actual result |
dataAbsentReason | SC | 0..1 | CodeableConcept | Why the result is missing |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. |
note | S | 0..* | Annotation | Comments about the observation |
bodySite | SC | 0..1 | CodeableConcept | Observed body part Binding: Body Site (extensible) inv-dh-obs-04: If a coded body site is provided, at least one code shall be from SNOMED CT |
method | S | 0..1 | CodeableConcept | How it was done |
hasMember | S | 0..* | Reference(ADHA Core Observation) | Related resource that belongs to the Observation group |
component | S | 0..* | BackboneElement | Component results |
code | S | 1..1 | CodeableConcept | Type of component observation (code / type) |
value[x] | S | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Actual component result |
dataAbsentReason | S | 0..1 | CodeableConcept | Why the component result is missing |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Observation.bodySite | extensible | BodySite https://healthterminologies.gov.au/fhir/ValueSet/body-site-1 |
Id | Grade | Path(s) | Details | Requirements |
inv-dh-obs-01 | error | Observation.subject | At least reference or a valid identifier shall be present : reference.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-03 | error | Observation.performer | At least reference or display or a valid identifier shall be present : reference.exists() or display.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-04 | error | Observation.bodySite | If a coded body site is provided, at least one code shall be from SNOMED CT : coding.exists() implies coding.where(system='http://snomed.info/sct').exists() | |
inv-dh-obs-05 | error | Observation | If there is no component or hasMember element then at least value or data absent reason shall be present : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
inv-dh-obs-07 | error | Observation.effective[x] | Date shall be at least to day : $this is DateTime implies $this.toString().length() >= 10 |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | C | 0..* | Observation | Measurements and simple assertions obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present 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 inv-dh-obs-05: If there is no component or hasMember element then at least value or data absent reason shall be present |
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 | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
category | S | 1..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
code | SΣ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
subject | SΣC | 1..1 | Reference(ADHA Core Patient) | Who and/or what the observation is about inv-dh-obs-01: At least reference or a valid identifier shall be present |
encounter | SΣ | 0..1 | Reference(ADHA Core Encounter) | Healthcare event during which this observation is made |
effective[x] | SΣC | 1..1 | Clinically relevant time/time-period for observation inv-dh-obs-07: Date shall be at least to day | |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
effectiveTiming | Timing | |||
effectiveInstant | instant | |||
performer | SΣC | 1..* | Reference(ADHA Authoring PractitionerRole | ADHA Core Organization | ADHA Core Patient | ADHA Authoring RelatedPerson) | Who is responsible for the observation inv-dh-obs-03: At least reference or display or a valid identifier shall be present |
value[x] | SΣC | 0..1 | Actual result | |
valueQuantity | Quantity | |||
valueCodeableConcept | CodeableConcept | |||
valueString | string | |||
valueBoolean | boolean | |||
valueInteger | integer | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueSampledData | SampledData | |||
valueTime | time | |||
valueDateTime | dateTime | |||
valuePeriod | Period | |||
dataAbsentReason | SC | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. |
note | S | 0..* | Annotation | Comments about the observation |
bodySite | SC | 0..1 | CodeableConcept | Observed body part Binding: Body Site (extensible) inv-dh-obs-04: If a coded body site is provided, at least one code shall be from SNOMED CT |
method | S | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations. |
hasMember | SΣ | 0..* | Reference(ADHA Core Observation) | Related resource that belongs to the Observation group |
component | SΣ | 0..* | BackboneElement | Component results |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
value[x] | SΣ | 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 | SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Observation.status | required | ObservationStatushttp://hl7.org/fhir/ValueSet/observation-status|4.0.1 from the FHIR Standard | |
Observation.category | preferred | ObservationCategoryCodeshttp://hl7.org/fhir/ValueSet/observation-category from the FHIR Standard | |
Observation.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | |
Observation.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | |
Observation.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard | |
Observation.bodySite | extensible | BodySite https://healthterminologies.gov.au/fhir/ValueSet/body-site-1 | |
Observation.method | example | ObservationMethodshttp://hl7.org/fhir/ValueSet/observation-methods from the FHIR Standard | |
Observation.component.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | |
Observation.component.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | |
Observation.component.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
inv-dh-obs-01 | error | Observation.subject | At least reference or a valid identifier shall be present : reference.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-03 | error | Observation.performer | At least reference or display or a valid identifier shall be present : reference.exists() or display.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-04 | error | Observation.bodySite | If a coded body site is provided, at least one code shall be from SNOMED CT : coding.exists() implies coding.where(system='http://snomed.info/sct').exists() | |
inv-dh-obs-05 | error | Observation | If there is no component or hasMember element then at least value or data absent reason shall be present : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
inv-dh-obs-07 | error | Observation.effective[x] | Date shall be at least to day : $this is DateTime implies $this.toString().length() >= 10 |
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Observation | C | 0..* | Observation | Measurements and simple assertions obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present 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 inv-dh-obs-05: If there is no component or hasMember element then at least value or data absent reason shall be 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): A human language.
| |||||
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(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 | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
category | S | 1..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | ||||
code | SΣ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
subject | SΣC | 1..1 | Reference(ADHA Core Patient) | Who and/or what the observation is about inv-dh-obs-01: At least reference or a valid identifier shall be present | ||||
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
encounter | SΣ | 0..1 | Reference(ADHA Core Encounter) | Healthcare event during which this observation is made | ||||
effective[x] | SΣC | 1..1 | Clinically relevant time/time-period for observation inv-dh-obs-07: Date shall be at least to day | |||||
effectiveDateTime | dateTime | |||||||
effectivePeriod | Period | |||||||
effectiveTiming | Timing | |||||||
effectiveInstant | instant | |||||||
issued | Σ | 0..1 | instant | Date/Time this version was made available | ||||
performer | SΣC | 1..* | Reference(ADHA Authoring PractitionerRole | ADHA Core Organization | ADHA Core Patient | ADHA Authoring RelatedPerson) | Who is responsible for the observation inv-dh-obs-03: At least reference or display or a valid identifier shall be present | ||||
value[x] | SΣC | 0..1 | Actual result | |||||
valueQuantity | Quantity | |||||||
valueCodeableConcept | CodeableConcept | |||||||
valueString | string | |||||||
valueBoolean | boolean | |||||||
valueInteger | integer | |||||||
valueRange | Range | |||||||
valueRatio | Ratio | |||||||
valueSampledData | SampledData | |||||||
valueTime | time | |||||||
valueDateTime | dateTime | |||||||
valuePeriod | Period | |||||||
dataAbsentReason | SC | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | ||||
note | S | 0..* | Annotation | Comments about the observation | ||||
bodySite | SC | 0..1 | CodeableConcept | Observed body part Binding: Body Site (extensible) inv-dh-obs-04: If a coded body site is provided, at least one code shall be from SNOMED CT | ||||
method | S | 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 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 | 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 | SΣ | 0..* | Reference(ADHA Core Observation) | 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 | SΣ | 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 | SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
value[x] | SΣ | 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 | SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | S | 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 |
Path | Conformance | ValueSet | URI | |||
Observation.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Observation.status | required | ObservationStatushttp://hl7.org/fhir/ValueSet/observation-status|4.0.1 from the FHIR Standard | ||||
Observation.category | preferred | ObservationCategoryCodeshttp://hl7.org/fhir/ValueSet/observation-category from the FHIR Standard | ||||
Observation.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | ||||
Observation.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | ||||
Observation.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard | ||||
Observation.bodySite | extensible | BodySite https://healthterminologies.gov.au/fhir/ValueSet/body-site-1 | ||||
Observation.method | example | ObservationMethodshttp://hl7.org/fhir/ValueSet/observation-methods from the FHIR Standard | ||||
Observation.referenceRange.type | preferred | ObservationReferenceRangeMeaningCodeshttp://hl7.org/fhir/ValueSet/referencerange-meaning from the FHIR Standard | ||||
Observation.referenceRange.appliesTo | example | ObservationReferenceRangeAppliesToCodeshttp://hl7.org/fhir/ValueSet/referencerange-appliesto from the FHIR Standard | ||||
Observation.component.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | ||||
Observation.component.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | ||||
Observation.component.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
inv-dh-obs-01 | error | Observation.subject | At least reference or a valid identifier shall be present : reference.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-03 | error | Observation.performer | At least reference or display or a valid identifier shall be present : reference.exists() or display.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-04 | error | Observation.bodySite | If a coded body site is provided, at least one code shall be from SNOMED CT : coding.exists() implies coding.where(system='http://snomed.info/sct').exists() | |
inv-dh-obs-05 | error | Observation | If there is no component or hasMember element then at least value or data absent reason shall be present : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
inv-dh-obs-07 | error | Observation.effective[x] | Date shall be at least to day : $this is DateTime implies $this.toString().length() >= 10 |
This structure is derived from Observation
Summary
Mandatory: 4 elements
Must-Support: 19 elements
Structures
This structure refers to these other structures:
Differential View
This structure is derived from Observation
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | C | 0..* | Observation | Measurements and simple assertions inv-dh-obs-05: If there is no component or hasMember element then at least value or data absent reason shall be present |
status | S | 1..1 | code | registered | preliminary | final | amended + |
category | S | 1..* | CodeableConcept | Classification of type of observation |
code | S | 1..1 | CodeableConcept | Type of observation (code / type) |
subject | SC | 1..1 | Reference(ADHA Core Patient) | Who and/or what the observation is about inv-dh-obs-01: At least reference or a valid identifier shall be present |
encounter | S | 0..1 | Reference(ADHA Core Encounter) | Healthcare event during which this observation is made |
effective[x] | SC | 1..1 | dateTime, Period, Timing, instant | Clinically relevant time/time-period for observation inv-dh-obs-07: Date shall be at least to day |
performer | SC | 1..* | Reference(ADHA Authoring PractitionerRole | ADHA Core Organization | ADHA Core Patient | ADHA Authoring RelatedPerson) | Who is responsible for the observation inv-dh-obs-03: At least reference or display or a valid identifier shall be present |
value[x] | SC | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Actual result |
dataAbsentReason | SC | 0..1 | CodeableConcept | Why the result is missing |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. |
note | S | 0..* | Annotation | Comments about the observation |
bodySite | SC | 0..1 | CodeableConcept | Observed body part Binding: Body Site (extensible) inv-dh-obs-04: If a coded body site is provided, at least one code shall be from SNOMED CT |
method | S | 0..1 | CodeableConcept | How it was done |
hasMember | S | 0..* | Reference(ADHA Core Observation) | Related resource that belongs to the Observation group |
component | S | 0..* | BackboneElement | Component results |
code | S | 1..1 | CodeableConcept | Type of component observation (code / type) |
value[x] | S | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Actual component result |
dataAbsentReason | S | 0..1 | CodeableConcept | Why the component result is missing |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Observation.bodySite | extensible | BodySite https://healthterminologies.gov.au/fhir/ValueSet/body-site-1 |
Id | Grade | Path(s) | Details | Requirements |
inv-dh-obs-01 | error | Observation.subject | At least reference or a valid identifier shall be present : reference.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-03 | error | Observation.performer | At least reference or display or a valid identifier shall be present : reference.exists() or display.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-04 | error | Observation.bodySite | If a coded body site is provided, at least one code shall be from SNOMED CT : coding.exists() implies coding.where(system='http://snomed.info/sct').exists() | |
inv-dh-obs-05 | error | Observation | If there is no component or hasMember element then at least value or data absent reason shall be present : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
inv-dh-obs-07 | error | Observation.effective[x] | Date shall be at least to day : $this is DateTime implies $this.toString().length() >= 10 |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Observation | C | 0..* | Observation | Measurements and simple assertions obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present 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 inv-dh-obs-05: If there is no component or hasMember element then at least value or data absent reason shall be present |
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 | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
category | S | 1..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
code | SΣ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
subject | SΣC | 1..1 | Reference(ADHA Core Patient) | Who and/or what the observation is about inv-dh-obs-01: At least reference or a valid identifier shall be present |
encounter | SΣ | 0..1 | Reference(ADHA Core Encounter) | Healthcare event during which this observation is made |
effective[x] | SΣC | 1..1 | Clinically relevant time/time-period for observation inv-dh-obs-07: Date shall be at least to day | |
effectiveDateTime | dateTime | |||
effectivePeriod | Period | |||
effectiveTiming | Timing | |||
effectiveInstant | instant | |||
performer | SΣC | 1..* | Reference(ADHA Authoring PractitionerRole | ADHA Core Organization | ADHA Core Patient | ADHA Authoring RelatedPerson) | Who is responsible for the observation inv-dh-obs-03: At least reference or display or a valid identifier shall be present |
value[x] | SΣC | 0..1 | Actual result | |
valueQuantity | Quantity | |||
valueCodeableConcept | CodeableConcept | |||
valueString | string | |||
valueBoolean | boolean | |||
valueInteger | integer | |||
valueRange | Range | |||
valueRatio | Ratio | |||
valueSampledData | SampledData | |||
valueTime | time | |||
valueDateTime | dateTime | |||
valuePeriod | Period | |||
dataAbsentReason | SC | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. |
note | S | 0..* | Annotation | Comments about the observation |
bodySite | SC | 0..1 | CodeableConcept | Observed body part Binding: Body Site (extensible) inv-dh-obs-04: If a coded body site is provided, at least one code shall be from SNOMED CT |
method | S | 0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations. |
hasMember | SΣ | 0..* | Reference(ADHA Core Observation) | Related resource that belongs to the Observation group |
component | SΣ | 0..* | BackboneElement | Component results |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
value[x] | SΣ | 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 | SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. |
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. |
Documentation for this format |
Path | Conformance | ValueSet | URI |
Observation.status | required | ObservationStatushttp://hl7.org/fhir/ValueSet/observation-status|4.0.1 from the FHIR Standard | |
Observation.category | preferred | ObservationCategoryCodeshttp://hl7.org/fhir/ValueSet/observation-category from the FHIR Standard | |
Observation.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | |
Observation.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | |
Observation.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard | |
Observation.bodySite | extensible | BodySite https://healthterminologies.gov.au/fhir/ValueSet/body-site-1 | |
Observation.method | example | ObservationMethodshttp://hl7.org/fhir/ValueSet/observation-methods from the FHIR Standard | |
Observation.component.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | |
Observation.component.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | |
Observation.component.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
inv-dh-obs-01 | error | Observation.subject | At least reference or a valid identifier shall be present : reference.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-03 | error | Observation.performer | At least reference or display or a valid identifier shall be present : reference.exists() or display.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-04 | error | Observation.bodySite | If a coded body site is provided, at least one code shall be from SNOMED CT : coding.exists() implies coding.where(system='http://snomed.info/sct').exists() | |
inv-dh-obs-05 | error | Observation | If there is no component or hasMember element then at least value or data absent reason shall be present : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
inv-dh-obs-07 | error | Observation.effective[x] | Date shall be at least to day : $this is DateTime implies $this.toString().length() >= 10 |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints | ||||
---|---|---|---|---|---|---|---|---|
Observation | C | 0..* | Observation | Measurements and simple assertions obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present 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 inv-dh-obs-05: If there is no component or hasMember element then at least value or data absent reason shall be 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): A human language.
| |||||
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(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 | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
category | S | 1..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | ||||
code | SΣ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
subject | SΣC | 1..1 | Reference(ADHA Core Patient) | Who and/or what the observation is about inv-dh-obs-01: At least reference or a valid identifier shall be present | ||||
focus | Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
encounter | SΣ | 0..1 | Reference(ADHA Core Encounter) | Healthcare event during which this observation is made | ||||
effective[x] | SΣC | 1..1 | Clinically relevant time/time-period for observation inv-dh-obs-07: Date shall be at least to day | |||||
effectiveDateTime | dateTime | |||||||
effectivePeriod | Period | |||||||
effectiveTiming | Timing | |||||||
effectiveInstant | instant | |||||||
issued | Σ | 0..1 | instant | Date/Time this version was made available | ||||
performer | SΣC | 1..* | Reference(ADHA Authoring PractitionerRole | ADHA Core Organization | ADHA Core Patient | ADHA Authoring RelatedPerson) | Who is responsible for the observation inv-dh-obs-03: At least reference or display or a valid identifier shall be present | ||||
value[x] | SΣC | 0..1 | Actual result | |||||
valueQuantity | Quantity | |||||||
valueCodeableConcept | CodeableConcept | |||||||
valueString | string | |||||||
valueBoolean | boolean | |||||||
valueInteger | integer | |||||||
valueRange | Range | |||||||
valueRatio | Ratio | |||||||
valueSampledData | SampledData | |||||||
valueTime | time | |||||||
valueDateTime | dateTime | |||||||
valuePeriod | Period | |||||||
dataAbsentReason | SC | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | S | 0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | ||||
note | S | 0..* | Annotation | Comments about the observation | ||||
bodySite | SC | 0..1 | CodeableConcept | Observed body part Binding: Body Site (extensible) inv-dh-obs-04: If a coded body site is provided, at least one code shall be from SNOMED CT | ||||
method | S | 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 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 | 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 | SΣ | 0..* | Reference(ADHA Core Observation) | 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 | SΣ | 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 | SΣ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
value[x] | SΣ | 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 | SC | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
interpretation | S | 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 |
Path | Conformance | ValueSet | URI | |||
Observation.language | preferred | CommonLanguages
http://hl7.org/fhir/ValueSet/languages from the FHIR Standard | ||||
Observation.status | required | ObservationStatushttp://hl7.org/fhir/ValueSet/observation-status|4.0.1 from the FHIR Standard | ||||
Observation.category | preferred | ObservationCategoryCodeshttp://hl7.org/fhir/ValueSet/observation-category from the FHIR Standard | ||||
Observation.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | ||||
Observation.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | ||||
Observation.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard | ||||
Observation.bodySite | extensible | BodySite https://healthterminologies.gov.au/fhir/ValueSet/body-site-1 | ||||
Observation.method | example | ObservationMethodshttp://hl7.org/fhir/ValueSet/observation-methods from the FHIR Standard | ||||
Observation.referenceRange.type | preferred | ObservationReferenceRangeMeaningCodeshttp://hl7.org/fhir/ValueSet/referencerange-meaning from the FHIR Standard | ||||
Observation.referenceRange.appliesTo | example | ObservationReferenceRangeAppliesToCodeshttp://hl7.org/fhir/ValueSet/referencerange-appliesto from the FHIR Standard | ||||
Observation.component.code | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | ||||
Observation.component.dataAbsentReason | extensible | DataAbsentReasonhttp://hl7.org/fhir/ValueSet/data-absent-reason from the FHIR Standard | ||||
Observation.component.interpretation | extensible | ObservationInterpretationCodeshttp://hl7.org/fhir/ValueSet/observation-interpretation from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
inv-dh-obs-01 | error | Observation.subject | At least reference or a valid identifier shall be present : reference.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-03 | error | Observation.performer | At least reference or display or a valid identifier shall be present : reference.exists() or display.exists() or identifier.where(system.count() + value.count() >1).exists() | |
inv-dh-obs-04 | error | Observation.bodySite | If a coded body site is provided, at least one code shall be from SNOMED CT : coding.exists() implies coding.where(system='http://snomed.info/sct').exists() | |
inv-dh-obs-05 | error | Observation | If there is no component or hasMember element then at least value or data absent reason shall be present : (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists()) | |
inv-dh-obs-07 | error | Observation.effective[x] | Date shall be at least to day : $this is DateTime implies $this.toString().length() >= 10 |
This structure is derived from Observation
Summary
Mandatory: 4 elements
Must-Support: 19 elements
Structures
This structure refers to these other structures:
Other representations of profile: CSV, Excel, Schematron
Below is an overview of the mandatory and optional search parameters. FHIR search operations and the syntax used to describe the interactions is described here.
Name | Type | Conformance | Description | Path |
---|---|---|---|---|
category | token | SHALL | The classification of the type of observation | Observation.category |
subject:identifier | token | SHALL | The subject that the observation is about | Observation.subject.identifier |
code | token | SHALL | The code of the observation type | Observation.code |
date | date | SHALL | Obtained date/time. If the obtained element is a period, a date that falls in the period | Observation.effective |
status | date | SHOULD | The status of the observation | Observation.status |
The following search parameters and search parameter combinations SHALL be supported:
SHALL support searching for all observations for a patient using the subject:identifier
search parameter:
GET [base]/Observation?subject:identifier={system|}[code]
Example:
GET [base]/Observation?subject:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437
Implementation Notes: Fetches a bundle of all Observation resources for the specified patient (how to search by :identifier)
SHALL support searching using the combination subject:identifier
and category
search parameter:
GET [base]/Observation?subject:identifier={system|}[code]&category[code]
Example:
GET [base]/Observation?subject:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437&category=http://terminology.hl7.org/CodeSystem/observation-category|vital-signs
Implementation Notes: Fetches a bundle of all Observation resources with the category of "vital-signs" for the specified patient (how to search by :identifier and how to search by token)
SHALL support searching using the combination subject:identifier
and code
search parameter:
GET [base]/Observation?subject:identifier={system|}[code]&code={system|}[code]
Example:
GET [base]/Observation?subject:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437&code=http://snomed.info/sct|75367002
Implementation Notes: Fetches a bundle of all Observation resources with the code of an 75367002 (Blood pressure) for the specified patient (how to search by :identifier and how to search by token)
SHALL support searching using the combination of the subject:identifier
and date
search parameters:
GET [base]/Observation?subject:identifier={system|}[code]&date=[date]
Example:
GET [base]/Observation?subject:identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608000228437&date=ge2013-03-14
Implementation Notes: Fetches a bundle of all Observation resources for the specified patient that have a date greater than or equal to 14 March 2013. (how to search by :identifier and how to search by date)