US-Core CI Build

This page is part of the US Core (v0.0.0: STU1 Ballot 1) based on FHIR v1.8.0. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions

D.4.1 StructureDefinition-us-core-diagnosticreport

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, a “nested” panel (such as a microbial susceptibility panel) which references other observations, or rarely a laboratory test with component result values. 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:

  • Query for lab reports belonging to a Patient
  • Record a lab report for a specific Patient
Mandatory Data Elements and Terminology

The following data-elements are mandatory (i.e data MUST be present). These 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
  7. at least one result (an Observation reference)

Each DiagnosticReport should have:

  1. who issues the report

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 such as “CH” (chemistry) in addition to the “LAB” category code.
  • Results that are free text or report form may be represented using the valueAttachment element in Observation or alternatively using the presentedForm element in DiagnosticReport.

Examples

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport

This profile builds on DiagnosticReport.

This profile was published on Mon Aug 01 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR-Infrastructure).

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

Complete Summary of the Mandatory Requirements

  1. One status in DiagnosticReport.status which has an required binding to:
  2. One category in DiagnosticReport.category which must have:
    • a fixed DiagnosticReport.category.coding.system= “http://hl7.org/fhir/DiagnosticReport-category”
    • a fixed DiagnosticReport.category.coding.code= “LAB”
  3. One code in DiagnosticReport.code which has an extensible binding to:
  4. One patient in DiagnosticReport.subject
  5. A date and time in DiagnosticReport.effectiveDateTime or DiagnosticReport.effectivePeriod
  6. A date and time in DiagnosticReport.issued
  7. One or more DiagnosticReport.result and/or one or more DiagnosticReport.presentedForm

Each DiagnosticReport SHOULD have:

  1. A practitioner or organization in DiagnosticReport.performer
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport I0..*US Core Diagnostic Report Profile
us-core-1: Must have a result or presentedForm or both.
... status S1..1codeBinding: DiagnosticReportStatus (required)
... category S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://hl7.org/fhir/DiagnosticReport-category","code":"LAB"}]}
... code S1..1CodeableConceptUS Realm Laboratory Report Order Code
Binding: LOINC Diagnostic Report Codes (extensible)
... subject S1..1Reference(US Core Patient Profile)
... effective[x] S1..1dateTime, PeriodSpecimen Collection Datetime or Period
... issued S1..1instant
... performer S0..*Reference(US Core Practitioner), Reference(US Core Organization Profile)
... result SI0..*Reference(US Core Result Observation)
... presentedForm SI0..*Attachment

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport I0..*US Core Diagnostic Report Profile
us-core-1: Must have a result or presentedForm or both.
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ∑0..*IdentifierId for external references to this report
... status ?!S1..1coderegistered | partial | final | corrected | appended | cancelled | entered-in-error
Binding: DiagnosticReportStatus (required)
... category S1..1CodeableConceptService category
Binding: Diagnostic Service Section Codes (example)
Required Pattern: {"coding":[{"system":"http://hl7.org/fhir/DiagnosticReport-category","code":"LAB"}]}
... code S1..1CodeableConceptUS Realm Laboratory Report Order Code
Binding: LOINC Diagnostic Report Codes (extensible)
... subject S1..1Reference(US Core Patient Profile)The subject of the report, usually, but not always, the patient
... encounter ∑0..1Reference(Encounter)Health care event when test ordered
... effective[x] S1..1dateTime, PeriodSpecimen Collection Datetime or Period
... issued S1..1instantDateTime this version was released
... performer S0..*Reference(US Core Practitioner), Reference(US Core Organization Profile)Responsible Diagnostic Service
... request 0..*Reference(DiagnosticRequest), Reference(ProcedureRequest), Reference(ReferralRequest)What was requested
... specimen 0..*Reference(Specimen)Specimens this report is based on
... result S0..*Reference(US Core Result Observation)Observations - simple, or complex nested groups
... imagingStudy 0..*Reference(ImagingStudy), Reference(ImagingManifest)Reference to full details of imaging associated with the diagnostic report
... image ∑I0..*BackboneElementKey images associated with this report
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... comment 0..1stringComment about the image (e.g. explanation)
.... link ∑1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical Interpretation of test results
... codedDiagnosis 0..*CodeableConceptCodes for the conclusion
Binding: SNOMED CT Clinical Findings (example)
... presentedForm S0..*AttachmentEntire report as issued

doco Documentation for this format

Complete Summary of the Mandatory Requirements

  1. One status in DiagnosticReport.status which has an required binding to:
  2. One category in DiagnosticReport.category which must have:
    • a fixed DiagnosticReport.category.coding.system= “http://hl7.org/fhir/DiagnosticReport-category”
    • a fixed DiagnosticReport.category.coding.code= “LAB”
  3. One code in DiagnosticReport.code which has an extensible binding to:
  4. One patient in DiagnosticReport.subject
  5. A date and time in DiagnosticReport.effectiveDateTime or DiagnosticReport.effectivePeriod
  6. A date and time in DiagnosticReport.issued
  7. One or more DiagnosticReport.result and/or one or more DiagnosticReport.presentedForm

