US Core Implementation Guide
8.0.1 - STU 8

US Core Implementation Guide, published by HL7 International / Cross-Group Projects. This guide is not an authorized publication; it is the continuous build for version 8.0.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/US-Core/ and changes regularly. See the Directory of published versions

## Resource Profile: US Core DiagnosticReport Profile for Report and Note Exchange

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note | Version: 8.0.1
Standards status: Trial-use | Maturity Level: 3 | Computable Name: USCoreDiagnosticReportProfileNoteExchange
Other Identifiers: OID:2.16.840.1.113883.4.642.40.2.42.21
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

The US Core DiagnosticReport Profile for Report and Note Exchange inherits from the FHIR DiagnosticReport resource; refer to it for scope and usage definitions. This profile sets minimum expectations for searching and fetching Diagnostic Reports and Notes using the DiagnosticReport resource. It specifies which core elements, extensions, vocabularies, and value sets SHALL be present in the resource and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption. Before reviewing this profile, implementers are encouraged to read the Clinical Notes Guidance to understand the overlap of the US Core DiagnosticReport Profile for Report and Note exchange and the US Core DocumentReference Profile.

Example Usage Scenarios:

The following are example usage scenarios for this profile:

- Query for a specific clinical test result, such as an electrocardiogram (ECG)
- Query for a specific imaging test result
- Query for a specific Radiology note (e.g., 84178-3 Interventional Radiology Note)
- Query for a category of reports (e.g., all Cardiology reports)

### 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 Diagnostic Report Must Have:

1. a status
2. a category*
3. a code describing the type of report
4. a patient
5. the diagnostically relevant time (known as the "effective time" and typically the time of the procedure)*

*This element has the following constraint: SHALL be present if status is 'partial', 'preliminary', 'final', 'amended', 'corrected', or 'appended'.

Each Diagnostic Report Must Support:

1. encounter associated with DiagnosticReport
2. instant the report was released
3. an author (actor) producing the report
4. a results interpreter*
5. a reference to one or more test results
6. a reference to one or more images
7. a reference to the full report (presentedForm)

* see guidance below

Profile Specific Implementation Guidance:

- See Clinical Notes
- The `DiagnosticReport.category` binding Must Support, at a minimum, the US Core DiagnosticReport Category Codes of Cardiology, Radiology, and Pathology. Other categories may be supported.
  - It is up to the data source to categorize the documents they send. Therefore, Clients need to understand that data categorization is somewhat subjective, and the categorization applied by the source may not align with the Client's expectations. Any linkages between specific LOINC codes and the LP-type codes may be used as guidance. If LOINC develops a hierarchy or categorization to align these concepts, US Core will be updated.
- A Server will return how a customer has categorized their reports at a particular site. Categorization of reports is not consistent across sites. (e.g., a system may categorize an orthopedic note as cardiology.)
- For Diagnostic Imaging Reports systems SHOULD support using the subset of LOINC codes defined in CONF-DIR-19 in *HL7 Implementation Guide for CDA Release 2: Imaging Integration, Levels 1, 2, and 3, Basic Imaging Reports in CDA and DICOM Diagnostic Imaging Reports (DIR) - Universal Realm, Release 1.0.

- *The profile elements `DiagnosticReport.performer and DiagnosticReport.resultsInterpreter` communicate the individual level provenance author data corresponding to the U.S. Core Data for Interoperability (USCDI) Provenance Author Data Elements.

- Diagnostic imaging results in visual images requiring interpretation and clinical test results/reports may also reference images as part of the report. There is no single approach for accessing imaging studies alongside clinical data using a single authorization flow to give patients and providers access to the images.

  - The `DiagnosticReport.media.link` element SHOULD be used to support links to various patient-friendly content, such as jpg images of x-rays (see the DiagnosticReport Chest X-ray Report Example).
  - The `DiagnosticReport.imagingStudy` element SHOULD be used to support exchange with systems that can view DICOM (Digital Imaging and Communications in Medicine) studies, series, and SOP (Service-Object Pair) instances referenced in the ImagingStudy resource.
  - Alternatively, systems can use business identifiers such as accession numbers in the `identifier` element to access the source images from external sources.
  - The Argonaut SMART Imaging Access project defined an approach to access imaging studies using a single authorization flow.

