Canadian Baseline
1.2.0 - CI Build Canada flag

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

Resource Profile: Document Reference Profile

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-documentreference Version: 1.2.0
Draft as of 2024-08-09 Computable Name: DocumentReferenceProfile

Proposed constraints on the DocumentReference resource for the minimal set of data required to reference to a document of any kind for any purpose.

CA Core DocumentReference Profile

This DocumentReference profile sets minimum expectations for mandatory core elements, constraints and value sets required to provide metadata about the document of any kind so that the document can be published, discovered and managed.

This profile defines core localisation concepts for use in an Canadian context.

Mandatory Data Elements

All elements or attributes defined in FHIR have cardinality as part of their definition - a minimum number of required appearances and a maximum number.

Most elements in FHIR specification have a minimum cardinality of 0, which means that they may be missing from a resource when it is exchanged between systems.

Required elements:

  • status of the refence
  • document referenced

Must Support Data Elements

Some elements are labeled as MustSupport meaning that implementations that produce or consume resources SHALL provide "support" for the element in some meaningful way (see Must Support definition).

Following elements are marked as Must Support in the Canadian DocumentReference profile to aid record matching in databases.

Must Support elements:

  • master version identifier
  • kind of document
  • categorization of document
  • subject of the document
  • document author
  • document authenticator
  • organization which maintains the document
  • the document itself or URL
  • context of the document content
  • practice settings
  • patient demographics

Usage Note

The following are example usage scenarios for the DocumentReference profile.

  • Publishing a new document. This can be done using the IHE MHD Provide Document Bundle [ITI-65] transaction that carries both the document and its metadata.
  • Querying the document repository for specific document(s) matching various metadata parameters. This is similar to the IHE MHD Find Document References [ITI-67] transaction.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference 0..* DocumentReference DocumentReference Profile
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: 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
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... masterIdentifier SΣ 0..1 Identifier Master Version Specific Identifier
ele-1: All FHIR elements must have a @value or children
... type SΣ 0..1 CodeableConcept Kind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.


ele-1: All FHIR elements must have a @value or children
... category SΣ 0..* CodeableConcept Categorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


ele-1: All FHIR elements must have a @value or children
... subject SΣ 0..1 Reference(Patient Profile | Practitioner Profile (General) | Device Profile (Implantable)) Who/what is the subject of the document
ele-1: All FHIR elements must have a @value or children
... author SΣ 0..* Reference(Practitioner Profile (General) | PractitionerRole Profile (General) | Organization Profile | Device Profile (Implantable) | Patient Profile) Who and/or what authored the document
ele-1: All FHIR elements must have a @value or children
... authenticator S 0..1 Reference(Practitioner Profile (General) | PractitionerRole Profile (General) | Organization Profile) Who/what authenticated the document
ele-1: All FHIR elements must have a @value or children
... custodian S 0..1 Reference(Organization Profile) Organization which maintains the document
ele-1: All FHIR elements must have a @value or children
... content Σ 1..* BackboneElement Document referenced
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... attachment SΣC 1..1 Attachment Where to access the document
ele-1: All FHIR elements must have a @value or children
ca-baseline-documentreference-1: DocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.
... context Σ 0..1 BackboneElement Clinical context of document
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... encounter S 0..* Reference(Encounter Profile) Context of the document content
ele-1: All FHIR elements must have a @value or children
.... practiceSetting S 0..1 CodeableConcept PractitionerSpecialty
Binding: PractitionerSpecialty (preferred): Defines the clinical, medical, surgical or other healthcare-related service specialty of a practitioner who interacts, treats or provides such services to or for a patient.


ele-1: All FHIR elements must have a @value or children
.... sourcePatientInfo S 0..1 Reference(Patient Profile) Patient demographics from source
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
DocumentReference.statusrequiredDocumentReferenceStatus
http://hl7.org/fhir/ValueSet/document-reference-status|4.0.1
from the FHIR Standard
DocumentReference.typepreferredDocumentTypeValueSet
http://hl7.org/fhir/ValueSet/c80-doc-typecodes
from the FHIR Standard
DocumentReference.categoryexampleDocumentClassValueSet
http://hl7.org/fhir/ValueSet/document-classcodes
from the FHIR Standard
DocumentReference.context.practiceSettingpreferredPractitionerSpecialty
https://fhir.infoway-inforoute.ca/ValueSet/practitionerspecialty
from this IG

Constraints

IdGradePath(s)DetailsRequirements
ca-baseline-documentreference-1errorDocumentReference.content.attachmentDocumentReference.content.attachment.url or DocumentReference.content.attachment.data or both SHALL be present.
: url.exists() or data.exists()
dom-2errorDocumentReferenceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDocumentReferenceIf 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-4errorDocumentReferenceIf 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-5errorDocumentReferenceIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceDocumentReferenceA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron