US Core Implementation Guide
7.0.0-ballot - Ballot United States of America flag

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 7.0.0-ballot 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: 7.0.0-ballot
Standards status: Trial-use Maturity Level: 3 Computable Name: USCoreDiagnosticReportProfileNoteExchange

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

To promote interoperability and adoption through common implementation, this profile sets minimum expectations for searching and fetching Diagnostic Reports and Notes using the DiagnosticReport resource. It identifies which core elements, extensions, vocabularies, and value sets SHALL be present and constrains the way the elements are used when using the profile. It provides the floor for standards development for specific use cases. Prior to reviewing this profile, implementers are encouraged to read the Clinical Notes Guidance to understand the overlap of US Core DiagnosticReport Profile for Report and Note exchange and 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 electrocardiogram (ECG)
  • Query for a specific imaging test result
  • Query for a specific Radiology note (e.g., 84178-3 Interventional Radiology Note)
  • Query for 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. the encounter the report occurred within
  2. instant the report was released
  3. an author (actor) producing the report
  4. a reference to one or more test results
  5. a reference to one or more images
  6. a reference to the full report (presentedForm)

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.

  • 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 the images.

    • The media.link element is marked as Must Support and the Media resource to which it links can support a variety of patient-friendly content such as jpg images of xrays (see the DiagnosticReport Chest Xray Report Example).
    • DICOM studies, series, and SOP instances are encoded as UUID identifiers in the ImagingStudy resource which is referenced by the imagingStudy element. This optional element can be used by systems with the tools and specific viewers to view these images.
    • Alternatively, systems can use business identifiers such as accession numbers in the identifer element to access the source images from external sources.

    The Argonauts 2023 SMART Imaging Access project is testing an approach to access imaging studies using a single authorization flow”

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-10: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... status SC1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category S1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
.... category:us-core S0..*CodeableConceptService category
Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets

... code S1..1CodeableConceptUS Core Report Code
Binding: US Core Non Laboratory Codes (extensible): LOINC codes

... subject S1..1Reference(US Core Patient Profile S | Group | Device | US Core Location Profile)The subject of the report - usually, but not always, the patient
... encounter S0..1Reference(US Core Encounter Profile)Health care event when test ordered
... effective[x] SC0..1Diagnostically relevant time (typically the time of the procedure)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued S0..1instantDateTime this version was made
... performer S0..*Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile)Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile S | US Core Observation Clinical Result Profile S | Observation)Observations
... media S0..*BackboneElementKey images associated with this report
.... link S1..1Reference(Media)Reference to the image source
... presentedForm S0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.category:us-corerequiredUSCoreDiagnosticReportCategory
DiagnosticReport.codeextensibleUSCoreNonLaboratoryCodes

Constraints