Each DiagnosticReport SHOULD have:

  1. A practitioner or organization in DiagnosticReport.performer

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport I0..*US Core Diagnostic Report Profile
us-core-1: Must have a result or presentedForm or both.
... status S1..1codeBinding: DiagnosticReportStatus (required)
... category S1..1CodeableConceptRequired Pattern: {"coding":[{"system":"http://hl7.org/fhir/DiagnosticReport-category","code":"LAB"}]}
... code S1..1CodeableConceptUS Realm Laboratory Report Order Code
Binding: LOINC Diagnostic Report Codes (extensible)
... subject S1..1Reference(US Core Patient Profile)
... effective[x] S1..1dateTime, PeriodSpecimen Collection Datetime or Period
... issued S1..1instant
... performer S0..*Reference(US Core Practitioner), Reference(US Core Organization Profile)
... result SI0..*Reference(US Core Result Observation)
... presentedForm SI0..*Attachment

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport I0..*US Core Diagnostic Report Profile
us-core-1: Must have a result or presentedForm or both.
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ∑0..*IdentifierId for external references to this report
... status ?!S1..1coderegistered | partial | final | corrected | appended | cancelled | entered-in-error
Binding: DiagnosticReportStatus (required)
... category S1..1CodeableConceptService category
Binding: Diagnostic Service Section Codes (example)
Required Pattern: {"coding":[{"system":"http://hl7.org/fhir/DiagnosticReport-category","code":"LAB"}]}
... code S1..1CodeableConceptUS Realm Laboratory Report Order Code
Binding: LOINC Diagnostic Report Codes (extensible)
... subject S1..1Reference(US Core Patient Profile)The subject of the report, usually, but not always, the patient
... encounter ∑0..1Reference(Encounter)Health care event when test ordered
... effective[x] S1..1dateTime, PeriodSpecimen Collection Datetime or Period
... issued S1..1instantDateTime this version was released
... performer S0..*Reference(US Core Practitioner), Reference(US Core Organization Profile)Responsible Diagnostic Service
... request 0..*Reference(DiagnosticRequest), Reference(ProcedureRequest), Reference(ReferralRequest)What was requested
... specimen 0..*Reference(Specimen)Specimens this report is based on
... result S0..*Reference(US Core Result Observation)Observations - simple, or complex nested groups
... imagingStudy 0..*Reference(ImagingStudy), Reference(ImagingManifest)Reference to full details of imaging associated with the diagnostic report
... image ∑I0..*BackboneElementKey images associated with this report
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... comment 0..1stringComment about the image (e.g. explanation)
.... link ∑1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical Interpretation of test results
... codedDiagnosis 0..*CodeableConceptCodes for the conclusion
Binding: SNOMED CT Clinical Findings (example)
... presentedForm S0..*AttachmentEntire report as issued

doco Documentation for this format

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

 

D.4.1.2 Quick Start

Below is an overview of the required search and read operations.

Summary of Argonaut Search Criteria for StructureDefinition-us-core-diagnosticreport


Clients

  • A client has connected to a server and fetched all of a patient’s laboratory diagnostic reports by searching by category using GET [base]/DiagnosticReport?patient=[id]&category=LAB.
  • A client has connected to a server and fetched all of a patient’s laboratory diagnostic reports searching by category code and date range using GET [base]/DiagnosticReport?patient=[id]&category=LAB&date=[date]{&date=[date]}.
  • A client has connected to a server and fetched all of all of a patient’s laboratory diagnostic reports searching by category and code using GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC].

  • A client SHOULD be capable of connecting to a server and fetching any of a patient’s laboratory diagnostic reports searching by category and one or more codes and date range using GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC1{,LOINC2,LOINC3,...}]&date=[date]{&date=[date]}.

Servers

  • A server is capable of returning all of a patient’s laboratory diagnostic reports queried by category using GET [base]/DiagnosticReport?patient=[id]&category=LAB.
  • A server is capable of returning all of a patient’s laboratory diagnostic reports queried by category code and date range using GET [base]/DiagnosticReport?patient=[id]&category=LAB&date=[date]{&date=[date]}.
  • A server is capable of returning all of a patient’s laboratory diagnostic reports queried by category and code using GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC].

  • A server SHOULD be capable of returning all of a patient’s laboratory diagnostic reports queried by category and one or more codes and date range using GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC1{,LOINC2,LOINC3,...}]&date=[date]{&date=[date]}.

  • A server has ensured that every API request includes a valid Authorization token, supplied via:Authorization: Bearer {server-specific-token-here}
  • A server has rejected any unauthorized requests by returning an HTTP 401 Unauthorized response code.

GET [base]/DiagnosticReport?patient=[id]&category=LAB

Support: Mandatory to support search by patient and category code = ‘LAB’.

Implementation Notes: Search based on diagnostic report category code = ‘LAB’. This fetches a bundle of all lab related DiagnosticReport resources for the specified patient (how to search by reference) and (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope

Example:

GET http://spark.furore.com/fhir/DiagnosticReport?patient=f201&category=LAB


GET [base]/DiagnosticReport?patient=[id]&code=[LOINC{,LOINC2,LOINC3,...}]

Support: Mandatory support search by a laboratory order code. SHOULD support search by multiple order codes.

Implementation Notes: Search based on DiagnosticReport code(s). This fetches a bundle of all DiagnosticReport resources for a specific diagnostic order code(s) for the specified patient (how to search by reference) and (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope

Example: Search for all metabolic panel reports for a patient

GET https://fhir-open-api-dstu2.smarthealthit.org/DiagnosticReport?patient=1032702&code=24323-8

Example: Search for all cbc, metabolic panel, and urinalysis panels for a patient

GET https://fhir-open-api-dstu2.smarthealthit.org/DiagnosticReport?patient=1032702&code=24323-8,58410-2,24356-8


GET [base]/DiagnosticReport?patient=[id]&category=LAB&date=[date]{&date=[date]}

Support: Mandatory support search by category code = ‘LAB’ and date or period.

Implementation Notes: Search based on laboratory category code and date. This fetches a bundle of all DiagnosticReport resources with category ‘LAB’ for the specified patient for a specified time period (how to search by reference), (how to search by token) amd (how to search by date).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope

Example: Find all the lab reports issued after 2010-01-14

GET http://spark.furore.com/fhir/DiagnosticReport?patient=f201&category=LAB&date=ge2010-01-14