1.0.0 - Release

This page is part of the KLGatewayRehab (v1.0.0: Release) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: KLGateway140care-plan

Official URL: http://fhir.kl.dk/rehab/StructureDefinition/klgateway-140-care-plan Version: 1.0.0
Active as of 2023-09-28 Computable Name: KLGateway140CarePlan

Care plans for §140 rehabilitation in Danish Municipalities.

Scope and usage

The CarePlan for §140 is used whenever a rehabilitation care pathway is planned for a citizen in Danish municipalities. Care pathway or plan is a way to describe when a number of planned interventions are delivered together with a common schedule.

The two types of plan in §140 are ‘Opfølgningsforløb efter §140’ and ‘Interventionsforløb efter §140’ and one of these two codes should be documented in CarePlan.category.

It is important to distiguish correctly between the dates and times stated in the model. CarePlan.period.start is when the CarePlan was authorized (bevillingstid). The planned end-date is CarePlan.period.end, unless the date has already occured and the status is ‘completed’, then it is the actual end-date. Notice that end-date is not mandatory to report. All dates may be repported with or without time of day.

CarePlan.status and CarePlan.intent are mandatory in the FHIR CarePlan resource. CarePlan.intent is always ‘plan’ in this implementation guide. CarePlan status should at least distiguish between ‘unknown’ and ‘entered-in-error’, but the actual status of the care plan may also be reported. Note that the meaning of ‘active’ is “ready to be acted upon”, so it does not signify that the first activity has occured.

CarePlan.activity.detail.status is also mandatory, and all the statuses in the FHIR ValueSet may be used. It is recommended not to use ‘entered-in-error’ - if the CarePlan is entered-in-error use CarePlan.status. To get the needed data-quality, the detail-status should at least distinguish between ‘unknown’ and ‘cancelled’. Although it is better to use the appropriate FHIR-statuses, ‘unknown’ is permitted from the time where the care plan occurs in the record until its completion. ‘Cancelled’ (or ‘stopped’) are mandatory, if an care plan is cancelled. It is mandatory to report cancelled care plans, so that the reason for the cancellation can inform the dataset. This is done using CarePlan.activity.detail.statusReason, and a set of codes that represents different reasons for the cancellation. The codes are as follows:

  • ‘Hændelse medfører ophør’
  • ‘Ikke yderligere behov (borger-vurderet)’
  • ‘Ikke yderligere behov (fagperson-vurderet)’
  • ‘Borger har ikke henvendt sig eller er udeblevet’
  • ‘Aktivt fravalg’
    • ‘Aktivt fravalg pga. anden sygdom’
    • ‘Aktivt fravalg pga. økonomi ifm. transport’
    • ‘Aktivt fravalg pga. logisik ifm. transport’
    • ‘Aktivt fravalg pga. anden træning’

It is premitted to use the code ‘Aktivt fravalg’ for reporting, but the more detailed codes, though not mandatory, provides for a more nuanced dataset.

CarePlan.subject references the citizen. CarePlan.activity.detail.performer is the organisation that carries out the care plan (leverandør).

The CarePlan.extension[basedOnServiceRequest] points to the ServiceRequest (GGOP) which was the starting point for the care plan. It may happen that an care plan has two ServiceRequests as a starting point. Imagine that a citizen has gotten a hip replacement, has been dicharges from the hospital and has started rehabilitation. Then the citizen falls and gets re-admitted to the hospital. At discharge, a new ServiceRequest is send, but because the damage was small, the municipality care plan preceeds as planned. In this case, change CarePlan.extension[basedOnServiceRequest] from the later, to the newer ServiceRequest. If the patient is admitted for a longer time, so that the care plan changes i.e. the citizen starts over in group based training, cancel the ealier care plan, and start a new one pertaining to the new ServiceRequest. If two different ServiceRequests results in two different care plans (e.g. hip replacement rehabilitation and shoulder rehabilitation), all serviceRequests and care plans exists in parallel, but should reference each other correctly (e.g shoulder GGOP to shoulder training and hip GGOP to mobility training).

