AU Core Implementation Guide
3.0.0-ballot1 - Ballot

AU Core Implementation Guide - Downloaded Version 3.0.0-ballot1 See the Directory of published versions

## Resource Profile: AU Core DiagnosticReport

Official URL: http://hl7.org.au/fhir/core/StructureDefinition/au-core-diagnosticreport | Version: 3.0.0-ballot1
Standards status: Trial-use | Maturity Level: 1 | Computable Name: AUCoreDiagnosticReport
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License. HL7 Australia© 2022+; Licensed Under Creative Commons No Rights Reserved.

This profile sets minimum expectations for a DiagnosticReport resource to record, search, and fetch diagnostic reports associated with a patient in an Australian context. It is based on the AU Base Diagnostic Report profile and identifies the additional mandatory core elements, extensions, vocabularies and value sets that SHALL be present in the DiagnosticReport when conforming to this profile.

See Comparison with other national and international IGs for a comparison between AU Core profiles and profiles in other implementation guides.

### Usage Scenarios

The following are supported usage scenarios for this profile:

- Query for a patient's diagnostic report
- Record or update a patient's diagnostic report

### Profile Specific Implementation Guidance

- See guidance on the construction of an identifier on the relevant Identifier profile page and the section on Business Identifiers in AU Base.
- For DiagnosticReport resources reporting a panel:
  - `DiagnosticReport.code` identifies the panel procedure (e.g. Lipid panel)
  - `DiagnosticReport.result` references Observation resources containing results of tests performed as part of the panel (e.g. HDL, LDL, cholesterol and triglycerides)

Usages:

- Refer to this Profile: AU Core MedicationStatement
- Examples for this Profile: DiagnosticReport/covid-report and DiagnosticReport/lipid-panel-report
- CapabilityStatements using this Profile: AU Core Requester CapabilityStatement and AU Core Responder CapabilityStatement

You can also check for usages in the FHIR IG Statistics

Changes since version 2.0.0:

- New Content

### 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..* | AUBaseDiagnosticReport | A diagnostic report in an Australian healthcare context Constraints: au-core-dr-01
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | SO Σ | 0..* | Identifier, AULocalOrderIdentifier, AULocalReportIdentifier, AUAccessionNumber | Business identifier for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | ?!SO Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 1..* | CodeableConcept | Service category Binding: DiagnosticServiceSectionCodes (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
code | SO Σ | 1..1 | CodeableConcept | Name/Code for this diagnostic report Binding: Evaluation Procedure (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | The subject of the report - usually, but not always, the patient
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO Σ C | 0..1 |  | Clinically relevant time/time-period for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | SO Σ C | 0..1 | instant | DateTime this version was made
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | CareTeam) | Responsible Diagnostic Service
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
result | SO | 0..* | Reference(AU Core Diagnostic Result Observation | AU Base Diagnostic Imaging Result | AU Core Pathology Result Observation) | Observations
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
presentedForm | SO | 0..* | Attachment | Entire report as issued
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | preferred | Diagnostic Service Section Codes | 📦4.0.1 | FHIR Std.
DiagnosticReport.code | Base | preferred | Evaluation Procedure | ⏿1.0.0 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-dr-01 | error | DiagnosticReport | effective[x] and issued 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() and issued.exists())`
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()`

This structure is derived from AUBaseDiagnosticReport

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | AUBaseDiagnosticReport | A diagnostic report in an Australian healthcare context Constraints: au-core-dr-01
identifier | SO | 0..* | Identifier, AULocalOrderIdentifier, AULocalReportIdentifier, AUAccessionNumber | Business identifier for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | SO C | 1..1 | code | registered | partial | preliminary | final +
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO | 1..* | CodeableConcept | Service category
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
code | SO | 1..1 | CodeableConcept | Name/Code for this diagnostic report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | The subject of the report - usually, but not always, the patient
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO C | 0..1 | dateTime, Period | Clinically relevant time/time-period for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
issued | SO C | 0..1 | instant | DateTime this version was made
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | CareTeam) | Responsible Diagnostic Service
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
result | SO | 0..* | Reference(AU Core Diagnostic Result Observation | AU Base Diagnostic Imaging Result | AU Core Pathology Result Observation) | Observations
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
presentedForm | SO | 0..* | Attachment | Entire report as issued
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-dr-01 | error | DiagnosticReport | effective[x] and issued 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() and issued.exists())`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | AUBaseDiagnosticReport | A diagnostic report in an Australian healthcare context Constraints: au-core-dr-01
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
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | SO Σ | 0..* | Identifier, AULocalOrderIdentifier, AULocalReportIdentifier, AUAccessionNumber | Business identifier for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
basedOn |  | 0..* | Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest | AU Base ServiceRequest) | What was requested
status | ?!SO Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 1..* | CodeableConcept | Service category Binding: DiagnosticServiceSectionCodes (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
code | SO Σ | 1..1 | CodeableConcept | Name/Code for this diagnostic report Binding: Evaluation Procedure (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | The subject of the report - usually, but not always, the patient
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | Σ | 0..1 | Reference(Encounter) | Health care event when test ordered
effective[x] | SO Σ C | 0..1 |  | Clinically relevant time/time-period for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | SO Σ C | 0..1 | instant | DateTime this version was made
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | CareTeam) | Responsible Diagnostic Service
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
resultsInterpreter | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam) | Primary result interpreter
specimen |  | 0..* | Reference(AU Base Specimen) | Specimens this report is based on
result | SO | 0..* | Reference(AU Core Diagnostic Result Observation | AU Base Diagnostic Imaging Result | AU Core Pathology Result Observation) | Observations
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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: Clinical Finding (preferred)
presentedForm | SO | 0..* | Attachment | Entire report as issued
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | preferred | Diagnostic Service Section Codes | 📦4.0.1 | FHIR Std.
DiagnosticReport.code | Base | preferred | Evaluation Procedure | ⏿1.0.0 | tx.hl7.org.au
DiagnosticReport.conclusionCode | Base | preferred | Clinical Finding | ⏿1.0.2 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-dr-01 | error | DiagnosticReport | effective[x] and issued 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() and issued.exists())`
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()`

This structure is derived from AUBaseDiagnosticReport

Summary

Mandatory: 2 elements
Must-Support: 10 elements

Structures

This structure refers to these other structures:

- AU Core Patient (http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient)
- AU Core Practitioner (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitioner)
- AU Core PractitionerRole (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitionerrole)
- AU Core Organization (http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization)
- AU Core Diagnostic Result Observation (http://hl7.org.au/fhir/core/StructureDefinition/au-core-diagnosticresult)
- AU Base Diagnostic Imaging Result (http://hl7.org.au/fhir/StructureDefinition/au-imagingresult)
- AU Core Pathology Result Observation (http://hl7.org.au/fhir/core/StructureDefinition/au-core-diagnosticresult-path)

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | AUBaseDiagnosticReport | A diagnostic report in an Australian healthcare context Constraints: au-core-dr-01
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
Slices for extension |  |  |  | Content/Rules for all slices
extension:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | SO Σ | 0..* | Identifier, AULocalOrderIdentifier, AULocalReportIdentifier, AUAccessionNumber | Business identifier for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | ?!SO Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 1..* | CodeableConcept | Service category Binding: DiagnosticServiceSectionCodes (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
code | SO Σ | 1..1 | CodeableConcept | Name/Code for this diagnostic report Binding: Evaluation Procedure (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | The subject of the report - usually, but not always, the patient
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO Σ C | 0..1 |  | Clinically relevant time/time-period for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | SO Σ C | 0..1 | instant | DateTime this version was made
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | CareTeam) | Responsible Diagnostic Service
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
result | SO | 0..* | Reference(AU Core Diagnostic Result Observation | AU Base Diagnostic Imaging Result | AU Core Pathology Result Observation) | Observations
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
presentedForm | SO | 0..* | Attachment | Entire report as issued
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | preferred | Diagnostic Service Section Codes | 📦4.0.1 | FHIR Std.
DiagnosticReport.code | Base | preferred | Evaluation Procedure | ⏿1.0.0 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-dr-01 | error | DiagnosticReport | effective[x] and issued 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() and issued.exists())`
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()`

Differential View

This structure is derived from AUBaseDiagnosticReport

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | AUBaseDiagnosticReport | A diagnostic report in an Australian healthcare context Constraints: au-core-dr-01
identifier | SO | 0..* | Identifier, AULocalOrderIdentifier, AULocalReportIdentifier, AUAccessionNumber | Business identifier for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | SO C | 1..1 | code | registered | partial | preliminary | final +
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO | 1..* | CodeableConcept | Service category
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
code | SO | 1..1 | CodeableConcept | Name/Code for this diagnostic report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | The subject of the report - usually, but not always, the patient
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effective[x] | SO C | 0..1 | dateTime, Period | Clinically relevant time/time-period for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
issued | SO C | 0..1 | instant | DateTime this version was made
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | CareTeam) | Responsible Diagnostic Service
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
result | SO | 0..* | Reference(AU Core Diagnostic Result Observation | AU Base Diagnostic Imaging Result | AU Core Pathology Result Observation) | Observations
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
presentedForm | SO | 0..* | Attachment | Entire report as issued
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-dr-01 | error | DiagnosticReport | effective[x] and issued 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() and issued.exists())`

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DiagnosticReport | C | 0..* | AUBaseDiagnosticReport | A diagnostic report in an Australian healthcare context Constraints: au-core-dr-01
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
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:sexParameterForClinicalUse |  | 0..* | (Complex) | A context-specific sex parameter for clinical use URL: http://hl7.org/fhir/StructureDefinition/patient-sexParameterForClinicalUse
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | SO Σ | 0..* | Identifier, AULocalOrderIdentifier, AULocalReportIdentifier, AUAccessionNumber | Business identifier for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
basedOn |  | 0..* | Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest | AU Base ServiceRequest) | What was requested
status | ?!SO Σ C | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 1..* | CodeableConcept | Service category Binding: DiagnosticServiceSectionCodes (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
code | SO Σ | 1..1 | CodeableConcept | Name/Code for this diagnostic report Binding: Evaluation Procedure (preferred)
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | The subject of the report - usually, but not always, the patient
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
encounter | Σ | 0..1 | Reference(Encounter) | Health care event when test ordered
effective[x] | SO Σ C | 0..1 |  | Clinically relevant time/time-period for report
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | SO Σ C | 0..1 | instant | DateTime this version was made
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
performer | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Organization | CareTeam) | Responsible Diagnostic Service
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
resultsInterpreter | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam) | Primary result interpreter
specimen |  | 0..* | Reference(AU Base Specimen) | Specimens this report is based on
result | SO | 0..* | Reference(AU Core Diagnostic Result Observation | AU Base Diagnostic Imaging Result | AU Core Pathology Result Observation) | Observations
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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: Clinical Finding (preferred)
presentedForm | SO | 0..* | Attachment | Entire report as issued
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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 | preferred | Diagnostic Service Section Codes | 📦4.0.1 | FHIR Std.
DiagnosticReport.code | Base | preferred | Evaluation Procedure | ⏿1.0.0 | tx.hl7.org.au
DiagnosticReport.conclusionCode | Base | preferred | Clinical Finding | ⏿1.0.2 | tx.hl7.org.au