- The `DiagnosticRequest.basedOn` element connects the DiagnosticReport to the originating order in the EHR. Systems that initiate the order SHOULD use this element when reporting the results.

Usages:

- Examples for this Profile: DiagnosticReport/bone-density-report, DiagnosticReport/cardiology-report and DiagnosticReport/chest-xray-report
- CapabilityStatements using this Profile: US Core Client CapabilityStatement and US Core Server CapabilityStatement

You can also check for usages in the FHIR IG Statistics

Changes since version 7.0.0:

- The data elements list has changed

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | DiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports Constraints: us-core-10
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required)
Slices for category | S Σ | 1..* | CodeableConcept | Service category Slice: Unordered, Open by value:$this Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
category:us-core | S Σ | 0..* | CodeableConcept | Service category Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | US Core Report Code Binding: US Core Non Laboratory Codes (extensible): LOINC codes
subject | S Σ | 1..1 | Reference(US Core Patient Profile S | Group | Device | US Core Location Profile) | The subject of the report - usually, but not always, the patient
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with DiagnosticReport
effective[x] | S Σ C | 0..1 |  | Diagnostically relevant time (typically the time of the procedure)
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
issued | S Σ | 0..1 | instant | DateTime this version was made
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile) | Responsible Diagnostic Service
resultsInterpreter | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | PractitionerRole | US Core CareTeam Profile) | Primary result interpreter
result | S | 0..* | Reference(US Core Observation Clinical Result Profile S | US Core Laboratory Result Observation Profile | Observation) | Observations
presentedForm | S | 0..* | Attachment | Entire report as issued
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DiagnosticReport.status | Base | required | DiagnosticReportStatus | 📦4.0.1 | FHIR Std.
DiagnosticReport.category | Base | example | Diagnostic Service Section Codes | 📍4.0.1 | FHIR Std.
DiagnosticReport.category:us-core | Base | required | US Core Diagnostic Report Category Codes | 📦8.0.1 | This IG
DiagnosticReport.code | Base | extensible | US Core Non Laboratory Codes | 📦8.0.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DiagnosticReport | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DiagnosticReport | If 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-4 | error | DiagnosticReport | If 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-5 | error | DiagnosticReport | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DiagnosticReport | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
us-core-10 | error | DiagnosticReport | effective[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()`

This structure is derived from DiagnosticReport

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | DiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports Constraints: us-core-10
status | S C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required)
Slices for category | S | 1..* | CodeableConcept | Service category Slice: Unordered, Open by value:$this
category:us-core | S | 0..* | CodeableConcept | Service category Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S | 1..1 | CodeableConcept | US Core Report Code Binding: US Core Non Laboratory Codes (extensible): LOINC codes
subject | S | 1..1 | Reference(US Core Patient Profile S | Group | Device | US Core Location Profile) | The subject of the report - usually, but not always, the patient
encounter | S | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with DiagnosticReport
effective[x] | S C | 0..1 |  | Diagnostically relevant time (typically the time of the procedure)
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
issued | S | 0..1 | instant | DateTime this version was made
performer | S | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile) | Responsible Diagnostic Service
resultsInterpreter | S | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | PractitionerRole | US Core CareTeam Profile) | Primary result interpreter
result | S | 0..* | Reference(US Core Observation Clinical Result Profile S | US Core Laboratory Result Observation Profile | Observation) | Observations
presentedForm | S | 0..* | Attachment | Entire report as issued
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
DiagnosticReport.status | Base | required | DiagnosticReportStatus | 📦4.0.1 | FHIR Std.
DiagnosticReport.category:us-core | Base | required | US Core Diagnostic Report Category Codes | 📦8.0.1 | This IG
DiagnosticReport.code | Base | extensible | US Core Non Laboratory Codes | 📦8.0.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
us-core-10 | error | DiagnosticReport | effective[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()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | DiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports Constraints: us-core-10
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business identifier for report
basedOn |  | 0..* | Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | What was requested
status | ?!S Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required)
Slices for category | S Σ | 1..* | CodeableConcept | Service category Slice: Unordered, Open by value:$this Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
category:us-core | S Σ | 0..* | CodeableConcept | Service category Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | US Core Report Code Binding: US Core Non Laboratory Codes (extensible): LOINC codes
subject | S Σ | 1..1 | Reference(US Core Patient Profile S | Group | Device | US Core Location Profile) | The subject of the report - usually, but not always, the patient
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with DiagnosticReport
effective[x] | S Σ C | 0..1 |  | Diagnostically relevant time (typically the time of the procedure)
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
issued | S Σ | 0..1 | instant | DateTime this version was made
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile) | Responsible Diagnostic Service
resultsInterpreter | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | PractitionerRole | US Core CareTeam Profile) | Primary result interpreter
specimen |  | 0..* | Reference(Specimen) | Specimens this report is based on
result | S | 0..* | Reference(US Core Observation Clinical Result Profile S | US Core Laboratory Result Observation Profile | Observation) | Observations
imagingStudy |  | 0..* | Reference(ImagingStudy) | Reference to full details of imaging associated with the diagnostic report
media | Σ | 0..* | BackboneElement | Key images associated with this report
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
comment |  | 0..1 | string | Comment about the image (e.g. explanation)
link | Σ | 1..1 | Reference(Media) | Reference to the image source
conclusion |  | 0..1 | string | Clinical conclusion (interpretation) of test results
conclusionCode |  | 0..* | CodeableConcept | Codes for the clinical conclusion of test results Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
presentedForm | S | 0..* | Attachment | Entire report as issued
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DiagnosticReport.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DiagnosticReport.status | Base | required | DiagnosticReportStatus | 📦4.0.1 | FHIR Std.
DiagnosticReport.category | Base | example | Diagnostic Service Section Codes | 📍4.0.1 | FHIR Std.
DiagnosticReport.category:us-core | Base | required | US Core Diagnostic Report Category Codes | 📦8.0.1 | This IG
DiagnosticReport.code | Base | extensible | US Core Non Laboratory Codes | 📦8.0.1 | This IG
DiagnosticReport.conclusionCode | Base | example | SNOMED CT Clinical Findings | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DiagnosticReport | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DiagnosticReport | If 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-4 | error | DiagnosticReport | If 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-5 | error | DiagnosticReport | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DiagnosticReport | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
us-core-10 | error | DiagnosticReport | effective[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()`

This structure is derived from DiagnosticReport

Summary

Mandatory: 2 elements
Must-Support: 12 elements

Structures

This structure refers to these other structures:

- US Core Patient Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient)
- US Core Location Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-location)
- US Core Encounter Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter)
- US Core Practitioner Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)
- US Core Organization Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization)
- US Core PractitionerRole Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole)
- US Core CareTeam Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam)
- US Core Observation Clinical Result Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-clinical-result)
- US Core Laboratory Result Observation Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of DiagnosticReport.category