Different reasons for changing a CarePlan may exist, and here we provide guidance for how it should be reported:

  • Errors should be corrected by reporting the same CarePlan again with the entered-in-error status. And reporting the correct one with a new Id.
  • If cancelled, set the CarePlan.activity.detail.status and CarePlan.activity.detail.statusreason and report the Careplan again with the same Id as used earlier.
  • If the timing is changing, it is most likely because a status has shown a new or an extra need of the citizen. Report this in a new CarePlan with a new start-date, rather than correcting the timing in the existing plan. This goes for PlannedInterventions that references the CarePlan as well.

Conversions between Danish information model and FHIR-profile

Nedenstående tabel oversætter mellem de attributter der er defineret i den fælleskommunale informationsmodel (FKI), definerer kort den enkelte attribut på dansk og specificere hvilke af FHIR-profilens atributter der skal bruges til specifikation af indholdet

FKI-attribut Definition FHIR
indsatsforløbKategori Udtrykker hvilken kategori indsatsforløbet har. CarePlan.category
indsatsforløbBevillingstid Tidspunktet for hvornår indsatsforløbet er bevilget CarePlan.period.start
indsatforløbAfslutningstid Tidspunktet for hvornår indsatsforløbet er afsluttet, eller planlægges afsluttet CarePlan.period.end
indsatsforløbsstatus Indikerer om indsatsforløbet er klar til at blive handlet på, om dokumentationen repræsentere en fremtidig intention eller er historisk. CarePlan.status
indsatsforløbhensigt Indikerer niveauet af autorisation og hvor langt i planlægningen indsatsen er CarePlan.intent
indsatsforløbsAktivitetsstatus Indikerer om indsatsforløbet er igangsat, eller om den ikke er startet, er aflyst, eller er færdiggjort CarePlan.activity.detail.status
indsatsforløbForklaringAfStatus Forklaring af hvorfor et indsatsforløb er aflyst, fx fordi der ikke længere er behov CarePlan.activity.detail.statusReason
indsatsforløbleverandør Organisation, der har ansvaret for at udføre indsatsforløbet CarePlan.activity.detail.performer
indsatsforløbsubjekt Den borger som den indsatsforløbet retter sig mod CarePlan.subject
indsatsforløbAnledning Den anledning/GGOP som er grunden til at indsatsforløbet igangsættes extension:basedOnServiceRequest

Usage:

Formal Views of Profile Content

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

This structure is derived from CarePlan

NameFlagsCard.TypeDescription & Constraintsdoco
.. CarePlan C0..*CarePlanHealthcare plan for patient or group
klgateway-140-care-plan-1: status reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... basedOnServiceRequest 0..1Reference(KLGateway140ServiceRequest)[DK] indsatsforløbAnledning
URL: http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension
.... value[x] 1..1Reference(KLGateway140ServiceRequest) {b}Value of extension
... identifier 0..0
... instantiatesUri 0..0
... basedOn 0..0
... replaces 0..0
... partOf 0..0
... status 1..1code[DK] indsatsforløbsstatus
... intent 1..1code[DK] indsatshensigt
Required Pattern: plan
... category 1..1CodeableConcept[DK] indsatsforløbKategori
Binding: CarePlanCategories (required)
... title 0..0
... description 0..0
... subject 1..1Reference(KLGateway140Citizen) {b}[DK] indsatssubjekt
... encounter 0..0
... period 1..1PeriodTime period plan covers
.... start 1..1dateTime[DK] indsatsforløbBevillingstid
.... end 0..1dateTime[DK] indsatforløbAfslutningstid
... created 0..0
... author 0..0
... contributor 0..0
... careTeam 0..0
... addresses 0..0
... supportingInfo 0..0
... goal 0..0
... activity 1..1BackboneElementAction to occur as part of plan
.... outcomeCodeableConcept 0..0
.... outcomeReference 0..0
.... progress 0..0
.... reference 0..0
.... detail 1..1BackboneElementIn-line definition of activity
..... kind 0..0
..... instantiatesCanonical 0..0
..... instantiatesUri 0..0
..... code 0..0
..... reasonCode 0..0
..... reasonReference 0..0
..... goal 0..0
..... status 1..1code[DK] indsatsforløbsAktivitetsstatus
..... statusReason 0..1CodeableConcept[DK] indsatsforløbForklaringAfStatus
Binding: CancellationTypes (required)
..... doNotPerform 0..0
..... scheduled[x] 0..0
..... location 0..0
..... performer 1..1Reference(KLGateway140Organization) {b}[DK] indsatsleverandør
..... product[x] 0..0
..... dailyAmount 0..0
..... quantity 0..0
..... description 0..0
... note 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
CarePlan.categoryrequiredCarePlanCategories140
CarePlan.activity.detail.statusReasonrequiredCancellationTypes

