Open Health Hub FHIR Implementation Guide
0.1.0 - v0.1.0

Open Health Hub FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: OHH Participant Task

Official URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/ohh-participant-task Version: 0.1.0
Active as of 2026-10-27 Computable Name: OhhParticipantTask

A participant task of a CarePlan to send a notification, for example a reminder, to the patient or a caregiver, or for the care provider to call the patient.

Scope and Usage

A participant task is a notification, for example a reminder, that Open Health Hub sends to the patient or a caregiver of a CarePlan, or a call task for the care provider to call the patient. A reminder or call task refers to the questionnaire task it is about in focus.

Every notification is also an activity of its CarePlan, with the same id as the activity.detail.id; a call task is not part of the CarePlan. Reading and searching work the same as for questionnaire tasks; the code is PUSH_NOTIFICATION or CALL_PATIENT.

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.

This structure is derived from Task

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task 0..* Task A task to be performed
Task.meta
Task.meta.lastUpdated 0..1 instant When the status became final, otherwise the start of the task if that has passed, otherwise when it was created
Task.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for extension.extension:taskUuid This element must be supported. 0..1 string Task UUID
URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/task-uuid
Task.basedOn This element must be supported. 1..1 Reference(CarePlan) The CarePlan the task is part of
Task.intent 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Fixed Value: order (no extensions allowed)
Task.code This element must be supported. 1..1 CodeableConcept PUSH_NOTIFICATION for a notification, CALL_PATIENT for a call by the care provider
Binding: Plan Definition Action Type Value Set (required)
Task.description This element must be supported. 0..1 string What the task is about, for example the questionnaire a reminder is for
Task.focus This element must be supported. 0..1 Reference(Task) The questionnaire task the reminder or call is about
Task.for This element must be supported. 1..1 Reference(Patient) The patient, as a contained Patient with only the patient's identifiers
Task.executionPeriod This element must be supported. 0..1 Period Start and end time of execution
Task.executionPeriod.start This element must be supported. 0..1 dateTime When the task starts
Task.executionPeriod.end This element must be supported. 0..1 dateTime When the status became final, only once it is final
Task.authoredOn This element must be supported. 1..1 dateTime When the task was created
Task.requester This element must be supported. 0..1 Reference(Practitioner | Organization) The care provider that created the CarePlan, otherwise its organisation
Task.owner This element must be supported. 1..1 Reference(Patient | Practitioner) The patient or the caregiver that receives the notification, or the care provider that should call the patient
Task.restriction This element must be supported. 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.period
Task.restriction.period.end This element must be supported. 0..1 dateTime The due date of the task

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Task.status Base required OHH Task Status Value Set 📦0.1.0 This IG
Task.code Base required Plan Definition Action Type Value Set 📦0.1.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for extension.extension:taskUuid This element must be supported. 0..1 string Task UUID
URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/task-uuid
Task.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Task.basedOn This element must be supported. This element is included in summaries. 1..1 Reference(CarePlan) The CarePlan the task is part of
Task.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: OHH Task Status Value Set (required)
Task.intent This element is included in summaries. 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.
Fixed Value: order (no extensions allowed)
Task.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept PUSH_NOTIFICATION for a notification, CALL_PATIENT for a call by the care provider
Binding: Plan Definition Action Type Value Set (required)
Task.description This element must be supported. This element is included in summaries. 0..1 string What the task is about, for example the questionnaire a reminder is for
Task.focus This element must be supported. This element is included in summaries. 0..1 Reference(Task) The questionnaire task the reminder or call is about
Task.for This element must be supported. This element is included in summaries. 1..1 Reference(Patient) The patient, as a contained Patient with only the patient's identifiers
Task.executionPeriod This element must be supported. This element is included in summaries. 0..1 Period Start and end time of execution
Task.executionPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime When the task starts
Task.executionPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime When the status became final, only once it is final
Task.authoredOn This element must be supported. C 1..1 dateTime When the task was created
Task.requester This element must be supported. This element is included in summaries. 0..1 Reference(Practitioner | Organization) The care provider that created the CarePlan, otherwise its organisation
Task.owner This element must be supported. This element is included in summaries. 1..1 Reference(Patient | Practitioner) The patient or the caregiver that receives the notification, or the care provider that should call the patient
Task.restriction This element must be supported. 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.restriction.period 0..1 Period When fulfillment sought
Task.restriction.period.end This element must be supported. This element is included in summaries. C 0..1 dateTime The due date of the task

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.status Base required OHH Task Status Value Set 📦0.1.0 This IG
Task.intent Base required TaskIntent 📍4.0.1 FHIR Std.
Task.code Base required Plan Definition Action Type Value Set 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Task If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Task If 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-4 error Task If 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-5 error Task If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Task A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-1 error Task Last modified date must be greater than or equal to authored-on date. lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1
Task.id This element is included in summaries. 0..1 id Logical id of this artifact
Task.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Task.meta.id 0..1 string Unique id for inter-element referencing
Task.meta.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.meta.versionId This element is included in summaries. 0..1 id Version specific identifier
Task.meta.lastUpdated This element is included in summaries. 0..1 instant When the status became final, otherwise the start of the task if that has passed, otherwise when it was created
Task.meta.source This element is included in summaries. 0..1 uri Identifies where the resource comes from
Task.meta.profile This element is included in summaries. 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
Task.meta.security This element is included in summaries. 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Task.meta.tag This element is included in summaries. 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Task.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
Task.contained 0..* Resource Contained, inline Resources
Task.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for extension.extension:taskUuid This element must be supported. 0..1 string Task UUID
URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/task-uuid
Task.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Task.identifier 0..* Identifier Task Instance Identifier
Task.instantiatesCanonical This element is included in summaries. 0..1 canonical(ActivityDefinition) Formal definition of task
Task.instantiatesUri This element is included in summaries. 0..1 uri Formal definition of task
Task.basedOn This element must be supported. This element is included in summaries. 1..1 Reference(CarePlan) The CarePlan the task is part of
Task.groupIdentifier This element is included in summaries. 0..1 Identifier Requisition or grouper id
Task.partOf This element is included in summaries. 0..* Reference(Task) Composite task
Task.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: OHH Task Status Value Set (required)
Task.statusReason This element is included in summaries. 0..1 CodeableConcept Reason for current status
Binding Description: (example): Codes to identify the reason for current status. These will typically be specific to a particular workflow.
Task.businessStatus This element is included in summaries. 0..1 CodeableConcept E.g. "Specimen collected", "IV prepped"
Binding Description: (example): The domain-specific business-contextual sub-state of the task. For example: "Blood drawn", "IV inserted", "Awaiting physician signature", etc.
Task.intent This element is included in summaries. 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.
Fixed Value: order (no extensions allowed)
Task.priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The task's priority.
Task.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept PUSH_NOTIFICATION for a notification, CALL_PATIENT for a call by the care provider
Binding: Plan Definition Action Type Value Set (required)
Task.description This element must be supported. This element is included in summaries. 0..1 string What the task is about, for example the questionnaire a reminder is for
Task.focus This element must be supported. This element is included in summaries. 0..1 Reference(Task) The questionnaire task the reminder or call is about
Task.for This element must be supported. This element is included in summaries. 1..1 Reference(Patient) The patient, as a contained Patient with only the patient's identifiers
Task.encounter This element is included in summaries. 0..1 Reference(Encounter) Healthcare event during which this task originated
Task.executionPeriod This element must be supported. This element is included in summaries. 0..1 Period Start and end time of execution
Task.executionPeriod.id 0..1 string Unique id for inter-element referencing
Task.executionPeriod.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.executionPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime When the task starts
Task.executionPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime When the status became final, only once it is final
Task.authoredOn This element must be supported. C 1..1 dateTime When the task was created
Task.lastModified This element is included in summaries. C 0..1 dateTime Task Last Modified Date
Task.requester This element must be supported. This element is included in summaries. 0..1 Reference(Practitioner | Organization) The care provider that created the CarePlan, otherwise its organisation
Task.performerType 0..* CodeableConcept Requested performer
Binding: ProcedurePerformerRoleCodes (preferred): The type(s) of task performers allowed.
Task.owner This element must be supported. This element is included in summaries. 1..1 Reference(Patient | Practitioner) The patient or the caregiver that receives the notification, or the care provider that should call the patient
Task.location This element is included in summaries. 0..1 Reference(Location) Where task occurs
Task.reasonCode 0..1 CodeableConcept Why task is needed
Binding Description: (example): Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.
Task.reasonReference 0..1 Reference(Resource) Why task is needed
Task.insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
Task.note 0..* Annotation Comments made about the task
Task.relevantHistory 0..* Reference(Provenance) Key events in history of the Task
Task.restriction This element must be supported. 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.id 0..1 string Unique id for inter-element referencing
Task.restriction.extension 0..* Extension Additional content defined by implementations
Task.restriction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.restriction.repetitions 0..1 positiveInt How many times to repeat
Task.restriction.period 0..1 Period When fulfillment sought
Task.restriction.period.id 0..1 string Unique id for inter-element referencing
Task.restriction.period.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.restriction.period.start This element is included in summaries. C 0..1 dateTime Starting time with inclusive boundary
Task.restriction.period.end This element must be supported. This element is included in summaries. C 0..1 dateTime The due date of the task
Task.restriction.recipient 0..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization) For whom is fulfillment sought?
Task.input 0..* BackboneElement Information used to perform task
Task.input.id 0..1 string Unique id for inter-element referencing
Task.input.extension 0..* Extension Additional content defined by implementations
Task.input.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.input.type 1..1 CodeableConcept Label for the input
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitent Medications", etc.
Task.input.value[x] 1..1 Content to use in performing the task
Task.input.value[x].valueBase64Binary base64Binary
Task.input.value[x].valueBoolean boolean
Task.input.value[x].valueCanonical canonical(Any)
Task.input.value[x].valueCode code
Task.input.value[x].valueDate date
Task.input.value[x].valueDateTime dateTime
Task.input.value[x].valueDecimal decimal
Task.input.value[x].valueId id
Task.input.value[x].valueInstant instant
Task.input.value[x].valueInteger integer
Task.input.value[x].valueMarkdown markdown
Task.input.value[x].valueOid oid
Task.input.value[x].valuePositiveInt positiveInt
Task.input.value[x].valueString string
Task.input.value[x].valueTime time
Task.input.value[x].valueUnsignedInt unsignedInt
Task.input.value[x].valueUri uri
Task.input.value[x].valueUrl url
Task.input.value[x].valueUuid uuid
Task.input.value[x].valueAddress Address
Task.input.value[x].valueAge Age
Task.input.value[x].valueAnnotation Annotation
Task.input.value[x].valueAttachment Attachment
Task.input.value[x].valueCodeableConcept CodeableConcept
Task.input.value[x].valueCoding Coding
Task.input.value[x].valueContactPoint ContactPoint
Task.input.value[x].valueCount Count
Task.input.value[x].valueDistance Distance
Task.input.value[x].valueDuration Duration
Task.input.value[x].valueHumanName HumanName
Task.input.value[x].valueIdentifier Identifier
Task.input.value[x].valueMoney Money
Task.input.value[x].valuePeriod Period
Task.input.value[x].valueQuantity Quantity
Task.input.value[x].valueRange Range
Task.input.value[x].valueRatio Ratio
Task.input.value[x].valueReference Reference(Any)
Task.input.value[x].valueSampledData SampledData
Task.input.value[x].valueSignature Signature
Task.input.value[x].valueTiming Timing
Task.input.value[x].valueContactDetail ContactDetail
Task.input.value[x].valueContributor Contributor
Task.input.value[x].valueDataRequirement DataRequirement
Task.input.value[x].valueExpression Expression
Task.input.value[x].valueParameterDefinition ParameterDefinition
Task.input.value[x].valueRelatedArtifact RelatedArtifact
Task.input.value[x].valueTriggerDefinition TriggerDefinition
Task.input.value[x].valueUsageContext UsageContext
Task.input.value[x].valueDosage Dosage
Task.input.value[x].valueMeta Meta
Task.output 0..* BackboneElement Information produced as part of task
Task.output.id 0..1 string Unique id for inter-element referencing
Task.output.extension 0..* Extension Additional content defined by implementations
Task.output.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.output.type 1..1 CodeableConcept Label for output
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Identified issues", "Preliminary results", "Filler order", "Final results", etc.
Task.output.value[x] 1..1 Result of output
Task.output.value[x].valueBase64Binary base64Binary
Task.output.value[x].valueBoolean boolean
Task.output.value[x].valueCanonical canonical(Any)
Task.output.value[x].valueCode code
Task.output.value[x].valueDate date
Task.output.value[x].valueDateTime dateTime
Task.output.value[x].valueDecimal decimal
Task.output.value[x].valueId id
Task.output.value[x].valueInstant instant
Task.output.value[x].valueInteger integer
Task.output.value[x].valueMarkdown markdown
Task.output.value[x].valueOid oid
Task.output.value[x].valuePositiveInt positiveInt
Task.output.value[x].valueString string
Task.output.value[x].valueTime time
Task.output.value[x].valueUnsignedInt unsignedInt
Task.output.value[x].valueUri uri
Task.output.value[x].valueUrl url
Task.output.value[x].valueUuid uuid
Task.output.value[x].valueAddress Address
Task.output.value[x].valueAge Age
Task.output.value[x].valueAnnotation Annotation
Task.output.value[x].valueAttachment Attachment
Task.output.value[x].valueCodeableConcept CodeableConcept
Task.output.value[x].valueCoding Coding
Task.output.value[x].valueContactPoint ContactPoint
Task.output.value[x].valueCount Count
Task.output.value[x].valueDistance Distance
Task.output.value[x].valueDuration Duration
Task.output.value[x].valueHumanName HumanName
Task.output.value[x].valueIdentifier Identifier
Task.output.value[x].valueMoney Money
Task.output.value[x].valuePeriod Period
Task.output.value[x].valueQuantity Quantity
Task.output.value[x].valueRange Range
Task.output.value[x].valueRatio Ratio
Task.output.value[x].valueReference Reference(Any)
Task.output.value[x].valueSampledData SampledData
Task.output.value[x].valueSignature Signature
Task.output.value[x].valueTiming Timing
Task.output.value[x].valueContactDetail ContactDetail
Task.output.value[x].valueContributor Contributor
Task.output.value[x].valueDataRequirement DataRequirement
Task.output.value[x].valueExpression Expression
Task.output.value[x].valueParameterDefinition ParameterDefinition
Task.output.value[x].valueRelatedArtifact RelatedArtifact
Task.output.value[x].valueTriggerDefinition TriggerDefinition
Task.output.value[x].valueUsageContext UsageContext
Task.output.value[x].valueDosage Dosage
Task.output.value[x].valueMeta Meta

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Task.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Task.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Task.status Base required OHH Task Status Value Set 📦0.1.0 This IG
Task.statusReason Base example Not State Unknown
Task.businessStatus Base example Not State Unknown
Task.intent Base required TaskIntent 📍4.0.1 FHIR Std.
Task.priority Base required Request priority 📍4.0.1 FHIR Std.
Task.code Base required Plan Definition Action Type Value Set 📦0.1.0 This IG
Task.performerType Base preferred Procedure Performer Role Codes 📍4.0.1 FHIR Std.
Task.reasonCode Base example Not State Unknown
Task.input.type Base example Not State Unknown
Task.output.type Base example Not State Unknown

