STU3 Candidate

This page is part of the FHIR Specification (v1.8.0: STU 3 Draft). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

12.8 Resource Task - Content

Orders and Observations Work GroupMaturity Level: 0Compartments: Not linked to any defined compartments

A task to be performed.

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

Note that there are a variety of processes associated with making and processing orders. Some orders may be handled immediately by automated systems but most require real world actions by one or more humans. Some orders can only be processed when other real world actions happen, such as a patient actually presenting themselves so that the action to be performed can actually be performed. Often these real world dependencies are only implicit in the order details.

In a RESTful context, a server functions as a repository of tasks. The server itself, or other agents are expected to monitor task activity, and initiate appropriate actions to ensure task completion, updating the status of the task as it proceeds through its various stages of completion. These agents can be coordinated, following well choreographed business logic to ensure that tasks are completed. Task management may also be centrally controlled using some form of workflow engine, in which case, the workflow engine itself may update and maintain the task resources in the server, and through its orchestration activities, ensure that tasks are completed. The task resource enables either model of task management, yet provides a consistent view of the status of tasks being executed in support of healthcare workflows.

The assignment of tasks into categories by type of task and type of performer, and task status enable the server to function as a queue of work items. This queue can be polled or subscribed to by various agents, enabling automation of workflows in FHIR using existing search and subscription mechanisms. Owners, requesterss, other agents (e.g. workflow managers) can thus be ready to initiate the next steps in a complex workflow.

Tasks start in a Created state. Once they have been assigned to an owner they transition to the Ready state, indicating that they are ready to be performed. Once the owner initiates activity on the task, the task transitions to the In Progress state, indicating that work is being performed. Upon normal completion, the task enters the Completed state. If there is a failure during the task execution that prevents the task from being completed, it can also enter a Failed state, indicating an abnormal termination of the task. A task in any non-terminal state may also be Cancelled, representing an abnormal termination of the task due to external forces, rather than an error condition.

Tasks in any non-terminal state (Created, Reading, In Progress) can be suspended and resumed. When a task is suspended, it is typically resumed in the state it was in when it was originally suspended. Suspending a task suspends all of its children as well. Resuming a task resumes all of its children.

An In-progress task can also be stopped, returning it to a ready state. This may be in preparation for delegation or reassignment (e.g., because it cannot be completed by the current owner), to restart a task due to a temporary failure (e.g., to reattempt completion of the activity), or in preparation to allow others to claim the task.

The Task resource defines several operations to enable rich control over the task execution environment. A server managing task resources may allow unfettered read access to all tasks that it maintains, but restrict write access to the task resources to itself in order to exert control over the task state machine. Instead, it might offer operations on tasks that enable strictly controlled write operations following commonly accepted business rules for task management. For example, only tasks that are in the "In Process" state might be allowed to be "Completed" or "Failed". Use or support of these operations is not essential in simple workflow environments where task activity needs little management.

There is no distinct operation for creating a new task because the FHIR RESTful API already distinguishes between the create and update operations.

The task history allows applications monitoring the state of a workflow to identify tasks that are long running, perhaps stuck in some queue, to enable management activities that could ensure completion. It also enables tracking of task statistics such as wait time, or time in progress, or time to completion, enabling capture of important task metrics in support of optimization and quality improvement.

The task resource tracks the state of a task, enabling systems to ensure that tasks are completed. This information is kept separate from the operational details necessary to complete the task, as those details vary across and even within workflows. That detail is expected to be carried as the subject of the task.

Tasks may have named inputs and outputs. Inputs represent information that may or must be present in order for a task to complete. Outputs represent intermediate or final results produced by a task. For example, in a task supporting reading of radiology image, the inputs might include both the imaging study to be read, as well as relevant prior images. Outputs could represent radiology measurements as well as the Radiologist's diagnostic report.

Inputs and outputs are tracked by the task because workflow management activity may automate the transer of outputs from one task to inputs to a subsequent task.

To facilitate the integration of off the shelf workflow applications with FHIR, the task resource may reference a definition. This definition can represent a description of the workflow actitivity to be performed, using a standard workflow description language such as BPEL, BPMN, or XPDL, a workflow definition such as those defined in IHE profiles, or even simple written instructions explaining a process to be performed.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Task IDomainResourceA task to be performed
Last modified date must be greater than or equal to authored-on date.
... identifier 0..*IdentifierTask Instance Identifier
... definition[x] Σ0..1Formal definition of task
.... definitionUriuri
.... definitionReferenceReference(ActivityDefinition)
... basedOn Σ0..*Reference(Any)Request fulfilled by this task
... groupIdentifier Σ0..1IdentifierRequisition or grouper id
... partOf Σ0..*Reference(Task)Composite task
... status Σ1..1codedraft | requested | received | accepted | +
TaskStatus (Required)
... statusReason Σ0..1CodeableConceptReason for current status
... businessStatus Σ0..1CodeableConceptE.g. "Specimen collected", "IV prepped"
... intent Σ1..1codeproposed | planned | actionable +
RequestIntent (Required)
... priority 0..1codenormal | urgent | asap | stat
RequestPriority (Required)
... code Σ0..1CodeableConceptTask Type
... description Σ0..1stringHuman-readable explanation of task
... focus Σ0..1Reference(Any)What task is acting on
... for Σ0..1Reference(Any)Beneficiary of the Task
... context Σ0..1Reference(Encounter | EpisodeOfCare)Healthcare event during which this task originated
... executionPeriod Σ0..1PeriodStart and end time of execution
... authoredOn I0..1dateTimeTask Creation Date
... lastModified ΣI0..1dateTimeTask Last Modified Date
... requester Σ0..1BackboneElementWho is asking for task to be done
.... agent Σ1..1Reference(Device | Organization | Patient | Practitioner | RelatedPerson)Individual asking for task
.... onBehalfOf 0..1Reference(Organization)Organization individual is acting for
... performerType 0..*CodeableConceptrequester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
TaskPerformerType (Preferred)
... owner Σ0..1Reference(Device | Organization | Patient | Practitioner | RelatedPerson)Task Owner
... reason 0..1CodeableConceptWhy task is needed
... note 0..*AnnotationComments made about the task
... relevantHistory 0..*Reference(Provenance)Key events in history of the Task
... restriction 0..1BackboneElementConstraints on fulfillment tasks
.... repetitions 0..1positiveIntHow many times to repeat
.... period 0..1PeriodOver what time-period is fulfillment sought
.... recipient 0..*Reference(Patient | Practitioner | RelatedPerson | Group | Organization)For whom is fulfillment sought?
... input 0..*BackboneElementInformation used to perform task
.... type 1..1CodeableConceptLabel for the input
.... value[x] 1..1*Content to use in performing the task
... output 0..*BackboneElementInformation produced as part of task
.... type 1..1CodeableConceptLabel for output
.... value[x] 1..1*Result of output

doco Documentation for this format

UML Diagram (Legend)

Task (DomainResource)The business identifier for this taskidentifier : Identifier [0..*]A reference to a formal or informal definition of the task. For example, a protocol, a step within a defined workflow definition, etcdefinition[x] : Type [0..1] « uri|Reference(ActivityDefinition) »BasedOn refers to a higher-level authorization that triggered the creation of the task. It references a "request" resource such as a DiagnosticRequest, MedicationRequest, ProcedureRequest, CarePlan, etc. which is distinct from the "request" resource the task is seeking to fulfil. This latter resource is referenced by FocusOn. For example, based on a DiagnosticRequest (= BasedOn), a task is created to fulfil a procedureRequest ( = FocusOn ) to collect a specimen from a patientbasedOn : Reference [0..*] « Any »An identifier that links together multiple tasks and other requests that were created in the same contextgroupIdentifier : Identifier [0..1]Task that this particular task is part ofpartOf : Reference [0..*] « Task »The current status of the taskstatus : code [1..1] « The current status of the task. (Strength=Required)TaskStatus! »An explanation as to why this task is held, failed, was refused, etcstatusReason : CodeableConcept [0..1]Contains business-specific nuances of the business statebusinessStatus : CodeableConcept [0..1]Indicates the "level" of actionability associated with the Task. I.e. Is this a proposed task, a planned task, an actionable task, etcintent : code [1..1] « Distinguishes whether the task is a proposal, plan or full order (Strength=Required)RequestIntent! »Indicates how quickly the Task should be addressed with respect to other requestspriority : code [0..1] « The task's priority (Strength=Required)RequestPriority! »A name or code (or both) briefly describing what the task involvescode : CodeableConcept [0..1]A free-text description of what is to be performeddescription : string [0..1]The request being actioned or the resource being manipulated by this taskfocus : Reference [0..1] « Any »The entity who benefits from the performance of the service specified in the task (e.g., the patient)for : Reference [0..1] « Any »The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was createdcontext : Reference [0..1] « Encounter|EpisodeOfCare »Identifies the time action was first taken against the task (start) and/or the time final action was taken against the task prior to marking it as completed (end)executionPeriod : Period [0..1]The date and time this task was createdauthoredOn : dateTime [0..1]The date and time of last modification to this tasklastModified : dateTime [0..1]The type of participant that can execute the taskperformerType : CodeableConcept [0..*] « The type(s) of task performers allowed (Strength=Preferred)TaskPerformerType? »The owner of this task. The participant who can execute this taskowner : Reference [0..1] « Device|Organization|Patient|Practitioner| RelatedPerson »A description or code indicating why this task needs to be performedreason : CodeableConcept [0..1]Free-text information captured about the task as it progressesnote : Annotation [0..*]Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the taskrelevantHistory : Reference [0..*] « Provenance »RequesterThe device, practitioner, etc. who initiated the taskagent : Reference [1..1] « Device|Organization|Patient|Practitioner| RelatedPerson »The organization the device or practitioner was acting on behalf of when they initiated the taskonBehalfOf : Reference [0..1] « Organization »RestrictionIndicates the number of times the requested action should occurrepetitions : positiveInt [0..1]Over what time-period is fulfillment soughtperiod : Period [0..1]For requests that are targeted to more than on potential recipient/target, for whom is fulfillment sought?recipient : Reference [0..*] « Patient|Practitioner|RelatedPerson| Group|Organization »ParameterA code or description indicating how the input is intended to be used as part of the task executiontype : CodeableConcept [1..1]The value of the input parameter as a basic typevalue[x] : * [1..1]OutputThe name of the Output parametertype : CodeableConcept [1..1]The value of the Output parameter as a basic typevalue[x] : * [1..1]The creator of the taskrequester[0..1]If the Task.focus is a request resource and the task is seeking fulfillment (i.e is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actionedrestriction[0..1]Additional information that may be needed in the execution of the taskinput[0..*]Outputs produced by the Taskoutput[0..*]

XML Template

<Task xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Task Instance Identifier --></identifier>
 <definition[x]><!-- 0..1 uri|Reference(ActivityDefinition) Formal definition of task --></definition[x]>
 <basedOn><!-- 0..* Reference(Any) Request fulfilled by this task --></basedOn>
 <groupIdentifier><!-- 0..1 Identifier Requisition or grouper id --></groupIdentifier>
 <partOf><!-- 0..* Reference(Task) Composite task --></partOf>
 <status value="[code]"/><!-- 1..1 draft | requested | received | accepted | + -->
 <statusReason><!-- 0..1 CodeableConcept Reason for current status --></statusReason>
 <businessStatus><!-- 0..1 CodeableConcept E.g. "Specimen collected", "IV prepped" --></businessStatus>
 <intent value="[code]"/><!-- 1..1 proposed | planned | actionable + -->
 <priority value="[code]"/><!-- 0..1 normal | urgent | asap | stat -->
 <code><!-- 0..1 CodeableConcept Task Type --></code>
 <description value="[string]"/><!-- 0..1 Human-readable explanation of task -->
 <focus><!-- 0..1 Reference(Any) What task is acting on --></focus>
 <for><!-- 0..1 Reference(Any) Beneficiary of the Task --></for>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Healthcare event during which this task originated --></context>
 <executionPeriod><!-- 0..1 Period Start and end time of execution --></executionPeriod>
 <authoredOn value="[dateTime]"/><!-- ?? 0..1 Task Creation Date -->
 <lastModified value="[dateTime]"/><!-- ?? 0..1 Task Last Modified Date -->
 <requester>  <!-- 0..1 Who is asking for task to be done -->
  <agent><!-- 1..1 Reference(Device|Organization|Patient|Practitioner|
    RelatedPerson) Individual asking for task --></agent>
  <onBehalfOf><!-- 0..1 Reference(Organization) Organization individual is acting for --></onBehalfOf>
 </requester>
 <performerType><!-- 0..* CodeableConcept requester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer --></performerType>
 <owner><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
   RelatedPerson) Task Owner --></owner>
 <reason><!-- 0..1 CodeableConcept Why task is needed --></reason>
 <note><!-- 0..* Annotation Comments made about the task --></note>
 <relevantHistory><!-- 0..* Reference(Provenance) Key events in history of the Task --></relevantHistory>
 <restriction>  <!-- 0..1 Constraints on fulfillment tasks -->
  <repetitions value="[positiveInt]"/><!-- 0..1 How many times to repeat -->
  <period><!-- 0..1 Period Over what time-period is fulfillment sought --></period>
  <recipient><!-- 0..* Reference(Patient|Practitioner|RelatedPerson|Group|
    Organization) For whom is fulfillment sought? --></recipient>
 </restriction>
 <input>  <!-- 0..* Information used to perform task -->
  <type><!-- 1..1 CodeableConcept Label for the input --></type>
  <value[x]><!-- 1..1 * Content to use in performing the task --></value[x]>
 </input>
 <output>  <!-- 0..* Information produced as part of task -->
  <type><!-- 1..1 CodeableConcept Label for output --></type>
  <value[x]><!-- 1..1 * Result of output --></value[x]>
 </output>
