eHealth Infrastructure (v2019.5.3)

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

CarePlans can be constructed as a hierarchy of subplans. 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.

Subplans 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 subplans or procedureRequests. The status attribute can be used to either cancel or complete a plan or procedureRequest, if it is no longer relevant for the patient.

Responsible and responsibleHistory

A careplan can have a number of responsible CareTeams, Practitioners or Organizations with different roles who are responsible for monitoring or otherwise facilitate different aspects of the CarePlan. For instance a Practitioner could have the role of “monitoringResponsible”. All responsibles referenced from element responsible currently hold the responsibility defined by their role.

Historically responsible CareTeams, Practitioners or Organizations are referenced from element responsibleHistory. This structure is identical to values of the responsible element except that entries in responsibleHistory also carry a “period” which states the period during which the referenced party was responsible for the CarePlan.

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 Fri Jun 07 11:10:06 UTC 2019 as a draft by ehealth.sundhed.dk.

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

 

Terminology Bindings

PathNameConformanceValueSet
CarePlan.languageCommon LanguagesextensibleCommon Languages
CarePlan.statusCarePlanStatusrequiredCarePlanStatus
CarePlan.intentCarePlanIntentrequiredCarePlanIntent
CarePlan.categoryCareplanCategoryrequiredCareplanCategory
CarePlan.activity.outcomeCodeableConceptCare Plan Activity OutcomeexampleCare Plan Activity Outcome
CarePlan.activity.detail.categoryCarePlanActivityCategoryexampleCarePlanActivityCategory
CarePlan.activity.detail.codeCare Plan ActivityexampleCare Plan Activity
CarePlan.activity.detail.reasonCodeActivity ReasonexampleActivity Reason
CarePlan.activity.detail.statusCarePlanActivityStatusrequiredCarePlanActivityStatus
CarePlan.activity.detail.product[x]SNOMED CT Medication CodesexampleSNOMED 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.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())
.