Interweave Implementation Guide
0.1.0 - ci-build United Kingdom flag

Interweave Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the STU3 profiles here.

Resource Profile: InterweaveObservation

Official URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Interweave-Observation Version: 0.0.1
Draft as of 2024-07-15 Computable Name: InterweaveObservation

Interweave Observation resource profile - DRAFT.

Status: DRAFT: For Review

Introduction

This profile sets minimum expectations for the Observation resource. We use the observation structure definition as a base to this profile.

This Resource will give the consumer the ability to see information on observations used for tracking any current and historical health observations recorded in a numberical value that have been made for a patient.

At its core, Observation allows expressing a name-value pair or structured collection of name-value pairs. The Observation resource provides measurements or simple assertions Examples of common observations are: Laboratory results (blood sugar, hemoglobin), Vital signs (temperature, blood pressure), Personal characteristics (height, weight), and Social history (tobacco/alcohol use, employment status). Pathology reports, radiology reports, and other textual reports should be represented by the DiagnosticReport resource.

This profile sets out the expectations for the interweave observation resource. Our profile models measurements and simple assertions about a patient that are useful for establishing baselines or trends, monitoring a patient’s progress, and establishing diagnoses. Most observations are simple name/value pair assertions but some observations, such as blood pressure, group other observations together logically. Modelling observations can be quite complex. This is due to the way in which result formats vary for the different types of observation. In line with UK Core, this has led us to design specific profiles for the some of the most commonly recorded/shared observation types such as blood pressure; heart rate; NEWS 2 score etc (see the artifacts section for the full list). We are aware at that we will not have modelled every type of observation, if you identify a type of observation, which you believe requires a specific profile, then please get in touch.

This profile can be used to represent observations which are perhaps less common or were no specific profile exists and is under development. But the “type” specific profiles should be used where possible, to aid the data consumer.

Only finalised observations should be provided for the shared care record.

Mandatory fields

The following mandatory fields are defined:

  1. status – We use the required binding for the observation status. As stated in the introduction, only finalised observations should be shared. We do also allow for amendments and corrections to the final observation to take place. We therefore limit the list of statuses which can be used to the following - final; amended; corrected

  2. category – The classification of the type of observation e.g. exam, survey, vital-signs etc. We require that the FHIR Observation category is always populated. There is also an option to provide additional local categories to enable FHIR searching on local categories.

  3. code – This is the type of observation. We state a preferred binding on this field of the SNOMED concept: 363787002 (observable entity). This is in recognition of the large amount of local code sets which are currently in use and the difficulties which data providers may have mapping their local codes to SNOMED. Should you wish to use a local code set to populate this field, as detailed in the conformance section of this implementation guide, you must contact us for explicit approval to do so.

  4. subject – Every observation must be linked to a patient.

  5. effective – An important field to provide details of the time/time period during which the observation was taken.

Must Support fields

In addition the following fields are "Must Support" - ie they must be populated if relevant and known.

  1. identifier - A Local Id should be provided, such that could be quoted if manually getting in touch to find out more.

  2. encounter – This will typically be the encounter the event occurred within, but some events may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission laboratory tests). For some observations it may be important to know the link between an observation and a particular encounter.

  3. performer - We limit this field to reference practitioner / practitionerRole/ CareTeam resources only. The organization responsible for the observation can be obtained via the provenance tag.

  4. value[x] – Is used to house simple results. We cannot make the field mandatory, as there maybe occasions where a result is missing (see dataAbsentReason below) or the result may be housed within the component field instead.

  5. dataAbsentReason - The reason why the result is missing, this is valuable if a value has not been obtained for some reason e.g. a patient refused. This field can only be provided when there is no value present.

  6. interpretation - This is also known as the ‘abnormal flag’ and is regularly recorded alongside the actual result. It is used to signal the meaning of the result.

  7. note - Comments in addition to the result are often recorded for observations, it is therefore important to provide this field when available to give the consumer the full result information.

  8. bodySite - A long list of SNOMED codes which represent the observed parts of the body.

  9. referenceRange - To aid the interpretation of a result, it is important to include the reference range.

  10. component – The component field is used to house multiple code/value pairs which make up a single result, such as systolic and diastolic measurements which in combination represent blood pressure. If the display order of values held in the component field has importance, then they should be provided in the order in which they should be displayed.