Constraints

IdGradePath(s)DetailsRequirements
klgateway-140-care-plan-1errorCarePlanstatus reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
: activity.detail.all(statusReason.exists() = (status = 'cancelled' or status = 'stopped'))
NameFlagsCard.TypeDescription & Constraintsdoco
.. CarePlan C0..*CarePlanHealthcare plan for patient or group
klgateway-140-care-plan-1: status reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... basedOnServiceRequest 0..1Reference(KLGateway140ServiceRequest)[DK] indsatsforløbAnledning
URL: http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension
.... extension 0..0
.... url 1..1uri"http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension"
.... value[x] 1..1Reference(KLGateway140ServiceRequest) {b}Value of extension
... status ?!Σ1..1code[DK] indsatsforløbsstatus
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.

... intent ?!Σ1..1code[DK] indsatshensigt
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.


Required Pattern: plan
... category Σ1..1CodeableConcept[DK] indsatsforløbKategori
Binding: CarePlanCategories (required)
... subject Σ1..1Reference(KLGateway140Citizen) {b}[DK] indsatssubjekt
... period Σ1..1PeriodTime period plan covers
.... start ΣC1..1dateTime[DK] indsatsforløbBevillingstid
.... end ΣC0..1dateTime[DK] indsatforløbAfslutningstid
... activity C1..1BackboneElementAction to occur as part of plan
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... detail C1..1BackboneElementIn-line definition of activity
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... status ?!1..1code[DK] indsatsforløbsAktivitetsstatus
Binding: CarePlanActivityStatus (required): Codes that reflect the current state of a care plan activity within its overall life cycle.

..... statusReason 0..1CodeableConcept[DK] indsatsforløbForklaringAfStatus
Binding: CancellationTypes (required)
..... performer 1..1Reference(KLGateway140Organization) {b}[DK] indsatsleverandør

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
CarePlan.statusrequiredRequestStatus
CarePlan.intentrequiredPattern: plan
CarePlan.categoryrequiredCarePlanCategories140
CarePlan.activity.detail.statusrequiredCarePlanActivityStatus
CarePlan.activity.detail.statusReasonrequiredCancellationTypes

Constraints

IdGradePath(s)DetailsRequirements
cpl-3errorCarePlan.activityProvide a reference or detail, not both
: detail.empty() or reference.empty()
dom-2errorCarePlanIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCarePlanIf 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-4errorCarePlanIf 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-5errorCarePlanIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCarePlanA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
klgateway-140-care-plan-1errorCarePlanstatus reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
: activity.detail.all(statusReason.exists() = (status = 'cancelled' or status = 'stopped'))
NameFlagsCard.TypeDescription & Constraintsdoco
.. CarePlan C0..*CarePlanHealthcare plan for patient or group
klgateway-140-care-plan-1: status reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
... id Σ0..1idLogical 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 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... basedOnServiceRequest 0..1Reference(KLGateway140ServiceRequest)[DK] indsatsforløbAnledning
URL: http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension"
.... value[x] 1..1Reference(KLGateway140ServiceRequest) {b}Value of extension
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1code[DK] indsatsforløbsstatus
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.

... intent ?!Σ1..1code[DK] indsatshensigt
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.


Required Pattern: plan
... category Σ1..1CodeableConcept[DK] indsatsforløbKategori
Binding: CarePlanCategories (required)
... subject Σ1..1Reference(KLGateway140Citizen) {b}[DK] indsatssubjekt
... period Σ1..1PeriodTime period plan covers
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... start ΣC1..1dateTime[DK] indsatsforløbBevillingstid
.... end ΣC0..1dateTime[DK] indsatforløbAfslutningstid
... activity C1..1BackboneElementAction to occur as part of plan
.... 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
.... detail C1..1BackboneElementIn-line definition of activity
..... 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..1code[DK] indsatsforløbsAktivitetsstatus
Binding: CarePlanActivityStatus (required): Codes that reflect the current state of a care plan activity within its overall life cycle.