Constraints

Id Grade Path(s) Description Expression
dom-2 error Task If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Task If 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-4 error Task If 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-5 error Task If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Task A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-1 error Task Last modified date must be greater than or equal to authored-on date. lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn

This structure is derived from Task

Summary

Mandatory: 5 elements
Must-Support: 15 elements
Fixed: 1 element

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from Task

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task 0..* Task A task to be performed
Task.meta
Task.meta.lastUpdated 0..1 instant When the status became final, otherwise the start of the task if that has passed, otherwise when it was created
Task.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for extension.extension:taskUuid This element must be supported. 0..1 string Task UUID
URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/task-uuid
Task.basedOn This element must be supported. 1..1 Reference(CarePlan) The CarePlan the task is part of
Task.status This element must be supported. 1..1 code draft | requested | received | accepted | +
Binding: OHH Task Status Value Set (required)
Task.intent 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Fixed Value: order (no extensions allowed)
Task.code This element must be supported. 1..1 CodeableConcept PUSH_NOTIFICATION for a notification, CALL_PATIENT for a call by the care provider
Binding: Plan Definition Action Type Value Set (required)
Task.description This element must be supported. 0..1 string What the task is about, for example the questionnaire a reminder is for
Task.focus This element must be supported. 0..1 Reference(Task) The questionnaire task the reminder or call is about
Task.for This element must be supported. 1..1 Reference(Patient) The patient, as a contained Patient with only the patient's identifiers
Task.executionPeriod This element must be supported. 0..1 Period Start and end time of execution
Task.executionPeriod.start This element must be supported. 0..1 dateTime When the task starts
Task.executionPeriod.end This element must be supported. 0..1 dateTime When the status became final, only once it is final
Task.authoredOn This element must be supported. 1..1 dateTime When the task was created
Task.requester This element must be supported. 0..1 Reference(Practitioner | Organization) The care provider that created the CarePlan, otherwise its organisation
Task.owner This element must be supported. 1..1 Reference(Patient | Practitioner) The patient or the caregiver that receives the notification, or the care provider that should call the patient
Task.restriction This element must be supported. 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.period
Task.restriction.period.end This element must be supported. 0..1 dateTime The due date of the task

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Task.status Base required OHH Task Status Value Set 📦0.1.0 This IG
Task.code Base required Plan Definition Action Type Value Set 📦0.1.0 This IG

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for extension.extension:taskUuid This element must be supported. 0..1 string Task UUID
URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/task-uuid
Task.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Task.basedOn This element must be supported. This element is included in summaries. 1..1 Reference(CarePlan) The CarePlan the task is part of
Task.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: OHH Task Status Value Set (required)
Task.intent This element is included in summaries. 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.
Fixed Value: order (no extensions allowed)
Task.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept PUSH_NOTIFICATION for a notification, CALL_PATIENT for a call by the care provider
Binding: Plan Definition Action Type Value Set (required)
Task.description This element must be supported. This element is included in summaries. 0..1 string What the task is about, for example the questionnaire a reminder is for
Task.focus This element must be supported. This element is included in summaries. 0..1 Reference(Task) The questionnaire task the reminder or call is about
Task.for This element must be supported. This element is included in summaries. 1..1 Reference(Patient) The patient, as a contained Patient with only the patient's identifiers
Task.executionPeriod This element must be supported. This element is included in summaries. 0..1 Period Start and end time of execution
Task.executionPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime When the task starts
Task.executionPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime When the status became final, only once it is final
Task.authoredOn This element must be supported. C 1..1 dateTime When the task was created
Task.requester This element must be supported. This element is included in summaries. 0..1 Reference(Practitioner | Organization) The care provider that created the CarePlan, otherwise its organisation
Task.owner This element must be supported. This element is included in summaries. 1..1 Reference(Patient | Practitioner) The patient or the caregiver that receives the notification, or the care provider that should call the patient
Task.restriction This element must be supported. 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.restriction.period 0..1 Period When fulfillment sought
Task.restriction.period.end This element must be supported. This element is included in summaries. C 0..1 dateTime The due date of the task

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.status Base required OHH Task Status Value Set 📦0.1.0 This IG
Task.intent Base required TaskIntent 📍4.0.1 FHIR Std.
Task.code Base required Plan Definition Action Type Value Set 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Task If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Task If 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-4 error Task If 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-5 error Task If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Task A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-1 error Task Last modified date must be greater than or equal to authored-on date. lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1
Task.id This element is included in summaries. 0..1 id Logical id of this artifact
Task.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Task.meta.id 0..1 string Unique id for inter-element referencing
Task.meta.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.meta.versionId This element is included in summaries. 0..1 id Version specific identifier
Task.meta.lastUpdated This element is included in summaries. 0..1 instant When the status became final, otherwise the start of the task if that has passed, otherwise when it was created
Task.meta.source This element is included in summaries. 0..1 uri Identifies where the resource comes from
Task.meta.profile This element is included in summaries. 0..* canonical(StructureDefinition) Profiles this resource claims to conform to
Task.meta.security This element is included in summaries. 0..* Coding Security Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.
Task.meta.tag This element is included in summaries. 0..* Coding Tags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Task.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
Task.contained 0..* Resource Contained, inline Resources
Task.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for extension.extension:taskUuid This element must be supported. 0..1 string Task UUID
URL: https://api.openhealthhub.com/OpenHealthhub/fhir/4/StructureDefinition/task-uuid
Task.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Task.identifier 0..* Identifier Task Instance Identifier
Task.instantiatesCanonical This element is included in summaries. 0..1 canonical(ActivityDefinition) Formal definition of task
Task.instantiatesUri This element is included in summaries. 0..1 uri Formal definition of task
Task.basedOn This element must be supported. This element is included in summaries. 1..1 Reference(CarePlan) The CarePlan the task is part of
Task.groupIdentifier This element is included in summaries. 0..1 Identifier Requisition or grouper id
Task.partOf This element is included in summaries. 0..* Reference(Task) Composite task
Task.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: OHH Task Status Value Set (required)
Task.statusReason This element is included in summaries. 0..1 CodeableConcept Reason for current status
Binding Description: (example): Codes to identify the reason for current status. These will typically be specific to a particular workflow.
Task.businessStatus This element is included in summaries. 0..1 CodeableConcept E.g. "Specimen collected", "IV prepped"
Binding Description: (example): The domain-specific business-contextual sub-state of the task. For example: "Blood drawn", "IV inserted", "Awaiting physician signature", etc.
Task.intent This element is included in summaries. 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.
Fixed Value: order (no extensions allowed)
Task.priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The task's priority.
Task.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept PUSH_NOTIFICATION for a notification, CALL_PATIENT for a call by the care provider
Binding: Plan Definition Action Type Value Set (required)
Task.description This element must be supported. This element is included in summaries. 0..1 string What the task is about, for example the questionnaire a reminder is for
Task.focus This element must be supported. This element is included in summaries. 0..1 Reference(Task) The questionnaire task the reminder or call is about
Task.for This element must be supported. This element is included in summaries. 1..1 Reference(Patient) The patient, as a contained Patient with only the patient's identifiers
Task.encounter This element is included in summaries. 0..1 Reference(Encounter) Healthcare event during which this task originated
Task.executionPeriod This element must be supported. This element is included in summaries. 0..1 Period Start and end time of execution
Task.executionPeriod.id 0..1 string Unique id for inter-element referencing
Task.executionPeriod.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.executionPeriod.start This element must be supported. This element is included in summaries. C 0..1 dateTime When the task starts
Task.executionPeriod.end This element must be supported. This element is included in summaries. C 0..1 dateTime When the status became final, only once it is final
Task.authoredOn This element must be supported. C 1..1 dateTime When the task was created
Task.lastModified This element is included in summaries. C 0..1 dateTime Task Last Modified Date
Task.requester This element must be supported. This element is included in summaries. 0..1 Reference(Practitioner | Organization) The care provider that created the CarePlan, otherwise its organisation
Task.performerType 0..* CodeableConcept Requested performer
Binding: ProcedurePerformerRoleCodes (preferred): The type(s) of task performers allowed.
Task.owner This element must be supported. This element is included in summaries. 1..1 Reference(Patient | Practitioner) The patient or the caregiver that receives the notification, or the care provider that should call the patient
Task.location This element is included in summaries. 0..1 Reference(Location) Where task occurs
Task.reasonCode 0..1 CodeableConcept Why task is needed
Binding Description: (example): Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.
Task.reasonReference 0..1 Reference(Resource) Why task is needed
Task.insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
Task.note 0..* Annotation Comments made about the task
Task.relevantHistory 0..* Reference(Provenance) Key events in history of the Task
Task.restriction This element must be supported. 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.id 0..1 string Unique id for inter-element referencing
Task.restriction.extension 0..* Extension Additional content defined by implementations
Task.restriction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.restriction.repetitions 0..1 positiveInt How many times to repeat
Task.restriction.period 0..1 Period When fulfillment sought
Task.restriction.period.id 0..1 string Unique id for inter-element referencing
Task.restriction.period.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.restriction.period.start This element is included in summaries. C 0..1 dateTime Starting time with inclusive boundary
Task.restriction.period.end This element must be supported. This element is included in summaries. C 0..1 dateTime The due date of the task
Task.restriction.recipient 0..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization) For whom is fulfillment sought?
Task.input 0..* BackboneElement Information used to perform task
Task.input.id 0..1 string Unique id for inter-element referencing
Task.input.extension 0..* Extension Additional content defined by implementations
Task.input.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.input.type 1..1 CodeableConcept Label for the input
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitent Medications", etc.
Task.input.value[x] 1..1 Content to use in performing the task
Task.input.value[x].valueBase64Binary base64Binary
Task.input.value[x].valueBoolean boolean
Task.input.value[x].valueCanonical canonical(Any)
Task.input.value[x].valueCode code
Task.input.value[x].valueDate date
Task.input.value[x].valueDateTime dateTime
Task.input.value[x].valueDecimal decimal
Task.input.value[x].valueId id
Task.input.value[x].valueInstant instant
Task.input.value[x].valueInteger integer
Task.input.value[x].valueMarkdown markdown
Task.input.value[x].valueOid oid
Task.input.value[x].valuePositiveInt positiveInt
Task.input.value[x].valueString string
Task.input.value[x].valueTime time
Task.input.value[x].valueUnsignedInt unsignedInt
Task.input.value[x].valueUri uri
Task.input.value[x].valueUrl url
Task.input.value[x].valueUuid uuid
Task.input.value[x].valueAddress Address
Task.input.value[x].valueAge Age
Task.input.value[x].valueAnnotation Annotation
Task.input.value[x].valueAttachment Attachment
Task.input.value[x].valueCodeableConcept CodeableConcept
Task.input.value[x].valueCoding Coding
Task.input.value[x].valueContactPoint ContactPoint
Task.input.value[x].valueCount Count
Task.input.value[x].valueDistance Distance
Task.input.value[x].valueDuration Duration
Task.input.value[x].valueHumanName HumanName
Task.input.value[x].valueIdentifier Identifier
Task.input.value[x].valueMoney Money
Task.input.value[x].valuePeriod Period
Task.input.value[x].valueQuantity Quantity
Task.input.value[x].valueRange Range
Task.input.value[x].valueRatio Ratio
Task.input.value[x].valueReference Reference(Any)
Task.input.value[x].valueSampledData SampledData
Task.input.value[x].valueSignature Signature
Task.input.value[x].valueTiming Timing
Task.input.value[x].valueContactDetail ContactDetail
Task.input.value[x].valueContributor Contributor
Task.input.value[x].valueDataRequirement DataRequirement
Task.input.value[x].valueExpression Expression
Task.input.value[x].valueParameterDefinition ParameterDefinition
Task.input.value[x].valueRelatedArtifact RelatedArtifact
Task.input.value[x].valueTriggerDefinition TriggerDefinition
Task.input.value[x].valueUsageContext UsageContext
Task.input.value[x].valueDosage Dosage
Task.input.value[x].valueMeta Meta
Task.output 0..* BackboneElement Information produced as part of task
Task.output.id 0..1 string Unique id for inter-element referencing
Task.output.extension 0..* Extension Additional content defined by implementations
Task.output.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.output.type 1..1 CodeableConcept Label for output
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Identified issues", "Preliminary results", "Filler order", "Final results", etc.
Task.output.value[x] 1..1 Result of output
Task.output.value[x].valueBase64Binary base64Binary
Task.output.value[x].valueBoolean boolean
Task.output.value[x].valueCanonical canonical(Any)
Task.output.value[x].valueCode code
Task.output.value[x].valueDate date
Task.output.value[x].valueDateTime dateTime
Task.output.value[x].valueDecimal decimal
Task.output.value[x].valueId id
Task.output.value[x].valueInstant instant
Task.output.value[x].valueInteger integer
Task.output.value[x].valueMarkdown markdown
Task.output.value[x].valueOid oid
Task.output.value[x].valuePositiveInt positiveInt
Task.output.value[x].valueString string
Task.output.value[x].valueTime time
Task.output.value[x].valueUnsignedInt unsignedInt
Task.output.value[x].valueUri uri
Task.output.value[x].valueUrl url
Task.output.value[x].valueUuid uuid
Task.output.value[x].valueAddress Address
Task.output.value[x].valueAge Age
Task.output.value[x].valueAnnotation Annotation
Task.output.value[x].valueAttachment Attachment
Task.output.value[x].valueCodeableConcept CodeableConcept
Task.output.value[x].valueCoding Coding
Task.output.value[x].valueContactPoint ContactPoint
Task.output.value[x].valueCount Count
Task.output.value[x].valueDistance Distance
Task.output.value[x].valueDuration Duration
Task.output.value[x].valueHumanName HumanName
Task.output.value[x].valueIdentifier Identifier
Task.output.value[x].valueMoney Money
Task.output.value[x].valuePeriod Period
Task.output.value[x].valueQuantity Quantity
Task.output.value[x].valueRange Range
Task.output.value[x].valueRatio Ratio
Task.output.value[x].valueReference Reference(Any)
Task.output.value[x].valueSampledData SampledData
Task.output.value[x].valueSignature Signature
Task.output.value[x].valueTiming Timing
Task.output.value[x].valueContactDetail ContactDetail
Task.output.value[x].valueContributor Contributor
Task.output.value[x].valueDataRequirement DataRequirement
Task.output.value[x].valueExpression Expression
Task.output.value[x].valueParameterDefinition ParameterDefinition
Task.output.value[x].valueRelatedArtifact RelatedArtifact
Task.output.value[x].valueTriggerDefinition TriggerDefinition
Task.output.value[x].valueUsageContext UsageContext
Task.output.value[x].valueDosage Dosage
Task.output.value[x].valueMeta Meta

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.meta.security Base extensible SecurityLabels 📍4.0.1 FHIR Std.
Task.meta.tag Base example Common Tags 📍4.0.1 FHIR Std.
Task.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Task.status Base required OHH Task Status Value Set 📦0.1.0 This IG
Task.statusReason Base example Not State Unknown
Task.businessStatus Base example Not State Unknown
Task.intent Base required TaskIntent 📍4.0.1 FHIR Std.
Task.priority Base required Request priority 📍4.0.1 FHIR Std.
Task.code Base required Plan Definition Action Type Value Set 📦0.1.0 This IG
Task.performerType Base preferred Procedure Performer Role Codes 📍4.0.1 FHIR Std.
Task.reasonCode Base example Not State Unknown
Task.input.type Base example Not State Unknown
Task.output.type Base example Not State Unknown