Optional fields

Other fields are optional and may be populated if known - on the understanding that not all data consumers will necessarily make use of them. Points of note include:

  • method – Option to provide the mechanism used to perform the observation.

  • specimen – Opportunity to provide a link to a specimen resource from which the observation was obtained.

  • device – Opportunity to provide a link to a device resource from which was used to obtain the observation.

  • derivedFrom – To reduce complexity, we limit the related field’s usage to only allow links to observation / Questionnaire Response resources, from which the primary observation’s value was derived. E.g. An observation may have a value which is a score, and that score may have been derived from several other observations.

  • bodyStructureR5 (extension) - Indicates the body structure on the subject's body where the observation was made (i.e. the target site). This is a R5 backport.

  • valuePrecision (extension) – We use the FHIR precision extension (Extension: precision - FHIR v4.3.0 (hl7.org)) to allow the decimal precision of a result value to be provided where it is of importance. This extension will also be available within the component field.

Discouraged or Removed fields

  • basedOn – This field is discouraged as it does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.

  • partOf – This field is discouraged as it does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.

  • issued – This field has been removed as this information can be taken from the mandatory meta.lastUpdated field, and to also avoid any confusion with the other date fields.

  • focus - Removed.

Usage:

Formal Views of Profile Content

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

This structure is derived from UKCoreObservation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation UKCoreObservation
... id S 0..1 id Logical id of this artifact
... meta
.... id 0..0
.... versionId S 0..1 id Version specific identifier
.... lastUpdated S 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... profile S 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
.... Slices for tag 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
..... tag:Source S 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
...... id 0..0
...... system 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... version 0..0
...... code S 1..1 code The Data Provider Id of the system supplying the data
...... display S 1..1 string Name of the system supplying the data
..... tag:Provenance S 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
...... id 0..0
...... system 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... version 0..0
...... code S 1..1 code The ODS Code of the organisation responsible for the data
...... display S 1..1 string Name of the organisation supplying the data
... implicitRules 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... language 0..1 code English is assumed (not currently a multi-lingual implementation)
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... Slices for extension Content/Rules for all slices
.... extension:triggeredByR5 0..0
.... valuePrecision 0..1 integer Explicit precision of the number
URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Extension-Interweave-ValuePrecision
... identifier S 0..* Identifier Business Identifier for observation
.... id 0..0
.... extension 0..0
.... assigner 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
... basedOn 0..* Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) DISCOURAGED - This field does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.
... partOf 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) DISCOURAGED - This field does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.
... Slices for category 1..* CodeableConcept A code that classifies the general type of observation being made.
Slice: Unordered, Open by value:coding.system
.... category:All Slices Content/Rules for all slices
..... id 0..0
..... extension 0..0
..... coding
...... id 0..0
...... extension 0..0
...... system 1..1 uri Identity of the terminology system
...... version 0..0
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
.... category:observationCategory 1..1 CodeableConcept A code that classifies the general type of observation being made.
Binding: ObservationCategoryCodes (required): Codes for high level observation categories.

..... id 0..0
..... extension 0..0
..... coding
...... id 0..0
...... extension 0..0
...... system 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
... code
.... id 0..0
.... extension 0..0
.... coding
..... id 0..0
..... extension 0..0
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... subject 1..1 Reference(InterweavePatient) Who and / or what the observation is about.
.... id 0..0
.... extension 0..0
.... reference 1..1 string Reference to a resource (could be Contained)
.... identifier 0..1 Identifier If relevant could include an id
.... display 1..1 string Description of the referenced resource
... focus 0..0
... encounter S 0..1 Reference(InterweaveEncounter) Healthcare event during which this observation is made
... effective[x] 1..1 This is the time/time period during which the observation was taken.
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveInstant instant
... issued 0..0
... performer 0..* Reference(Practitioner | PractitionerRole | CareTeam) Who is responsible for the observation.
.... id 0..0
.... extension 0..0
.... reference 1..1 string Reference to a resource (could be Contained)
.... identifier 0..1 Identifier If relevant could include an id
.... display 1..1 string Description of the referenced resource
... dataAbsentReason S 0..1 CodeableConcept Why the result is missing
Binding: DataAbsentReason (required)
.... id 0..0
.... extension 0..0
.... coding
..... id 0..0
..... extension 0..0
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... interpretation S 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (required)
.... id 0..0
.... extension 0..0
.... coding
..... id 0..0
..... extension 0..0
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... note S 0..1 Annotation Comments about the observation
... bodySite S 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (required)
.... id 0..0
.... extension 0..0
.... coding
..... id 0..0
..... extension 0..0
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... method
.... id 0..0
.... extension 0..0
.... coding
..... id 0..0
..... extension 0..0
..... system 1..1 uri Identity of the terminology system
..... code 1..1 code Symbol in syntax defined by the system
..... display 1..1 string Representation defined by the system
... device 0..1 Reference(Device) (Measurement) Device
... referenceRange S 0..* BackboneElement Provides guide for interpretation
.... id 0..0
.... extension 0..0
... hasMember 0..0
... derivedFrom 0..* Reference(InterweaveObservation | InterweaveQuestionnaireResponse) Related measurements the observation is made from
... component
.... id 0..0
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... valuePrecision 0..1 integer Explicit precision (number of significant decimal places)
URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Extension-Interweave-ValuePrecision
.... code S 1..1 CodeableConcept Type of component observation (code / type)
..... id 0..0
..... extension 0..0
..... coding
...... id 0..0
...... extension 0..0
...... system 1..1 uri Identity of the terminology system
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
.... 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
Binding: DataAbsentReason (required)
..... id 0..0
..... extension 0..0
..... coding
...... id 0..0
...... extension 0..0
...... system 1..1 uri Identity of the terminology system
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
.... interpretation S 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (required)
..... id 0..0
..... extension 0..0
..... coding
...... id 0..0
...... extension 0..0
...... system 1..1 uri Identity of the terminology system
...... code 1..1 code Symbol in syntax defined by the system
...... display 1..1 string Representation defined by the system
.... referenceRange S 0..* Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.category:observationCategoryrequiredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.dataAbsentReasonrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.interpretationrequiredObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard
Observation.bodySiterequiredSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Observation.component.dataAbsentReasonrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationrequiredObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C 0..* UKCoreObservation 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
... id SΣ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... versionId SΣ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security Σ 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... Slices for tag Σ 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


..... tag:Source SΣ 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Source
...... code SΣ 1..1 code The Data Provider Id of the system supplying the data
...... display SΣ 1..1 string Name of the system supplying the data
..... tag:Provenance SΣ 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://fhir.interweavedigital.nhs.uk/Provenance
...... code SΣ 1..1 code The ODS Code of the organisation responsible for the data
...... display SΣ 1..1 string Name of the organisation supplying the data
... implicitRules ?!Σ 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... Slices for extension Content/Rules for all slices
.... bodyStructureR5 0..1 Reference(BodyStructure) Observed body structure. This is a R5 backport.
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure
.... valuePrecision 0..1 integer Explicit precision of the number
URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Extension-Interweave-ValuePrecision
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Business Identifier for observation
.... extension 0..0
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... assigner Σ 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
... basedOn Σ 0..* Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) DISCOURAGED - This field does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) DISCOURAGED - This field does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.
... status ?!SΣ 1..1 code The status of the result value.
Binding: ObservationStatus (required): Codes providing the status of an observation.

... Slices for category S 1..* CodeableConcept A code that classifies the general type of observation being made.
Slice: Unordered, Open by value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.


.... category:All Slices Content/Rules for all slices
..... extension 0..0
.... category:observationCategory S 1..1 CodeableConcept A code that classifies the general type of observation being made.
Binding: ObservationCategoryCodes (required): Codes for high level observation categories.


..... extension 0..0
... code SΣ 1..1 CodeableConcept The type of observation (code / type).
Binding: UK Core Observation Type (preferred): A code from the SNOMED Clinical Terminology UK coding system describing a type of observation

.... extension 0..0
... subject SΣ 1..1 Reference(InterweavePatient) Who and / or what the observation is about.
.... extension 0..0
.... reference ΣC 1..1 string Reference to a resource (could be Contained)
.... identifier Σ 0..1 Identifier If relevant could include an id
.... display Σ 1..1 string Description of the referenced resource
... encounter SΣ 0..1 Reference(InterweaveEncounter) Healthcare event during which this observation is made
... effective[x] SΣ 1..1 This is the time/time period during which the observation was taken.
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveInstant instant
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | CareTeam) Who is responsible for the observation.
.... extension 0..0
.... reference ΣC 1..1 string Reference to a resource (could be Contained)
.... identifier Σ 0..1 Identifier If relevant could include an id
.... display Σ 1..1 string Description of the referenced resource
... value[x] SΣC 0..1 The actual observed 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 (required)
.... extension 0..0
... interpretation S 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (required)
.... extension 0..0
... note S 0..1 Annotation Comments about the observation
... bodySite S 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (required)
.... extension 0..0
... device 0..1 Reference(Device) (Measurement) Device
... referenceRange SC 0..* BackboneElement Provides guide for interpretation
obs-3: Must have at least a low or a high or text
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
... derivedFrom Σ 0..* Reference(InterweaveObservation | InterweaveQuestionnaireResponse) Related measurements the observation is made from
... component SΣ 0..* BackboneElement Component / sub results.
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... valuePrecision 0..1 integer Explicit precision (number of significant decimal places)
URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Extension-Interweave-ValuePrecision
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code SΣ 1..1 CodeableConcept Type of component observation (code / type)
Binding: UK Core Observation Type (preferred): A code from the SNOMED Clinical Terminology UK coding system describing a type of observation

..... extension 0..0
.... 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 (required)
..... extension 0..0
.... interpretation S 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (required)
..... extension 0..0
.... referenceRange S 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Observation.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Observation.meta.tag:SourceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Observation.meta.tag:ProvenanceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Observation.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Observation.extension:triggeredByR5.extension:type.value[x]requiredhttp://hl7.org/fhir/ValueSet/observation-triggeredbytype
http://hl7.org/fhir/ValueSet/observation-triggeredbytype
Observation.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Observation.statusrequiredObservationStatus
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
from the FHIR Standard
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:observationCategoryrequiredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.codepreferredUKCoreObservationType
https://fhir.hl7.org.uk/ValueSet/UKCore-ObservationType
from this IG
Observation.dataAbsentReasonrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.interpretationrequiredObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard
Observation.bodySiterequiredSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Observation.component.codepreferredUKCoreObservationType
https://fhir.hl7.org.uk/ValueSet/UKCore-ObservationType
from this IG
Observation.component.dataAbsentReasonrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationrequiredObservationInterpretationCodes
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-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C 0..* UKCoreObservation 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
... id SΣ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId SΣ 0..1 id Version specific identifier
.... lastUpdated SΣ 0..1 instant MANDATORY except in Contained Resources. When the resource version last changed.
.... source Σ 0..1 uri Identifies where the resource comes from
.... profile SΣ 0..* canonical(StructureDefinition) Profiles this resource claims to conform to. Should list (i) this profile (ii) base profile for this resource.
.... security Σ 0..* Coding DISCOURAGED - may not be honoured by Data Consumers
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... Slices for tag Σ 0..* Coding Tags applied to this resource
Slice: Unordered, Open by value:system
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


