Koppeltaal 2.0 Implementation Guide (Full Documentation)
0.15.0 - ci-build NL

Koppeltaal 2.0 Implementation Guide (Full Documentation) - Local Development build (v0.15.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: KT2_Task

Official URL: http://koppeltaal.nl/fhir/StructureDefinition/KT2Task Version: 0.15.0
Draft as of 2023-01-24 Realm: Netherlands flag Computable Name: KT2_Task

Copyright/Legal: VZVZ

The Task resource represents an eHealth activity that has been assigned to a specific patient. It tracks the lifecycle of patient assignments, from initial creation through completion, and may include subtasks for complex multi-step interventions. Tasks are created based on ActivityDefinition resources and managed throughout their execution within the Koppeltaal ecosystem.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Task C 0..* Task A task to be performed
Constraints: dom-2, dom-3, dom-4, dom-5, dom-6, inv-1
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension Content/Rules for all slices
.... extension:resource-origin 0..1 Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
.... extension:instantiates 0..* Reference(KT2_ActivityDefinition) Reference to ActivityDefinition
URL: http://vzvz.nl/fhir/StructureDefinition/instantiates
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... instantiatesCanonical Σ 0..1 canonical(KT2_ActivityDefinition) Formal definition of task
... partOf ΣC 0..* Reference(KT2_Task) Composite task
Constraints: ref-1
... status ?!Σ 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
... intent Σ 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
... priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The task's priority.
Fixed Value: routine
... code Σ 0..1 CodeableConcept Task Type
Binding: Koppeltaal Task Code (preferred)
... for ΣC 1..1 Reference(KT2_Patient) Beneficiary of the Task
Constraints: ref-1
... requester ΣC 0..1 Reference(KT2_Practitioner) Who is asking for task to be done
Constraints: ref-1
... owner ΣC 1..1 Reference(KT2_CareTeam | KT2_Patient | KT2_Practitioner | KT2_RelatedPerson) Responsible individual
Constraints: ref-1

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Task.statusrequiredTaskStatus
http://hl7.org/fhir/ValueSet/task-status|4.0.1
From the FHIR Standard
Task.intentrequiredTaskIntent
http://hl7.org/fhir/ValueSet/task-intent|4.0.1
From the FHIR Standard
Task.priorityrequiredFixed Value: routine
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
From the FHIR Standard
Task.codepreferredKoppeltaalTaskCode_ValueSet
http://vzvz.nl/fhir/ValueSet/koppeltaal-task-code
From this IG
Task.input.typeexample
Task.output.typeexample

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorTaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorTaskIf 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-4errorTaskIf 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-5errorTaskIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceTaskA 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()
inv-1errorTaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
ref-1errorTask.partOf, Task.for, Task.requester, Task.ownerSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

This structure is derived from Task

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Task 0..* Task A task to be performed
... Slices for extension Content/Rules for all slices
.... extension:resource-origin 0..1 Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
.... extension:instantiates 0..* Reference(KT2_ActivityDefinition) Reference to ActivityDefinition
URL: http://vzvz.nl/fhir/StructureDefinition/instantiates
... identifier 1..* Identifier Task Instance Identifier
... instantiatesCanonical 0..1 canonical(KT2_ActivityDefinition) Formal definition of task
... basedOn 0..0
... groupIdentifier 0..0
... partOf 0..* Reference(KT2_Task) Composite task
... statusReason 0..0
... businessStatus 0..0
... priority 0..1 code routine | urgent | asap | stat
Fixed Value: routine
... code 0..1 CodeableConcept Task Type
Binding: Koppeltaal Task Code (preferred)
... focus 0..0
... for 1..1 Reference(KT2_Patient) Beneficiary of the Task
... encounter 0..0
... requester 0..1 Reference(KT2_Practitioner) Who is asking for task to be done
... performerType 0..0
... owner 1..1 Reference(KT2_CareTeam | KT2_Patient | KT2_Practitioner | KT2_RelatedPerson) Responsible individual
... location 0..0
... reasonCode 0..0
... reasonReference 0..0
... insurance 0..0
... note 0..0
... relevantHistory 0..0
... restriction 0..0
... input 0..0
... output 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Task.codepreferredKoppeltaalTaskCode_ValueSet
http://vzvz.nl/fhir/ValueSet/koppeltaal-task-code
From this IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Task C 0..* Task A task to be performed
Constraints: dom-2, dom-3, dom-4, dom-5, dom-6, inv-1
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:resource-origin 0..1 Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
.... extension:instantiates 0..* Reference(KT2_ActivityDefinition) Reference to ActivityDefinition
URL: http://vzvz.nl/fhir/StructureDefinition/instantiates
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier 1..* Identifier Task Instance Identifier
... instantiatesCanonical Σ 0..1 canonical(KT2_ActivityDefinition) Formal definition of task
... partOf ΣC 0..* Reference(KT2_Task) Composite task
Constraints: ref-1
... status ?!Σ 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
... intent Σ 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
... priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The task's priority.
Fixed Value: routine
... code Σ 0..1 CodeableConcept Task Type
Binding: Koppeltaal Task Code (preferred)
... description Σ 0..1 string Human-readable explanation of task
... for ΣC 1..1 Reference(KT2_Patient) Beneficiary of the Task
Constraints: ref-1
... executionPeriod ΣC 0..1 Period Start and end time of execution
Constraints: per-1
... authoredOn C 0..1 dateTime Task Creation Date
... lastModified ΣC 0..1 dateTime Task Last Modified Date
... requester ΣC 0..1 Reference(KT2_Practitioner) Who is asking for task to be done
Constraints: ref-1
... owner ΣC 1..1 Reference(KT2_CareTeam | KT2_Patient | KT2_Practitioner | KT2_RelatedPerson) Responsible individual
Constraints: ref-1

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Task.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Task.statusrequiredTaskStatus
http://hl7.org/fhir/ValueSet/task-status|4.0.1
From the FHIR Standard
Task.intentrequiredTaskIntent
http://hl7.org/fhir/ValueSet/task-intent|4.0.1
From the FHIR Standard
Task.priorityrequiredFixed Value: routine
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
From the FHIR Standard
Task.codepreferredKoppeltaalTaskCode_ValueSet
http://vzvz.nl/fhir/ValueSet/koppeltaal-task-code
From this IG
Task.input.typeexample
Task.output.typeexample

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorTaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorTaskIf 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-4errorTaskIf 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-5errorTaskIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceTaskA 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()
inv-1errorTaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
per-1errorTask.executionPeriod, Task.restriction.periodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1errorTask.partOf, Task.for, Task.requester, Task.owner, Task.restriction.recipientSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Task C 0..* Task A task to be performed
Constraints: dom-2, dom-3, dom-4, dom-5, dom-6, inv-1
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... Slices for extension Content/Rules for all slices
.... extension:resource-origin 0..1 Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
.... extension:instantiates 0..* Reference(KT2_ActivityDefinition) Reference to ActivityDefinition
URL: http://vzvz.nl/fhir/StructureDefinition/instantiates
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... instantiatesCanonical Σ 0..1 canonical(KT2_ActivityDefinition) Formal definition of task
... partOf ΣC 0..* Reference(KT2_Task) Composite task
Constraints: ref-1
... status ?!Σ 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
... intent Σ 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
... priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The task's priority.
Fixed Value: routine
... code Σ 0..1 CodeableConcept Task Type
Binding: Koppeltaal Task Code (preferred)
... for ΣC 1..1 Reference(KT2_Patient) Beneficiary of the Task
Constraints: ref-1
... requester ΣC 0..1 Reference(KT2_Practitioner) Who is asking for task to be done
Constraints: ref-1
... owner ΣC 1..1 Reference(KT2_CareTeam | KT2_Patient | KT2_Practitioner | KT2_RelatedPerson) Responsible individual
Constraints: ref-1

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Task.statusrequiredTaskStatus
http://hl7.org/fhir/ValueSet/task-status|4.0.1
From the FHIR Standard
Task.intentrequiredTaskIntent
http://hl7.org/fhir/ValueSet/task-intent|4.0.1
From the FHIR Standard
Task.priorityrequiredFixed Value: routine
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
From the FHIR Standard
Task.codepreferredKoppeltaalTaskCode_ValueSet
http://vzvz.nl/fhir/ValueSet/koppeltaal-task-code
From this IG
Task.input.typeexample
Task.output.typeexample

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorTaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorTaskIf 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-4errorTaskIf 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-5errorTaskIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceTaskA 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()
inv-1errorTaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
ref-1errorTask.partOf, Task.for, Task.requester, Task.ownerSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

Differential View

This structure is derived from Task

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Task 0..* Task A task to be performed
... Slices for extension Content/Rules for all slices
.... extension:resource-origin 0..1 Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
.... extension:instantiates 0..* Reference(KT2_ActivityDefinition) Reference to ActivityDefinition
URL: http://vzvz.nl/fhir/StructureDefinition/instantiates
... identifier 1..* Identifier Task Instance Identifier
... instantiatesCanonical 0..1 canonical(KT2_ActivityDefinition) Formal definition of task
... basedOn 0..0
... groupIdentifier 0..0
... partOf 0..* Reference(KT2_Task) Composite task
... statusReason 0..0
... businessStatus 0..0
... priority 0..1 code routine | urgent | asap | stat
Fixed Value: routine
... code 0..1 CodeableConcept Task Type
Binding: Koppeltaal Task Code (preferred)
... focus 0..0
... for 1..1 Reference(KT2_Patient) Beneficiary of the Task
... encounter 0..0
... requester 0..1 Reference(KT2_Practitioner) Who is asking for task to be done
... performerType 0..0
... owner 1..1 Reference(KT2_CareTeam | KT2_Patient | KT2_Practitioner | KT2_RelatedPerson) Responsible individual
... location 0..0
... reasonCode 0..0
... reasonReference 0..0
... insurance 0..0
... note 0..0
... relevantHistory 0..0
... restriction 0..0
... input 0..0
... output 0..0

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Task.codepreferredKoppeltaalTaskCode_ValueSet
http://vzvz.nl/fhir/ValueSet/koppeltaal-task-code
From this IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Task C 0..* Task A task to be performed
Constraints: dom-2, dom-3, dom-4, dom-5, dom-6, inv-1
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... extension:resource-origin 0..1 Reference(KT2_Device) Extension
URL: http://koppeltaal.nl/fhir/StructureDefinition/resource-origin
.... extension:instantiates 0..* Reference(KT2_ActivityDefinition) Reference to ActivityDefinition
URL: http://vzvz.nl/fhir/StructureDefinition/instantiates
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier 1..* Identifier Task Instance Identifier
... instantiatesCanonical Σ 0..1 canonical(KT2_ActivityDefinition) Formal definition of task
... partOf ΣC 0..* Reference(KT2_Task) Composite task
Constraints: ref-1
... status ?!Σ 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
... intent Σ 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
... priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The task's priority.
Fixed Value: routine
... code Σ 0..1 CodeableConcept Task Type
Binding: Koppeltaal Task Code (preferred)
... description Σ 0..1 string Human-readable explanation of task
... for ΣC 1..1 Reference(KT2_Patient) Beneficiary of the Task
Constraints: ref-1
... executionPeriod ΣC 0..1 Period Start and end time of execution
Constraints: per-1
... authoredOn C 0..1 dateTime Task Creation Date
... lastModified ΣC 0..1 dateTime Task Last Modified Date
... requester ΣC 0..1 Reference(KT2_Practitioner) Who is asking for task to be done
Constraints: ref-1
... owner ΣC 1..1 Reference(KT2_CareTeam | KT2_Patient | KT2_Practitioner | KT2_RelatedPerson) Responsible individual
Constraints: ref-1

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Task.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Task.statusrequiredTaskStatus
http://hl7.org/fhir/ValueSet/task-status|4.0.1
From the FHIR Standard
Task.intentrequiredTaskIntent
http://hl7.org/fhir/ValueSet/task-intent|4.0.1
From the FHIR Standard
Task.priorityrequiredFixed Value: routine
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
From the FHIR Standard
Task.codepreferredKoppeltaalTaskCode_ValueSet
http://vzvz.nl/fhir/ValueSet/koppeltaal-task-code
From this IG
Task.input.typeexample
Task.output.typeexample

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorTaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorTaskIf 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-4errorTaskIf 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-5errorTaskIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceTaskA 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()
inv-1errorTaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
per-1errorTask.executionPeriod, Task.restriction.periodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
ref-1errorTask.partOf, Task.for, Task.requester, Task.owner, Task.restriction.recipientSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Reference to ActivityDefinition

Warning: As of 2023-11-02 the way the ActivityDefinition is referenced has changed!

A Task should refer to the ActivityDefinition it instantiates. This provides the possibility to search for Tasks that instantiate a specific instance of an ActivityDefinition, which in turn can be found based on its publisherId.

Using the element instantiatesCanonical does not allow chaining of the search parameters. Therefore this profile contains an extension instantiates which should hold the reference to the instantiated ActivityDefinition.

The element instantiatesCanonical should not be used for this reference. Receivers of a Task instance can ignore any value in the instantiatesCanonical and should look for the referred ActivityDefinition in the instantiates extension.

KT2_Task.owner

KT2_Task.owner determines which actor is the executor of the respective task.

The RelatedPerson can be assigned as the owner of a task either directly or through a CareTeam.

KT2_Task.partOf

This element is used to indicate the reference of a subtask to the main task. The main task is assigned to the patient through KT2_Task.owner = Reference(KT2_Patient). The subtask is created as follows:

  • KT2_Task.partOf references the main task
  • The KT2_RelatedPerson who assists becomes the Task.owner
  • KT2_Task.for references the Patient of the main task

KT2_Task.code

With the KT2_Task.code element the permission of a KT2_Task can be set to view. The exact meaning of the view permission can differ per application because authorisations in Koppeltaal 2.0 are defined and executed by the applications.

Validation: Task with read-only permissions

A digital intervention with read-only permissions must be related to another task where the owner has write permissions. When a Task with read-only permissions is created (indicated by Task.code = view), the following validations MUST be performed:

Applications MUST validate that:

  • Task.partOf is present
  • Task.partOf contains a reference to a Task where Task.code is absent
  • Task.for is equal to the Task.for of the Task referenced in Task.partOf

If these validations are not met, the Task with read-only permissions MUST NOT be assigned.

Example

Example showing a subtask for the RelatedPerson assigned in the Task of the patient:

{
    "resourceType" : "Task",
    "meta" : {
        "profile" : [
            "http://koppeltaal.nl/fhir/StructureDefinition/KT2Task"
        ]
    },
    "extension" : [
        {
            "url" : "http://vzvz.nl/fhir/StructureDefinition/instantiates",
            "valueReference" : {
                "reference" : "ActivityDefinition/8635519a-3ca5-4dc8-bd07-4ec1e7fefcd5",
                "type" : "ActivityDefinition"
            }
        }
    ],
    "identifier" : [
        {
            "use" : "official",
            "system" : "http:/vzvz.nl/Testtooling",
            "value" : "Vragenlijst${IdentifierValue}"
        }
    ],
    "description" : "Vul de vragenlijst zo goed mogelijk in. Dit kost ongeveer 10 minuten.",
    "partOf" : [{
        "reference" : "Task/1f2f427a-d7fd-4b91-809c-f4607365ce73",
        "type" : "Task"
    }],
    "for" : {
        "reference" : "Patient/810c315e-4720-4253-8369-1011f87691b6",
        "type" : "Patient"
    },
    "intent" : "order",
    "priority" : "routine",
    "code" : {
        "coding" : [
            {
                "system" : "http://vzvz.nl/fhir/CodeSystem/koppeltaal-task-code",
                "code" : "view",
                "display" : "This task can be viewed"
            }
        ]
    },
    "executionPeriod" : {
        "start" : "2024-07-20T08:25:05+02:00"
    },
    "requester" : {
        "reference" : "Practitioner/8849c230-5f03-4aab-83a0-8295dfc6000b",
        "type" : "Practitioner"
    },
    "owner" : {
        "reference" : "RelatedPerson/355651f0-2b28-4bf7-800d-0bbe4d96d793",
        "type" : "RelatedPerson"
    },
    "status" : "ready",
    "authoredOn" : "2024-07-30T08:25:05+02:00",
    "lastModified" : "2024-07-30T09:45:05+02:00"
}