Maturity: 3

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | DiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports Constraints: us-core-10
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
status | ?!S Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required)
Slices for category | S Σ | 1..* | CodeableConcept | Service category Slice: Unordered, Open by value:$this Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
category:us-core | S Σ | 0..* | CodeableConcept | Service category Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | US Core Report Code Binding: US Core Non Laboratory Codes (extensible): LOINC codes
subject | S Σ | 1..1 | Reference(US Core Patient Profile S | Group | Device | US Core Location Profile) | The subject of the report - usually, but not always, the patient
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with DiagnosticReport
effective[x] | S Σ C | 0..1 |  | Diagnostically relevant time (typically the time of the procedure)
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
issued | S Σ | 0..1 | instant | DateTime this version was made
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile) | Responsible Diagnostic Service
resultsInterpreter | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | PractitionerRole | US Core CareTeam Profile) | Primary result interpreter
result | S | 0..* | Reference(US Core Observation Clinical Result Profile S | US Core Laboratory Result Observation Profile | Observation) | Observations
presentedForm | S | 0..* | Attachment | Entire report as issued
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DiagnosticReport.status | Base | required | DiagnosticReportStatus | 📦4.0.1 | FHIR Std.
DiagnosticReport.category | Base | example | Diagnostic Service Section Codes | 📍4.0.1 | FHIR Std.
DiagnosticReport.category:us-core | Base | required | US Core Diagnostic Report Category Codes | 📦8.0.1 | This IG
DiagnosticReport.code | Base | extensible | US Core Non Laboratory Codes | 📦8.0.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DiagnosticReport | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DiagnosticReport | If 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-4 | error | DiagnosticReport | If 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-5 | error | DiagnosticReport | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DiagnosticReport | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
us-core-10 | error | DiagnosticReport | effective[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()`

Differential View

This structure is derived from DiagnosticReport

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | DiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports Constraints: us-core-10
status | S C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required)
Slices for category | S | 1..* | CodeableConcept | Service category Slice: Unordered, Open by value:$this
category:us-core | S | 0..* | CodeableConcept | Service category Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S | 1..1 | CodeableConcept | US Core Report Code Binding: US Core Non Laboratory Codes (extensible): LOINC codes
subject | S | 1..1 | Reference(US Core Patient Profile S | Group | Device | US Core Location Profile) | The subject of the report - usually, but not always, the patient
encounter | S | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with DiagnosticReport
effective[x] | S C | 0..1 |  | Diagnostically relevant time (typically the time of the procedure)
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
issued | S | 0..1 | instant | DateTime this version was made
performer | S | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile) | Responsible Diagnostic Service
resultsInterpreter | S | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | PractitionerRole | US Core CareTeam Profile) | Primary result interpreter
result | S | 0..* | Reference(US Core Observation Clinical Result Profile S | US Core Laboratory Result Observation Profile | Observation) | Observations
presentedForm | S | 0..* | Attachment | Entire report as issued
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
DiagnosticReport.status | Base | required | DiagnosticReportStatus | 📦4.0.1 | FHIR Std.
DiagnosticReport.category:us-core | Base | required | US Core Diagnostic Report Category Codes | 📦8.0.1 | This IG
DiagnosticReport.code | Base | extensible | US Core Non Laboratory Codes | 📦8.0.1 | This IG

#### Constraints

Id | Grade | Path(s) | Description | Expression
us-core-10 | error | DiagnosticReport | effective[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()`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | DiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports Constraints: us-core-10
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business identifier for report
basedOn |  | 0..* | Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | What was requested
status | ?!S Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required)
Slices for category | S Σ | 1..* | CodeableConcept | Service category Slice: Unordered, Open by value:$this Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
category:us-core | S Σ | 0..* | CodeableConcept | Service category Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets
code | S Σ | 1..1 | CodeableConcept | US Core Report Code Binding: US Core Non Laboratory Codes (extensible): LOINC codes
subject | S Σ | 1..1 | Reference(US Core Patient Profile S | Group | Device | US Core Location Profile) | The subject of the report - usually, but not always, the patient
encounter | S Σ | 0..1 | Reference(US Core Encounter Profile) | Encounter associated with DiagnosticReport
effective[x] | S Σ C | 0..1 |  | Diagnostically relevant time (typically the time of the procedure)
effectiveDateTime |  |  | dateTime S |
effectivePeriod |  |  | Period |
issued | S Σ | 0..1 | instant | DateTime this version was made
performer | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile) | Responsible Diagnostic Service
resultsInterpreter | S Σ | 0..* | Reference(US Core Practitioner Profile S | US Core Organization Profile | PractitionerRole | US Core CareTeam Profile) | Primary result interpreter
specimen |  | 0..* | Reference(Specimen) | Specimens this report is based on
result | S | 0..* | Reference(US Core Observation Clinical Result Profile S | US Core Laboratory Result Observation Profile | Observation) | Observations
imagingStudy |  | 0..* | Reference(ImagingStudy) | Reference to full details of imaging associated with the diagnostic report
media | Σ | 0..* | BackboneElement | Key images associated with this report
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
comment |  | 0..1 | string | Comment about the image (e.g. explanation)
link | Σ | 1..1 | Reference(Media) | Reference to the image source
conclusion |  | 0..1 | string | Clinical conclusion (interpretation) of test results
conclusionCode |  | 0..* | CodeableConcept | Codes for the clinical conclusion of test results Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
presentedForm | S | 0..* | Attachment | Entire report as issued
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DiagnosticReport.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DiagnosticReport.status | Base | required | DiagnosticReportStatus | 📦4.0.1 | FHIR Std.
DiagnosticReport.category | Base | example | Diagnostic Service Section Codes | 📍4.0.1 | FHIR Std.
DiagnosticReport.category:us-core | Base | required | US Core Diagnostic Report Category Codes | 📦8.0.1 | This IG
DiagnosticReport.code | Base | extensible | US Core Non Laboratory Codes | 📦8.0.1 | This IG
DiagnosticReport.conclusionCode | Base | example | SNOMED CT Clinical Findings | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DiagnosticReport | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DiagnosticReport | If 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-4 | error | DiagnosticReport | If 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-5 | error | DiagnosticReport | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DiagnosticReport | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`
us-core-10 | error | DiagnosticReport | effective[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()`