..... tag:Source SΣ 0..1 Coding MANDATORY except in Contained Resources. The Data Provider Id (and display text) of the system supplying the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... 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: https://fhir.interweavedigital.nhs.uk/Source
...... code SΣ 1..1 code The Data Provider Id of the system supplying the data
...... display SΣ 1..1 string Name of the system supplying the data
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... tag:Provenance SΣ 0..1 Coding MANDATORY except in Contained Resources. The ODS Code (and display text) of the organisation responsible for the data
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


...... 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: https://fhir.interweavedigital.nhs.uk/Provenance
...... code SΣ 1..1 code The ODS Code of the organisation responsible for the data
...... display SΣ 1..1 string Name of the organisation supplying the data
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
... implicitRules ?!Σ 0..1 uri DISCOURAGED - may not be honoured by Data Consumers
... language 0..1 code English is assumed (not currently a multi-lingual implementation)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative DISCOURAGED - the preferred approach is to offer structured data fields which a Data Consumer can then render and present in a manner most suited to its users
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
.... bodyStructureR5 0..1 Reference(BodyStructure) Observed body structure. This is a R5 backport.
URL: http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.bodyStructure
.... valuePrecision 0..1 integer Explicit precision of the number
URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Extension-Interweave-ValuePrecision
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier SΣ 0..* Identifier Business Identifier for observation
.... extension 0..0
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

.... system Σ 0..1 uri The namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value Σ 0..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(InterweaveOrganization) Organization that issued id (may be just text)
... basedOn Σ 0..* Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) DISCOURAGED - This field does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.
... partOf Σ 0..* Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) DISCOURAGED - This field does not appear to provide information which would be beneficial in a shared care record. It also allows references to a raft of request/order resources which introduces a lot of complexity for a data consumer.
... status ?!SΣ 1..1 code The status of the result value.
Binding: ObservationStatus (required): Codes providing the status of an observation.

... Slices for category S 1..* CodeableConcept A code that classifies the general type of observation being made.
Slice: Unordered, Open by value:coding.system
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.


.... category:All Slices Content/Rules for all slices
..... extension 0..0
..... coding Σ 0..* Coding Code defined by a terminology system
...... extension 0..0
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..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
.... category:observationCategory S 1..1 CodeableConcept A code that classifies the general type of observation being made.
Binding: ObservationCategoryCodes (required): Codes for high level observation categories.


..... extension 0..0
..... coding Σ 0..* Coding Code defined by a terminology system
...... extension 0..0
...... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..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
... code SΣ 1..1 CodeableConcept The type of observation (code / type).
Binding: UK Core Observation Type (preferred): A code from the SNOMED Clinical Terminology UK coding system describing a type of observation

.... extension 0..0
.... coding Σ 0..* Coding Code defined by a terminology system
..... extension 0..0
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..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
... subject SΣ 1..1 Reference(InterweavePatient) Who and / or what the observation is about.
.... extension 0..0
.... reference ΣC 1..1 string Reference to a resource (could be Contained)
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ 0..1 Identifier If relevant could include an id
.... display Σ 1..1 string Description of the referenced resource
... encounter SΣ 0..1 Reference(InterweaveEncounter) Healthcare event during which this observation is made
... effective[x] SΣ 1..1 This is the time/time period during which the observation was taken.
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effectiveInstant instant
... performer SΣ 0..* Reference(Practitioner | PractitionerRole | CareTeam) Who is responsible for the observation.
.... extension 0..0
.... reference ΣC 1..1 string Reference to a resource (could be Contained)
.... type Σ 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ 0..1 Identifier If relevant could include an id
.... display Σ 1..1 string Description of the referenced resource
... value[x] SΣC 0..1 The actual observed 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 (required)
.... extension 0..0
.... coding Σ 0..* Coding Code defined by a terminology system
..... extension 0..0
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..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
... interpretation S 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (required)
.... extension 0..0
.... coding Σ 0..* Coding Code defined by a terminology system
..... extension 0..0
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..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
... note S 0..1 Annotation Comments about the observation
... bodySite S 0..1 CodeableConcept Observed body part
Binding: SNOMEDCTBodyStructures (required)
.... extension 0..0
.... coding Σ 0..* Coding Code defined by a terminology system
..... extension 0..0
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..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
... method 0..1 CodeableConcept How it was done
Binding: ObservationMethods (preferred): Methods for simple observations.

