eHealth Infrastructure (v2020.6)

StructureDefinition: ehealth-careplan

Introduction

A CarePlan describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions.

Scope and Usage

In scope of the eHealth infrastructure CarePlans represent specific tele-medicine plans prepared by a Practitioner and applied to a specific Patient for the treatment a condition such as chronic obstructive pulmonary disease (COPD).

Hierarchies of care plans

A CarePlan can be constructed as a hierarchy of sub plans. The initial hierarchy is inherited from the PlanDefinition, but can be modified for the specific patient. This modification is possible both when instantiating the CarePlan and during execution of the plan.

Sub plans can be attached by making them partOf the parent plan.

Restrictions on deletion

In order to preserve the context and history, it is not allowed to delete sub plans or remove ProcedureRequest from the CarePlan. The status element can be used to either cancel or complete a CarePlan or ProcedureRequest, if it is no longer relevant for the Patient.

The history of changes in status is automatically maintained in the element ehealth-careplan-statusHistory.

Responsible CareTeam and responsibleHistory

A CarePlan can have a number of responsible CareTeam set in careTeam. The history of changes in careTeam is automatically maintained in the element ehealth-teamHistory.

Formal Views of Profile Content

The official URL for this profile is:

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

This profile builds on CarePlan.

This profile was published on Tue Aug 18 09:51:15 UTC 2020 as a draft by ehealth.sundhed.dk.

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

 

Terminology Bindings

PathConformanceValueSet
CarePlan.languageextensibleCommon Languages
Max Binding: All Languages
CarePlan.statusrequiredCarePlanStatus
CarePlan.intentrequiredCarePlanIntent
CarePlan.categoryrequiredCareplanCategory
CarePlan.activity.outcomeCodeableConceptexampleCare Plan Activity Outcome
CarePlan.activity.detail.categoryexampleCarePlanActivityCategory
CarePlan.activity.detail.codeexampleCare Plan Activity
CarePlan.activity.detail.reasonCodeexampleActivity Reason
CarePlan.activity.detail.statusrequiredCarePlanActivityStatus
CarePlan.activity.detail.product[x]exampleSNOMED CT Medication Codes

Constraints

IdPathDetailsRequirements
dom-2CarePlanIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1CarePlanIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4CarePlanIf 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-3CarePlanIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
: contained.where(('#'+id in %resource.descendants().reference).not()).empty()
ele-1CarePlan.extension:statusHistoryAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1CarePlan.extension:statusHistoryMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1CarePlan.extension:teamHistoryAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1CarePlan.extension:teamHistoryMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1CarePlan.extension:statusScheduleAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1CarePlan.extension:statusScheduleMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1CarePlan.extension:teamScheduleAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ext-1CarePlan.extension:teamScheduleMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1CarePlan.activityAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
cpl-3CarePlan.activityProvide a reference or detail, not both
: detail.empty() or reference.empty()
ele-1CarePlan.activity.detailAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
.