This structure is derived from DiagnosticReport

Summary

Mandatory: 2 elements
Must-Support: 12 elements

Structures

This structure refers to these other structures:

- US Core Patient Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient)
- US Core Location Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-location)
- US Core Encounter Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter)
- US Core Practitioner Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner)
- US Core Organization Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization)
- US Core PractitionerRole Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole)
- US Core CareTeam Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam)
- US Core Observation Clinical Result Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-clinical-result)
- US Core Laboratory Result Observation Profile (http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of DiagnosticReport.category

Maturity: 3

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.

- See the Scopes Format section for a description of the SMART scopes syntax.
- See the Search Syntax section for a description of the US Core search syntax.
- 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.

#### US Core Scopes

Servers providing access to clniical note data SHALL support these US Core SMART Scopes:

- resource level scopes: `<patient|user|system>/DiagnosticReport.rs`

#### 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={system|}[code]`

   Example:

   1. GET [base]/DiagnosticReport?patient=f201&category=http://loinc.org|LP29708-2

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and a category code = "LP29708-2" (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|45033-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={system|}[code]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}`

   Example:

   1. GET [base]/DiagnosticReport?patient=f201&category=http://loinc.org|LP29708-2&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 = "LP29708-2" (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 `category` and `_lastUpdated` search parameters:
   - including support for these `_lastUpdated` comparators: `gt,lt,ge,le`
   - including optional support for AND search on `_lastUpdated` (e.g.`_lastUpdated=[date]&_lastUpdated=[date]]&...`)

   `GET [base]/DiagnosticReport?patient={Type/}[id]&category={system|}[code]&_lastUpdated={gt|lt|ge|le}[date]{&_lastUpdated={gt|lt|ge|le}[date]&...}`

   Example:

   1. GET [base]/DiagnosticReport?patient=f201&category=http://loinc.org|LP29708-2&_lastUpdated=ge2010-01-14T00:00:00Z

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and category and _lastUpdated. See the US Core General Guidance page for Searching Using lastUpdated. (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=f201&code=http://loinc.org|45033-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)