.... extension 0..0
.... coding Σ 0..* Coding Code defined by a terminology system
..... extension 0..0
..... system Σ 1..1 uri Identity of the terminology system
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... display Σ 1..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
... specimen 0..1 Reference(Specimen) Specimen used for this observation
... device 0..1 Reference(Device) (Measurement) Device
... referenceRange SC 0..* BackboneElement Provides guide for interpretation
obs-3: Must have at least a low or a high or text
.... 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
... derivedFrom Σ 0..* Reference(InterweaveObservation | InterweaveQuestionnaireResponse) Related measurements the observation is made from
... component SΣ 0..* BackboneElement Component / sub results.
.... Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
..... valuePrecision 0..1 integer Explicit precision (number of significant decimal places)
URL: https://fhir.interweavedigital.nhs.uk/R4/StructureDefinition/Extension-Interweave-ValuePrecision
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... code SΣ 1..1 CodeableConcept Type of component observation (code / type)
Binding: UK Core Observation Type (preferred): A code from the SNOMED Clinical Terminology UK coding system describing a type of observation

..... extension 0..0
..... coding Σ 0..* Coding Code defined by a terminology system
...... extension 0..0
...... system Σ 1..1 uri Identity of the terminology system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..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
.... 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 (required)
..... extension 0..0
..... coding Σ 0..* Coding Code defined by a terminology system
...... extension 0..0
...... system Σ 1..1 uri Identity of the terminology system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..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
.... interpretation S 0..* CodeableConcept High, low, normal, etc.
Binding: ObservationInterpretationCodes (required)
..... extension 0..0
..... coding Σ 0..* Coding Code defined by a terminology system
...... extension 0..0
...... system Σ 1..1 uri Identity of the terminology system
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 1..1 code Symbol in syntax defined by the system
...... display Σ 1..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
.... referenceRange S 0..* See referenceRange (Observation) Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.meta.securityextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
from the FHIR Standard
Observation.meta.tagexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Observation.meta.tag:SourceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Observation.meta.tag:ProvenanceexampleCommonTags
http://hl7.org/fhir/ValueSet/common-tags
from the FHIR Standard
Observation.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Observation.extension:triggeredByR5.extension:type.value[x]requiredhttp://hl7.org/fhir/ValueSet/observation-triggeredbytype
http://hl7.org/fhir/ValueSet/observation-triggeredbytype
Observation.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Observation.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Observation.statusrequiredObservationStatus
http://hl7.org/fhir/ValueSet/observation-status|4.0.1
from the FHIR Standard
Observation.categorypreferredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.category:observationCategoryrequiredObservationCategoryCodes
http://hl7.org/fhir/ValueSet/observation-category
from the FHIR Standard
Observation.codepreferredUKCoreObservationType
https://fhir.hl7.org.uk/ValueSet/UKCore-ObservationType
from this IG
Observation.subject.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Observation.performer.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
from the FHIR Standard
Observation.dataAbsentReasonrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.interpretationrequiredObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard
Observation.bodySiterequiredSNOMEDCTBodyStructures
http://hl7.org/fhir/ValueSet/body-site
from the FHIR Standard
Observation.methodpreferredObservationMethods
http://hl7.org/fhir/ValueSet/observation-methods
from the FHIR Standard
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.codepreferredUKCoreObservationType
https://fhir.hl7.org.uk/ValueSet/UKCore-ObservationType
from this IG
Observation.component.dataAbsentReasonrequiredDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationrequiredObservationInterpretationCodes
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-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.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()