HL7 FHIR® US Core Implementation Guide CI Build

US Core, published by HL7 International - US Realm Steering Committee. This is not an authorized publication; it is the continuous build for version current). This version is based on the current content of https://github.com/HL7/US-Core/ and changes regularly. See the Directory of published versions

StructureDefinition-us-core-diagnosticreport-lab

Laboratory results are grouped and summarized using the DiagnosticReport resource which typically reference Observation resource(s). Each Observation resource represents an individual laboratory test and result value or component result values, or a “nested” panel (such as a microbial susceptibility panel) which references other observations. They can also be presented in report form or as free text. This profile sets minimum expectations for the DiagnosticReport resource to record, search, and fetch laboratory results associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.

Example Usage Scenarios:

The following are example usage scenarios for the US Core DiagnosticReport Profile for Laboratory Results Reporting:

  • Query for lab reports belonging to a Patient
  • Record or update a lab report for a specific Patient

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each DiagnosticReport must have:

  1. a status
  2. a category code of ‘LAB’
  3. a code (preferably a LOINC code) which tells you what is being measured
  4. a patient
  5. a time indicating when the measurement was taken
  6. a time indicating when the measurement was reported

Each DiagnosticReport must support:

  1. who issues the report
  2. a result

Profile specific implementation guidance:

  • Additional codes that translate or map to the DiagnosticReport codes or category codes are allowed. For example:
    • providing both a local system codes and a LOINC code that it map to
    • providing a more specific category codes to the “LAB” category code, such as “CH” (chemistry), in an additional coding element.
  • Results that are free text or report form are represented using the ‘presentedForm’ element in DiagnosticReport.

Examples

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab

Published on Tue May 21 00:00:00 UTC 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on DiagnosticReport


DiagnosticReport

Summary of the Mandatory Requirements

  1. A code in DiagnosticReport.status with a required binding to DiagnosticReportStatus
  2. One or more CodeableConcepts CodeableConcept in DiagnosticReport.category with an example binding to Diagnostic Service Section Codes
    • which must have at least a DiagnosticReport.category = {"coding": [{"code": "LAB", "system": "terminology.hl7.org/CodeSystem/v2-0074"}]}
  3. A CodeableConcept in DiagnosticReport.code with an extensible binding to US Core Diagnostic Report Laboratory Codes
  4. A Patient Reference in DiagnosticReport.subject
  5. A dateTime in DiagnosticReport.effective[x]
  6. An instant in DiagnosticReport.issued

Summary of the Must Support Requirements

  1. One or more Performer References in DiagnosticReport.performer
  2. One or more Result References in DiagnosticReport.result
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... status S1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category S1..*(Slice Definition)Service category
Slice: Unordered, Open by pattern:$this
.... category:LaboratorySlice S1..1CodeableConceptService category
Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: LAB
... code S1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible)
... subject S1..1Reference(US Core Patient Profile)The subject of the report - usually, but not always, the patient
... effective[x] S1..1Specimen Collection Datetime or Period
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued S1..1instantDateTime this version was made
... performer S0..*Reference(US Core Practitioner Profile | US Core Organization Profile)Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile)Observations

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport I0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierBusiness identifier for report
... basedOn I0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!SΣI1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category SΣI1..*(Slice Definition)Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example)
.... category:LaboratorySlice SΣI1..1CodeableConceptService category
Binding: DiagnosticServiceSectionCodes (example)

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: LAB
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
... code SΣI1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible)
... subject SΣI1..1Reference(US Core Patient Profile)The subject of the report - usually, but not always, the patient
... encounter ΣI0..1Reference(Encounter)Health care event when test ordered
... effective[x] SΣI1..1Specimen Collection Datetime or Period
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued SΣI1..1instantDateTime this version was made
... performer SΣI0..*Reference(US Core Practitioner Profile | US Core Organization Profile)Responsible Diagnostic Service
... resultsInterpreter ΣI0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen I0..*Reference(Specimen)Specimens this report is based on
... result SI0..*Reference(US Core Laboratory Result Observation Profile)Observations
... imagingStudy I0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media ΣI0..*BackboneElementKey images associated with this report
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... comment I0..1stringComment about the image (e.g. explanation)
.... link ΣI1..1Reference(Media)Reference to the image source
... conclusion I0..1stringClinical conclusion (interpretation) of test results
... conclusionCode I0..*CodeableConceptCodes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example)
... presentedForm I0..*AttachmentEntire report as issued

doco Documentation for this format

DiagnosticReport

Summary of the Mandatory Requirements

  1. A code in DiagnosticReport.status with a required binding to DiagnosticReportStatus
  2. One or more CodeableConcepts CodeableConcept in DiagnosticReport.category with an example binding to Diagnostic Service Section Codes
    • which must have at least a DiagnosticReport.category = {"coding": [{"code": "LAB", "system": "terminology.hl7.org/CodeSystem/v2-0074"}]}
  3. A CodeableConcept in DiagnosticReport.code with an extensible binding to US Core Diagnostic Report Laboratory Codes
  4. A Patient Reference in DiagnosticReport.subject
  5. A dateTime in DiagnosticReport.effective[x]
  6. An instant in DiagnosticReport.issued

