Profiles & Interactions > Structure Definition: EpisodeOfCareProfile

Profile: EpisodeOfCare

Canonical URL:http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-episodeofcare

Simplifier project page: MHA EpisodeOfCare

Derived from: Episode of Care (R4)

Formal Views of Profile Content

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

Differential View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
FirstContactDateS C0..1Extension(dateTime)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDatedate
ServiceInitiationDateS C0..1Extension(date)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDatedate
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriBinding
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
serviceTerminationReasonS C0..1Extension(Complex)
value0..1System.String
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
status1..1codeBinding
periodC1..1Period
typeΣ0..*CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
conditionΣ C1..1Reference(Condition)
roleΣ0..1CodeableConceptBinding
rankΣ0..1positiveInt
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
startS Σ C0..1dateTime
endS Σ C0..1dateTime
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
careManagerC0..1Reference(Practitioner | PractitionerRole)
teamC0..*Reference(CareTeam)
accountC0..1Reference(Account)

Hybrid View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
FirstContactDateS C0..1Extension(dateTime)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDatedate
ServiceInitiationDateS C0..1Extension(date)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDatedate
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriBinding
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
serviceTerminationReasonS C0..1Extension(Complex)
value0..1System.String
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
status1..1codeBinding
periodC1..1Period
typeΣ0..*CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
conditionΣ C1..1Reference(Condition)
roleΣ0..1CodeableConceptBinding
rankΣ0..1positiveInt
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
startS Σ C0..1dateTime
endS Σ C0..1dateTime
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
careManagerC0..1Reference(Practitioner | PractitionerRole)
teamC0..*Reference(CareTeam)
accountC0..1Reference(Account)

Snapshot View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..1canonical(StructureDefinition)Fixed Value
securityΣ0..*CodingBinding
tagΣ0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
FirstContactDateS C0..1Extension(dateTime)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDatedate
ServiceInitiationDateS C0..1Extension(date)
id0..1string
extensionC0..*Extension
url1..1uriFixed Value
valueDatedate
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uriBinding
valueS Σ1..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
id0..1string
serviceTerminationReasonS C0..1Extension(Complex)
value0..1System.String
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
status1..1codeBinding
periodC1..1Period
typeΣ0..*CodeableConcept
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
conditionΣ C1..1Reference(Condition)
roleΣ0..1CodeableConceptBinding
rankΣ0..1positiveInt
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
startS Σ C0..1dateTime
endS Σ C0..1dateTime
id0..1string
extensionC0..*Extension
referenceS Σ C1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
careManagerC0..1Reference(Practitioner | PractitionerRole)
teamC0..*Reference(CareTeam)
accountC0..1Reference(Account)

Table View

EpisodeOfCare..
EpisodeOfCare.meta1..
EpisodeOfCare.meta.profile1..1
EpisodeOfCare.extension:FirstContactDateExtension..1
EpisodeOfCare.extension:EligibilityScreeningDateExtension..
EpisodeOfCare.extension:EligibilityScreeningDate.value[x]..
EpisodeOfCare.extension:ServiceInitiationDateExtension..
EpisodeOfCare.extension:InitialAssessmentDateExtension..
EpisodeOfCare.extension:InitialAssessmentDate.value[x]..
EpisodeOfCare.identifier1..1
EpisodeOfCare.identifier.system1..
EpisodeOfCare.identifier.value1..
EpisodeOfCare.status..
EpisodeOfCare.status.extension:serviceTerminationReasonExtension..1
EpisodeOfCare.patientReference(Patient)..
EpisodeOfCare.patient.reference1..
EpisodeOfCare.managingOrganizationReference(Organization)1..
EpisodeOfCare.managingOrganization.reference1..
EpisodeOfCare.period..
EpisodeOfCare.period.start..
EpisodeOfCare.period.end..
EpisodeOfCare.referralRequestReference(ServiceRequestProfile)..1
EpisodeOfCare.referralRequest.reference1..
EpisodeOfCare.account..1

