eHealth Infrastructure
2021.3.0 - build

eHealth Infrastructure - Local Development build (v2021.3.0). See the Directory of published versions

Resource Profile: ehealth-episodeofcare

Defining URL:http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare
Version:2021.3.0
Name:ehealth-episodeofcare
Status:Active as of 2021-11-25T09:32:14+00:00
Publisher:Systematic | Trifork
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare

Introduction

An EpisodeOfCare is an association between a patient and an organization / healthcare provider(s) during which time encounters may occur.

Scope and Usage

In scope of the eHealth infrastructure, creation of an EpisodeOfCare resource is triggered by a number of actions taking place out-of-band, that is, outside the scope of the eHealth infrastructure. Firstly, a patient is diagnosed with one or more conditions; then assessed as fulfilling criteria for enrollment in a telemedical care program leading to a referral being made to an organization providing such program. At this point a Practitioner within the providing organization creates an EpisodeOfCare referring to the Patient and the corresponding Conditions, all in the eHealth infrastructure. Created with status planned, the Practitioner updates the status to active once:

  • a Consent to enroll in the program has been given by the Patient
  • Adjustments have possibly been made to assigned CareTeam(s) in team.

The EpisodeOfCare functions as a representation of a program while the activities comprising it are defined in one or more CarePlan resources.

careManagerOrganization and managingOrganization

An EpisodeOfCare is required to have exactly one reference to the Organization responsible for the treatment through the element ehealth-episodeofcare-caremanagerOrganization.

The element managingOrganization references the Organization which is data controller for the EpisodeOfCare and all other resources directly or indirectly referencing it.

CareTeam and history of CareTeam

The CareTeam(s) currently responsible for the EpisodeOfCare are referenced in element team. Changes in CareTeam references are automatically maintained in the element ehealth-teamHistory.

Formal Views of Profile Content

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

This structure is derived from EpisodeOfCare

NameFlagsCard.TypeDescription & Constraintsdoco
.. EpisodeOfCare 0..*EpisodeOfCareAn association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-episodeofcare-caremanagerOrganization 1..1Reference(ehealth-organization) {r}Reference to caremanagers organization
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare-caremanagerOrganization
... ehealth-teamHistory 0..*(Complex)History of assigned careTeam
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamHistory
... ehealth-teamschedule 0..*(Complex)Team Schedule
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamschedule
... diagnosis 1..*BackboneElementThe list of diagnosis relevant to this episode of care
.... condition 1..1Reference(ehealth-condition) {r}Conditions/problems/diagnoses this episode of care is for
... patient 1..1Reference(ehealth-patient) {r}The patient who is the focus of this episode of care
... managingOrganization 1..1Reference(ehealth-organization) {r}Organization that assumes care
... period 1..1PeriodInterval during responsibility is assumed
... careManager 0..0
... team 0..*Reference(ehealth-careteam) {r}Other practitioners facilitating this episode of care
... account 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. EpisodeOfCare 0..*EpisodeOfCareAn association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-episodeofcare-caremanagerOrganization 1..1Reference(ehealth-organization) {r}Reference to caremanagers organization
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare-caremanagerOrganization
... ehealth-teamHistory 0..*(Complex)History of assigned careTeam
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamHistory
... ehealth-episodeofcare-statusschedule 0..*(Complex)Status Schedule
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare-statusschedule
... ehealth-teamschedule 0..*(Complex)Team Schedule
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamschedule
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierBusiness Identifier(s) relevant for this EpisodeOfCare
... status ?!Σ1..1codeplanned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.

... statusHistory 0..*BackboneElementPast list of status codes (the current status may be included to cover the start date of the status)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... status 1..1codeplanned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.

.... period 1..1PeriodDuration the EpisodeOfCare was in the specified status
... type Σ0..*CodeableConceptType/class - e.g. specialist referral, disease management
Binding: EpisodeOfCareType (example): The type of the episode of care.


... diagnosis Σ1..*BackboneElementThe list of diagnosis relevant to this episode of care
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... condition Σ1..1Reference(ehealth-condition) {r}Conditions/problems/diagnoses this episode of care is for
.... role Σ0..1CodeableConceptRole that this diagnosis has within the episode of care (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred): The type of diagnosis this condition represents.

.... rank Σ0..1positiveIntRanking of the diagnosis (for each role type)
... patient Σ1..1Reference(ehealth-patient) {r}The patient who is the focus of this episode of care
... managingOrganization Σ1..1Reference(ehealth-organization) {r}Organization that assumes care
... period Σ1..1PeriodInterval during responsibility is assumed
... referralRequest 0..*Reference(ServiceRequest)Originating Referral Request(s)
... team 0..*Reference(ehealth-careteam) {r}Other practitioners facilitating this episode of care

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. EpisodeOfCare 0..*EpisodeOfCareAn association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility

doco Documentation for this format

Differential View

This structure is derived from EpisodeOfCare

NameFlagsCard.TypeDescription & Constraintsdoco
.. EpisodeOfCare 0..*EpisodeOfCareAn association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-episodeofcare-caremanagerOrganization 1..1Reference(ehealth-organization) {r}Reference to caremanagers organization
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare-caremanagerOrganization
... ehealth-teamHistory 0..*(Complex)History of assigned careTeam
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamHistory
... ehealth-teamschedule 0..*(Complex)Team Schedule
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamschedule
... diagnosis 1..*BackboneElementThe list of diagnosis relevant to this episode of care
.... condition 1..1Reference(ehealth-condition) {r}Conditions/problems/diagnoses this episode of care is for
... patient 1..1Reference(ehealth-patient) {r}The patient who is the focus of this episode of care
... managingOrganization 1..1Reference(ehealth-organization) {r}Organization that assumes care
... period 1..1PeriodInterval during responsibility is assumed
... careManager 0..0
... team 0..*Reference(ehealth-careteam) {r}Other practitioners facilitating this episode of care
... account 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. EpisodeOfCare 0..*EpisodeOfCareAn association of a Patient with an Organization and Healthcare Provider(s) for a period of time that the Organization assumes some level of responsibility
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 1..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-episodeofcare-caremanagerOrganization 1..1Reference(ehealth-organization) {r}Reference to caremanagers organization
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare-caremanagerOrganization
... ehealth-teamHistory 0..*(Complex)History of assigned careTeam
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamHistory
... ehealth-episodeofcare-statusschedule 0..*(Complex)Status Schedule
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-episodeofcare-statusschedule
... ehealth-teamschedule 0..*(Complex)Team Schedule
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-teamschedule
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierBusiness Identifier(s) relevant for this EpisodeOfCare
... status ?!Σ1..1codeplanned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.

... statusHistory 0..*BackboneElementPast list of status codes (the current status may be included to cover the start date of the status)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... status 1..1codeplanned | waitlist | active | onhold | finished | cancelled | entered-in-error
Binding: EpisodeOfCareStatus (required): The status of the episode of care.

.... period 1..1PeriodDuration the EpisodeOfCare was in the specified status
... type Σ0..*CodeableConceptType/class - e.g. specialist referral, disease management
Binding: EpisodeOfCareType (example): The type of the episode of care.


... diagnosis Σ1..*BackboneElementThe list of diagnosis relevant to this episode of care
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... condition Σ1..1Reference(ehealth-condition) {r}Conditions/problems/diagnoses this episode of care is for
.... role Σ0..1CodeableConceptRole that this diagnosis has within the episode of care (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred): The type of diagnosis this condition represents.

.... rank Σ0..1positiveIntRanking of the diagnosis (for each role type)
... patient Σ1..1Reference(ehealth-patient) {r}The patient who is the focus of this episode of care
... managingOrganization Σ1..1Reference(ehealth-organization) {r}Organization that assumes care
... period Σ1..1PeriodInterval during responsibility is assumed
... referralRequest 0..*Reference(ServiceRequest)Originating Referral Request(s)
... team 0..*Reference(ehealth-careteam) {r}Other practitioners facilitating this episode of care

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
EpisodeOfCare.languagepreferredCommonLanguages
Max Binding: AllLanguages
EpisodeOfCare.statusrequiredEpisodeOfCareStatus
EpisodeOfCare.statusHistory.statusrequiredEpisodeOfCareStatus
EpisodeOfCare.typeexampleEpisodeOfCareType
EpisodeOfCare.diagnosis.rolepreferredDiagnosisRole

Constraints

IdPathDetailsRequirements
dom-2EpisodeOfCareIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3EpisodeOfCareIf 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-4EpisodeOfCareIf 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-5EpisodeOfCareIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6EpisodeOfCareA resource should have narrative for robust management
: text.`div`.exists()
ele-1EpisodeOfCare.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.extension:caremanagerOrganizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.extension:caremanagerOrganizationMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.extension:teamHistoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.extension:teamHistoryMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.extension:episodeofcareStatusscheduleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.extension:episodeofcareStatusscheduleMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.extension:teamscheduleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.extension:teamscheduleMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.statusHistoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.statusHistory.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.statusHistory.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.statusHistory.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.statusHistory.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.statusHistory.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.statusHistory.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.diagnosisAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.diagnosis.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.diagnosis.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.diagnosis.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1EpisodeOfCare.diagnosis.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1EpisodeOfCare.diagnosis.conditionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.diagnosis.roleAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.diagnosis.rankAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.patientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.managingOrganizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.referralRequestAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1EpisodeOfCare.teamAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())