eHealth Infrastructure (v2019.5.2)

StructureDefinition: ehealth-task

Introduction

A task resource describes an activity that can be performed and tracks the state of completion of that activity. It is a representation that an activity should be or has been initiated, and eventually, represents the successful or unsuccessful completion of that activity.

Scope and Usage

In scope of the eHealth Infrastructure, the Task resource is used for:

  • tracking an activity to be performed by a Practitioner, CareTeam or Organization. The entity responsible for performing the Task is identified through the extension ehealth-task-responsible.
  • coordinating which Practitioner has assigned or been assigned a Task. This is identified through owner.

Task resources are produced by eHealth Infrastructure as reaction to measurements being submitted or expected measurements not being submitted. Measurements in the form of Observation, QuestionnaireResponse or other resources are expected to be submitted by a Patient according to a measurement regime specified in a CarePlan and referenced CarePlan/ProcedureRequest.

The context in which the Task is created is identified through context. In the eHealth Infrastructure, this is currently a reference to an EpisodeOfCare, but in future use, it could be a reference to an Encounter. The focus element describes what resource the Task responsible should be acting on and can reference any resource.

Use of Task for coordinating assessment of submitted measurement

The eHealth Infrastructure supports triaging based on comparison of submitted measurements against reference ranges specified in CarePlan/ProcedureRequest. The result of triaging is captured in a ClinicalImpression which is referenced as Task focus in a Task created by the eHealth Infrastructure. The Task has:

  • Task owner that references a selected CareTeam of the CarePlan
  • Task category is coding that states need to assess a triaging result
  • Task priority reflecting the triaging result

Use of Task for resolving missing or unexpected measurement

In case the eHealth Infrastructure detects that measurement submissions are missing, it creates a Communication to the Patient reminding to follow measurement regime. It also creates a Task:

  • Task owner references the CareTeam of the CarePlan
  • Task category is coding that states need to resolve why measurement submission is missing
  • Task focus references the Communication

An unexpected measurement can be in terms of unexpected measurement type, for instance observation code or questionnaire not specified in the CarePlan/ProcedureRequest, or in terms of measurement with odd timing compared to the measurement regime.

In case the eHealth Infrastructure detects an unexpected measurement submission, it creates a ClinicalImpression resource stating this. It also creates a Task where:

  • Task owner references the CareTeam of the CarePlan
  • Task category is coding that states need to resolve unexpected measurement submission
  • Task focus references the ClinicalImpression

No use of Task for coordinating measuring to be performed by Patient

No Task resources are created to assist in adhering to a measurement regime.

Use of Task in coordinating activities across multiple patients

The Task has been extended with support for CareTeam as Task owner. It is expected that each CareTeam will provide support/monitoring of multiple patients. The Task resources owned by a CareTeam can form a list sorted by priority to support triaging.

The Task has also been extended with support for multiple Task owner. This way, CareTeam members can coordinate Task assignments (by adding Practitioner as Task owner and setting Task status) while preserving the CareTeam as fallback in case the Practitioner is unable to process the Task, for instance due to absence.

Formal Views of Profile Content

The official URL for this profile is:

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

This profile builds on Task.

This profile was published on Wed May 29 18:05:58 UTC 2019 as a draft by ehealth.sundhed.dk.

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

This structure is derived from Task

