NHS Digital FHIR Implementation Guide (Retired - 2.1.50)

This guidance is under active development by NHS Digital and content may be added or updated on a regular basis.

NHSDigital-Observation

Profile url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Observation

This FHIR R4 profile is designed to set a core Observation standard for:

For the core observation message definition see unsolicited-observations



Combined with
UK Core Observation

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
covid19TestingI0..1Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
basedOnΣ I0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ I0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusΣ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
covidTestingPillarΣ0..1CodingBindingFixed Value
textΣ0..1string
codeΣ1..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
focusΣ I0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
effectiveDateTimedateTime
effectivePeriodPeriod
effectiveTimingTiming
effectiveInstantinstant
issuedΣ0..1instant
performerΣ I0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson)
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
note0..*Annotation
bodySite0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ1..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageI0..1Range
text0..1string
hasMemberΣ I0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)
derivedFromΣ I0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

from UK Core Observation
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
covid19TestingI0..1Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
basedOnΣ I0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)
partOfΣ I0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusΣ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
covidTestingPillarΣ0..1CodingBindingFixed Value
textΣ0..1string
codeΣ1..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
focusΣ I0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
effectiveDateTimedateTime
effectivePeriodPeriod
effectiveTimingTiming
effectiveInstantinstant
issuedΣ0..1instant
performerΣ I0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson)
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
note0..*Annotation
bodySite0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ1..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageI0..1Range
text0..1string
hasMemberΣ I0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)
derivedFromΣ I0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)




Must Support, Optional and Not Supported

Elements marked with a S MUST be supported by both producing and receiving systems. They should be populated if the data exists or the profile has made them mandatory.

The following elements SHOULD NOT are not expected to be supported by consuming or receiving systems.

  • derivedFrom

Elements that are neither marked as Must Support or listed as unsupported, are optional.


identifier

The identifier will be the same as the specimen id.


    "identifier":  [
        {
            "system": "https://fhir.nhs.uk/Id/SpecimenId",
            "value": "eb89a392-5b20-11eb-ae93-0242ac130002"
        }
    ],


status

The status of the observation will always be final


    "status": "final",


category

This is an optional element. If used the category will always be laboratory


    "category":  [
        {
            "coding":  [
                {
                    "system": "http://terminology.hl7.org/CodeSystem/observation-category",
                    "code": "laboratory",
                    "display": "Laboratory"
                }
            ],
            "text": "Laboratory"
        }
    ],

For COVID-19 Tests, the ValueSet NHSDigital-COVIDTestPillar SHOULD be used to indicate which test pillar the observation originated.


     "category": [
        {
            "coding": [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/covid-test-pillar",
                    "code": "pillar-1",
                    "display": "pillar 1"
                }
            ]
        }
    ],


code

Type of observation, see ObservationDefinition for code values.


    "code": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "871555000",
                "display": "Detection of ribonucleic acid of Severe acute respiratory syndrome coronavirus 2"
            }
        ]
    },


subject

The NHS Number will be an identifier reference which can be used with PDS FHIR API to return Patient demographics. If a local Patient is available, a reference to this will be present (e.g. "Patient/123")


    "subject": {
        "reference": "Patient/123",
        "identifier":  [
            {
                "system": "https://fhir.nhs.uk/Id/nhs-number",
                "value": "987123456"
            }
        ]
    },


effectiveDateTime

The date and time the result was asserted.


    "effectiveDateTime": "2020-09-23T13:00:08.476+00:00"


performer

Who was responsible for asserting the observed value as "true".


"performer": [
  {
    "type": "Organization",
    "identifier": {
      "type": {
        "coding": [
          {
            "system": "https://fhir.nhs.uk/CodeSystem/organisation-role",
            "code": "173",
            "display": "PATHOLOGY LAB"
          }
        ]
      },
      "value": "LFD004"
    }
  },
  {
    "type": "Organization",
    "identifier": {
      "type": {
        "coding": [
          {
            "system": "https://fhir.nhs.uk/Id/OrgType",
            "code": "TestCentreId",
            "display": "Testing Centre"
          }
        ]
      },
      "value": "WKE03"
    }
  }
]



valueCodeableConcept

The COVID 19 test result. This is a SNOMED CT from the valueSet associated with the code, see ObservationDefinition


    "valueCodeableConcept": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "1240581000000104",
                "display": "SARS-CoV-2 (severe acute respiratory syndrome coronavirus 2) detection result positive"
            }
        ],
        "text": "SARS-CoV-2-ORGY"
    },


method

The name of the test that was performed, this is a SNOMED CT concept.


    "method": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "1240461000000109",
                "display": "Measurement of SARS-CoV-2 antibody (procedure)"
            }
        ]
    },


specimen

The identifier of the specimen used for the test.


    "specimen": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/SpecimenId",
            "value": "eb89a392-5b20-11eb-ae93-0242ac130002"
        }
    },


device

Details of the test kit used.


    "device": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/Covid19-TestKit",
            "value": "LFT"
        },
        "display": "Lateral Flow Test"
    }

Search Parameters

Name Type Description Conformance Path
category token The classification of the type of observation SHOULD Observation.category
code token The code of the observation type SHALL Observation.code
date date Obtained date/time. If the obtained element is a period, a date that falls in the period SHOULD Observation.effective[x]
patient:identifier token The subject that the observation is about (if patient) SHALL Observation.subject (Patient)

Additional parameters can be on Observation - Search Parameters

Mandatory Search Parameters

code + patient:identifier

SHALL support searching using the combination of the patient:identifier and code search parameters:

  • including optional support for composite OR search on code (e.g.code={system|}[code],{system|}[code],...)
GET [baseUrl]/Observation?patient:identifier={system|}[code]&code={system|}[code]

Example:

GET [baseUrl]/Observation?patient:identifier=9876543210&code=846931000000101

Return all Observation resources with code of 846931000000101 (Baseline body mass index) from any CodeSystem and Patient with an identifier 9876543210.

Optional Search Parameters

category + patient:identifier

SHALL support searching using the combination of the patient:identifier and category search parameters:

GET [baseUrl]/Observation?patient:identifier={system|}[code]&category=[code]

Example:

GET [baseUrl]/Observation?patient:identifier=9876543210&category=exam

Return all Observation resources with a category of exam and Patient with an identifier 9876543210.

date + patient:identifier

SHOULD support searching using the combination of the patient:identifier and date search parameters:

  • including support for these date comparators: gt,lt,ge,le
  • including optional support for composite AND search on date (e.g.date=[date]&date=[date]]&...)
GET [baseUrl]/Observation?patient:identifier={system|}[code]&date=[date]

Example:

GET [baseUrl]/Observation?patient:identifier=9876543210&date=ge2010-01-01&date=le2011-12-31

Return all Observation resources that have a date greater than or equal to 1st Jan 2010, a date less than or equal to 31st Dec 2011 and Patient with an identifier 9876543210.

back to top