Summary of the Must Support Requirements

  1. One or more Performer References in DiagnosticReport.performer
  2. One or more Result References in DiagnosticReport.result

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... status S1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category S1..*(Slice Definition)Service category
Slice: Unordered, Open by pattern:$this
.... category:LaboratorySlice S1..1CodeableConceptService category
Required Pattern: At least the following
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: LAB
... code S1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible)
... subject S1..1Reference(US Core Patient Profile)The subject of the report - usually, but not always, the patient
... effective[x] S1..1Specimen Collection Datetime or Period
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued S1..1instantDateTime this version was made
... performer S0..*Reference(US Core Practitioner Profile | US Core Organization Profile)Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile)Observations

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport I0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier ΣI0..*IdentifierBusiness identifier for report
... basedOn I0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!SΣI1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... category SΣI1..*(Slice Definition)Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example)
.... category:LaboratorySlice SΣI1..1CodeableConceptService category
Binding: DiagnosticServiceSectionCodes (example)

Required Pattern: At least the following
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0074
...... version0..1stringVersion of the system - if relevant
...... code1..1codeSymbol in syntax defined by the system
Fixed Value: LAB
...... display0..1stringRepresentation defined by the system
...... userSelected0..1booleanIf this coding was chosen directly by the user
..... text0..1stringPlain text representation of the concept
... code SΣI1..1CodeableConceptUS Core Laboratory Report Order Code
Binding: US Core Diagnostic Report Laboratory Codes (extensible)
... subject SΣI1..1Reference(US Core Patient Profile)The subject of the report - usually, but not always, the patient
... encounter ΣI0..1Reference(Encounter)Health care event when test ordered
... effective[x] SΣI1..1Specimen Collection Datetime or Period
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... issued SΣI1..1instantDateTime this version was made
... performer SΣI0..*Reference(US Core Practitioner Profile | US Core Organization Profile)Responsible Diagnostic Service
... resultsInterpreter ΣI0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen I0..*Reference(Specimen)Specimens this report is based on
... result SI0..*Reference(US Core Laboratory Result Observation Profile)Observations
... imagingStudy I0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media ΣI0..*BackboneElementKey images associated with this report
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... comment I0..1stringComment about the image (e.g. explanation)
.... link ΣI1..1Reference(Media)Reference to the image source
... conclusion I0..1stringClinical conclusion (interpretation) of test results
... conclusionCode I0..*CodeableConceptCodes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example)
... presentedForm I0..*AttachmentEntire report as issued

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron


Quick Start

Below is an overview of the required set of Server RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.

  • See the General Guidance section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

Mandatory Search Parameters:

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

  1. SHALL support searching for all diagnosticreports for a patient using the patient search parameter:

    GET [base]/DiagnosticReport?patient=[reference]

    Example:

    1. GET [base]/DiagnosticReport?patient=1137192

    Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient (how to search by reference)

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

    GET [base]/DiagnosticReport?patient=[reference]&category=http://terminology.hl7.org/CodeSystem/v2-0074|LAB

    Example:

    1. GET [base]/DiagnosticReport?patient=f201&category=http://terminology.hl7.org/CodeSystem/v2-0074|LAB

    Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and a category code = LAB (how to search by reference and how to search by token)

  3. SHALL support searching using the combination of the patient and code search parameters:
    • including optional support for composite OR search on code (e.g.code={system|}[code],{system|}[code],...)

    GET [base]/DiagnosticReport?patient=[reference]&code={system|}[code]{,{system|}[code],...}

    Example:

    1. GET [base]/DiagnosticReport?patient=1032702&code=http://loinc.org|24323-8

    Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and report code(s). SHOULD support search by multiple report codes. (how to search by reference and how to search by token)

  4. SHALL 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 composite AND search on date (e.g.date=[date]&date=[date]]&...)

    GET [base]/DiagnosticReport?patient=[reference]&category=http://terminology.hl7.org/CodeSystem/v2-0074|LAB&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/DiagnosticReport?patient=f201&category=http://terminology.hl7.org/CodeSystem/v2-0074|LAB&date=ge2010-01-14

    Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and date and a category code = LAB (how to search by reference and how to search by token and how to search by date)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported.:

  1. SHOULD support searching using the combination of the patient and status search parameters:
    • including support for composite OR search on status (e.g.status={system|}[code],{system|}[code],...)

    GET [base]/DiagnosticReport?patient=[reference]&status={system|}[code]{,{system|}[code],...}

    Example:

    1. GET [base]/DiagnosticReport?patient=1137192&status=completed

    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 code and date search parameters:
    • including optional support for composite 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 composite AND search on date (e.g.date=[date]&date=[date]]&...)

    GET [base]/DiagnosticReport?patient=[reference]&code={system|}[code]{,{system|}[code],...}&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/DiagnosticReport?patient=f201&code=http://loinc.org|24323-8&date=ge2019-01-14

    Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and date and report code(s). SHOULD support search by multiple report codes. (how to search by reference and how to search by token and how to search by date)