Constraints

Id Grade Path(s) Description Expression
dom-2 error Task If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Task If 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-4 error Task If 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-5 error Task If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Task A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
inv-1 error Task Last modified date must be greater than or equal to authored-on date. lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn

This structure is derived from Task

Summary

Mandatory: 5 elements
Must-Support: 15 elements
Fixed: 1 element

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Updating the status of a notification

A client can change the status of a notification with PUT Task/<id>, for example to cancel a reminder. Retrieve the Task, change its status and send it back:

  • Only the status can be changed, all other elements are managed by Open Health Hub and are ignored.
  • requested, ready and in-progress all mean the notification is still active; the status in the response is requested before the notification is due and in-progress once it is.
  • A completed, cancelled or failed notification can be made active again, for example to reactivate a cancelled reminder; its executionPeriod.end is then removed. If its moment has already passed, it is handled shortly, like any other notification that is due.
  • An unsupported status returns 422 Unprocessable Entity.
  • Once the patient has completed a questionnaire of the CarePlan, the status of its notifications can no longer be changed and an update returns 412 Precondition Failed. This is the same rule as for updating a CarePlan.
  • Sending the current status again changes nothing.

A status change is also visible in the CarePlan: the activity gets the new status, its scheduledPeriod.end shows when the status changed, and subscribers to the CarePlan are notified. Subscribers to the Task are notified as well, see Subscription on Task.

Completing a call task

Once the care provider has called the patient, a client can complete the call task (CALL_PATIENT) with PUT Task/<id> and the status completed, in the same way as a notification update:

  • Only an active call task can be completed. Any other status, or completing a call task that was cancelled or has failed, returns 422 Unprocessable Entity.
  • A call task can also be completed after the patient has completed a questionnaire of the CarePlan.
  • Sending the current status again changes nothing.

Completing a call task notifies the subscribers to the CarePlan, although the call task itself is not part of the CarePlan, and the subscribers to the Task.