US Core Implementation Guide
6.1.0 - STU6 United States of America flag

This page is part of the US Core (v6.1.0: STU6 Update) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: US Core DiagnosticReport Profile for Laboratory Results Reporting

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab Version: 6.1.0
Active as of 2022-04-20 Computable Name: USCoreDiagnosticReportProfileLaboratoryReporting

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

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 to promote interoperability and adoption through common implementation. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains the way the elements are used when using this profile. It provides the floor for standards development for specific use cases.

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 must always be present (Mandatory definition) 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 Views 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. the diagnostically relevant time (known as the “effective time” and typically the time of specimen collection)*
  6. when the report was released*

*These elements have the following constraints: SHALL be present if status is ‘partial’, ‘preliminary’, ‘final’, ‘amended’, ‘corrected’ or ‘appended’.

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.

Usage:

Formal Views of Profile Content

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

This structure is derived from DiagnosticReport

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... status SC1..1code(USCDI) registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category S1..*CodeableConcept(USCDI) Service category
Slice: Unordered, Open by pattern:$this
.... category:LaboratorySlice S1..1CodeableConcept(USCDI) Service 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..1CodeableConcept(USCDI) US Core Laboratory Report Order Code
Binding: US Core Laboratory Test Codes (extensible): LOINC codes

... subject S1..1Reference(US Core Patient Profile)(USCDI) The subject of the report - usually, but not always, the patient
... effective[x] SC0..1(USCDI) Diagnostically relevant time (typically the time of specimen collection)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SC0..1instant(USCDI) When the report was released
... performer S0..*Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core CareTeam Profile | US Core PractitionerRole Profile)(USCDI) Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile)(USCDI) Observations

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.codeextensibleUSCoreLaboratoryTestCodes

Constraints

IdGradePath(s)DetailsRequirements
us-core-8errorDiagnosticReporteffective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies effective.exists()
us-core-9errorDiagnosticReportissued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies issued.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣC1..1code(USCDI) registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConcept(USCDI) Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:LaboratorySlice SΣ1..1CodeableConcept(USCDI) Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



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 SΣ1..1CodeableConcept(USCDI) US Core Laboratory Report Order Code
Binding: US Core Laboratory Test Codes (extensible): LOINC codes

... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) The subject of the report - usually, but not always, the patient
... effective[x] SΣC0..1(USCDI) Diagnostically relevant time (typically the time of specimen collection)
.... effectiveDateTimedateTime
... issued SΣC0..1instant(USCDI) When the report was released
... performer SΣ0..*Reference(US Core Practitioner Profile)(USCDI) Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile)(USCDI) Observations

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
DiagnosticReport.codeextensibleUSCoreLaboratoryTestCodes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorDiagnosticReportIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDiagnosticReportIf 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-4errorDiagnosticReportIf 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-5errorDiagnosticReportIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceDiagnosticReportA 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()
us-core-8errorDiagnosticReporteffective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies effective.exists()
us-core-9errorDiagnosticReportissued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies issued.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... 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: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..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..*IdentifierBusiness identifier for report
... basedOn 0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!SΣC1..1code(USCDI) registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConcept(USCDI) Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:LaboratorySlice SΣ1..1CodeableConcept(USCDI) Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



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Σ1..1CodeableConcept(USCDI) US Core Laboratory Report Order Code
Binding: US Core Laboratory Test Codes (extensible): LOINC codes

... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) The subject of the report - usually, but not always, the patient
... encounter Σ0..1Reference(Encounter)Health care event when test ordered
... effective[x] SΣC0..1(USCDI) Diagnostically relevant time (typically the time of specimen collection)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SΣC0..1instant(USCDI) When the report was released
... performer SΣ0..*Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core CareTeam Profile | US Core PractitionerRole Profile)(USCDI) Responsible Diagnostic Service
... resultsInterpreter Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen 0..*Reference(Specimen)Specimens this report is based on
... result S0..*Reference(US Core Laboratory Result Observation Profile)(USCDI) Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media Σ0..*BackboneElementKey images associated with this report
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... comment 0..1stringComment about the image (e.g. explanation)
.... link Σ1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical conclusion (interpretation) of test results
... conclusionCode 0..*CodeableConceptCodes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.


... presentedForm 0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
DiagnosticReport.codeextensibleUSCoreLaboratoryTestCodes
DiagnosticReport.conclusionCodeexampleSNOMEDCTClinicalFindings

Constraints

IdGradePath(s)DetailsRequirements
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()

Differential View