JSON View

{
"resourceType": "StructureDefinition",
"url": "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-episodeofcare",
"version": "2.0.0",
"name": "EpisodeOfCare",
"title": "MHA EpisodeOfCare",
"status": "active",
"date": "2025-05-17T20:17:06.3613088+00:00",
"fhirVersion": "4.0.1",
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"name": "MHA PDS Mapping"
}
],
"kind": "resource",
"abstract": false,
"type": "EpisodeOfCare",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/EpisodeOfCare",
"derivation": "constraint",
"element": [
{
"id": "EpisodeOfCare",
"path": "EpisodeOfCare",
{
"key": "mha-eoc-key-1",
"severity": "error",
"human": "Service Termination Date and Service Termination Reason must both be present, or neither exists",
"expression": "status.extension('https://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceTerminationReason').exists() = period.end.exists()"
},
{
"key": "mha-eoc-key-2",
"severity": "error",
"human": "Service Termination Date SHALL only be present when status is 'finished' or 'cancelled'",
"expression": "(status in ('finished'|'cancelled')) = period.end.hasValue()"
},
{
"key": "mha-eoc-key-3",
"severity": "error",
"human": "If status is 'active' and both service initiation date and service enrollment date exist, service initiation date must be equal or after the service enrollment date",
"expression": "(status='active' and period.start.hasValue() and extension('http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceInitiationDate').exists()) implies (period.start.toString().substring(0,10) <= extension('http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceInitiationDate').value.toString().substring(0,10))"
},
{
"key": "mha-eoc-key-4",
"severity": "error",
"human": "If status is 'active', at least one of service enrollment date or service initiation date SHALL be present",
"expression": "status='active' implies period.start.exists() or extension('http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceInitiationDate').exists()"
},
{
"key": "mha-eoc-key-5",
"severity": "error",
"human": "If status is 'cancelled' or 'finished', service termination date and termination reason SHALL be present",
"expression": "status in ('cancelled'|'finished') implies period.end.exists() and status.extension('https://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceTerminationReason').exists()"
},
{
"key": "mha-eoc-key-6",
"severity": "error",
"human": "Service enrollment or service initiation date SHALL only exist when status is 'active' or 'finished'",
"expression": "status in ('active'|'finished') implies period.start.exists() or extension('http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceInitiationDate').exists()"
},
{
"key": "mha-eoc-key-7",
"severity": "error",
"human": "If status is 'planned', Service enrollment and service initiation date SHALL not be provided",
"expression": "status = 'planned' implies period.start.exists().not() and extension('http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceInitiationDate').exists().not()"
},
{
"key": "mha-eoc-key-8",
"severity": "error",
"human": "If service enrollment date and eligibility screen date are populated, the service enrollment date SHALL be equal or after the eligibility screening date",
"expression": "period.start.hasValue() and extension('http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-eligibilityScreeningDate').exists() implies period.start <= extension('http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-eligibilityScreeningDate').value"
}
],
"mustSupport": true,
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"map": "MHA-PDS-Mapping"
}
]
},
{
"id": "EpisodeOfCare.meta",
"path": "EpisodeOfCare.meta",
"min": 1,
"mustSupport": true
},
{
"id": "EpisodeOfCare.meta.profile",
"path": "EpisodeOfCare.meta.profile",
"min": 1,
"max": "1",
"fixedCanonical": "http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-episodeofcare",
"mustSupport": true
},
{
"id": "EpisodeOfCare.extension:FirstContactDate",
"path": "EpisodeOfCare.extension",
"sliceName": "FirstContactDate",
"definition": "The date the client first experienced contact with an HSP regarding a specific program",
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"https://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-ext-FirstContactDate"
]
}
],
"mustSupport": true
},
{
"id": "EpisodeOfCare.extension:EligibilityScreeningDate",
"path": "EpisodeOfCare.extension",
"sliceName": "EligibilityScreeningDate",
"definition": "The date at which an eligibility determination is done by HSP and client is accepted (eligible) or not accepted (ineligible) into program/service .",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-eligibilityScreeningDate"
]
}
]
},
{
"id": "EpisodeOfCare.extension:EligibilityScreeningDate.value[x]",
"path": "EpisodeOfCare.extension.value[x]",
"mustSupport": true,
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"map": "Eligibility Screening Date"
}
]
},
{
"id": "EpisodeOfCare.extension:ServiceInitiationDate",
"path": "EpisodeOfCare.extension",
"sliceName": "ServiceInitiationDate",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceInitiationDate"
]
}
],
"mustSupport": true
},
{
"id": "EpisodeOfCare.extension:InitialAssessmentDate",
"path": "EpisodeOfCare.extension",
"sliceName": "InitialAssessmentDate",
"definition": "The date the client completed an initial assessment for a service",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-InitialAssessmentDate"
]
}
],
"mustSupport": true
},
{
"id": "EpisodeOfCare.extension:InitialAssessmentDate.value[x]",
"path": "EpisodeOfCare.extension.value[x]",
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"map": "Initial Assessment Date"
}
]
},
{
"id": "EpisodeOfCare.identifier",
"path": "EpisodeOfCare.identifier",
"min": 1,
"max": "1",
"mustSupport": true
},
{
"id": "EpisodeOfCare.identifier.system",
"path": "EpisodeOfCare.identifier.system",
"min": 1,
"mustSupport": true,
"binding": {
"strength": "required",
"description": "The identifier URIs for patient episode of care",
"valueSet": "http://ontariohealth.ca/fhir/ValueSet/mha/EpisodeOfCare-identifier-system"
}
},
{
"id": "EpisodeOfCare.identifier.value",
"path": "EpisodeOfCare.identifier.value",
"min": 1,
"mustSupport": true,
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"map": "Episode of Care Identifier"
}
]
},
{
"id": "EpisodeOfCare.status",
"path": "EpisodeOfCare.status",
{
"key": "status-key-1",
"severity": "error",
"human": "Service Termination Reason must be provided only when EOC status is \"finished\" or \"cancelled\"",
"expression": "value in ('finished' | 'cancelled') implies $this.extension('https://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceTerminationReason').exists()"
},
{
"key": "status-key-2",
"severity": "error",
"human": "When service is terminated and termination reason is present, outbound referral source SHALL be empty when continuity indicates no further service planned",
"expression": "(value = 'finished' and $this.extension.extension('continuity').value.code ='3') implies $this.extension.extension('outbound-referral-source').empty()"
}
],
"mustSupport": true,
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"map": "Health Service Status"
}
]
},
{
"id": "EpisodeOfCare.status.extension:serviceTerminationReason",
"path": "EpisodeOfCare.status.extension",
"sliceName": "serviceTerminationReason",
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"https://ontariohealth.ca/fhir/StructureDefinition/ca-on-ext-ServiceTerminationReason"
]
}
],
"mustSupport": true,
"isModifier": false
},
{
"id": "EpisodeOfCare.patient",
"path": "EpisodeOfCare.patient",
"type": [
{
"code": "Reference",
"http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-patient"
]
}
],
"mustSupport": true
},
{
"id": "EpisodeOfCare.patient.reference",
"path": "EpisodeOfCare.patient.reference",
"min": 1,
"mustSupport": true
},
{
"id": "EpisodeOfCare.managingOrganization",
"path": "EpisodeOfCare.managingOrganization",
"min": 1,
"type": [
{
"code": "Reference",
"http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-organization"
]
}
],
"mustSupport": true
},
{
"id": "EpisodeOfCare.managingOrganization.reference",
"path": "EpisodeOfCare.managingOrganization.reference",
"min": 1,
"mustSupport": true
},
{
"id": "EpisodeOfCare.period",
"path": "EpisodeOfCare.period",
"mustSupport": true
},
{
"id": "EpisodeOfCare.period.start",
"path": "EpisodeOfCare.period.start",
"definition": "The start of the period. The boundary is inclusive.\n\nThe date the HSP deems the client eligible for treatment and enrolled in the service.",
"mustSupport": true,
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"map": "Service Enrollment Date"
}
]
},
{
"id": "EpisodeOfCare.period.end",
"path": "EpisodeOfCare.period.end",
"comment": "The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has an end value of 2012-02-03.\n\nThe date when the client's need for service has ended or as per the HSP service termination criteria",
"mustSupport": true,
"mapping": [
{
"identity": "MHA-PDS-Mapping",
"map": "Service Termination Date"
}
]
},
{
"id": "EpisodeOfCare.referralRequest",
"path": "EpisodeOfCare.referralRequest",
"max": "1",
"type": [
{
"code": "Reference",
"http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-profile-servicerequest"
]
}
],
"mustSupport": true
},
{
"id": "EpisodeOfCare.referralRequest.reference",
"path": "EpisodeOfCare.referralRequest.reference",
"min": 1,
"mustSupport": true
},
{
"id": "EpisodeOfCare.account",
"path": "EpisodeOfCare.account",
"max": "1"
}
]
}
}

