Amakomaya Nepal FHIR Implementation Guide
2.0.0 - ci-build Nepal

Amakomaya Nepal FHIR Implementation Guide - Local Development build (v2.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: Reminder Task

Official URL: https://fhir.amakomaya.com/StructureDefinition/reminder-task | Version: 2.0.0
Active as of 2026-08-21 | Computable Name: ReminderTaskProfile
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

A profile for system-generated reminder tasks created by a mobile or web application (e.g., Amakomaya App). Supports reminders for ANC visits, immunization dates, medication reminders, and follow-up actions.

Usages:

- Examples for this Profile: Task/SimpleReminderTask

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.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Task | C | 0..* | Task | A task to be performed Constraints: tsk-0, tsk-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
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.
doNotPerform | ?!Σ | 0..1 | boolean | True if Task is prohibiting action
description | Σ | 1..1 | markdown | Human-readable explanation of task
executionPeriod | Σ | 1..1 | Period | Start and end time of execution
authoredOn |  | 1..1 | dateTime | Task Creation Date
requester | Σ | 1..1 | Reference(Device | Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
input |  | 1..1 | BackboneElement | Information used to perform task
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
type |  | 1..1 | CodeableConcept | Label for the input Binding: TaskInputOutputParameterType (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitant Medications", etc.
Slices for value[x] |  | 1..1 | Timing | Content to use in performing the task Slice: Unordered, Closed by type:$this
value[x]:valueTiming |  | 1..1 | Timing | Content to use in performing the task
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.status | Base | required | Task Status | 📍6.0.0-ballot5 | FHIR Std.
Task.intent | Base | required | Task Intent | 📍6.0.0-ballot5 | FHIR Std.
Task.input.type | Base | example | Task Input/Output Parameter Type | 📍6.0.0-ballot5 | FHIR Std.

#### 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())`
tsk-0 | 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`
tsk-1 | error | Task | Task.restriction is only allowed if the Task is seeking fulfillment and a focus is specified. | `restriction.exists() implies (code.coding.where(code='fulfill' and system='http://hl7.org/fhir/CodeSystem/task-code').exists() and focus.exists() and focus.value.ofType(Reference).exists())`

This structure is derived from Task

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Task |  | 0..* | Task | A task to be performed
description |  | 1..1 | markdown | Human-readable explanation of task
executionPeriod |  | 1..1 | Period | Start and end time of execution
authoredOn |  | 1..1 | dateTime | Task Creation Date
requester |  | 1..1 | Reference(Device | Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
input |  | 1..1 | BackboneElement | Information used to perform task
Slices for value[x] |  | 1..1 | Timing | Content to use in performing the task Slice: Unordered, Open by type:$this
value[x]:valueTiming |  | 1..1 | Timing | Content to use in performing the task
repeat |  |  |  |
frequency |  | 1..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
period |  | 1..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
periodUnit |  | 1..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM)
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Task | C | 0..* | Task | A task to be performed Constraints: tsk-0, tsk-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
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
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
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
identifier |  | 0..* | Identifier | Task Instance Identifier
basedOn | Σ | 0..* | Reference(Resource) | Request fulfilled by this task
groupIdentifier | Σ | 0..1 | Identifier | Requisition or grouper id
partOf | Σ | 0..* | Reference(Task) | Composite task
status | ?!Σ | 1..1 | code | draft | requested | received | accepted | + Binding: TaskStatus (required): The current status of the task.
statusReason | Σ | 0..* | CodeableReference(Resource) | Reason for current status Binding: TaskStatusReason (example): Codes to identify the reason for current status. These will typically be specific to a particular workflow.
businessStatus | Σ | 0..1 | CodeableConcept | E.g. "Specimen collected", "IV prepped" Binding: TaskBusinessStatus (example): The domain-specific business-contextual sub-state of the task. For example: "Blood drawn", "IV inserted", "Awaiting physician signature", etc.
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 priority of a task (may affect service level applied to the task).
doNotPerform | ?!Σ | 0..1 | boolean | True if Task is prohibiting action
code | Σ C | 0..1 | CodeableConcept | Task Type Binding: TaskCode (extensible): Codes to identify what the task involves. These will typically be specific to a particular workflow.
description | Σ | 1..1 | markdown | Human-readable explanation of task
focus | Σ C | 0..* | BackboneElement | What task is acting on
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
value[x] | Σ | 1..1 | Reference(Resource), canonical(CanonicalResource) | What task is acting on
for | Σ | 0..1 | Reference(Resource) | Beneficiary of the Task
encounter | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this task originated
requestedPeriod | Σ | 0..1 | Period | When the task should be performed
executionPeriod | Σ | 1..1 | Period | Start and end time of execution
authoredOn |  | 1..1 | dateTime | Task Creation Date
lastModified | Σ | 0..1 | dateTime | Task Last Modified Date
requester | Σ | 1..1 | Reference(Device | Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
requestedPerformer |  | 0..* | CodeableReference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson | Group) | Who should perform the Task Binding: ProcedurePerformerRoleCodes (preferred): The type(s) of task performers allowed.
owner | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson | Group) | Responsible individual
performer | Σ | 0..* | BackboneElement | Who or what performed the task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: TaskPerformerFunctionCode (example): Codes to identify types of task performers.
actor | Σ | 1..1 | Reference(Practitioner | Device | Organization | PractitionerRole | CareTeam | Patient | RelatedPerson | Group) | Who performed the task
location | Σ | 0..1 | Reference(Location) | Where task occurs
reason |  | 0..* | CodeableReference(Resource) | Why task is needed Binding: TaskReason (example): Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.
insurance |  | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage
note |  | 0..* | Annotation | Comments made about the task
relevantHistory |  | 0..* | Reference(Provenance) | Key events in history of the Task
restriction | C | 0..1 | BackboneElement | Constraints on fulfillment tasks
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
repetitions |  | 0..1 | positiveInt | How many times to repeat
period |  | 0..1 | Period | When fulfillment is sought
recipient |  | 0..* | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization | Device) | Individual or entity from whom fulfillment is being sought
input |  | 1..1 | BackboneElement | Information used to perform task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
type |  | 1..1 | CodeableConcept | Label for the input Binding: TaskInputOutputParameterType (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitant Medications", etc.
Slices for value[x] |  | 1..1 | Timing | Content to use in performing the task Slice: Unordered, Closed by type:$this
value[x]:valueTiming |  | 1..1 | Timing | Content to use in performing the task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
event | Σ | 0..* | dateTime | When the event occurs
repeat | Σ C | 0..1 | Element | When the event is to occur Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10, tim-11, tim-12
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
bounds[x] | Σ | 0..1 |  | Length/Range of lengths, or (Start and/or end) limits
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
count | Σ C | 0..1 | positiveInt | Number of times to repeat
countMax | Σ C | 0..1 | positiveInt | Maximum number of times to repeat
duration | Σ C | 0..1 | decimal | How long when it happens
durationMax | Σ C | 0..1 | decimal | How long when it happens (Max)
durationUnit | Σ C | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
frequency | Σ | 1..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
frequencyMax | Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period
period | Σ C | 1..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
periodMax | Σ C | 0..1 | decimal | Upper limit of period (3-4 hours)
periodUnit | Σ C | 1..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
startOffset | Σ | 0..1 | SimpleQuantity(6.0.0-ballot5) | Events within the repeat period do not start until startOffset has elapsed
endOffset | Σ | 0..1 | SimpleQuantity(6.0.0-ballot5) | Events within the repeat period stop once endOffset before the end of the period
dayOfWeek | Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | Σ C | 0..* | time | Time of day for action
when | Σ C | 0..* | code | Code for time period of occurrence Binding: EventTiming (required): Real-world event relating to the schedule.
offset | Σ C | 0..1 | unsignedInt | Minutes from event (before or after)
code | Σ | 0..1 | CodeableConcept | C | BID | TID | QID | AM | PM | QD | QOD | + Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
output |  | 0..* | BackboneElement | Information produced as part of task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
type |  | 1..1 | CodeableConcept | Label for output Binding: TaskInputOutputParameterType (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.
value[x] |  | 1..1 |  | Result of output
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueInteger64 |  |  | integer64 |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCodeableReference |  |  | CodeableReference |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueRatioRange |  |  | RatioRange |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueAvailability |  |  | Availability |
valueExtendedContactDetail |  |  | ExtendedContactDetail |
valueVirtualServiceDetail |  |  | VirtualServiceDetail |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.language | Base | required | All Languages | 📍6.0.0-ballot5 | FHIR Std.
Task.status | Base | required | Task Status | 📍6.0.0-ballot5 | FHIR Std.
Task.statusReason | Base | example | Task Status Reason | 📍6.0.0-ballot5 | FHIR Std.
Task.businessStatus | Base | example | Task Business Status | 📍6.0.0-ballot5 | FHIR Std.
Task.intent | Base | required | Task Intent | 📍6.0.0-ballot5 | FHIR Std.
Task.priority | Base | required | RequestPriority | 📍6.0.0-ballot5 | FHIR Std.
Task.code | Base | extensible | Task Codes | 📍6.0.0-ballot5 | FHIR Std.
Task.requestedPerformer | Base | preferred | Procedure Performer Role Codes | 📍6.0.0-ballot5 | FHIR Std.
Task.performer.function | Base | example | Task Performer Function Code | 📍6.0.0-ballot5 | FHIR Std.
Task.reason | Base | example | Task Reason | 📍6.0.0-ballot5 | FHIR Std.
Task.input.type | Base | example | Task Input/Output Parameter Type | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.durationUnit | Base | required | UnitsOfTime | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.periodUnit | Base | required | UnitsOfTime | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.dayOfWeek | Base | required | Days Of Week | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.when | Base | required | EventTiming | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​code | Base | preferred | TimingAbbreviation | 📍6.0.0-ballot5 | FHIR Std.
Task.output.type | Base | example | Task Input/Output Parameter Type | 📍6.0.0-ballot5 | FHIR Std.

#### 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())`
tim-1 | error | Task.input.value[x]:valueTiming.repeat | if there's a duration, there needs to be duration units | `duration.empty() or durationUnit.exists()`
tim-2 | error | Task.input.value[x]:valueTiming.repeat | if there's a period, there needs to be period units | `period.empty() or periodUnit.exists()`
tim-4 | error | Task.input.value[x]:valueTiming.repeat | duration SHALL be a non-negative value | `duration.exists() implies duration >= 0`
tim-5 | error | Task.input.value[x]:valueTiming.repeat | period SHALL be a non-negative value | `period.exists() implies period >= 0`
tim-6 | error | Task.input.value[x]:valueTiming.repeat | If there's a periodMax, there must be a period | `periodMax.empty() or period.exists()`
tim-7 | error | Task.input.value[x]:valueTiming.repeat | If there's a durationMax, there must be a duration | `durationMax.empty() or duration.exists()`
tim-8 | error | Task.input.value[x]:valueTiming.repeat | If there's a countMax, there must be a count | `countMax.empty() or count.exists()`
tim-9 | error | Task.input.value[x]:valueTiming.repeat | If there's an offset, there must be a when (and not C, CM, CD, CV) | `offset.empty() or (when.exists() and when.select($this in ('C' | 'CM' | 'CD' | 'CV')).allFalse())`
tim-10 | error | Task.input.value[x]:valueTiming.repeat | If there's a timeOfDay, there cannot be a when, or vice versa | `timeOfDay.empty() or when.empty()`
tim-11 | error | Task.input.value[x]:valueTiming.repeat | Only use startOffset when frequency is present and > 1, and period is present | `startOffset.exists() implies (frequency > 1 and period.exists())`
tim-12 | error | Task.input.value[x]:valueTiming.repeat | Only use endOffset when frequency is present and > 1, and period is present | `endOffset.exists() implies (frequency > 1 and period.exists())`
tsk-0 | 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`
tsk-1 | error | Task | Task.restriction is only allowed if the Task is seeking fulfillment and a focus is specified. | `restriction.exists() implies (code.coding.where(code='fulfill' and system='http://hl7.org/fhir/CodeSystem/task-code').exists() and focus.exists() and focus.value.ofType(Reference).exists())`

This structure is derived from Task

Summary

Mandatory: 6 elements(3 nested mandatory elements)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Task.input.value[x]

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Task | C | 0..* | Task | A task to be performed Constraints: tsk-0, tsk-1
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
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.
doNotPerform | ?!Σ | 0..1 | boolean | True if Task is prohibiting action
description | Σ | 1..1 | markdown | Human-readable explanation of task
executionPeriod | Σ | 1..1 | Period | Start and end time of execution
authoredOn |  | 1..1 | dateTime | Task Creation Date
requester | Σ | 1..1 | Reference(Device | Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
input |  | 1..1 | BackboneElement | Information used to perform task
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
type |  | 1..1 | CodeableConcept | Label for the input Binding: TaskInputOutputParameterType (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitant Medications", etc.
Slices for value[x] |  | 1..1 | Timing | Content to use in performing the task Slice: Unordered, Closed by type:$this
value[x]:valueTiming |  | 1..1 | Timing | Content to use in performing the task
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.status | Base | required | Task Status | 📍6.0.0-ballot5 | FHIR Std.
Task.intent | Base | required | Task Intent | 📍6.0.0-ballot5 | FHIR Std.
Task.input.type | Base | example | Task Input/Output Parameter Type | 📍6.0.0-ballot5 | FHIR Std.

#### 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())`
tsk-0 | 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`
tsk-1 | error | Task | Task.restriction is only allowed if the Task is seeking fulfillment and a focus is specified. | `restriction.exists() implies (code.coding.where(code='fulfill' and system='http://hl7.org/fhir/CodeSystem/task-code').exists() and focus.exists() and focus.value.ofType(Reference).exists())`

Differential View

This structure is derived from Task

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Task |  | 0..* | Task | A task to be performed
description |  | 1..1 | markdown | Human-readable explanation of task
executionPeriod |  | 1..1 | Period | Start and end time of execution
authoredOn |  | 1..1 | dateTime | Task Creation Date
requester |  | 1..1 | Reference(Device | Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
input |  | 1..1 | BackboneElement | Information used to perform task
Slices for value[x] |  | 1..1 | Timing | Content to use in performing the task Slice: Unordered, Open by type:$this
value[x]:valueTiming |  | 1..1 | Timing | Content to use in performing the task
repeat |  |  |  |
frequency |  | 1..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
period |  | 1..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
periodUnit |  | 1..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM)
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Task | C | 0..* | Task | A task to be performed Constraints: tsk-0, tsk-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
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
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
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
identifier |  | 0..* | Identifier | Task Instance Identifier
basedOn | Σ | 0..* | Reference(Resource) | Request fulfilled by this task
groupIdentifier | Σ | 0..1 | Identifier | Requisition or grouper id
partOf | Σ | 0..* | Reference(Task) | Composite task
status | ?!Σ | 1..1 | code | draft | requested | received | accepted | + Binding: TaskStatus (required): The current status of the task.
statusReason | Σ | 0..* | CodeableReference(Resource) | Reason for current status Binding: TaskStatusReason (example): Codes to identify the reason for current status. These will typically be specific to a particular workflow.
businessStatus | Σ | 0..1 | CodeableConcept | E.g. "Specimen collected", "IV prepped" Binding: TaskBusinessStatus (example): The domain-specific business-contextual sub-state of the task. For example: "Blood drawn", "IV inserted", "Awaiting physician signature", etc.
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 priority of a task (may affect service level applied to the task).
doNotPerform | ?!Σ | 0..1 | boolean | True if Task is prohibiting action
code | Σ C | 0..1 | CodeableConcept | Task Type Binding: TaskCode (extensible): Codes to identify what the task involves. These will typically be specific to a particular workflow.
description | Σ | 1..1 | markdown | Human-readable explanation of task
focus | Σ C | 0..* | BackboneElement | What task is acting on
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
value[x] | Σ | 1..1 | Reference(Resource), canonical(CanonicalResource) | What task is acting on
for | Σ | 0..1 | Reference(Resource) | Beneficiary of the Task
encounter | Σ | 0..1 | Reference(Encounter) | Healthcare event during which this task originated
requestedPeriod | Σ | 0..1 | Period | When the task should be performed
executionPeriod | Σ | 1..1 | Period | Start and end time of execution
authoredOn |  | 1..1 | dateTime | Task Creation Date
lastModified | Σ | 0..1 | dateTime | Task Last Modified Date
requester | Σ | 1..1 | Reference(Device | Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
requestedPerformer |  | 0..* | CodeableReference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson | Group) | Who should perform the Task Binding: ProcedurePerformerRoleCodes (preferred): The type(s) of task performers allowed.
owner | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson | Group) | Responsible individual
performer | Σ | 0..* | BackboneElement | Who or what performed the task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: TaskPerformerFunctionCode (example): Codes to identify types of task performers.
actor | Σ | 1..1 | Reference(Practitioner | Device | Organization | PractitionerRole | CareTeam | Patient | RelatedPerson | Group) | Who performed the task
location | Σ | 0..1 | Reference(Location) | Where task occurs
reason |  | 0..* | CodeableReference(Resource) | Why task is needed Binding: TaskReason (example): Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.
insurance |  | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage
note |  | 0..* | Annotation | Comments made about the task
relevantHistory |  | 0..* | Reference(Provenance) | Key events in history of the Task
restriction | C | 0..1 | BackboneElement | Constraints on fulfillment tasks
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
repetitions |  | 0..1 | positiveInt | How many times to repeat
period |  | 0..1 | Period | When fulfillment is sought
recipient |  | 0..* | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization | Device) | Individual or entity from whom fulfillment is being sought
input |  | 1..1 | BackboneElement | Information used to perform task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
type |  | 1..1 | CodeableConcept | Label for the input Binding: TaskInputOutputParameterType (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitant Medications", etc.
Slices for value[x] |  | 1..1 | Timing | Content to use in performing the task Slice: Unordered, Closed by type:$this
value[x]:valueTiming |  | 1..1 | Timing | Content to use in performing the task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
event | Σ | 0..* | dateTime | When the event occurs
repeat | Σ C | 0..1 | Element | When the event is to occur Constraints: tim-1, tim-2, tim-4, tim-5, tim-6, tim-7, tim-8, tim-9, tim-10, tim-11, tim-12
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
bounds[x] | Σ | 0..1 |  | Length/Range of lengths, or (Start and/or end) limits
boundsDuration |  |  | Duration |
boundsRange |  |  | Range |
boundsPeriod |  |  | Period |
count | Σ C | 0..1 | positiveInt | Number of times to repeat
countMax | Σ C | 0..1 | positiveInt | Maximum number of times to repeat
duration | Σ C | 0..1 | decimal | How long when it happens
durationMax | Σ C | 0..1 | decimal | How long when it happens (Max)
durationUnit | Σ C | 0..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
frequency | Σ | 1..1 | positiveInt | Indicates the number of repetitions that should occur within a period. I.e. Event occurs frequency times per period
frequencyMax | Σ | 0..1 | positiveInt | Event occurs up to frequencyMax times per period
period | Σ C | 1..1 | decimal | The duration to which the frequency applies. I.e. Event occurs frequency times per period
periodMax | Σ C | 0..1 | decimal | Upper limit of period (3-4 hours)
periodUnit | Σ C | 1..1 | code | s | min | h | d | wk | mo | a - unit of time (UCUM) Binding: UnitsOfTime (required): A unit of time (units from UCUM).
startOffset | Σ | 0..1 | SimpleQuantity(6.0.0-ballot5) | Events within the repeat period do not start until startOffset has elapsed
endOffset | Σ | 0..1 | SimpleQuantity(6.0.0-ballot5) | Events within the repeat period stop once endOffset before the end of the period
dayOfWeek | Σ | 0..* | code | mon | tue | wed | thu | fri | sat | sun Binding: DaysOfWeek (required)
timeOfDay | Σ C | 0..* | time | Time of day for action
when | Σ C | 0..* | code | Code for time period of occurrence Binding: EventTiming (required): Real-world event relating to the schedule.
offset | Σ C | 0..1 | unsignedInt | Minutes from event (before or after)
code | Σ | 0..1 | CodeableConcept | C | BID | TID | QID | AM | PM | QD | QOD | + Binding: TimingAbbreviation (preferred): Code for a known / defined timing pattern.
output |  | 0..* | BackboneElement | Information produced as part of task
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
type |  | 1..1 | CodeableConcept | Label for output Binding: TaskInputOutputParameterType (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.
value[x] |  | 1..1 |  | Result of output
valueBase64Binary |  |  | base64Binary |
valueBoolean |  |  | boolean |
valueCanonical |  |  | canonical(Any) |
valueCode |  |  | code |
valueDate |  |  | date |
valueDateTime |  |  | dateTime |
valueDecimal |  |  | decimal |
valueId |  |  | id |
valueInstant |  |  | instant |
valueInteger |  |  | integer |
valueInteger64 |  |  | integer64 |
valueMarkdown |  |  | markdown |
valueOid |  |  | oid |
valuePositiveInt |  |  | positiveInt |
valueString |  |  | string |
valueTime |  |  | time |
valueUnsignedInt |  |  | unsignedInt |
valueUri |  |  | uri |
valueUrl |  |  | url |
valueUuid |  |  | uuid |
valueAddress |  |  | Address |
valueAge |  |  | Age |
valueAnnotation |  |  | Annotation |
valueAttachment |  |  | Attachment |
valueCodeableConcept |  |  | CodeableConcept |
valueCodeableReference |  |  | CodeableReference |
valueCoding |  |  | Coding |
valueContactPoint |  |  | ContactPoint |
valueCount |  |  | Count |
valueDistance |  |  | Distance |
valueDuration |  |  | Duration |
valueHumanName |  |  | HumanName |
valueIdentifier |  |  | Identifier |
valueMoney |  |  | Money |
valuePeriod |  |  | Period |
valueQuantity |  |  | Quantity |
valueRange |  |  | Range |
valueRatio |  |  | Ratio |
valueRatioRange |  |  | RatioRange |
valueReference |  |  | Reference(Any) |
valueSampledData |  |  | SampledData |
valueSignature |  |  | Signature |
valueTiming |  |  | Timing |
valueContactDetail |  |  | ContactDetail |
valueDataRequirement |  |  | DataRequirement |
valueExpression |  |  | Expression |
valueParameterDefinition |  |  | ParameterDefinition |
valueRelatedArtifact |  |  | RelatedArtifact |
valueTriggerDefinition |  |  | TriggerDefinition |
valueUsageContext |  |  | UsageContext |
valueAvailability |  |  | Availability |
valueExtendedContactDetail |  |  | ExtendedContactDetail |
valueVirtualServiceDetail |  |  | VirtualServiceDetail |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.language | Base | required | All Languages | 📍6.0.0-ballot5 | FHIR Std.
Task.status | Base | required | Task Status | 📍6.0.0-ballot5 | FHIR Std.
Task.statusReason | Base | example | Task Status Reason | 📍6.0.0-ballot5 | FHIR Std.
Task.businessStatus | Base | example | Task Business Status | 📍6.0.0-ballot5 | FHIR Std.
Task.intent | Base | required | Task Intent | 📍6.0.0-ballot5 | FHIR Std.
Task.priority | Base | required | RequestPriority | 📍6.0.0-ballot5 | FHIR Std.
Task.code | Base | extensible | Task Codes | 📍6.0.0-ballot5 | FHIR Std.
Task.requestedPerformer | Base | preferred | Procedure Performer Role Codes | 📍6.0.0-ballot5 | FHIR Std.
Task.performer.function | Base | example | Task Performer Function Code | 📍6.0.0-ballot5 | FHIR Std.
Task.reason | Base | example | Task Reason | 📍6.0.0-ballot5 | FHIR Std.
Task.input.type | Base | example | Task Input/Output Parameter Type | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.durationUnit | Base | required | UnitsOfTime | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.periodUnit | Base | required | UnitsOfTime | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.dayOfWeek | Base | required | Days Of Week | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.when | Base | required | EventTiming | 📍6.0.0-ballot5 | FHIR Std.
Task.input.value[x]:valueTiming.​code | Base | preferred | TimingAbbreviation | 📍6.0.0-ballot5 | FHIR Std.
Task.output.type | Base | example | Task Input/Output Parameter Type | 📍6.0.0-ballot5 | FHIR Std.

#### 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.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').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())`
tim-1 | error | Task.input.value[x]:valueTiming.repeat | if there's a duration, there needs to be duration units | `duration.empty() or durationUnit.exists()`
tim-2 | error | Task.input.value[x]:valueTiming.repeat | if there's a period, there needs to be period units | `period.empty() or periodUnit.exists()`
tim-4 | error | Task.input.value[x]:valueTiming.repeat | duration SHALL be a non-negative value | `duration.exists() implies duration >= 0`
tim-5 | error | Task.input.value[x]:valueTiming.repeat | period SHALL be a non-negative value | `period.exists() implies period >= 0`
tim-6 | error | Task.input.value[x]:valueTiming.repeat | If there's a periodMax, there must be a period | `periodMax.empty() or period.exists()`
tim-7 | error | Task.input.value[x]:valueTiming.repeat | If there's a durationMax, there must be a duration | `durationMax.empty() or duration.exists()`
tim-8 | error | Task.input.value[x]:valueTiming.repeat | If there's a countMax, there must be a count | `countMax.empty() or count.exists()`
tim-9 | error | Task.input.value[x]:valueTiming.repeat | If there's an offset, there must be a when (and not C, CM, CD, CV) | `offset.empty() or (when.exists() and when.select($this in ('C' | 'CM' | 'CD' | 'CV')).allFalse())`
tim-10 | error | Task.input.value[x]:valueTiming.repeat | If there's a timeOfDay, there cannot be a when, or vice versa | `timeOfDay.empty() or when.empty()`
tim-11 | error | Task.input.value[x]:valueTiming.repeat | Only use startOffset when frequency is present and > 1, and period is present | `startOffset.exists() implies (frequency > 1 and period.exists())`
tim-12 | error | Task.input.value[x]:valueTiming.repeat | Only use endOffset when frequency is present and > 1, and period is present | `endOffset.exists() implies (frequency > 1 and period.exists())`
tsk-0 | 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`
tsk-1 | error | Task | Task.restriction is only allowed if the Task is seeking fulfillment and a focus is specified. | `restriction.exists() implies (code.coding.where(code='fulfill' and system='http://hl7.org/fhir/CodeSystem/task-code').exists() and focus.exists() and focus.value.ofType(Reference).exists())`

This structure is derived from Task

Summary

Mandatory: 6 elements(3 nested mandatory elements)

Slices

This structure defines the following Slices:

- The element 1 is sliced based on the value of Task.input.value[x]

Other representations of profile: CSV, Excel, Schematron