..... statusReason 0..1CodeableConcept[DK] indsatsforløbForklaringAfStatus
Binding: CancellationTypes (required)
..... performer 1..1Reference(KLGateway140Organization) {b}[DK] indsatsleverandør

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
CarePlan.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
CarePlan.statusrequiredRequestStatus
CarePlan.intentrequiredPattern: plan
CarePlan.categoryrequiredCarePlanCategories140
CarePlan.activity.detail.statusrequiredCarePlanActivityStatus
CarePlan.activity.detail.statusReasonrequiredCancellationTypes

Constraints

IdGradePath(s)DetailsRequirements
cpl-3errorCarePlan.activityProvide a reference or detail, not both
: detail.empty() or reference.empty()
dom-2errorCarePlanIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCarePlanIf 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-4errorCarePlanIf 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-5errorCarePlanIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCarePlanA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
klgateway-140-care-plan-1errorCarePlanstatus reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
: activity.detail.all(statusReason.exists() = (status = 'cancelled' or status = 'stopped'))

Differential View

This structure is derived from CarePlan

NameFlagsCard.TypeDescription & Constraintsdoco
.. CarePlan C0..*CarePlanHealthcare plan for patient or group
klgateway-140-care-plan-1: status reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... basedOnServiceRequest 0..1Reference(KLGateway140ServiceRequest)[DK] indsatsforløbAnledning
URL: http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension
.... value[x] 1..1Reference(KLGateway140ServiceRequest) {b}Value of extension
... identifier 0..0
... instantiatesUri 0..0
... basedOn 0..0
... replaces 0..0
... partOf 0..0
... status 1..1code[DK] indsatsforløbsstatus
... intent 1..1code[DK] indsatshensigt
Required Pattern: plan
... category 1..1CodeableConcept[DK] indsatsforløbKategori
Binding: CarePlanCategories (required)
... title 0..0
... description 0..0
... subject 1..1Reference(KLGateway140Citizen) {b}[DK] indsatssubjekt
... encounter 0..0
... period 1..1PeriodTime period plan covers
.... start 1..1dateTime[DK] indsatsforløbBevillingstid
.... end 0..1dateTime[DK] indsatforløbAfslutningstid
... created 0..0
... author 0..0
... contributor 0..0
... careTeam 0..0
... addresses 0..0
... supportingInfo 0..0
... goal 0..0
... activity 1..1BackboneElementAction to occur as part of plan
.... outcomeCodeableConcept 0..0
.... outcomeReference 0..0
.... progress 0..0
.... reference 0..0
.... detail 1..1BackboneElementIn-line definition of activity
..... kind 0..0
..... instantiatesCanonical 0..0
..... instantiatesUri 0..0
..... code 0..0
..... reasonCode 0..0
..... reasonReference 0..0
..... goal 0..0
..... status 1..1code[DK] indsatsforløbsAktivitetsstatus
..... statusReason 0..1CodeableConcept[DK] indsatsforløbForklaringAfStatus
Binding: CancellationTypes (required)
..... doNotPerform 0..0
..... scheduled[x] 0..0
..... location 0..0
..... performer 1..1Reference(KLGateway140Organization) {b}[DK] indsatsleverandør
..... product[x] 0..0
..... dailyAmount 0..0
..... quantity 0..0
..... description 0..0
... note 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
CarePlan.categoryrequiredCarePlanCategories140
CarePlan.activity.detail.statusReasonrequiredCancellationTypes

Constraints

IdGradePath(s)DetailsRequirements
klgateway-140-care-plan-1errorCarePlanstatus reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
: activity.detail.all(statusReason.exists() = (status = 'cancelled' or status = 'stopped'))

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. CarePlan C0..*CarePlanHealthcare plan for patient or group
klgateway-140-care-plan-1: status reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... basedOnServiceRequest 0..1Reference(KLGateway140ServiceRequest)[DK] indsatsforløbAnledning
URL: http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension
.... extension 0..0
.... url 1..1uri"http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension"
.... value[x] 1..1Reference(KLGateway140ServiceRequest) {b}Value of extension
... status ?!Σ1..1code[DK] indsatsforløbsstatus
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.

... intent ?!Σ1..1code[DK] indsatshensigt
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.