Usage

The EpisodeOfCare Resource is used to share information pertainining to an association between a client and an organization to which they have been referred to and may or may not be assigned to a program and receiving care.

Notes

.meta.profile

  • used to declare conformance to this profile
  • populate with a fixed value: http://ontariohealth.ca/fhir/StructureDefinition/ca-on-mha-episodeofcare

.extension.firstContactDate.value[x].valueDateTime

  • SHOULD contain the date the client first experienced contact with a Health Information Custodian (HIC) site regarding a specific program.

.extension.EligibilityScreeningDate

  • SHOULD contain the date at which an eligibility determination is done by a HIC and client is accepted (eligible) or not accepted (ineligible) into program/service.

.extension.ServiceInitiationDate

  • SHOULD contain the date at which the client started receiving direct service(s) after being accepted into a service.

.extension.InitialAssessmentDate

  • SHOULD contain the date the client completed an initial assessment for a service

.identifier.value

  • SHALL contain a unique identifier which groups a client’s service-level interactions within a HIC site at which time encounters may occur.

.status

  • SHALL contain a code representing the status of the client's episode of care from the value set to which this element is bound.
    • SHALL contain the code finished when the client's episode of care is complete, and a service termination reason provided in serviceTerminationReason extension

.status.extension.serviceTerminationReason

  • SHALL be poppulated if status is "finished".
  • If populated:
    • SHALL contain reason that indicates the client is terminated from the service. The termination could occur at different stages of service provision (first contact, intake, screening and waitlist, service delivery or service completion). Note: this reason refers to the service termination of the specific program, not necessarily the overall discharge from the HSP
    • The following are conditional:
    • If the reason code is one of below, the extension SHALL contain "continuity"
code display
1 Completed services
2 Not completed services - Ineligible, too high needs
3 Not completed services - Ineligible, too low needs
4 Not completed services - Withdraw/self-discharge
5 Not completed services - Relocation
6 Not completed services  - Terminated by program/service provider
  • If `Service Continuity" is one of below, extension SHALL include "outbound-referral-source"
code display
1 Transferred to alternative services
2 Referred to alternative services

.patient.reference

  • SHALL contain a reference to the Patient resource to which the EpisodeOfCare resource applies

.managingOrganizaton.reference

  • SHALL contain a reference to the Organization resource to which the EpisodeOfCare resource applies.

.period.start

  • SHOULD contain the date the HIC site deems the client eligible for treatment and enrolled in the service

.period.end

  • SHOULD contain the date when the client's need for service has ended or as per the HIC's service termination criteria

.referralRequest.reference

  • SHOULD contain a reference to the Service Request resource to which the EpisodeOfCare resource applies