NameFlagsCard.TypeDescription & Constraintsdoco
.. Task I0..*A task to be performed.
... 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
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-task-category 1..1CodeableConceptExtension
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-task-category
Binding: TaskCategory (required)
... ehealth-task-responsible 1..1Reference(eHealth Organization | eHealth Patient | eHealth Practitioner | eHealth RelatedPerson | eHealth CareTeam) {r}Responsible entity
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-task-responsible
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierTask Instance Identifier
... definition[x] Σ0..1uri, Reference(eHealth ActivityDefinition) {r}Formal definition of task
... basedOn Σ0..*Reference(Resource) {r}Request fulfilled by this task
... groupIdentifier Σ0..1IdentifierRequisition or grouper id
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codeusual | official | temp | secondary (If known)
Binding: IdentifierUse (required)
.... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system Σ0..1uriThe namespace for the identifier value
Example General': http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
.... value Σ0..1stringThe value that is unique
Example General': 123456
.... period Σ0..1PeriodTime period when id is/was valid for use
.... assigner Σ0..1Reference(eHealth Organization) {r}Organization that issued id (may be just text)
... partOf Σ0..*Reference(eHealth Task) {r}Composite task
... status Σ1..1codedraft | requested | received | accepted | +
Binding: TaskStatus (required)
... statusReason Σ0..1CodeableConceptReason for current status
Binding: (unbound) (example)
... businessStatus Σ0..1CodeableConceptE.g. "Specimen collected", "IV prepped"
Binding: (unbound) (example)
... intent SΣ1..1codeproposal | plan | order +
Binding: RequestIntent (required)
... priority S1..1codenormal | urgent | asap | stat
Binding: RequestPriority (required)
... code Σ0..1CodeableConceptTask Type
Binding: (unbound) (example)
... description Σ0..1stringHuman-readable explanation of task
... focus Σ0..1Reference(Resource) {r}What task is acting on
... for Σ0..1Reference(Resource) {r}Beneficiary of the Task
... context Σ1..1Reference(Encounter | eHealth EpisodeOfCare) {r}Healthcare event during which this task originated
... executionPeriod Σ0..1PeriodStart and end time of execution
... authoredOn I0..1dateTimeTask Creation Date
... lastModified ΣI0..1dateTimeTask Last Modified Date
... requester ΣI0..1BackboneElementWho is asking for task to be done
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... agent Σ1..1Reference(eHealth Device | eHealth Organization | eHealth Patient | eHealth Practitioner | eHealth RelatedPerson) {r}Individual asking for task
.... onBehalfOf 0..1Reference(eHealth Organization) {r}Organization individual is acting for
... performerType 0..*CodeableConceptrequester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
Binding: TaskPerformerType (preferred)
... owner Σ0..1Reference(eHealth Organization | eHealth Patient | eHealth Practitioner | eHealth RelatedPerson) {r}Responsible individual
... reason 0..1CodeableConceptWhy task is needed
Binding: (unbound) (example)
... note 0..*AnnotationComments made about the task
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... author[x] Σ0..1Reference(eHealth Practitioner | eHealth Patient | eHealth RelatedPerson) {r}, stringIndividual responsible for the annotation
.... time Σ0..1dateTimeWhen the annotation was made
.... text 1..1stringThe annotation - text content
... relevantHistory 0..*Reference(eHealth Provenance) {r}Key events in history of the Task
... restriction I0..1BackboneElementConstraints on fulfillment tasks
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... repetitions 0..1positiveIntHow many times to repeat
.... period 0..1PeriodWhen fulfillment sought
.... recipient 0..*Reference(eHealth Patient | eHealth Practitioner | eHealth RelatedPerson | Group | eHealth Organization) {r}For whom is fulfillment sought?
... input I0..*BackboneElementInformation used to perform task
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 1..1CodeableConceptLabel for the input
Binding: (unbound) (example)
.... value[x] 1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaContent to use in performing the task
... output I0..*BackboneElementInformation produced as part of task
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 1..1CodeableConceptLabel for output
Binding: (unbound) (example)
.... value[x] 1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaResult of output

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Task I0..*A task to be performed.
... 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
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... ehealth-task-category 1..1CodeableConceptExtension
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-task-category
Binding: TaskCategory (required)
... ehealth-task-responsible 1..1Reference(eHealth Organization | eHealth Patient | eHealth Practitioner | eHealth RelatedPerson | eHealth CareTeam) {r}Responsible entity
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-task-responsible
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierTask Instance Identifier
... definition[x] Σ0..1uri, Reference(eHealth ActivityDefinition) {r}Formal definition of task
... basedOn Σ0..*Reference(Resource) {r}Request fulfilled by this task
... groupIdentifier Σ0..1IdentifierRequisition or grouper id
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codeusual | official | temp | secondary (If known)
Binding: IdentifierUse (required)
.... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system Σ0..1uriThe namespace for the identifier value
Example General': http://www.acme.com/identifiers/patient or urn:ietf:rfc:3986 if the Identifier.value itself is a full uri
.... value Σ0..1stringThe value that is unique
Example General': 123456
.... period Σ0..1PeriodTime period when id is/was valid for use
.... assigner Σ0..1Reference(eHealth Organization) {r}Organization that issued id (may be just text)
... partOf Σ0..*Reference(eHealth Task) {r}Composite task
... status Σ1..1codedraft | requested | received | accepted | +
Binding: TaskStatus (required)
... statusReason Σ0..1CodeableConceptReason for current status
Binding: (unbound) (example)
... businessStatus Σ0..1CodeableConceptE.g. "Specimen collected", "IV prepped"
Binding: (unbound) (example)
... intent SΣ1..1codeproposal | plan | order +
Binding: RequestIntent (required)
... priority S1..1codenormal | urgent | asap | stat
Binding: RequestPriority (required)
... code Σ0..1CodeableConceptTask Type
Binding: (unbound) (example)
... description Σ0..1stringHuman-readable explanation of task
... focus Σ0..1Reference(Resource) {r}What task is acting on
... for Σ0..1Reference(Resource) {r}Beneficiary of the Task
... context Σ1..1Reference(Encounter | eHealth EpisodeOfCare) {r}Healthcare event during which this task originated
... executionPeriod Σ0..1PeriodStart and end time of execution
... authoredOn I0..1dateTimeTask Creation Date
... lastModified ΣI0..1dateTimeTask Last Modified Date
... requester ΣI0..1BackboneElementWho is asking for task to be done
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... agent Σ1..1Reference(eHealth Device | eHealth Organization | eHealth Patient | eHealth Practitioner | eHealth RelatedPerson) {r}Individual asking for task
.... onBehalfOf 0..1Reference(eHealth Organization) {r}Organization individual is acting for
... performerType 0..*CodeableConceptrequester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
Binding: TaskPerformerType (preferred)
... owner Σ0..1Reference(eHealth Organization | eHealth Patient | eHealth Practitioner | eHealth RelatedPerson) {r}Responsible individual
... reason 0..1CodeableConceptWhy task is needed
Binding: (unbound) (example)
... note 0..*AnnotationComments made about the task
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
Slice: Unordered, Open by value:url
.... author[x] Σ0..1Reference(eHealth Practitioner | eHealth Patient | eHealth RelatedPerson) {r}, stringIndividual responsible for the annotation
.... time Σ0..1dateTimeWhen the annotation was made
.... text 1..1stringThe annotation - text content
... relevantHistory 0..*Reference(eHealth Provenance) {r}Key events in history of the Task
... restriction I0..1BackboneElementConstraints on fulfillment tasks
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... repetitions 0..1positiveIntHow many times to repeat
.... period 0..1PeriodWhen fulfillment sought
.... recipient 0..*Reference(eHealth Patient | eHealth Practitioner | eHealth RelatedPerson | Group | eHealth Organization) {r}For whom is fulfillment sought?
... input I0..*BackboneElementInformation used to perform task
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 1..1CodeableConceptLabel for the input
Binding: (unbound) (example)
.... value[x] 1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaContent to use in performing the task
... output I0..*BackboneElementInformation produced as part of task
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type 1..1CodeableConceptLabel for output
Binding: (unbound) (example)
.... value[x] 1..1base64Binary, boolean, code, date, dateTime, decimal, id, instant, integer, markdown, oid, positiveInt, string, time, unsignedInt, uri, Address, Age, Annotation, Attachment, CodeableConcept, Coding, ContactPoint, Count, Distance, Duration, HumanName, Identifier, Money, Period, Quantity, Range, Ratio, Reference(), SampledData, Signature, Timing, MetaResult of output

doco Documentation for this format

 

Terminology Bindings

PathNameConformanceValueSet
Task.languageCommon LanguagesextensibleCommon Languages
Task.groupIdentifier.useIdentifierUserequiredIdentifierUse
Task.groupIdentifier.typeIdentifier Type CodesextensibleIdentifier Type Codes
Task.statusTaskStatusrequiredTaskStatus
Task.statusReason?extexample
Task.businessStatus?extexample
Task.intentRequestIntentrequiredRequestIntent
Task.priorityRequestPriorityrequiredRequestPriority
Task.code?extexample
Task.performerTypeTaskPerformerTypepreferredTaskPerformerType
Task.reason?extexample
Task.input.type?extexample
Task.output.type?extexample

Constraints

IdPathDetailsRequirements
dom-2TaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1TaskIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.empty()
dom-4TaskIf 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-3TaskIf 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()
inv-1TaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
ele-1Task.requesterAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Task.restrictionAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Task.inputAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1Task.outputAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
.