DataStandardsWales-DiagnosticReport-Lab

The Data Standards Wales DiagnosticReport-Lab profile (based on DiagonsticReport) is used to represent Laboratory Result Reports (e.g. Clinical Chemistry, Haematology, Microbiology, etc.). The results of such tests are typically contained within nested panels of results (such as a Full Blood Count or Liver Function Test panel) which are represented by Observation resources that contain references to other nested Observations.

The purpose of this profile is to provide a set of guidelines and minimum standards to allow DiagnosticReport resources to be used to record, search, and fetch laboratory results associated with a patient in a consistent and interoperable manner.

The DataStandardsWales-DiagnosticReport-Lab profile is derived from the UK Core Diagnostic Report-Lab.

A direct link to the Data Standards Wales asset can be accessed here - Data Standards Wales Diagnostic Report - Lab

The diagram below shows the typical structure of a Laboratory Result Report.

Diagram-DiagnosticReport-MultiplePanel

Formal Views of Profile Content

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(Composition)
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueAnnotationAnnotation
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueCodeableConceptCodeableConcept
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(Procedure | Observation | DiagnosticReport | http://hl7.org/fhir/StructureDefinition/Citation)
url1..1uriFixed Value
modifierExtension?! I0..*Extension
identifierS Σ0..*Identifier
basedOnI0..*Reference(CarePlan | ImmunizationRecommendation | NutritionOrder | ServiceRequest | DataStandardsWalesMedicationRequest | DataStandardsWalesServiceRequest)
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
laboratoryS Σ1..1CodingFixed Value
textΣ0..1string
codeS Σ1..1CodeableConceptBinding
subjectS Σ I1..1Reference(DataStandardsWalesPatient)
encounterS Σ I0..1Reference(DataStandardsWalesEncounter)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedS Σ0..1instant
id0..1string
deviceReferenceI0..1Extension(Reference(Device))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
deviceReferenceI0..*Extension(Reference(Device))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
specimenI0..*Reference(DataStandardsWalesSpecimen)
resultS I0..*Reference(DataStandardsWalesObservationLab | DataStandardsWalesObservation)
imagingStudyI0..*Reference(DataStandardsWalesImagingStudy)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
comment0..1string
conclusion0..1string
conclusionCode0..*CodeableConceptBinding
presentedFormI0..*Attachment
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(Composition)
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueAnnotationAnnotation
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueCodeableConceptCodeableConcept
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(Procedure | Observation | DiagnosticReport | http://hl7.org/fhir/StructureDefinition/Citation)
url1..1uriFixed Value
modifierExtension?! I0..*Extension
identifierS Σ0..*Identifier
basedOnI0..*Reference(CarePlan | ImmunizationRecommendation | NutritionOrder | ServiceRequest | DataStandardsWalesMedicationRequest | DataStandardsWalesServiceRequest)
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
laboratoryS Σ1..1CodingFixed Value
textΣ0..1string
codeS Σ1..1CodeableConceptBinding
subjectS Σ I1..1Reference(DataStandardsWalesPatient)
encounterS Σ I0..1Reference(DataStandardsWalesEncounter)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedS Σ0..1instant
id0..1string
deviceReferenceI0..1Extension(Reference(Device))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
deviceReferenceI0..*Extension(Reference(Device))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
specimenI0..*Reference(DataStandardsWalesSpecimen)
resultS I0..*Reference(DataStandardsWalesObservationLab | DataStandardsWalesObservation)
imagingStudyI0..*Reference(DataStandardsWalesImagingStudy)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
comment0..1string
conclusion0..1string
conclusionCode0..*CodeableConceptBinding
presentedFormI0..*Attachment
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(Composition)
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueAnnotationAnnotation
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueCodeableConceptCodeableConcept
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
valueReferenceReference(Procedure | Observation | DiagnosticReport | http://hl7.org/fhir/StructureDefinition/Citation)
url1..1uriFixed Value
modifierExtension?! I0..*Extension
identifierS Σ0..*Identifier
basedOnI0..*Reference(CarePlan | ImmunizationRecommendation | NutritionOrder | ServiceRequest | DataStandardsWalesMedicationRequest | DataStandardsWalesServiceRequest)
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
laboratoryS Σ1..1CodingFixed Value
textΣ0..1string
codeS Σ1..1CodeableConceptBinding
subjectS Σ I1..1Reference(DataStandardsWalesPatient)
encounterS Σ I0..1Reference(DataStandardsWalesEncounter)
effectiveDateTimedateTime
effectivePeriodPeriod
issuedS Σ0..1instant
id0..1string
deviceReferenceI0..1Extension(Reference(Device))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
deviceReferenceI0..*Extension(Reference(Device))
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
specimenI0..*Reference(DataStandardsWalesSpecimen)
resultS I0..*Reference(DataStandardsWalesObservationLab | DataStandardsWalesObservation)
imagingStudyI0..*Reference(DataStandardsWalesImagingStudy)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
comment0..1string
conclusion0..1string
conclusionCode0..*CodeableConceptBinding
presentedFormI0..*Attachment

Mandatory and Must Support Data Elements

Refer to the Mandatory and Must Support page for guidance on how these elements should be interpreted.

Each DiagnosticReport must have:

  1. A status
  2. A category of LAB *
  3. A code describing the type of report
  4. A patient

Each DiagnosticReport must support:

  1. A local or business identifier for the report
  2. An encounter
  3. An effective timestamp
  4. An issued date for this report version
  5. A performer
  6. Specimen(s)
  7. Test results(s)

*see Implementation Guidance for the identifier element below

Implementation Guidance

  • The DiagnosticReport.identifier field SHOULD contain all available identifiers. Typical identifiers include:
    • Identifiers assigned to the DiagnosticReport by the Welsh Results and Reporting Service
    • Other identifiers assigned by a hospital PAS or other clinical system.
  • The DiagnosticReport.status field SHALL be populated to indicate whether the report is preliminary, partial, final.
  • The DiagnosticReport.category field SHALL be populated with a category code of LAB. Note that it is possible to include additional category codes.
  • The DiagnosticReport.code field SHALL be populated.
  • For laboratory reports, the DiagnosticReport.subject field SHALL contain reference to a patient resource. References to other resource types are not permissible.
  • The DiagnosticReport.encounter field SHOULD contain a reference to the encounter associated with the test report if this data is available.
  • The DiagnosticReport.effective field SHOULD be populated. The diagnostically relevant time (known as the “effective time” and typically the time of the procedure)*
  • When results become available, the DiagnosticReport.result field will include panels of results (such as a Full Blood Count or Liver Function Test panel) which are represented by observation resources that contain references to other nested Observations. Such observations and contained nested observations will implement the Data Standards Wales Observation Lab profile.
  • The DiagnosticReport.issued field SHOULD be populated. The time this version of the report was made available*

Example DiagnosticReports

The following example resources are provided within this guide:

Mandatory Search Parameters

The following search parameters and search parameter combinations SHALL be supported:

  1. SHALL support searching by an DiagnosticReport identifier using the identifier search parameter:

    GET [base]/DiagnosticReport?identifier={system|}[code]
    

    Example:

    1. GET [base]/DiagnosticReport?identifier=https://fhir.nhs.wales/Id/wrrs-report-identifier|1000122
      Implementation Notes: Fetches a bundle containing any DiagnosticReport resources matching the identifier (how to search by token).

  2. SHALL support searching using the patient search parameter:

    GET [base]/DiagnosticReport?patient={Type/}[id]
    

    Example:

    1. GET [base]/DiagnosticReport?patient=Patient/NN046351-149
    2. GET [base]/DiagnosticReport?patient:identifier=https://fhir.nhs.uk/Id/nhs-number|9912003444
      Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient (how to search by reference)

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

    • including optional support for OR search on code (e.g.code={system|}[code],{system|}[code],...)
    GET [base]/DiagnosticReport?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}
    

    Example:

    1. GET \[base\]/DiagnosticReport?patient=23&code=https://fhir.nhs.wales/Id/wrrs-provider-system-code|FBC
    2. GET \[base\]/DiagnosticReport?patient:identifier=https://fhir.nhs.uk/Id/nhs-number|9912003444&code=https://fhir.nhs.wales/Id/wrrs-provider-system-code|FBC,https://fhir.nhs.wales/Id/wrrs-provider-system-code|LFT
      Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and DiagnosticReport code(s). SHOULD support search by multiple report codes. The DiagnosticReport code parameter searches `DiagnosticReport.code only. (how to search by reference and how to search by token)

Optional Search Parameters

The following search parameters and search parameter combinations SHOULD be supported:

  1. SHOULD support searching using the combination of the patient and status search parameters:

    • including support for OR search on status (e.g.status={system|}[code],{system|}[code],...)
    GET [base]/DiagnosticReport?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}
    

    Example:

    1. GET \[base\]/DiagnosticReport?patient=23&status=final
      Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and status (how to search by reference and how to search by token)

  2. SHOULD support searching using the combination of the patient and category and date search parameters:

    • including support for these date comparators: gt,lt,ge,le
    • including optional support for AND search on date (e.g.date=[date]&date=[date]]&...)
    GET [base]/DiagnosticReport?patient={Type/}[id]&category={system|}[code]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
    

    Example:

    1. GET [base]/DiagnosticReport?Patient=Patient/23&category=http://terminology.hl7.org/CodeSystem/v2-0074|LAB&date=ge2010-01-14T00:00:00Z
      Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and date and a category code specified in Data Standards Wales DiagnosticReport Category Codes (how to search by reference and how to search by token and how to search by date)

  3. SHOULD support searching using the combination of the patient and code and date search parameters:

    • including optional support for OR search on code (e.g.code={system|}[code],{system|}[code],...)
    • including support for these date comparators: gt,lt,ge,le
    • including optional support for AND search on date (e.g.date=[date]&date=[date]]&...)
    GET [base]/DiagnosticReport?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}
    

    Example:

    1. GET [base\]/DiagnosticReport?Patient=Patient/23&code=https://fhir.nhs.wales/Id/wrrs-provider-system-code|FBC&date=ge2010-01-14T00:00:00Z
      Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and date and report code(s). (how to search by reference and how to search by token and how to search by date)