Required Pattern: plan
... category Σ1..1CodeableConcept[DK] indsatsforløbKategori
Binding: CarePlanCategories (required)
... subject Σ1..1Reference(KLGateway140Citizen) {b}[DK] indsatssubjekt
... period Σ1..1PeriodTime period plan covers
.... start ΣC1..1dateTime[DK] indsatsforløbBevillingstid
.... end ΣC0..1dateTime[DK] indsatforløbAfslutningstid
... activity C1..1BackboneElementAction to occur as part of plan
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... detail C1..1BackboneElementIn-line definition of activity
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... status ?!1..1code[DK] indsatsforløbsAktivitetsstatus
Binding: CarePlanActivityStatus (required): Codes that reflect the current state of a care plan activity within its overall life cycle.

..... statusReason 0..1CodeableConcept[DK] indsatsforløbForklaringAfStatus
Binding: CancellationTypes (required)
..... performer 1..1Reference(KLGateway140Organization) {b}[DK] indsatsleverandør

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
CarePlan.statusrequiredRequestStatus
CarePlan.intentrequiredPattern: plan
CarePlan.categoryrequiredCarePlanCategories140
CarePlan.activity.detail.statusrequiredCarePlanActivityStatus
CarePlan.activity.detail.statusReasonrequiredCancellationTypes

Constraints

IdGradePath(s)DetailsRequirements
cpl-3errorCarePlan.activityProvide a reference or detail, not both
: detail.empty() or reference.empty()
dom-2errorCarePlanIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCarePlanIf 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-4errorCarePlanIf 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-5errorCarePlanIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCarePlanA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
klgateway-140-care-plan-1errorCarePlanstatus reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
: activity.detail.all(statusReason.exists() = (status = 'cancelled' or status = 'stopped'))

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. CarePlan C0..*CarePlanHealthcare plan for patient or group
klgateway-140-care-plan-1: status reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
... id Σ0..1idLogical 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 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... basedOnServiceRequest 0..1Reference(KLGateway140ServiceRequest)[DK] indsatsforløbAnledning
URL: http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"http://fhir.kl.dk/rehab/StructureDefinition/BasedOnServiceRequestExtension"
.... value[x] 1..1Reference(KLGateway140ServiceRequest) {b}Value of extension
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1code[DK] indsatsforløbsstatus
Binding: RequestStatus (required): Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record.

... intent ?!Σ1..1code[DK] indsatshensigt
Binding: CarePlanIntent (required): Codes indicating the degree of authority/intentionality associated with a care plan.


Required Pattern: plan
... category Σ1..1CodeableConcept[DK] indsatsforløbKategori
Binding: CarePlanCategories (required)
... subject Σ1..1Reference(KLGateway140Citizen) {b}[DK] indsatssubjekt
... period Σ1..1PeriodTime period plan covers
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... start ΣC1..1dateTime[DK] indsatsforløbBevillingstid
.... end ΣC0..1dateTime[DK] indsatforløbAfslutningstid
... activity C1..1BackboneElementAction to occur as part of plan
.... 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
.... detail C1..1BackboneElementIn-line definition of activity
..... 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..1code[DK] indsatsforløbsAktivitetsstatus
Binding: CarePlanActivityStatus (required): Codes that reflect the current state of a care plan activity within its overall life cycle.

..... statusReason 0..1CodeableConcept[DK] indsatsforløbForklaringAfStatus
Binding: CancellationTypes (required)
..... performer 1..1Reference(KLGateway140Organization) {b}[DK] indsatsleverandør

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
CarePlan.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
CarePlan.statusrequiredRequestStatus
CarePlan.intentrequiredPattern: plan
CarePlan.categoryrequiredCarePlanCategories140
CarePlan.activity.detail.statusrequiredCarePlanActivityStatus
CarePlan.activity.detail.statusReasonrequiredCancellationTypes

Constraints

IdGradePath(s)DetailsRequirements
cpl-3errorCarePlan.activityProvide a reference or detail, not both
: detail.empty() or reference.empty()
dom-2errorCarePlanIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCarePlanIf 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-4errorCarePlanIf 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-5errorCarePlanIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCarePlanA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
klgateway-140-care-plan-1errorCarePlanstatus reason is mandatory if status is cancelled or stopped. Otherwise it is prohibited
: activity.detail.all(statusReason.exists() = (status = 'cancelled' or status = 'stopped'))

 

Other representations of profile: CSV, Excel, Schematron