IdGradePath(s)DetailsRequirements
us-core-10errorDiagnosticReporteffective[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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-10: effective[x] 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..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:us-core SΣ0..*CodeableConceptService 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..1CodeableConceptUS Core Report Code
Binding: US Core Non Laboratory Codes (extensible): LOINC codes

... subject SΣ1..1Reference(US Core Patient Profile)The subject of the report - usually, but not always, the patient
... encounter SΣ0..1Reference(US Core Encounter Profile)Health care event when test ordered
... effective[x] SΣC0..1Diagnostically relevant time (typically the time of the procedure)
.... effectiveDateTimedateTime
... issued SΣ0..1instantDateTime this version was made
... performer SΣ0..*Reference(US Core Practitioner Profile | US Core Organization Profile)Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile | US Core Observation Clinical Result Profile)Observations
... media SΣ0..*BackboneElementKey images associated with this report
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... link SΣ1..1Reference(Media)Reference to the image source
... presentedForm S0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:us-corerequiredUSCoreDiagnosticReportCategory
DiagnosticReport.codeextensibleUSCoreNonLaboratoryCodes

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-10errorDiagnosticReporteffective[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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-10: effective[x] 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..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:us-core SΣ0..*CodeableConceptService 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..1CodeableConceptUS Core Report Code
Binding: US Core Non Laboratory Codes (extensible): LOINC codes

... subject SΣ1..1Reference(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..1Reference(US Core Encounter Profile)Health care event when test ordered
... effective[x] SΣC0..1Diagnostically relevant time (typically the time of the procedure)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SΣ0..1instantDateTime 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 Σ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 S | US Core Observation Clinical Result Profile S | Observation)Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media SΣ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 SΣ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 S0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:us-corerequiredUSCoreDiagnosticReportCategory
DiagnosticReport.codeextensibleUSCoreNonLaboratoryCodes
DiagnosticReport.conclusionCodeexampleSNOMEDCTClinicalFindings

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-10errorDiagnosticReporteffective[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

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-10: effective[x] SHALL be present if the status is 'partial', 'preliminary', 'final', 'amended', 'corrected' or 'appended'
... status SC1..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category S1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
.... category:us-core S0..*CodeableConceptService category
Binding: US Core Diagnostic Report Category Codes (required): Note that other codes are permitted, see Required Bindings When Slicing by Value Sets

... code S1..1CodeableConceptUS Core Report Code
Binding: US Core Non Laboratory Codes (extensible): LOINC codes

... subject S1..1Reference(US Core Patient Profile S | Group | Device | US Core Location Profile)The subject of the report - usually, but not always, the patient
... encounter S0..1Reference(US Core Encounter Profile)Health care event when test ordered
... effective[x] SC0..1Diagnostically relevant time (typically the time of the procedure)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued S0..1instantDateTime this version was made
... performer S0..*Reference(US Core Practitioner Profile S | US Core Organization Profile S | US Core PractitionerRole Profile | US Core CareTeam Profile)Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile S | US Core Observation Clinical Result Profile S | Observation)Observations
... media S0..*BackboneElementKey images associated with this report
.... link S1..1Reference(Media)Reference to the image source
... presentedForm S0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.category:us-corerequiredUSCoreDiagnosticReportCategory
DiagnosticReport.codeextensibleUSCoreNonLaboratoryCodes

Constraints

IdGradePath(s)DetailsRequirements
us-core-10errorDiagnosticReporteffective[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()

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-10: effective[x] 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..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:us-core SΣ0..*CodeableConceptService 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..1CodeableConceptUS Core Report Code
Binding: US Core Non Laboratory Codes (extensible): LOINC codes

... subject SΣ1..1Reference(US Core Patient Profile)The subject of the report - usually, but not always, the patient
... encounter SΣ0..1Reference(US Core Encounter Profile)Health care event when test ordered
... effective[x] SΣC0..1Diagnostically relevant time (typically the time of the procedure)
.... effectiveDateTimedateTime
... issued SΣ0..1instantDateTime this version was made
... performer SΣ0..*Reference(US Core Practitioner Profile | US Core Organization Profile)Responsible Diagnostic Service
... result S0..*Reference(US Core Laboratory Result Observation Profile | US Core Observation Clinical Result Profile)Observations
... media SΣ0..*BackboneElementKey images associated with this report
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... link SΣ1..1Reference(Media)Reference to the image source
... presentedForm S0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:us-corerequiredUSCoreDiagnosticReportCategory
DiagnosticReport.codeextensibleUSCoreNonLaboratoryCodes

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-10errorDiagnosticReporteffective[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

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport C0..*DiagnosticReportA Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
us-core-10: effective[x] 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..1coderegistered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required)
... Slices for category SΣ1..*CodeableConceptService category
Slice: Unordered, Open by pattern:$this
Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.


.... category:us-core SΣ0..*CodeableConceptService 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..1CodeableConceptUS Core Report Code
Binding: US Core Non Laboratory Codes (extensible): LOINC codes

... subject SΣ1..1Reference(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..1Reference(US Core Encounter Profile)Health care event when test ordered
... effective[x] SΣC0..1Diagnostically relevant time (typically the time of the procedure)
.... effectiveDateTimedateTime S
.... effectivePeriodPeriod
... issued SΣ0..1instantDateTime 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 Σ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 S | US Core Observation Clinical Result Profile S | Observation)Observations
... imagingStudy 0..*Reference(ImagingStudy)Reference to full details of imaging associated with the diagnostic report
... media SΣ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 SΣ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 S0..*AttachmentEntire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DiagnosticReport.statusrequiredDiagnosticReportStatus
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
DiagnosticReport.category:us-corerequiredUSCoreDiagnosticReportCategory
DiagnosticReport.codeextensibleUSCoreNonLaboratoryCodes
DiagnosticReport.conclusionCodeexampleSNOMEDCTClinicalFindings

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-10errorDiagnosticReporteffective[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()

 

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.
  • 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/DiagnosticReport.rs
  • granular scopes: patient.DiagnosticReport.rs?category=http://loinc.org|LP29684-5 and patient.DiagnosticReport.rs?category=http://loinc.org|LP29708-2 and patient.DiagnosticReport.rs?category=http://loinc.org|LP7839-6 .

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|LP29684-5

    Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and a category code specified in US Core DiagnosticReport Category Codes (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={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|LP29684-5&date=ge2010-01-14T00:00:00Z

    Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and date and a category code specified in US Core DiagnosticReport Category Codes (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)