Canadian Baseline
1.1.0 - CI Build Canada flag

Canadian Baseline, published by HL7 Canada - FHIR Implementation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7-Canada/ca-baseline/ and changes regularly. See the Directory of published versions

Resource Profile: Diagnostic Report for Report and Note Exchange Profile

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-diagnosticreportnote Version: 1.1.0
Draft as of 2022-06-08 Computable Name: DiagnosticReportNoteProfile

Proposed constraints and extensions on the Diagnostic Report Resource to support collection of diagnostic report information for reports and notes. Generated as a first step toward creating a set of Canadian Baseline FHIR profiles.

CA Core DiagnosticReport (Note) Profile

This profile initially put forth placeholders for the value sets used in category and code. Further work is required to determine if this profile should align to the value set in use in US Core (https://www.hl7.org/fhir/us/core/ValueSet-us-core-diagnosticreport-category.html and https://www.hl7.org/fhir/us/core/ValueSet-us-core-diagnosticreport-report-and-note-codes.html) or if a Canadian value set needs to be created.
</blockquote> </div> This profile sets minimum expectations to support collection of diagnostic report information for reports and notes. Generated as a first step toward creating a set of Canadian Baseline FHIR profiles. It identifies which core elements, constraints and value sets SHALL be present in the resource instance when using this profile. This profile defines core localisation concepts for use in an Canadian context. ## Mandatory Data Elements All elements or attributes defined in FHIR have cardinality as part of their definition - a minimum number of required appearances and a maximum number. Most elements in FHIR specification have a minimum cardinality of **0**, which means that they may be missing from a resource when it is exchanged between systems. **Required elements:** * status of the diagnostic report * category of the diagnostic report * code that describes the diagnostic report * subject of the report * time when report was created ## Must Support Data Elements Some elements are labeled as MustSupport meaning that implementations that produce or consume resources SHALL provide "support" for the element in some meaningful way (see [Must Support](https://build.fhir.org/ig/HL7-Canada/ca-baseline/general-guidance.html#must-support) definition). Following elements are marked as Must Support in the Canadian DiagnosticReport Note profile to aid record matching in databases. **Must Support elements:** * status of the report * category that classifies the report * code that describes the diagnostic report * subject of the report * healthcare event this report is about * time when report was created * time when report was issued * diagnostic service responsible for report * Media that are part of this report * Attachments that are part of this report ## Usage Note

Usage:

  • This Resource Profile is not used by any profiles in this Implementation Guide

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 0..* DiagnosticReport DiagnosticReport for Report and Note Profile
... status S 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): Codes providing the status of a DiagnosticReport.

... category S 1..* CodeableConcept Service category
... code S 1..1 CodeableConcept Name/Code for this diagnostic report
... encounter S 0..1 Reference(Encounter Profile) Health care event when test ordered
... effective[x] S 1..1 dateTime, Period Time of report or note
... issued S 0..1 instant Date/Time this version of the DiagnosticReport was made available
... performer S 0..* Reference(Practitioner Profile (General) | Organization Profile) Responsible Diagnostic Service
... media S 0..* BackboneElement Key images associated with this report
... presentedForm S 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..* DiagnosticReport DiagnosticReport for Report and Note Profile
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): Codes providing the status of a DiagnosticReport.

... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (preferred): Codes that describe Diagnostic Reports.

... subject SΣ 1..1 Reference(Patient Profile) The patient that the diagnostic report refers to
... encounter SΣ 0..1 Reference(Encounter Profile) Health care event when test ordered
... effective[x] SΣ 1..1 Time of report or note
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 0..1 instant Date/Time this version of the DiagnosticReport was made available
... performer SΣ 0..* Reference(Practitioner Profile (General) | Organization Profile) Responsible Diagnostic Service
... media SΣ 0..* BackboneElement Key images associated with this report
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... link Σ 1..1 Reference(Media) Reference to the image source
... presentedForm S 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codepreferredLOINCDiagnosticReportCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/report-codes
from the FHIR Standard

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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..* DiagnosticReport DiagnosticReport for Report and Note Profile
... 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
... 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Σ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): Codes providing the status of a DiagnosticReport.

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


... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (preferred): Codes that describe Diagnostic Reports.

... subject SΣ 1..1 Reference(Patient Profile) The patient that the diagnostic report refers to
... encounter SΣ 0..1 Reference(Encounter Profile) Health care event when test ordered
... effective[x] SΣ 1..1 Time of report or note
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 0..1 instant Date/Time this version of the DiagnosticReport was made available
... performer SΣ 0..* Reference(Practitioner Profile (General) | Organization 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 0..* Reference(Observation) Observations
... imagingStudy 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report
... media SΣ 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codepreferredLOINCDiagnosticReportCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/report-codes
from the FHIR Standard
DiagnosticReport.conclusionCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

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()

Differential View

This structure is derived from DiagnosticReport

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..* DiagnosticReport DiagnosticReport for Report and Note Profile
... status S 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): Codes providing the status of a DiagnosticReport.

... category S 1..* CodeableConcept Service category
... code S 1..1 CodeableConcept Name/Code for this diagnostic report
... encounter S 0..1 Reference(Encounter Profile) Health care event when test ordered
... effective[x] S 1..1 dateTime, Period Time of report or note
... issued S 0..1 instant Date/Time this version of the DiagnosticReport was made available
... performer S 0..* Reference(Practitioner Profile (General) | Organization Profile) Responsible Diagnostic Service
... media S 0..* BackboneElement Key images associated with this report
... presentedForm S 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..* DiagnosticReport DiagnosticReport for Report and Note Profile
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): Codes providing the status of a DiagnosticReport.

... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (preferred): Codes that describe Diagnostic Reports.

... subject SΣ 1..1 Reference(Patient Profile) The patient that the diagnostic report refers to
... encounter SΣ 0..1 Reference(Encounter Profile) Health care event when test ordered
... effective[x] SΣ 1..1 Time of report or note
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 0..1 instant Date/Time this version of the DiagnosticReport was made available
... performer SΣ 0..* Reference(Practitioner Profile (General) | Organization Profile) Responsible Diagnostic Service
... media SΣ 0..* BackboneElement Key images associated with this report
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... link Σ 1..1 Reference(Media) Reference to the image source
... presentedForm S 0..* Attachment Entire report as issued

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codepreferredLOINCDiagnosticReportCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/report-codes
from the FHIR Standard

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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DiagnosticReport 0..* DiagnosticReport DiagnosticReport for Report and Note Profile
... 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
... text 0..1 Narrative Text summary of the resource, for human interpretation
... 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Σ 1..1 code registered | partial | preliminary | final +
Binding: DiagnosticReportStatus (required): Codes providing the status of a DiagnosticReport.

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


... code SΣ 1..1 CodeableConcept Name/Code for this diagnostic report
Binding: LOINCDiagnosticReportCodes (preferred): Codes that describe Diagnostic Reports.

... subject SΣ 1..1 Reference(Patient Profile) The patient that the diagnostic report refers to
... encounter SΣ 0..1 Reference(Encounter Profile) Health care event when test ordered
... effective[x] SΣ 1..1 Time of report or note
.... effectiveDateTime dateTime
.... effectivePeriod Period
... issued SΣ 0..1 instant Date/Time this version of the DiagnosticReport was made available
... performer SΣ 0..* Reference(Practitioner Profile (General) | Organization 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 0..* Reference(Observation) Observations
... imagingStudy 0..* Reference(ImagingStudy) Reference to full details of imaging associated with the diagnostic report
... media SΣ 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
DiagnosticReport.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
DiagnosticReport.statusrequiredDiagnosticReportStatus
http://hl7.org/fhir/ValueSet/diagnostic-report-status
from the FHIR Standard
DiagnosticReport.categoryexampleDiagnosticServiceSectionCodes
http://hl7.org/fhir/ValueSet/diagnostic-service-sections
from the FHIR Standard
DiagnosticReport.codepreferredLOINCDiagnosticReportCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/report-codes
from the FHIR Standard
DiagnosticReport.conclusionCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

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()

 

Other representations of profile: CSV, Excel, Schematron

Notes: