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 DocumentReference

Official URL: http://hl7.org.au/fhir/core/StructureDefinition/au-core-documentreference | Version: 3.0.0-ballot1
Standards status: Trial-use | Maturity Level: 1 | Computable Name: AUCoreDocumentReference
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 DocumentReference resource to record, search, and fetch documents associated with a patient. It is based on the DocumentReference resource and identifies the additional mandatory core elements, extensions, vocabularies and value sets that SHALL be present in the DocumentReference resource when conforming to this profile. It provides the floor for standards development for specific uses cases in an Australian context.

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 documents belonging to a patient
- Record or update a document belonging to a patient

### Profile Specific Implementation Guidance

No guidance defined.

Usages:

- Refer to this Profile: AU Core Procedure
- Examples for this Profile: DocumentReference/aups-basicsummary-data and DocumentReference/aups-section-emptyreason
- 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
--- | --- | --- | --- | ---
DocumentReference |  | 0..* | DocumentReference | A reference to a document
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | SO Σ | 0..* | Identifier | Other identifiers for the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | ?!SO Σ | 1..1 | code | current | superseded | entered-in-error Binding: DocumentReferenceStatus (required): The status of the document reference.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
type | SO Σ | 1..1 | CodeableConcept | Kind of document (LOINC if possible) Binding: DocumentTypeValueSet (preferred)
Additional Bindings | Purpose
Common Document Types in Australia | candidate
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 0..* | CodeableConcept | Categorization of document Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who/what is the subject of the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
date | SO Σ | 0..1 | instant | When this document reference was created
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
author | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Patient | AU Core RelatedPerson | AU Core Organization | Device) | Who and/or what authored the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
content | SO Σ | 1..* | BackboneElement | Document referenced
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
attachment | SO Σ | 1..1 | Attachment | Where to access the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
contentType | SO Σ | 0..1 | code | Mime type of the content, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: text/plain; charset=UTF-8, image/png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
data | SO | 0..1 | base64Binary | Data inline, base64ed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
url | SO Σ | 0..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
context | SO Σ | 0..1 | BackboneElement | Clinical context of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
period | SO Σ | 0..1 | Period | Time of service that is being documented
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
DocumentReference.status | Base | required | DocumentReferenceStatus | 📍4.0.1 | FHIR Std.
DocumentReference.type | Base | preferred | Document Type Value Set | 📦4.0.1 | FHIR Std.
DocumentReference.category | Base | example | Document Class Value Set | 📍4.0.1 | FHIR Std.
DocumentReference.content.​attachment.contentType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DocumentReference | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DocumentReference | 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 | DocumentReference | 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 | DocumentReference | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DocumentReference | 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 DocumentReference

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DocumentReference |  | 0..* | DocumentReference | A reference to a document
identifier | SO | 0..* | Identifier | Other identifiers for the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | SO | 1..1 | code | current | superseded | entered-in-error
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
type | SO | 1..1 | CodeableConcept | Kind of document (LOINC if possible) Binding: DocumentTypeValueSet (preferred)
Additional Bindings | Purpose
Common Document Types in Australia | candidate
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO | 0..* | CodeableConcept | Categorization of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | Who/what is the subject of the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
date | SO | 0..1 | instant | When this document reference was created
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
author | SO | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Patient | AU Core RelatedPerson | AU Core Organization | Device) | Who and/or what authored the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
content | SO | 1..* | BackboneElement | Document referenced
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
attachment | SO | 1..1 | Attachment | Where to access the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
contentType | SO | 0..1 | code | Mime type of the content, with charset etc.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
data | SO | 0..1 | base64Binary | Data inline, base64ed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
url | SO | 0..1 | url | Uri where the data can be found
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
context | SO | 0..1 | BackboneElement | Clinical context of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
period | SO | 0..1 | Period | Time of service that is being documented
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
DocumentReference.type | Base | preferred | Document Type Value Set | 📦4.0.1 | FHIR Std.

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DocumentReference |  | 0..* | DocumentReference | A reference to a document
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
masterIdentifier | Σ | 0..1 | Identifier | Master Version Specific Identifier
identifier | SO Σ | 0..* | Identifier | Other identifiers for the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | ?!SO Σ | 1..1 | code | current | superseded | entered-in-error Binding: DocumentReferenceStatus (required): The status of the document reference.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
docStatus | Σ | 0..1 | code | preliminary | final | amended | entered-in-error Binding: CompositionStatus (required): Status of the underlying document.
type | SO Σ | 1..1 | CodeableConcept | Kind of document (LOINC if possible) Binding: DocumentTypeValueSet (preferred)
Additional Bindings | Purpose
Common Document Types in Australia | candidate
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 0..* | CodeableConcept | Categorization of document Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who/what is the subject of the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
date | SO Σ | 0..1 | instant | When this document reference was created
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
author | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Patient | AU Core RelatedPerson | AU Core Organization | Device) | Who and/or what authored the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authenticator |  | 0..1 | Reference(Practitioner | PractitionerRole | Organization) | Who/what authenticated the document
custodian |  | 0..1 | Reference(Organization) | Organization which maintains the document
relatesTo | Σ | 0..* | BackboneElement | Relationships to other documents
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
code | Σ | 1..1 | code | replaces | transforms | signs | appends Binding: DocumentRelationshipType (required): The type of relationship between documents.
target | Σ | 1..1 | Reference(DocumentReference) | Target of the relationship
description | Σ | 0..1 | string | Human-readable description
securityLabel | Σ | 0..* | CodeableConcept | Document security-tags Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
content | SO Σ | 1..* | BackboneElement | Document referenced
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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
attachment | SO Σ | 1..1 | Attachment | Where to access the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
contentType | SO Σ | 0..1 | code | Mime type of the content, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: text/plain; charset=UTF-8, image/png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
language | Σ | 0..1 | code | Human language of the content (BCP-47) Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
Example General: en-AU
data | SO | 0..1 | base64Binary | Data inline, base64ed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
url | SO Σ | 0..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
size | Σ | 0..1 | unsignedInt | Number of bytes of content (if url provided)
hash | Σ | 0..1 | base64Binary | Hash of the data (sha-1, base64ed)
title | Σ | 0..1 | string | Label to display in place of the data Example General: Official Corporate Logo
creation | Σ | 0..1 | dateTime | Date attachment was first created
format | Σ | 0..1 | Coding | Format/content rules for the document Binding: DocumentReferenceFormatCodeSet (preferred): Document Format Codes.
context | SO Σ | 0..1 | BackboneElement | Clinical context of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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
encounter |  | 0..* | Reference(Encounter | EpisodeOfCare) | Context of the document content
event |  | 0..* | CodeableConcept | Main clinical acts documented Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.
period | SO Σ | 0..1 | Period | Time of service that is being documented
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
facilityType |  | 0..1 | CodeableConcept | Kind of facility where patient was seen Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.
practiceSetting |  | 0..1 | CodeableConcept | Additional details about where the content was created (e.g. clinical specialty) Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).
sourcePatientInfo |  | 0..1 | Reference(Patient) | Patient demographics from source
related |  | 0..* | Reference(Resource) | Related identifiers or resources
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DocumentReference.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DocumentReference.status | Base | required | DocumentReferenceStatus | 📍4.0.1 | FHIR Std.
DocumentReference.docStatus | Base | required | CompositionStatus | 📍4.0.1 | FHIR Std.
DocumentReference.type | Base | preferred | Document Type Value Set | 📦4.0.1 | FHIR Std.
DocumentReference.category | Base | example | Document Class Value Set | 📍4.0.1 | FHIR Std.
DocumentReference.relatesTo.​code | Base | required | DocumentRelationshipType | 📍4.0.1 | FHIR Std.
DocumentReference.securityLabel | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std.
DocumentReference.content.​attachment.contentType | Base | required | MimeType | 📍4.0.1 | FHIR Std.
DocumentReference.content.​attachment.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DocumentReference.content.​format | Base | preferred | DocumentReference Format Code Set | 📍4.0.1 | FHIR Std.
DocumentReference.context.​event | Base | example | v3 Code System ActCode | 📦3.0.0 | THO v7.3
DocumentReference.context.​facilityType | Base | example | Facility Type Code Value Set | 📍4.0.1 | FHIR Std.
DocumentReference.context.​practiceSetting | Base | example | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DocumentReference | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DocumentReference | 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 | DocumentReference | 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 | DocumentReference | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DocumentReference | 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 DocumentReference

Summary

Mandatory: 2 elements
Must-Support: 14 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 RelatedPerson (http://hl7.org.au/fhir/core/StructureDefinition/au-core-relatedperson)
- AU Core Organization (http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization)

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DocumentReference |  | 0..* | DocumentReference | A reference to a document
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | SO Σ | 0..* | Identifier | Other identifiers for the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | ?!SO Σ | 1..1 | code | current | superseded | entered-in-error Binding: DocumentReferenceStatus (required): The status of the document reference.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
type | SO Σ | 1..1 | CodeableConcept | Kind of document (LOINC if possible) Binding: DocumentTypeValueSet (preferred)
Additional Bindings | Purpose
Common Document Types in Australia | candidate
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 0..* | CodeableConcept | Categorization of document Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who/what is the subject of the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
date | SO Σ | 0..1 | instant | When this document reference was created
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
author | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Patient | AU Core RelatedPerson | AU Core Organization | Device) | Who and/or what authored the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
content | SO Σ | 1..* | BackboneElement | Document referenced
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
attachment | SO Σ | 1..1 | Attachment | Where to access the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
contentType | SO Σ | 0..1 | code | Mime type of the content, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: text/plain; charset=UTF-8, image/png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
data | SO | 0..1 | base64Binary | Data inline, base64ed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
url | SO Σ | 0..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
context | SO Σ | 0..1 | BackboneElement | Clinical context of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
period | SO Σ | 0..1 | Period | Time of service that is being documented
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
DocumentReference.status | Base | required | DocumentReferenceStatus | 📍4.0.1 | FHIR Std.
DocumentReference.type | Base | preferred | Document Type Value Set | 📦4.0.1 | FHIR Std.
DocumentReference.category | Base | example | Document Class Value Set | 📍4.0.1 | FHIR Std.
DocumentReference.content.​attachment.contentType | Base | required | MimeType | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DocumentReference | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DocumentReference | 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 | DocumentReference | 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 | DocumentReference | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DocumentReference | 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 DocumentReference

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DocumentReference |  | 0..* | DocumentReference | A reference to a document
identifier | SO | 0..* | Identifier | Other identifiers for the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | SO | 1..1 | code | current | superseded | entered-in-error
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
type | SO | 1..1 | CodeableConcept | Kind of document (LOINC if possible) Binding: DocumentTypeValueSet (preferred)
Additional Bindings | Purpose
Common Document Types in Australia | candidate
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO | 0..* | CodeableConcept | Categorization of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO | 1..1 | Reference(AU Core Patient) | Who/what is the subject of the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
date | SO | 0..1 | instant | When this document reference was created
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
author | SO | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Patient | AU Core RelatedPerson | AU Core Organization | Device) | Who and/or what authored the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
content | SO | 1..* | BackboneElement | Document referenced
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
attachment | SO | 1..1 | Attachment | Where to access the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
contentType | SO | 0..1 | code | Mime type of the content, with charset etc.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
data | SO | 0..1 | base64Binary | Data inline, base64ed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
url | SO | 0..1 | url | Uri where the data can be found
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
context | SO | 0..1 | BackboneElement | Clinical context of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
period | SO | 0..1 | Period | Time of service that is being documented
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
DocumentReference.type | Base | preferred | Document Type Value Set | 📦4.0.1 | FHIR Std.

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
DocumentReference |  | 0..* | DocumentReference | A reference to a document
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
masterIdentifier | Σ | 0..1 | Identifier | Master Version Specific Identifier
identifier | SO Σ | 0..* | Identifier | Other identifiers for the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
status | ?!SO Σ | 1..1 | code | current | superseded | entered-in-error Binding: DocumentReferenceStatus (required): The status of the document reference.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
docStatus | Σ | 0..1 | code | preliminary | final | amended | entered-in-error Binding: CompositionStatus (required): Status of the underlying document.
type | SO Σ | 1..1 | CodeableConcept | Kind of document (LOINC if possible) Binding: DocumentTypeValueSet (preferred)
Additional Bindings | Purpose
Common Document Types in Australia | candidate
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
category | SO Σ | 0..* | CodeableConcept | Categorization of document Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
subject | SO Σ | 1..1 | Reference(AU Core Patient) | Who/what is the subject of the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
date | SO Σ | 0..1 | instant | When this document reference was created
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
author | SO Σ | 0..* | Reference(AU Core Practitioner | AU Core PractitionerRole | AU Core Patient | AU Core RelatedPerson | AU Core Organization | Device) | Who and/or what authored the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
authenticator |  | 0..1 | Reference(Practitioner | PractitionerRole | Organization) | Who/what authenticated the document
custodian |  | 0..1 | Reference(Organization) | Organization which maintains the document
relatesTo | Σ | 0..* | BackboneElement | Relationships to other documents
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
code | Σ | 1..1 | code | replaces | transforms | signs | appends Binding: DocumentRelationshipType (required): The type of relationship between documents.
target | Σ | 1..1 | Reference(DocumentReference) | Target of the relationship
description | Σ | 0..1 | string | Human-readable description
securityLabel | Σ | 0..* | CodeableConcept | Document security-tags Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
content | SO Σ | 1..* | BackboneElement | Document referenced
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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
attachment | SO Σ | 1..1 | Attachment | Where to access the document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
contentType | SO Σ | 0..1 | code | Mime type of the content, with charset etc. Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed. Example General: text/plain; charset=UTF-8, image/png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
language | Σ | 0..1 | code | Human language of the content (BCP-47) Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
Example General: en-AU
data | SO | 0..1 | base64Binary | Data inline, base64ed
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
url | SO Σ | 0..1 | url | Uri where the data can be found Example General: http://www.acme.com/logo-small.png
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
size | Σ | 0..1 | unsignedInt | Number of bytes of content (if url provided)
hash | Σ | 0..1 | base64Binary | Hash of the data (sha-1, base64ed)
title | Σ | 0..1 | string | Label to display in place of the data Example General: Official Corporate Logo
creation | Σ | 0..1 | dateTime | Date attachment was first created
format | Σ | 0..1 | Coding | Format/content rules for the document Binding: DocumentReferenceFormatCodeSet (preferred): Document Format Codes.
context | SO Σ | 0..1 | BackboneElement | Clinical context of document
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
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
encounter |  | 0..* | Reference(Encounter | EpisodeOfCare) | Context of the document content
event |  | 0..* | CodeableConcept | Main clinical acts documented Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.
period | SO Σ | 0..1 | Period | Time of service that is being documented
Obligations | Actor
SHALL:populate-if-known | AU Core Responder
SHALL:no-error | AU Core Requester
facilityType |  | 0..1 | CodeableConcept | Kind of facility where patient was seen Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.
practiceSetting |  | 0..1 | CodeableConcept | Additional details about where the content was created (e.g. clinical specialty) Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).
sourcePatientInfo |  | 0..1 | Reference(Patient) | Patient demographics from source
related |  | 0..* | Reference(Resource) | Related identifiers or resources
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
DocumentReference.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DocumentReference.status | Base | required | DocumentReferenceStatus | 📍4.0.1 | FHIR Std.
DocumentReference.docStatus | Base | required | CompositionStatus | 📍4.0.1 | FHIR Std.
DocumentReference.type | Base | preferred | Document Type Value Set | 📦4.0.1 | FHIR Std.
DocumentReference.category | Base | example | Document Class Value Set | 📍4.0.1 | FHIR Std.
DocumentReference.relatesTo.​code | Base | required | DocumentRelationshipType | 📍4.0.1 | FHIR Std.
DocumentReference.securityLabel | Base | extensible | SecurityLabels | 📍4.0.1 | FHIR Std.
DocumentReference.content.​attachment.contentType | Base | required | MimeType | 📍4.0.1 | FHIR Std.
DocumentReference.content.​attachment.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
DocumentReference.content.​format | Base | preferred | DocumentReference Format Code Set | 📍4.0.1 | FHIR Std.
DocumentReference.context.​event | Base | example | v3 Code System ActCode | 📦3.0.0 | THO v7.3
DocumentReference.context.​facilityType | Base | example | Facility Type Code Value Set | 📍4.0.1 | FHIR Std.
DocumentReference.context.​practiceSetting | Base | example | Practice Setting Code Value Set | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | DocumentReference | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | DocumentReference | 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 | DocumentReference | 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 | DocumentReference | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | DocumentReference | 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 DocumentReference

Summary

Mandatory: 2 elements
Must-Support: 14 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 RelatedPerson (http://hl7.org.au/fhir/core/StructureDefinition/au-core-relatedperson)
- AU Core Organization (http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization)

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)
--- | --- | --- | ---
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+type | SHALL | `reference`+`token` |
patient+author | SHOULD | `reference`+`reference` |
patient+type+period | SHOULD | `reference`+`token`+`date` |
patient+type+date | SHOULD | `reference`+`token`+`date` |
author | MAY | `reference` |
date | MAY | `date` | A requester SHALL provide a value precise to the second + time offset. A 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`.
period | MAY | `date` |
type | 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 `patient` search parameter:
   - SHOULD support chained searching of patient canonical identifier `patient.identifier` (e.g. `patient.identifier=[system|][code]`)

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

   Example:

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

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

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

   `GET [base]/DocumentReference?patient={Type/}[id]&type={system|}[code]`

   Example:

   1. GET [base]/DocumentReference?patient=5678&type=http://loinc.org|60591-5
   2. GET [base]/DocumentReference?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&type=http://loinc.org|60591-5

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

#### Optional Search Parameters

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

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

   `GET [base]/DocumentReference?patient={Type/}[id]&author={Type/}[id]`

   Example:

   1. GET [base]/DocumentReference?patient=5678&author=Practitioner/2345
   2. GET [base]/DocumentReference?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&author=Practitioner/2345

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

2. SHOULD support searching using the combination of the `patient` and `type` 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]/DocumentReference?patient={Type/}[id]&type={system|}[code]&date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}`

   Example:

   1. GET [base]/DocumentReference?patient=5678&type=http://loinc.org|60591-5&date=ge2020-01-01T00:00:00Z
   2. GET [base]/DocumentReference?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&type=http://loinc.org|60591-5&date=ge2020-01-01T00:00:00Z

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

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

   `GET [base]/DocumentReference?patient={Type/}[id]&type={system|}[code]&period=[date]`

   Example:

   1. GET [base]/DocumentReference?patient=5678&type=http://loinc.org|60591-5&period=ge2020-01-01T00:00:00Z
   2. GET [base]/DocumentReference?patient.identifier=http://ns.electronichealth.net.au/id/medicare-number|32788511952&type=http://loinc.org|60591-5&period=ge2020-01-01T00:00:00Z

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