Amakomaya Nepal FHIR Implementation Guide
1.0.1 - ci-build

Amakomaya Nepal FHIR Implementation Guide - Local Development build (v1.0.1) 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: 1.0.1
Active as of 2026-06-15 | 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: inv-1, 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
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 | string | Human-readable explanation of task
executionPeriod | Σ | 1..1 | Period | Start and end time of execution
authoredOn | C | 1..1 | dateTime | Task Creation Date
requester | Σ | 1..1 | Reference(Device | 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
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.
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.status | Base | required | Task Status | 📍5.0.0 | FHIR Std.
Task.intent | Base | required | Task Intent | 📍5.0.0 | FHIR Std.
Task.input.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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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`
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()`

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 | string | 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 | 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: inv-1, 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier | Task Instance Identifier
instantiatesCanonical | Σ | 0..1 | canonical(ActivityDefinition) | Formal definition of task
instantiatesUri | Σ | 0..1 | uri | Formal definition of task
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..1 | CodeableReference() | 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 Description: (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 (example): Codes to identify what the task involves. These will typically be specific to a particular workflow.
description | Σ | 1..1 | string | Human-readable explanation of task
focus | Σ C | 0..1 | Reference(Resource) | 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 | C | 1..1 | dateTime | Task Creation Date
lastModified | Σ C | 0..1 | dateTime | Task Last Modified Date
requester | Σ | 1..1 | Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
requestedPerformer |  | 0..* | CodeableReference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) | Who should perform Task Binding: ProcedurePerformerRoleCodes (preferred): The type(s) of task performers allowed.
owner | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | Type of performance Binding Description: (example): Codes to identify types of task performers.
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the task
location | Σ | 0..1 | Reference(Location) | Where task occurs
reason |  | 0..* | CodeableReference() | Why task is needed Binding Description: (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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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) | For whom is fulfillment 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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.
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 | id | 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
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
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).
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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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.
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 |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
Task.status | Base | required | Task Status | 📍5.0.0 | FHIR Std.
Task.statusReason | Base | example | Task Status Reason | 📍5.0.0 | FHIR Std.
Task.businessStatus | Base | example |  | Not State | Unknown
Task.intent | Base | required | Task Intent | 📍5.0.0 | FHIR Std.
Task.priority | Base | required | RequestPriority | 📍5.0.0 | FHIR Std.
Task.code | Base | example | Task Codes | 📍5.0.0 | FHIR Std.
Task.requestedPerformer | Base | preferred | Procedure Performer Role Codes | 📍5.0.0 | FHIR Std.
Task.performer.function | Base | example |  | Not State | Unknown
Task.reason | Base | example |  | Not State | Unknown
Task.input.type | Base | example |  | Not State | Unknown
Task.input.value[x]:valueTiming.​repeat.durationUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.periodUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.dayOfWeek | Base | required | Days Of Week | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.when | Base | required | EventTiming | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​code | Base | preferred | TimingAbbreviation | 📍5.0.0 | FHIR Std.
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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`
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()`
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()`

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: inv-1, 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
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 | string | Human-readable explanation of task
executionPeriod | Σ | 1..1 | Period | Start and end time of execution
authoredOn | C | 1..1 | dateTime | Task Creation Date
requester | Σ | 1..1 | Reference(Device | 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
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.
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
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.status | Base | required | Task Status | 📍5.0.0 | FHIR Std.
Task.intent | Base | required | Task Intent | 📍5.0.0 | FHIR Std.
Task.input.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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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`
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()`

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 | string | 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 | 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: inv-1, 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored
identifier |  | 0..* | Identifier | Task Instance Identifier
instantiatesCanonical | Σ | 0..1 | canonical(ActivityDefinition) | Formal definition of task
instantiatesUri | Σ | 0..1 | uri | Formal definition of task
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..1 | CodeableReference() | 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 Description: (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 (example): Codes to identify what the task involves. These will typically be specific to a particular workflow.
description | Σ | 1..1 | string | Human-readable explanation of task
focus | Σ C | 0..1 | Reference(Resource) | 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 | C | 1..1 | dateTime | Task Creation Date
lastModified | Σ C | 0..1 | dateTime | Task Last Modified Date
requester | Σ | 1..1 | Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson) | Who is asking for task to be done
requestedPerformer |  | 0..* | CodeableReference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) | Who should perform Task Binding: ProcedurePerformerRoleCodes (preferred): The type(s) of task performers allowed.
owner | Σ | 0..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
function | Σ | 0..1 | CodeableConcept | Type of performance Binding Description: (example): Codes to identify types of task performers.
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) | Who performed the task
location | Σ | 0..1 | Reference(Location) | Where task occurs
reason |  | 0..* | CodeableReference() | Why task is needed Binding Description: (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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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) | For whom is fulfillment 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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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.
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 | id | 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
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
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).
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
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
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.
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 |
valueDosage |  |  | Dosage |
valueMeta |  |  | Meta |
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Task.language | Base | required | All Languages | 📍5.0.0 | FHIR Std.
Task.status | Base | required | Task Status | 📍5.0.0 | FHIR Std.
Task.statusReason | Base | example | Task Status Reason | 📍5.0.0 | FHIR Std.
Task.businessStatus | Base | example |  | Not State | Unknown
Task.intent | Base | required | Task Intent | 📍5.0.0 | FHIR Std.
Task.priority | Base | required | RequestPriority | 📍5.0.0 | FHIR Std.
Task.code | Base | example | Task Codes | 📍5.0.0 | FHIR Std.
Task.requestedPerformer | Base | preferred | Procedure Performer Role Codes | 📍5.0.0 | FHIR Std.
Task.performer.function | Base | example |  | Not State | Unknown
Task.reason | Base | example |  | Not State | Unknown
Task.input.type | Base | example |  | Not State | Unknown
Task.input.value[x]:valueTiming.​repeat.durationUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.periodUnit | Base | required | UnitsOfTime | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.dayOfWeek | Base | required | Days Of Week | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​repeat.when | Base | required | EventTiming | 📍5.0.0 | FHIR Std.
Task.input.value[x]:valueTiming.​code | Base | preferred | TimingAbbreviation | 📍5.0.0 | FHIR Std.
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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`
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()`
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()`

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