This structure is derived from DiagnosticReport

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... status SC1..1code(USCDI) registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category S1..*CodeableConcept(USCDI) Service category
Slice: Unordered, Open by pattern:$this
.... category:LaboratorySlice S1..1CodeableConcept(USCDI) Service 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..1CodeableConcept(USCDI) US Core Laboratory Report Order Code
Binding: US Core Laboratory Test Codes (extensible): LOINC codes

... subject S1..1Reference(US Core Patient Profile)(USCDI) The subject of the report - usually, but not always, the patient
... effective[x] SC0..1(USCDI) Diagnostically relevant time (typically the time of specimen collection)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SC0..1instant(USCDI) When the report was released
... performer S0..*Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core CareTeam Profile | US Core PractitionerRole Profile)(USCDI) Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile)(USCDI) Observations

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.codeextensibleUSCoreLaboratoryTestCodes

Constraints

IdGradePath(s)DetailsRequirements
us-core-8errorDiagnosticReporteffective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies effective.exists()
us-core-9errorDiagnosticReportissued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies issued.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!SΣC1..1code(USCDI) registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConcept(USCDI) Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:LaboratorySlice SΣ1..1CodeableConcept(USCDI) Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



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 SΣ1..1CodeableConcept(USCDI) US Core Laboratory Report Order Code
Binding: US Core Laboratory Test Codes (extensible): LOINC codes

... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) The subject of the report - usually, but not always, the patient
... effective[x] SΣC0..1(USCDI) Diagnostically relevant time (typically the time of specimen collection)
.... effectiveDateTimedateTime
... issued SΣC0..1instant(USCDI) When the report was released
... performer SΣ0..*Reference(US Core Practitioner Profile)(USCDI) Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile)(USCDI) Observations

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
DiagnosticReport.codeextensibleUSCoreLaboratoryTestCodes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorDiagnosticReportIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDiagnosticReportIf 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-4errorDiagnosticReportIf 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-5errorDiagnosticReportIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceDiagnosticReportA 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()
us-core-8errorDiagnosticReporteffective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies effective.exists()
us-core-9errorDiagnosticReportissued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
: (status='partial' or status='preliminary' or status='final' or status='amended' or status='corrected' or status='appended' ) implies issued.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-8: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
us-core-9: issued SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... 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: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..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..*IdentifierBusiness identifier for report
... basedOn 0..*Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)What was requested
... status ?!SΣC1..1code(USCDI) registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConcept(USCDI) Service category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:LaboratorySlice SΣ1..1CodeableConcept(USCDI) Service category
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.



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Σ1..1CodeableConcept(USCDI) US Core Laboratory Report Order Code
Binding: US Core Laboratory Test Codes (extensible): LOINC codes

... subject SΣ1..1Reference(US Core Patient Profile)(USCDI) The subject of the report - usually, but not always, the patient
... encounter Σ0..1Reference(Encounter)Health care event when test ordered
... effective[x] SΣC0..1(USCDI) Diagnostically relevant time (typically the time of specimen collection)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SΣC0..1instant(USCDI) When the report was released
... performer SΣ0..*Reference(US Core Practitioner Profile S | US Core Organization Profile | US Core CareTeam Profile | US Core PractitionerRole Profile)(USCDI) Responsible Diagnostic Service
... resultsInterpreter Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam)Primary result interpreter
... specimen 0..*Reference(Specimen)Specimens this report is based on
... result S0..*Reference(US Core Laboratory Result Observation Profile)(USCDI) Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media Σ0..*BackboneElementKey images associated with this report
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... comment 0..1stringComment about the image (e.g. explanation)
.... link Σ1..1Reference(Media)Reference to the image source
... conclusion 0..1stringClinical conclusion (interpretation) of test results
... conclusionCode 0..*CodeableConceptCodes for the clinical conclusion of test results
Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.


... presentedForm 0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:LaboratorySliceexamplePattern: LAB
DiagnosticReport.codeextensibleUSCoreLaboratoryTestCodes
DiagnosticReport.conclusionCodeexampleSNOMEDCTClinicalFindings

Constraints

IdGradePath(s)DetailsRequirements
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()

 

Other representations of profile: CSV, Excel, Schematron

Notes:


Quick Start


Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile’s information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

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

  • Servers providing access to laboratory data can use US Core SMART Scopes for:
    • resource level scopes (for example, patient/DiagnosticReport.rs)
    • granular scopes (for example, patient.DiagnosticReport.rs?category=http://terminology.hl7.org/CodeSystem/v2-0074|LAB).
  • See the General Requirements 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={Type/}[id]

    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={Type/}[id]&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 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=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 AND search on date (e.g.date=[date]&date=[date]]&...)

    GET [base]/DiagnosticReport?patient={Type/}[id]&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-14T00:00:00Z

    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 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=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 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=f201&code=http://loinc.org|24323-8&date=ge2019-01-14T00:00:00Z

    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)