</Task>

JSON Template

{doco
  "resourceType" : "Task",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Task Instance Identifier
  // definition[x]: Formal definition of task. One of these 2:
  "definitionUri" : "<uri>",
  "definitionReference" : { Reference(ActivityDefinition) },
  "basedOn" : [{ Reference(Any) }], // Request fulfilled by this task
  "groupIdentifier" : { Identifier }, // Requisition or grouper id
  "partOf" : [{ Reference(Task) }], // Composite task
  "status" : "<code>", // R!  draft | requested | received | accepted | +
  "statusReason" : { CodeableConcept }, // Reason for current status
  "businessStatus" : { CodeableConcept }, // E.g. "Specimen collected", "IV prepped"
  "intent" : "<code>", // R!  proposed | planned | actionable +
  "priority" : "<code>", // normal | urgent | asap | stat
  "code" : { CodeableConcept }, // Task Type
  "description" : "<string>", // Human-readable explanation of task
  "focus" : { Reference(Any) }, // What task is acting on
  "for" : { Reference(Any) }, // Beneficiary of the Task
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Healthcare event during which this task originated
  "executionPeriod" : { Period }, // Start and end time of execution
  "authoredOn" : "<dateTime>", // C? Task Creation Date
  "lastModified" : "<dateTime>", // C? Task Last Modified Date
  "requester" : { // Who is asking for task to be done
    "agent" : { Reference(Device|Organization|Patient|Practitioner|
    RelatedPerson) }, // R!  Individual asking for task
    "onBehalfOf" : { Reference(Organization) } // Organization individual is acting for
  },
  "performerType" : [{ CodeableConcept }], // requester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
  "owner" : { Reference(Device|Organization|Patient|Practitioner|
   RelatedPerson) }, // Task Owner
  "reason" : { CodeableConcept }, // Why task is needed
  "note" : [{ Annotation }], // Comments made about the task
  "relevantHistory" : [{ Reference(Provenance) }], // Key events in history of the Task
  "restriction" : { // Constraints on fulfillment tasks
    "repetitions" : "<positiveInt>", // How many times to repeat
    "period" : { Period }, // Over what time-period is fulfillment sought
    "recipient" : [{ Reference(Patient|Practitioner|RelatedPerson|Group|
    Organization) }] // For whom is fulfillment sought?
  },
  "input" : [{ // Information used to perform task
    "type" : { CodeableConcept }, // R!  Label for the input
    // value[x]: Content to use in performing the task. One of these 23:
    "valueInteger" : <integer>
    "valueDecimal" : <decimal>
    "valueDateTime" : "<dateTime>"
    "valueDate" : "<date>"
    "valueInstant" : "<instant>"
    "valueString" : "<string>"
    "valueUri" : "<uri>"
    "valueBoolean" : <boolean>
    "valueCode" : "<code>"
    "valueBase64Binary" : "<base64Binary>"
    "valueCoding" : { Coding }
    "valueCodeableConcept" : { CodeableConcept }
    "valueAttachment" : { Attachment }
    "valueIdentifier" : { Identifier }
    "valueQuantity" : { Quantity }
    "valueRange" : { Range }
    "valuePeriod" : { Period }
    "valueRatio" : { Ratio }
    "valueHumanName" : { HumanName }
    "valueAddress" : { Address }
    "valueContactPoint" : { ContactPoint }
    "valueSchedule" : { Schedule }
    "valueReference" : { Reference }
  }],
  "output" : [{ // Information produced as part of task
    "type" : { CodeableConcept }, // R!  Label for output
    // value[x]: Result of output. One of these 23:
    "valueInteger" : <integer>
    "valueDecimal" : <decimal>
    "valueDateTime" : "<dateTime>"
    "valueDate" : "<date>"
    "valueInstant" : "<instant>"
    "valueString" : "<string>"
    "valueUri" : "<uri>"
    "valueBoolean" : <boolean>
    "valueCode" : "<code>"
    "valueBase64Binary" : "<base64Binary>"
    "valueCoding" : { Coding }
    "valueCodeableConcept" : { CodeableConcept }
    "valueAttachment" : { Attachment }
    "valueIdentifier" : { Identifier }
    "valueQuantity" : { Quantity }
    "valueRange" : { Range }
    "valuePeriod" : { Period }
    "valueRatio" : { Ratio }
    "valueHumanName" : { HumanName }
    "valueAddress" : { Address }
    "valueContactPoint" : { ContactPoint }
    "valueSchedule" : { Schedule }
    "valueReference" : { Reference }
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Task;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Task.identifier [ Identifier ], ... ; # 0..* Task Instance Identifier
  # Task.definition[x] : 0..1 Formal definition of task. One of these 2
    fhir:Task.definitionUri [ uri ]
    fhir:Task.definitionReference [ Reference(ActivityDefinition) ]
  fhir:Task.basedOn [ Reference(Any) ], ... ; # 0..* Request fulfilled by this task
  fhir:Task.groupIdentifier [ Identifier ]; # 0..1 Requisition or grouper id
  fhir:Task.partOf [ Reference(Task) ], ... ; # 0..* Composite task
  fhir:Task.status [ code ]; # 1..1 draft | requested | received | accepted | +
  fhir:Task.statusReason [ CodeableConcept ]; # 0..1 Reason for current status
  fhir:Task.businessStatus [ CodeableConcept ]; # 0..1 E.g. "Specimen collected", "IV prepped"
  fhir:Task.intent [ code ]; # 1..1 proposed | planned | actionable +
  fhir:Task.priority [ code ]; # 0..1 normal | urgent | asap | stat
  fhir:Task.code [ CodeableConcept ]; # 0..1 Task Type
  fhir:Task.description [ string ]; # 0..1 Human-readable explanation of task
  fhir:Task.focus [ Reference(Any) ]; # 0..1 What task is acting on
  fhir:Task.for [ Reference(Any) ]; # 0..1 Beneficiary of the Task
  fhir:Task.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Healthcare event during which this task originated
  fhir:Task.executionPeriod [ Period ]; # 0..1 Start and end time of execution
  fhir:Task.authoredOn [ dateTime ]; # 0..1 Task Creation Date
  fhir:Task.lastModified [ dateTime ]; # 0..1 Task Last Modified Date
  fhir:Task.requester [ # 0..1 Who is asking for task to be done
    fhir:Task.requester.agent [ Reference(Device|Organization|Patient|Practitioner|RelatedPerson) ]; # 1..1 Individual asking for task
    fhir:Task.requester.onBehalfOf [ Reference(Organization) ]; # 0..1 Organization individual is acting for
  ];
  fhir:Task.performerType [ CodeableConcept ], ... ; # 0..* requester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
  fhir:Task.owner [ Reference(Device|Organization|Patient|Practitioner|RelatedPerson) ]; # 0..1 Task Owner
  fhir:Task.reason [ CodeableConcept ]; # 0..1 Why task is needed
  fhir:Task.note [ Annotation ], ... ; # 0..* Comments made about the task
  fhir:Task.relevantHistory [ Reference(Provenance) ], ... ; # 0..* Key events in history of the Task
  fhir:Task.restriction [ # 0..1 Constraints on fulfillment tasks
    fhir:Task.restriction.repetitions [ positiveInt ]; # 0..1 How many times to repeat
    fhir:Task.restriction.period [ Period ]; # 0..1 Over what time-period is fulfillment sought
    fhir:Task.restriction.recipient [ Reference(Patient|Practitioner|RelatedPerson|Group|Organization) ], ... ; # 0..* For whom is fulfillment sought?
  ];
  fhir:Task.input [ # 0..* Information used to perform task
    fhir:Task.input.type [ CodeableConcept ]; # 1..1 Label for the input
    # Task.input.value[x] : 1..1 Content to use in performing the task. One of these 38
      fhir:Task.input.valueBase64Binary [ base64Binary ]
      fhir:Task.input.valueBoolean [ boolean ]
      fhir:Task.input.valueCode [ code ]
      fhir:Task.input.valueDate [ date ]
      fhir:Task.input.valueDateTime [ dateTime ]
      fhir:Task.input.valueDecimal [ decimal ]
      fhir:Task.input.valueId [ id ]
      fhir:Task.input.valueInstant [ instant ]
      fhir:Task.input.valueInteger [ integer ]
      fhir:Task.input.valueMarkdown [ markdown ]
      fhir:Task.input.valueOid [ oid ]
      fhir:Task.input.valuePositiveInt [ positiveInt ]
      fhir:Task.input.valueString [ string ]
      fhir:Task.input.valueTime [ time ]
      fhir:Task.input.valueUnsignedInt [ unsignedInt ]
      fhir:Task.input.valueUri [ uri ]
      fhir:Task.input.valueAddress [ Address ]
      fhir:Task.input.valueAge [ Age ]
      fhir:Task.input.valueAnnotation [ Annotation ]
      fhir:Task.input.valueAttachment [ Attachment ]
      fhir:Task.input.valueCodeableConcept [ CodeableConcept ]
      fhir:Task.input.valueCoding [ Coding ]
      fhir:Task.input.valueContactPoint [ ContactPoint ]
      fhir:Task.input.valueCount [ Count ]
      fhir:Task.input.valueDistance [ Distance ]
      fhir:Task.input.valueDuration [ Duration ]
      fhir:Task.input.valueHumanName [ HumanName ]
      fhir:Task.input.valueIdentifier [ Identifier ]
      fhir:Task.input.valueMoney [ Money ]
      fhir:Task.input.valuePeriod [ Period ]
      fhir:Task.input.valueQuantity [ Quantity ]
      fhir:Task.input.valueRange [ Range ]
      fhir:Task.input.valueRatio [ Ratio ]
      fhir:Task.input.valueReference [ Reference ]
      fhir:Task.input.valueSampledData [ SampledData ]
      fhir:Task.input.valueSignature [ Signature ]
      fhir:Task.input.valueTiming [ Timing ]
      fhir:Task.input.valueMeta [ Meta ]
  ], ...;
  fhir:Task.output [ # 0..* Information produced as part of task
    fhir:Task.output.type [ CodeableConcept ]; # 1..1 Label for output
    # Task.output.value[x] : 1..1 Result of output. One of these 38
      fhir:Task.output.valueBase64Binary [ base64Binary ]
      fhir:Task.output.valueBoolean [ boolean ]
      fhir:Task.output.valueCode [ code ]
      fhir:Task.output.valueDate [ date ]
      fhir:Task.output.valueDateTime [ dateTime ]
      fhir:Task.output.valueDecimal [ decimal ]
      fhir:Task.output.valueId [ id ]
      fhir:Task.output.valueInstant [ instant ]
      fhir:Task.output.valueInteger [ integer ]
      fhir:Task.output.valueMarkdown [ markdown ]
      fhir:Task.output.valueOid [ oid ]
      fhir:Task.output.valuePositiveInt [ positiveInt ]
      fhir:Task.output.valueString [ string ]
      fhir:Task.output.valueTime [ time ]
      fhir:Task.output.valueUnsignedInt [ unsignedInt ]
      fhir:Task.output.valueUri [ uri ]
      fhir:Task.output.valueAddress [ Address ]
      fhir:Task.output.valueAge [ Age ]
      fhir:Task.output.valueAnnotation [ Annotation ]
      fhir:Task.output.valueAttachment [ Attachment ]
      fhir:Task.output.valueCodeableConcept [ CodeableConcept ]
      fhir:Task.output.valueCoding [ Coding ]
      fhir:Task.output.valueContactPoint [ ContactPoint ]
      fhir:Task.output.valueCount [ Count ]
      fhir:Task.output.valueDistance [ Distance ]
      fhir:Task.output.valueDuration [ Duration ]
      fhir:Task.output.valueHumanName [ HumanName ]
      fhir:Task.output.valueIdentifier [ Identifier ]
      fhir:Task.output.valueMoney [ Money ]
      fhir:Task.output.valuePeriod [ Period ]
      fhir:Task.output.valueQuantity [ Quantity ]
      fhir:Task.output.valueRange [ Range ]
      fhir:Task.output.valueRatio [ Ratio ]
      fhir:Task.output.valueReference [ Reference ]
      fhir:Task.output.valueSampledData [ SampledData ]
      fhir:Task.output.valueSignature [ Signature ]
      fhir:Task.output.valueTiming [ Timing ]
      fhir:Task.output.valueMeta [ Meta ]
  ], ...;
]

Changes since DSTU2

This resource did not exist in Release 2

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Task IDomainResourceA task to be performed
Last modified date must be greater than or equal to authored-on date.
... identifier 0..*IdentifierTask Instance Identifier
... definition[x] Σ0..1Formal definition of task
.... definitionUriuri
.... definitionReferenceReference(ActivityDefinition)
... basedOn Σ0..*Reference(Any)Request fulfilled by this task
... groupIdentifier Σ0..1IdentifierRequisition or grouper id
... partOf Σ0..*Reference(Task)Composite task
... status Σ1..1codedraft | requested | received | accepted | +
TaskStatus (Required)
... statusReason Σ0..1CodeableConceptReason for current status
... businessStatus Σ0..1CodeableConceptE.g. "Specimen collected", "IV prepped"
... intent Σ1..1codeproposed | planned | actionable +
RequestIntent (Required)
... priority 0..1codenormal | urgent | asap | stat
RequestPriority (Required)
... code Σ0..1CodeableConceptTask Type
... description Σ0..1stringHuman-readable explanation of task
... focus Σ0..1Reference(Any)What task is acting on
... for Σ0..1Reference(Any)Beneficiary of the Task
... context Σ0..1Reference(Encounter | EpisodeOfCare)Healthcare event during which this task originated
... executionPeriod Σ0..1PeriodStart and end time of execution
... authoredOn I0..1dateTimeTask Creation Date
... lastModified ΣI0..1dateTimeTask Last Modified Date
... requester Σ0..1BackboneElementWho is asking for task to be done
.... agent Σ1..1Reference(Device | Organization | Patient | Practitioner | RelatedPerson)Individual asking for task
.... onBehalfOf 0..1Reference(Organization)Organization individual is acting for
... performerType 0..*CodeableConceptrequester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
TaskPerformerType (Preferred)
... owner Σ0..1Reference(Device | Organization | Patient | Practitioner | RelatedPerson)Task Owner
... reason 0..1CodeableConceptWhy task is needed
... note 0..*AnnotationComments made about the task
... relevantHistory 0..*Reference(Provenance)Key events in history of the Task
... restriction 0..1BackboneElementConstraints on fulfillment tasks
.... repetitions 0..1positiveIntHow many times to repeat
.... period 0..1PeriodOver what time-period is fulfillment sought
.... recipient 0..*Reference(Patient | Practitioner | RelatedPerson | Group | Organization)For whom is fulfillment sought?
... input 0..*BackboneElementInformation used to perform task
.... type 1..1CodeableConceptLabel for the input
.... value[x] 1..1*Content to use in performing the task
... output 0..*BackboneElementInformation produced as part of task
.... type 1..1CodeableConceptLabel for output
.... value[x] 1..1*Result of output

doco Documentation for this format

UML Diagram (Legend)

Task (DomainResource)The business identifier for this taskidentifier : Identifier [0..*]A reference to a formal or informal definition of the task. For example, a protocol, a step within a defined workflow definition, etcdefinition[x] : Type [0..1] « uri|Reference(ActivityDefinition) »BasedOn refers to a higher-level authorization that triggered the creation of the task. It references a "request" resource such as a DiagnosticRequest, MedicationRequest, ProcedureRequest, CarePlan, etc. which is distinct from the "request" resource the task is seeking to fulfil. This latter resource is referenced by FocusOn. For example, based on a DiagnosticRequest (= BasedOn), a task is created to fulfil a procedureRequest ( = FocusOn ) to collect a specimen from a patientbasedOn : Reference [0..*] « Any »An identifier that links together multiple tasks and other requests that were created in the same contextgroupIdentifier : Identifier [0..1]Task that this particular task is part ofpartOf : Reference [0..*] « Task »The current status of the taskstatus : code [1..1] « The current status of the task. (Strength=Required)TaskStatus! »An explanation as to why this task is held, failed, was refused, etcstatusReason : CodeableConcept [0..1]Contains business-specific nuances of the business statebusinessStatus : CodeableConcept [0..1]Indicates the "level" of actionability associated with the Task. I.e. Is this a proposed task, a planned task, an actionable task, etcintent : code [1..1] « Distinguishes whether the task is a proposal, plan or full order (Strength=Required)RequestIntent! »Indicates how quickly the Task should be addressed with respect to other requestspriority : code [0..1] « The task's priority (Strength=Required)RequestPriority! »A name or code (or both) briefly describing what the task involvescode : CodeableConcept [0..1]A free-text description of what is to be performeddescription : string [0..1]The request being actioned or the resource being manipulated by this taskfocus : Reference [0..1] « Any »The entity who benefits from the performance of the service specified in the task (e.g., the patient)for : Reference [0..1] « Any »The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was createdcontext : Reference [0..1] « Encounter|EpisodeOfCare »Identifies the time action was first taken against the task (start) and/or the time final action was taken against the task prior to marking it as completed (end)executionPeriod : Period [0..1]The date and time this task was createdauthoredOn : dateTime [0..1]The date and time of last modification to this tasklastModified : dateTime [0..1]The type of participant that can execute the taskperformerType : CodeableConcept [0..*] « The type(s) of task performers allowed (Strength=Preferred)TaskPerformerType? »The owner of this task. The participant who can execute this taskowner : Reference [0..1] « Device|Organization|Patient|Practitioner| RelatedPerson »A description or code indicating why this task needs to be performedreason : CodeableConcept [0..1]Free-text information captured about the task as it progressesnote : Annotation [0..*]Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the taskrelevantHistory : Reference [0..*] « Provenance »RequesterThe device, practitioner, etc. who initiated the taskagent : Reference [1..1] « Device|Organization|Patient|Practitioner| RelatedPerson »The organization the device or practitioner was acting on behalf of when they initiated the taskonBehalfOf : Reference [0..1] « Organization »RestrictionIndicates the number of times the requested action should occurrepetitions : positiveInt [0..1]Over what time-period is fulfillment soughtperiod : Period [0..1]For requests that are targeted to more than on potential recipient/target, for whom is fulfillment sought?recipient : Reference [0..*] « Patient|Practitioner|RelatedPerson| Group|Organization »ParameterA code or description indicating how the input is intended to be used as part of the task executiontype : CodeableConcept [1..1]The value of the input parameter as a basic typevalue[x] : * [1..1]OutputThe name of the Output parametertype : CodeableConcept [1..1]The value of the Output parameter as a basic typevalue[x] : * [1..1]The creator of the taskrequester[0..1]If the Task.focus is a request resource and the task is seeking fulfillment (i.e is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actionedrestriction[0..1]Additional information that may be needed in the execution of the taskinput[0..*]Outputs produced by the Taskoutput[0..*]

XML Template

<Task xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier Task Instance Identifier --></identifier>
 <definition[x]><!-- 0..1 uri|Reference(ActivityDefinition) Formal definition of task --></definition[x]>
 <basedOn><!-- 0..* Reference(Any) Request fulfilled by this task --></basedOn>
 <groupIdentifier><!-- 0..1 Identifier Requisition or grouper id --></groupIdentifier>
 <partOf><!-- 0..* Reference(Task) Composite task --></partOf>
 <status value="[code]"/><!-- 1..1 draft | requested | received | accepted | + -->
 <statusReason><!-- 0..1 CodeableConcept Reason for current status --></statusReason>
 <businessStatus><!-- 0..1 CodeableConcept E.g. "Specimen collected", "IV prepped" --></businessStatus>
 <intent value="[code]"/><!-- 1..1 proposed | planned | actionable + -->
 <priority value="[code]"/><!-- 0..1 normal | urgent | asap | stat -->
 <code><!-- 0..1 CodeableConcept Task Type --></code>
 <description value="[string]"/><!-- 0..1 Human-readable explanation of task -->
 <focus><!-- 0..1 Reference(Any) What task is acting on --></focus>
 <for><!-- 0..1 Reference(Any) Beneficiary of the Task --></for>
 <context><!-- 0..1 Reference(Encounter|EpisodeOfCare) Healthcare event during which this task originated --></context>
 <executionPeriod><!-- 0..1 Period Start and end time of execution --></executionPeriod>
 <authoredOn value="[dateTime]"/><!-- ?? 0..1 Task Creation Date -->
 <lastModified value="[dateTime]"/><!-- ?? 0..1 Task Last Modified Date -->
 <requester>  <!-- 0..1 Who is asking for task to be done -->
  <agent><!-- 1..1 Reference(Device|Organization|Patient|Practitioner|
    RelatedPerson) Individual asking for task --></agent>
  <onBehalfOf><!-- 0..1 Reference(Organization) Organization individual is acting for --></onBehalfOf>
 </requester>
 <performerType><!-- 0..* CodeableConcept requester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer --></performerType>
 <owner><!-- 0..1 Reference(Device|Organization|Patient|Practitioner|
   RelatedPerson) Task Owner --></owner>
 <reason><!-- 0..1 CodeableConcept Why task is needed --></reason>
 <note><!-- 0..* Annotation Comments made about the task --></note>
 <relevantHistory><!-- 0..* Reference(Provenance) Key events in history of the Task --></relevantHistory>
 <restriction>  <!-- 0..1 Constraints on fulfillment tasks -->
  <repetitions value="[positiveInt]"/><!-- 0..1 How many times to repeat -->
  <period><!-- 0..1 Period Over what time-period is fulfillment sought --></period>
  <recipient><!-- 0..* Reference(Patient|Practitioner|RelatedPerson|Group|
    Organization) For whom is fulfillment sought? --></recipient>
 </restriction>
 <input>  <!-- 0..* Information used to perform task -->
  <type><!-- 1..1 CodeableConcept Label for the input --></type>
  <value[x]><!-- 1..1 * Content to use in performing the task --></value[x]>
 </input>
 <output>  <!-- 0..* Information produced as part of task -->
  <type><!-- 1..1 CodeableConcept Label for output --></type>
  <value[x]><!-- 1..1 * Result of output --></value[x]>
 </output>
</Task>

JSON Template

{doco
  "resourceType" : "Task",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // Task Instance Identifier
  // definition[x]: Formal definition of task. One of these 2:
  "definitionUri" : "<uri>",
  "definitionReference" : { Reference(ActivityDefinition) },
  "basedOn" : [{ Reference(Any) }], // Request fulfilled by this task
  "groupIdentifier" : { Identifier }, // Requisition or grouper id
  "partOf" : [{ Reference(Task) }], // Composite task
  "status" : "<code>", // R!  draft | requested | received | accepted | +
  "statusReason" : { CodeableConcept }, // Reason for current status
  "businessStatus" : { CodeableConcept }, // E.g. "Specimen collected", "IV prepped"
  "intent" : "<code>", // R!  proposed | planned | actionable +
  "priority" : "<code>", // normal | urgent | asap | stat
  "code" : { CodeableConcept }, // Task Type
  "description" : "<string>", // Human-readable explanation of task
  "focus" : { Reference(Any) }, // What task is acting on
  "for" : { Reference(Any) }, // Beneficiary of the Task
  "context" : { Reference(Encounter|EpisodeOfCare) }, // Healthcare event during which this task originated
  "executionPeriod" : { Period }, // Start and end time of execution
  "authoredOn" : "<dateTime>", // C? Task Creation Date
  "lastModified" : "<dateTime>", // C? Task Last Modified Date
  "requester" : { // Who is asking for task to be done
    "agent" : { Reference(Device|Organization|Patient|Practitioner|
    RelatedPerson) }, // R!  Individual asking for task
    "onBehalfOf" : { Reference(Organization) } // Organization individual is acting for
  },
  "performerType" : [{ CodeableConcept }], // requester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
  "owner" : { Reference(Device|Organization|Patient|Practitioner|
   RelatedPerson) }, // Task Owner
  "reason" : { CodeableConcept }, // Why task is needed
  "note" : [{ Annotation }], // Comments made about the task
  "relevantHistory" : [{ Reference(Provenance) }], // Key events in history of the Task
  "restriction" : { // Constraints on fulfillment tasks
    "repetitions" : "<positiveInt>", // How many times to repeat
    "period" : { Period }, // Over what time-period is fulfillment sought
    "recipient" : [{ Reference(Patient|Practitioner|RelatedPerson|Group|
    Organization) }] // For whom is fulfillment sought?
  },
  "input" : [{ // Information used to perform task
    "type" : { CodeableConcept }, // R!  Label for the input
    // value[x]: Content to use in performing the task. One of these 23:
    "valueInteger" : <integer>
    "valueDecimal" : <decimal>
    "valueDateTime" : "<dateTime>"
    "valueDate" : "<date>"
    "valueInstant" : "<instant>"
    "valueString" : "<string>"
    "valueUri" : "<uri>"
    "valueBoolean" : <boolean>
    "valueCode" : "<code>"
    "valueBase64Binary" : "<base64Binary>"
    "valueCoding" : { Coding }
    "valueCodeableConcept" : { CodeableConcept }
    "valueAttachment" : { Attachment }
    "valueIdentifier" : { Identifier }
    "valueQuantity" : { Quantity }
    "valueRange" : { Range }
    "valuePeriod" : { Period }
    "valueRatio" : { Ratio }
    "valueHumanName" : { HumanName }
    "valueAddress" : { Address }
    "valueContactPoint" : { ContactPoint }
    "valueSchedule" : { Schedule }
    "valueReference" : { Reference }
  }],
  "output" : [{ // Information produced as part of task
    "type" : { CodeableConcept }, // R!  Label for output
    // value[x]: Result of output. One of these 23:
    "valueInteger" : <integer>
    "valueDecimal" : <decimal>
    "valueDateTime" : "<dateTime>"
    "valueDate" : "<date>"
    "valueInstant" : "<instant>"
    "valueString" : "<string>"
    "valueUri" : "<uri>"
    "valueBoolean" : <boolean>
    "valueCode" : "<code>"
    "valueBase64Binary" : "<base64Binary>"
    "valueCoding" : { Coding }
    "valueCodeableConcept" : { CodeableConcept }
    "valueAttachment" : { Attachment }
    "valueIdentifier" : { Identifier }
    "valueQuantity" : { Quantity }
    "valueRange" : { Range }
    "valuePeriod" : { Period }
    "valueRatio" : { Ratio }
    "valueHumanName" : { HumanName }
    "valueAddress" : { Address }
    "valueContactPoint" : { ContactPoint }
    "valueSchedule" : { Schedule }
    "valueReference" : { Reference }
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:Task;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:Task.identifier [ Identifier ], ... ; # 0..* Task Instance Identifier
  # Task.definition[x] : 0..1 Formal definition of task. One of these 2
    fhir:Task.definitionUri [ uri ]
    fhir:Task.definitionReference [ Reference(ActivityDefinition) ]
  fhir:Task.basedOn [ Reference(Any) ], ... ; # 0..* Request fulfilled by this task
  fhir:Task.groupIdentifier [ Identifier ]; # 0..1 Requisition or grouper id
  fhir:Task.partOf [ Reference(Task) ], ... ; # 0..* Composite task
  fhir:Task.status [ code ]; # 1..1 draft | requested | received | accepted | +
  fhir:Task.statusReason [ CodeableConcept ]; # 0..1 Reason for current status
  fhir:Task.businessStatus [ CodeableConcept ]; # 0..1 E.g. "Specimen collected", "IV prepped"
  fhir:Task.intent [ code ]; # 1..1 proposed | planned | actionable +
  fhir:Task.priority [ code ]; # 0..1 normal | urgent | asap | stat
  fhir:Task.code [ CodeableConcept ]; # 0..1 Task Type
  fhir:Task.description [ string ]; # 0..1 Human-readable explanation of task
  fhir:Task.focus [ Reference(Any) ]; # 0..1 What task is acting on
  fhir:Task.for [ Reference(Any) ]; # 0..1 Beneficiary of the Task
  fhir:Task.context [ Reference(Encounter|EpisodeOfCare) ]; # 0..1 Healthcare event during which this task originated
  fhir:Task.executionPeriod [ Period ]; # 0..1 Start and end time of execution
  fhir:Task.authoredOn [ dateTime ]; # 0..1 Task Creation Date
  fhir:Task.lastModified [ dateTime ]; # 0..1 Task Last Modified Date
  fhir:Task.requester [ # 0..1 Who is asking for task to be done
    fhir:Task.requester.agent [ Reference(Device|Organization|Patient|Practitioner|RelatedPerson) ]; # 1..1 Individual asking for task
    fhir:Task.requester.onBehalfOf [ Reference(Organization) ]; # 0..1 Organization individual is acting for
  ];
  fhir:Task.performerType [ CodeableConcept ], ... ; # 0..* requester | dispatcher | scheduler | performer | monitor | manager | acquirer | reviewer
  fhir:Task.owner [ Reference(Device|Organization|Patient|Practitioner|RelatedPerson) ]; # 0..1 Task Owner
  fhir:Task.reason [ CodeableConcept ]; # 0..1 Why task is needed
  fhir:Task.note [ Annotation ], ... ; # 0..* Comments made about the task
  fhir:Task.relevantHistory [ Reference(Provenance) ], ... ; # 0..* Key events in history of the Task
  fhir:Task.restriction [ # 0..1 Constraints on fulfillment tasks
    fhir:Task.restriction.repetitions [ positiveInt ]; # 0..1 How many times to repeat
    fhir:Task.restriction.period [ Period ]; # 0..1 Over what time-period is fulfillment sought
    fhir:Task.restriction.recipient [ Reference(Patient|Practitioner|RelatedPerson|Group|Organization) ], ... ; # 0..* For whom is fulfillment sought?
  ];
  fhir:Task.input [ # 0..* Information used to perform task
    fhir:Task.input.type [ CodeableConcept ]; # 1..1 Label for the input
    # Task.input.value[x] : 1..1 Content to use in performing the task. One of these 38
      fhir:Task.input.valueBase64Binary [ base64Binary ]
      fhir:Task.input.valueBoolean [ boolean ]
      fhir:Task.input.valueCode [ code ]
      fhir:Task.input.valueDate [ date ]
      fhir:Task.input.valueDateTime [ dateTime ]
      fhir:Task.input.valueDecimal [ decimal ]
      fhir:Task.input.valueId [ id ]
      fhir:Task.input.valueInstant [ instant ]
      fhir:Task.input.valueInteger [ integer ]
      fhir:Task.input.valueMarkdown [ markdown ]
      fhir:Task.input.valueOid [ oid ]
      fhir:Task.input.valuePositiveInt [ positiveInt ]
      fhir:Task.input.valueString [ string ]
      fhir:Task.input.valueTime [ time ]
      fhir:Task.input.valueUnsignedInt [ unsignedInt ]
      fhir:Task.input.valueUri [ uri ]
      fhir:Task.input.valueAddress [ Address ]
      fhir:Task.input.valueAge [ Age ]
      fhir:Task.input.valueAnnotation [ Annotation ]
      fhir:Task.input.valueAttachment [ Attachment ]
      fhir:Task.input.valueCodeableConcept [ CodeableConcept ]
      fhir:Task.input.valueCoding [ Coding ]
      fhir:Task.input.valueContactPoint [ ContactPoint ]
      fhir:Task.input.valueCount [ Count ]
      fhir:Task.input.valueDistance [ Distance ]
      fhir:Task.input.valueDuration [ Duration ]
      fhir:Task.input.valueHumanName [ HumanName ]
      fhir:Task.input.valueIdentifier [ Identifier ]
      fhir:Task.input.valueMoney [ Money ]
      fhir:Task.input.valuePeriod [ Period ]
      fhir:Task.input.valueQuantity [ Quantity ]
      fhir:Task.input.valueRange [ Range ]
      fhir:Task.input.valueRatio [ Ratio ]
      fhir:Task.input.valueReference [ Reference ]
      fhir:Task.input.valueSampledData [ SampledData ]
      fhir:Task.input.valueSignature [ Signature ]
      fhir:Task.input.valueTiming [ Timing ]
      fhir:Task.input.valueMeta [ Meta ]
  ], ...;
  fhir:Task.output [ # 0..* Information produced as part of task
    fhir:Task.output.type [ CodeableConcept ]; # 1..1 Label for output
    # Task.output.value[x] : 1..1 Result of output. One of these 38
      fhir:Task.output.valueBase64Binary [ base64Binary ]
      fhir:Task.output.valueBoolean [ boolean ]
      fhir:Task.output.valueCode [ code ]
      fhir:Task.output.valueDate [ date ]
      fhir:Task.output.valueDateTime [ dateTime ]
      fhir:Task.output.valueDecimal [ decimal ]
      fhir:Task.output.valueId [ id ]
      fhir:Task.output.valueInstant [ instant ]
      fhir:Task.output.valueInteger [ integer ]
      fhir:Task.output.valueMarkdown [ markdown ]
      fhir:Task.output.valueOid [ oid ]
      fhir:Task.output.valuePositiveInt [ positiveInt ]
      fhir:Task.output.valueString [ string ]
      fhir:Task.output.valueTime [ time ]
      fhir:Task.output.valueUnsignedInt [ unsignedInt ]
      fhir:Task.output.valueUri [ uri ]
      fhir:Task.output.valueAddress [ Address ]
      fhir:Task.output.valueAge [ Age ]
      fhir:Task.output.valueAnnotation [ Annotation ]
      fhir:Task.output.valueAttachment [ Attachment ]
      fhir:Task.output.valueCodeableConcept [ CodeableConcept ]
      fhir:Task.output.valueCoding [ Coding ]
      fhir:Task.output.valueContactPoint [ ContactPoint ]
      fhir:Task.output.valueCount [ Count ]
      fhir:Task.output.valueDistance [ Distance ]
      fhir:Task.output.valueDuration [ Duration ]
      fhir:Task.output.valueHumanName [ HumanName ]
      fhir:Task.output.valueIdentifier [ Identifier ]
      fhir:Task.output.valueMoney [ Money ]
      fhir:Task.output.valuePeriod [ Period ]
      fhir:Task.output.valueQuantity [ Quantity ]
      fhir:Task.output.valueRange [ Range ]
      fhir:Task.output.valueRatio [ Ratio ]
      fhir:Task.output.valueReference [ Reference ]
      fhir:Task.output.valueSampledData [ SampledData ]
      fhir:Task.output.valueSignature [ Signature ]
      fhir:Task.output.valueTiming [ Timing ]
      fhir:Task.output.valueMeta [ Meta ]
  ], ...;
]

Changes since DSTU2

This resource did not exist in Release 2

 

Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle), JSON-LD (for RDF as JSON-LD),

PathDefinitionTypeReference
Task.status The current status of the task.RequiredTaskStatus
Task.businessStatus The domain-specific business-contextual sub-state of the task. For example: "Blood drawn", "IV inserted", "Awaiting physician signature", etc.UnknownNo details provided yet
Task.intent Distinguishes whether the task is a proposal, plan or full orderRequiredRequestIntent
Task.priority The task's priorityRequiredRequestPriority
Task.performerType The type(s) of task performers allowedPreferredTaskPerformerType
Task.reason Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.UnknownNo details provided yet
Task.input.type Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concommitent Medications", etc.UnknownNo details provided yet
Task.output.type 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.UnknownNo details provided yet

  • inv-1: Last modified date must be greater than or equal to authored-on date. (expression : lastModified >= authoredOn or lastModified.exists().not() or authoredOn.exists().not())

Tasks are often have titles (eg "My Tasks", "Outstanding Tasks for Patient X") which can be presented in a list. The task title should go into the Task.code as a coded concept and/or text.

The following diagram reflects the "typical" state machine for Task. Note that not all states will be supported by all workflows and that some workflows may support additional transitions, including transitions from terminal states (e.g. back to "in-progress" from "failed" or "completed").

Diagram showing typical state machine for the Task resource

While the intention of a "cancelled" task is that all work authorized by the task should cease, this may not always be possible practice. It is possible that the originally requested action could still be completed and still attached to the Task but this would not change the status of the task. If the placer cancels a task, it signals they no longer care about the outcome of the task.

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionPathsIn Common
authored-ondateSearch by creation dateTask.authoredOn
based-onreferenceSearch by requests this task is based onTask.basedOn
(Any)
business-statustokenSearch by business statusTask.businessStatus
codetokenSearch by task codeTask.code
contextreferenceSearch by encounter or episodeTask.context
(EpisodeOfCare, Encounter)
definition-refreferenceSearch by task definition as a ReferenceTask.definitionReference
(ActivityDefinition)
focusreferenceSearch by task focusTask.focus
(Any)
group-identifiertokenSearch by group identifierTask.groupIdentifier
identifiertokenSearch for a task instance by its business identifierTask.identifier
intenttokenSearch by task intentTask.intent
modifieddateSearch by last modification dateTask.lastModified
organizationreferenceSearch by responsible organizationTask.requester.onBehalfOf
(Organization)
ownerreferenceSearch by task ownerTask.owner
(Practitioner, Organization, Device, Patient, RelatedPerson)
part-ofreferenceSearch by task this task is part ofTask.partOf
(Task)
patientreferenceSearch by patientTask.for
(Patient)
performertokenSearch by recommended type of performer (e.g., Requester, Performer, Scheduler).Task.performerType
perioddateSearch by period Task is/was underwayTask.executionPeriod
prioritytokenSearch by task priorityTask.priority
requesterreferenceSearch by task requesterTask.requester.agent
(Practitioner, Organization, Device, Patient, RelatedPerson)
statustokenSearch by task statusTask.status
statusreasontokenSearch by status reasonTask.statusReason
subjectreferenceSearch by subjectTask.for
(Any)