#### Constraints

Id | Grade | Path(s) | Description | Expression
au-core-dr-01 | error | DiagnosticReport | effective[x] and issued 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() and issued.exists())`
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()`

This structure is derived from AUBaseDiagnosticReport

Summary

Mandatory: 2 elements
Must-Support: 10 elements

Structures

This structure refers to these other structures:

- AU Core Patient (http://hl7.org.au/fhir/core/StructureDefinition/au-core-patient)
- AU Core Practitioner (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitioner)
- AU Core PractitionerRole (http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitionerrole)
- AU Core Organization (http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization)
- AU Core Diagnostic Result Observation (http://hl7.org.au/fhir/core/StructureDefinition/au-core-diagnosticresult)
- AU Base Diagnostic Imaging Result (http://hl7.org.au/fhir/StructureDefinition/au-imagingresult)
- AU Core Pathology Result Observation (http://hl7.org.au/fhir/core/StructureDefinition/au-core-diagnosticresult-path)

Maturity: 1

Other representations of profile: CSV, Excel, Schematron

### Notes:

Below is an overview of the mandatory and optional search parameters and combined search parameters. See the AU Core CapabilityStatements for a complete list of supported RESTful interactions for this IG.

FHIR search operations are described here and the syntax used to describe AU Core interactions is defined here.

Any search parameter defined in FHIR may be 'allowed' by the system unless explicitly marked as "SHALL NOT". A few items are marked as MAY in this implementation guide to highlight their potential relevance.

Parameter(s) | Conformance | Type(s) | Requirements (when used alone or in combination)
--- | --- | --- | ---
_id | SHALL | `token` |
patient | SHALL | `reference` | The requester SHALL provide at least an id value and MAY provide both the Type and id values. The responder SHALL support both. The requester SHOULD support chained search patient.identifier using IHI, Medicare Number, and DVA Number identifiers as defined in the AU Core Patient profile. The responder SHOULD support chained search patient.identifier using IHI, Medicare Number, and DVA Number identifiers as defined in the AU Core Patient profile.
patient+category | SHALL | `reference`+`token` |
patient+category+date | SHALL | `reference`+`token`+`date` |
identifier | SHOULD | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both.
patient+category+status | SHOULD | `reference`+`token`+`token` |
patient+code | SHOULD | `reference`+`token` |
patient+code+date | SHOULD | `reference`+`token`+`date` |
patient+status | SHOULD | `reference`+`token` |
category | MAY | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both.
code | MAY | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both.
date | MAY | `date` | The requester SHALL provide a value precise to the second + time offset. The responder SHALL support a value precise to the second + time offset. The requester SHALL support these search comparators `gt`, `lt`, `ge`, `le`. The responder SHALL support these search comparators `gt`, `lt`, `ge`, `le`. The requester SHOULD support `multipleAnd`, and if `multipleAnd` is supported, SHALL support the search comparators `gt`, `lt`, `ge`, `le`. The responder SHOULD support `multipleAnd`, and if `multipleAnd` is supported, SHALL support the search comparators `gt`, `lt`, `ge`, `le`.
status | MAY | `token` | The requester SHALL provide at least a code value and MAY provide both the system and code values. The responder SHALL support both.

#### Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported:

1. SHALL support searching using the `_id` search parameter:

   `GET [base]/DiagnosticReport?_id=[id]`

   Example:

   1. GET [base]/DiagnosticReport?_id=5678

   Implementation Notes: Fetches a bundle with the requested DiagnosticReport, instead of just the resource itself, and allows for the inclusion of additional search parameters such as _include, _revinclude, or _lastUpdated (how to search by id of the resource)

2. SHALL support searching using the `patient` search parameter:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

   `GET [base]/DiagnosticReport?patient={Type/}[id]` or optionally `GET [base]/DiagnosticReport?patient.identifier=[system|][code]`

   Example:

   1. GET [base]/DiagnosticReport?patient=5678
   2. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952
   3. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient (how to search by reference and how to search by token)

3. SHALL support searching using the combination of the `patient` and `category` search parameters:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

   `GET [base]/DiagnosticReport?patient={Type/}[id]&category={system|}[code]` or optionally `GET [base]/DiagnosticReport?patient.identifier=[system|][code]&category={system|}[code]`

   Example:

   1. GET [base]/DiagnosticReport?patient=5678&category=CH
   2. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&category=CH
   3. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361&category=CH

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and category (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:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)
   - SHALL support these `date` comparators: `gt,lt,ge,le`
   - SHOULD support multipleAnd search on `date` (e.g. `date=[date]&date=[date]&...`), and if multipleAnd is supported, SHALL support the search comparators `gt,lt,ge,le`

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

   Example:

   1. GET [base]/DiagnosticReport?patient=5678&category=CH&date=ge2021-02-07T00:00:00Z
   2. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&category=CH&date=ge2021-02-07T00:00:00Z
   3. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361&category=CH&date=ge2021-02-07T00:00:00Z

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient, category and date (how to search by reference and how to search by token and how to search by date)

#### Optional Search Parameters:

The following search parameters and search parameter combinations SHOULD be supported:

1. SHOULD support searching using the `identifier` search parameter:

   `GET [base]/DiagnosticReport?identifier={system|}[code]`

   Example:

   1. GET [base]/DiagnosticReport?identifier=http://ns.electronichealth.net.au/id/hpio-scoped/report/1.0/8003611566718494|42657
   2. GET [base]/DiagnosticReport?identifier=https://pullabookapathology.example.com/report/report-identifier|63698

   Implementation Notes: Fetches a bundle containing all DiagnosticReport resources matching the identifier (how to search by token)

2. SHOULD support searching using the combination of the `patient` and `category` and `status` search parameters:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

   `GET [base]/DiagnosticReport?patient={Type/}[id]&category={system|}[code]&status={system|}[code]` or optionally `GET [base]/DiagnosticReport?patient.identifier=[system|][code]&category={system|}[code]&status={system|}[code]`

   Example:

   1. GET [base]/DiagnosticReport?patient=5678&category=CH&status=final
   2. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&category=CH&status=final
   3. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361&category=CH&status=final

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient, category and status (how to search by reference and how to search by token)

3. SHOULD support searching using the combination of the `patient` and `code` search parameters:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

   `GET [base]/DiagnosticReport?patient={Type/}[id]&code={system|}[code]` or optionally `GET [base]/DiagnosticReport?patient.identifier=[system|][code]&code={system|}[code]`

   Example:

   1. GET [base]/DiagnosticReport?patient=5678&code=444821009
   2. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&code=444821009
   3. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361&code=444821009

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient and code (how to search by reference and how to search by token)

4. SHOULD support searching using the combination of the `patient` and `code` and `date` search parameters:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)
   - SHALL support these `date` comparators: `gt,lt,ge,le`
   - SHOULD support multipleAnd search on `date` (e.g. `date=[date]&date=[date]&...`), and if multipleAnd is supported, SHALL support the search comparators `gt,lt,ge,le`

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

   Example:

   1. GET [base]/DiagnosticReport?patient=5678&code=444821009&date=ge2022-03-21
   2. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&code=444821009&date=ge2022-03-21T00:00:00Z
   3. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361&code=444821009&date=ge2022-03-21T00:00:00Z

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources for the specified patient, code and date (how to search by reference and how to search by token and how to search by date)

5. SHOULD support searching using the combination of the `patient` and `status` search parameters:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

   `GET [base]/DiagnosticReport?patient={Type/}[id]&status={system|}[code]` or optionally `GET [base]/DiagnosticReport?patient.identifier=[system|][code]&status={system|}[code]`

   Example:

   1. GET [base]/DiagnosticReport?patient=5678&status=final
   2. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&status=final
   3. GET [base]/DiagnosticReport?patient.identifier=http://ns.electronichealth.net.au/id/hi/ihi/1.0|8003608833357361&status=final

   Implementation Notes: Fetches a bundle of all DiagnosticReport resources matching the specified patient and status (how to search by reference and how to search by token)