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
Official URL: http://ontario.ca/fhir/eforms/StructureDefinition/EFormCommunication | Version: 0.1.0 | |||
Active as of 2025-07-16 | Computable Name: EFormsCommunication |
Communication Profile for OH eForms, based on the R4 version.
Notifications, messages, or other communications related to the eForm workflow
(e.g., Form X has been assigned to you, A comment was added to Form Y
).
A new Communication resource will be generated to capture the Bi-Directional Communication requirement.
There will be a Subscription Resource which will generate a Subscription each time a Communication is saved in a specific state (proposal: in-progress or completed )
This profile supports all standard Communication search parameters:
Name | Type | Description | |||||||
---|---|---|---|---|---|---|---|---|---|
based-on |
reference | Request fulfilled by this communication | |||||||
category |
token | Message category | |||||||
encounter |
reference | Encounter created as part of | |||||||
identifier |
token | Unique identifier | |||||||
instantiates-canonical |
reference | Instantiates FHIR protocol or definition | |||||||
instantiates-uri |
uri | Instantiates external protocol or definition | |||||||
medium |
token | A channel of communication | |||||||
part-of |
reference | Part of this action | |||||||
patient |
reference | Focus of message | |||||||
received |
date | When received | |||||||
recipient |
reference | Message recipient | |||||||
sender |
reference | Message sender | |||||||
sent |
date | When sent | |||||||
status |
token | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown |
subject |
reference | Focus of message |
GET [base]/Communication?subject=Patient/123
GET [base]/Communication?status=completed
GET [base]/Communication?category=notification
GET [base]/Communication?sent=2025-07-16
GET [base]/Communication?sender=Practitioner/456
GET [base]/Communication?based-on=ServiceRequest/789
Usages:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Communication | A record of information transmitted from a sender to a receiver | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
?!Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): The status of the communication. |
![]() |
Path | Conformance | ValueSet | URI |
Communication.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Communication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Communication | 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 | Communication | 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 | Communication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Communication | 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 Communication
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Communication | A record of information transmitted from a sender to a receiver | |
![]() |
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Communication | A record of information transmitted from a sender to a receiver | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Unique identifier | ||||
![]() ![]() ![]() |
Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition | ||||
![]() ![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Resource) | Request fulfilled by this communication | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Resource) | Part of this action | ||||
![]() ![]() ![]() |
0..* | Reference(Communication) | Reply to | |||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): The status of the communication. | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Reason for current status Binding: CommunicationNotDoneReason (example): Codes for the reason why a communication did not happen. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | Message category Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc. | |||||
![]() ![]() ![]() |
Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Codes indicating the relative importance of a communication. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | A channel of communication Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc. | |||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Patient | Group) | Focus of message | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Description of the purpose/content Binding: CommunicationTopic (example): Codes describing the purpose or content of the communication. | |||||
![]() ![]() ![]() |
0..* | Reference(Resource) | Resources that pertain to this communication | |||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Encounter created as part of | ||||
![]() ![]() ![]() |
0..1 | dateTime | When sent | |||||
![]() ![]() ![]() |
0..1 | dateTime | When received | |||||
![]() ![]() ![]() |
0..* | Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) | Message recipient | |||||
![]() ![]() ![]() |
0..1 | Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) | Message sender | |||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Indication for message Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication. | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference) | Why was communication done? | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Message payload | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | Message part content | ||||||
![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() ![]() ![]() |
Reference(Resource) | |||||||
![]() ![]() ![]() |
0..* | Annotation | Comments made about the communication | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
Communication.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
Communication.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 From the FHIR Standard | ||||
Communication.statusReason | example | CommunicationNotDoneReasonhttp://hl7.org/fhir/ValueSet/communication-not-done-reason From the FHIR Standard | ||||
Communication.category | example | CommunicationCategoryhttp://hl7.org/fhir/ValueSet/communication-category From the FHIR Standard | ||||
Communication.priority | required | RequestPriorityhttp://hl7.org/fhir/ValueSet/request-priority|4.0.1 From the FHIR Standard | ||||
Communication.medium | example | ParticipationModehttp://terminology.hl7.org/ValueSet/v3-ParticipationMode | ||||
Communication.topic | example | CommunicationTopichttp://hl7.org/fhir/ValueSet/communication-topic From the FHIR Standard | ||||
Communication.reasonCode | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Communication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Communication | 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 | Communication | 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 | Communication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Communication | 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 Communication
Key Elements View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Communication | A record of information transmitted from a sender to a receiver | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
?!Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): The status of the communication. |
![]() |
Path | Conformance | ValueSet | URI |
Communication.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Communication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Communication | 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 | Communication | 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 | Communication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Communication | 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 Communication
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Communication | A record of information transmitted from a sender to a receiver | |
![]() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Communication | A record of information transmitted from a sender to a receiver | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
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 | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Unique identifier | ||||
![]() ![]() ![]() |
Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition | ||||
![]() ![]() ![]() |
Σ | 0..* | uri | Instantiates external protocol or definition | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Resource) | Request fulfilled by this communication | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Resource) | Part of this action | ||||
![]() ![]() ![]() |
0..* | Reference(Communication) | Reply to | |||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown Binding: EventStatus (required): The status of the communication. | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Reason for current status Binding: CommunicationNotDoneReason (example): Codes for the reason why a communication did not happen. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | Message category Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc. | |||||
![]() ![]() ![]() |
Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Codes indicating the relative importance of a communication. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | A channel of communication Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc. | |||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Patient | Group) | Focus of message | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Description of the purpose/content Binding: CommunicationTopic (example): Codes describing the purpose or content of the communication. | |||||
![]() ![]() ![]() |
0..* | Reference(Resource) | Resources that pertain to this communication | |||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Encounter created as part of | ||||
![]() ![]() ![]() |
0..1 | dateTime | When sent | |||||
![]() ![]() ![]() |
0..1 | dateTime | When received | |||||
![]() ![]() ![]() |
0..* | Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) | Message recipient | |||||
![]() ![]() ![]() |
0..1 | Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) | Message sender | |||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | Indication for message Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication. | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference) | Why was communication done? | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Message payload | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | Message part content | ||||||
![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() |
Attachment | |||||||
![]() ![]() ![]() ![]() ![]() |
Reference(Resource) | |||||||
![]() ![]() ![]() |
0..* | Annotation | Comments made about the communication | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
Communication.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
Communication.status | required | EventStatushttp://hl7.org/fhir/ValueSet/event-status|4.0.1 From the FHIR Standard | ||||
Communication.statusReason | example | CommunicationNotDoneReasonhttp://hl7.org/fhir/ValueSet/communication-not-done-reason From the FHIR Standard | ||||
Communication.category | example | CommunicationCategoryhttp://hl7.org/fhir/ValueSet/communication-category From the FHIR Standard | ||||
Communication.priority | required | RequestPriorityhttp://hl7.org/fhir/ValueSet/request-priority|4.0.1 From the FHIR Standard | ||||
Communication.medium | example | ParticipationModehttp://terminology.hl7.org/ValueSet/v3-ParticipationMode | ||||
Communication.topic | example | CommunicationTopichttp://hl7.org/fhir/ValueSet/communication-topic From the FHIR Standard | ||||
Communication.reasonCode | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Communication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Communication | 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 | Communication | 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 | Communication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Communication | 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 Communication
Other representations of profile: CSV, Excel, Schematron