Ontario Health eForms Implementation Guide
0.1.0 - ci-build CA-ON

Ontario Health eForms Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Document Reference Profile

Official URL: http://ontario.ca/fhir/eforms/StructureDefinition/EFormDocumentReference Version: 0.1.0
Active as of 2025-07-16 Computable Name: EFormsDocumentReference

DocumentReference Profile for OH eForms, based on the R4 version. Stores metadata about an attachment that was uploaded to the OTN file service.
This is a valueReference in an item in the QuestionnaireResponse.

Search Parameters

Standard FHIR Search Parameters

This profile supports all standard DocumentReference search parameters:

Name Type Description      
authenticator reference Who/what authenticated the document      
author reference Who and/or what authored the document      
category token Categorization of document      
contenttype token Mime type of the content, with charset etc.      
custodian reference Organization which maintains the document      
date date When this document reference was created      
description string Human-readable description      
encounter reference Context of the document content      
event token Main clinical acts documented      
facility token Kind of facility where patient was seen      
format token Format/content rules for the document      
identifier token Master Version Specific Identifier      
language token Human language of the content (BCP-47)      
location uri Uri where the data can be found      
patient reference Who/what is the subject of the document      
period date Time of service that is being documented      
related reference Related identifiers or resources      
relatesto reference Target of the relationship      
relation token replaces transforms signs appends
security-label token Document security-tags      
setting token Additional details about where the content was created      
status token current superseded entered-in-error  
subject reference Who/what is the subject of the document      
type token Kind of document (LOINC if possible)      

Usage Examples

GET [base]/DocumentReference?subject=Patient/123
GET [base]/DocumentReference?type=questionnaire-response
GET [base]/DocumentReference?status=current
GET [base]/DocumentReference?category=form
GET [base]/DocumentReference?date=2025-07-16
GET [base]/DocumentReference?author=Practitioner/456

Implementation Notes

eForms DocumentReference Context

  • May represent completed forms as documents
  • Can store form attachments or supporting documentation
  • Should reference the patient as subject

Content Management

  • Use appropriate type and category codes for eForms content
  • Consider security labels for sensitive form data
  • Link to source QuestionnaireResponse when applicable

Usages:

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

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... status ?!Σ 1..1 code current | superseded | entered-in-error
Binding: DocumentReferenceStatus (required): The status of the document reference.
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... attachment Σ 1..1 Attachment Where to access the document

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

Constraints

IdGradePath(s)DetailsRequirements
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()

This structure is derived from DocumentReference

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DocumentReference 0..* DocumentReference A reference to a document

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... 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 Σ 0..* Identifier Other identifiers for the document
... status ?!Σ 1..1 code current | superseded | entered-in-error
Binding: DocumentReferenceStatus (required): The status of the document reference.
... docStatus Σ 0..1 code preliminary | final | amended | entered-in-error
Binding: CompositionStatus (required): Status of the underlying document.
... type Σ 0..1 CodeableConcept Kind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.
... category Σ 0..* CodeableConcept Categorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
... subject Σ 0..1 Reference(Patient | Practitioner | Group | Device) Who/what is the subject of the document
... date Σ 0..1 instant When this document reference was created
... author Σ 0..* Reference(Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson) Who and/or what authored the document
... 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 Σ 1..* BackboneElement Document referenced
.... 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 Σ 1..1 Attachment Where to access the document
.... format Σ 0..1 Coding Format/content rules for the document
Binding: DocumentReferenceFormatCodeSet (preferred): Document Format Codes.
... context Σ 0..1 BackboneElement Clinical context of document
.... 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 Σ 0..1 Period Time of service that is being documented
.... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
DocumentReference.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.statusrequiredDocumentReferenceStatus
http://hl7.org/fhir/ValueSet/document-reference-status|4.0.1
From the FHIR Standard
DocumentReference.docStatusrequiredCompositionStatus
http://hl7.org/fhir/ValueSet/composition-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.relatesTo.coderequiredDocumentRelationshipType
http://hl7.org/fhir/ValueSet/document-relationship-type|4.0.1
From the FHIR Standard
DocumentReference.securityLabelextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
DocumentReference.content.formatpreferredDocumentReferenceFormatCodeSet(a valid code from http://ihe.net/fhir/ValueSet/IHE.FormatCode.codesystem)
http://hl7.org/fhir/ValueSet/formatcodes
From the FHIR Standard
DocumentReference.context.eventexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
DocumentReference.context.facilityTypeexampleFacilityTypeCodeValueSet
http://hl7.org/fhir/ValueSet/c80-facilitycodes
From the FHIR Standard
DocumentReference.context.practiceSettingexamplePracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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()

This structure is derived from DocumentReference

Summary

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... status ?!Σ 1..1 code current | superseded | entered-in-error
Binding: DocumentReferenceStatus (required): The status of the document reference.
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... attachment Σ 1..1 Attachment Where to access the document

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

Constraints

IdGradePath(s)DetailsRequirements
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()

Differential View

This structure is derived from DocumentReference

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DocumentReference 0..* DocumentReference A reference to a document

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... 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 Σ 0..* Identifier Other identifiers for the document
... status ?!Σ 1..1 code current | superseded | entered-in-error
Binding: DocumentReferenceStatus (required): The status of the document reference.
... docStatus Σ 0..1 code preliminary | final | amended | entered-in-error
Binding: CompositionStatus (required): Status of the underlying document.
... type Σ 0..1 CodeableConcept Kind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.
... category Σ 0..* CodeableConcept Categorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.
... subject Σ 0..1 Reference(Patient | Practitioner | Group | Device) Who/what is the subject of the document
... date Σ 0..1 instant When this document reference was created
... author Σ 0..* Reference(Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson) Who and/or what authored the document
... 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 Σ 1..* BackboneElement Document referenced
.... 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 Σ 1..1 Attachment Where to access the document
.... format Σ 0..1 Coding Format/content rules for the document
Binding: DocumentReferenceFormatCodeSet (preferred): Document Format Codes.
... context Σ 0..1 BackboneElement Clinical context of document
.... 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 Σ 0..1 Period Time of service that is being documented
.... 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

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
DocumentReference.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.statusrequiredDocumentReferenceStatus
http://hl7.org/fhir/ValueSet/document-reference-status|4.0.1
From the FHIR Standard
DocumentReference.docStatusrequiredCompositionStatus
http://hl7.org/fhir/ValueSet/composition-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.relatesTo.coderequiredDocumentRelationshipType
http://hl7.org/fhir/ValueSet/document-relationship-type|4.0.1
From the FHIR Standard
DocumentReference.securityLabelextensibleAll Security Labels
http://hl7.org/fhir/ValueSet/security-labels
From the FHIR Standard
DocumentReference.content.formatpreferredDocumentReferenceFormatCodeSet(a valid code from http://ihe.net/fhir/ValueSet/IHE.FormatCode.codesystem)
http://hl7.org/fhir/ValueSet/formatcodes
From the FHIR Standard
DocumentReference.context.eventexampleActCode
http://terminology.hl7.org/ValueSet/v3-ActCode
DocumentReference.context.facilityTypeexampleFacilityTypeCodeValueSet
http://hl7.org/fhir/ValueSet/c80-facilitycodes
From the FHIR Standard
DocumentReference.context.practiceSettingexamplePracticeSettingCodeValueSet
http://hl7.org/fhir/ValueSet/c80-practice-codes
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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()

This structure is derived from DocumentReference

Summary

 

Other representations of profile: CSV, Excel, Schematron