Botswana FHIR Implementation Guide
1.0.0 - ci-build Botswana flag

Botswana FHIR Implementation Guide, published by Jembi Health Systems. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/jembi/botswana-hie-fhir-ig/ and changes regularly. See the Directory of published versions

Resource Profile: Task - Lab Orders

Official URL: http://moh.bw.org/StructureDefinition/lab-order-task Version: 1.0.0
Active as of 2026-10-13 Computable Name: LabOrderTask

Assists with tracking the state of the lab order and its completion status.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1, tsk-1
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.contained 0..* Resource Contained, inline Resources
Task.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Task.Slices for identifier 1..* Identifier Task Instance Identifier
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for identifier.identifier:FILL 1..1 Identifier Task Instance Identifier
Task.Slices for identifier.identifier:FILL.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Task.Slices for identifier.identifier:FILL.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/task-id
Task.Slices for identifier.identifier:FILL.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
Task.basedOn This element is included in summaries. 1..* Reference(ServiceRequest - Lab Orders) Request fulfilled by this task
Task.status This element is a modifier element. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
Task.intent This element is included in summaries. 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
Required Pattern: order
Task.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if Task is prohibiting action
Task.for This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Beneficiary of the Task
Task.executionPeriod This element is included in summaries. 1..1 Period Start and end time of execution
Task.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who is asking for task to be done
Task.owner This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Responsible individual
Task.output This element must be supported. 0..* BackboneElement Information produced as part of task
Task.output.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.output.type 1..1 CodeableConcept Label for output
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Identified issues", "Preliminary results", "Filler order", "Final results", etc.
Task.output.type.text This element is included in summaries. 1..1 string Plain text representation of the concept
Task.output.Slices for value[x] 1..1 Reference() Result of output
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.output.Slices for value[x].value[x]:valueReference 1..1 Reference(DiagnosticReport - Lab Order) Result of output

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.identifier:FILL.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
Task.status Base required Task Status 📍5.0.0 FHIR Std.
Task.intent Base required Task Intent 📍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
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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task 0..* Task A task to be performed
Task.Slices for identifier 1..* Identifier Task Instance Identifier
Slice: Unordered, Open by value:system
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for identifier.identifier:FILL 1..1 Identifier Task Instance Identifier
Task.Slices for identifier.identifier:FILL.system 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/task-id
Task.Slices for identifier.identifier:FILL.value 1..1 string The value that is unique
Task.basedOn 1..* Reference(ServiceRequest - Lab Orders) Request fulfilled by this task
Task.intent 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Required Pattern: order
Task.executionPeriod 1..1 Period Start and end time of execution
Task.requester 1..1 Reference(Practitioner | Service Provider) Who is asking for task to be done
Task.owner 1..1 Reference(Practitioner | Service Provider) Responsible individual
Task.output This element must be supported. 0..* BackboneElement Information produced as part of task
Task.output.type
Task.output.type.text 1..1 string Plain text representation of the concept
Task.output.Slices for value[x] 1..1 Reference() Result of output
Slice: Unordered, Open by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.output.Slices for value[x].value[x]:valueReference 1..1 Reference(DiagnosticReport - Lab Order) Result of output

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1, tsk-1
Task.id This element is included in summaries. 0..1 id Logical id of this artifact
Task.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
Task.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Task.contained 0..* Resource Contained, inline Resources
Task.extension 0..* Extension Additional content defined by implementations
Task.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Task.Slices for identifier 1..* Identifier Task Instance Identifier
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for identifier.identifier:FILL 1..1 Identifier Task Instance Identifier
Task.Slices for identifier.identifier:FILL.id 0..1 id Unique id for inter-element referencing
Task.Slices for identifier.identifier:FILL.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.Slices for identifier.identifier:FILL.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Task.Slices for identifier.identifier:FILL.type This element is included in summaries. 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
Task.Slices for identifier.identifier:FILL.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/task-id
Task.Slices for identifier.identifier:FILL.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
Task.Slices for identifier.identifier:FILL.period This element is included in summaries. 0..1 Period Time period when id is/was valid for use
Task.Slices for identifier.identifier:FILL.assigner This element is included in summaries. 0..1 Reference(Organization) Organization that issued id (may be just text)
Task.instantiatesCanonical This element is included in summaries. 0..1 canonical(ActivityDefinition) Formal definition of task
Task.instantiatesUri This element is included in summaries. 0..1 uri Formal definition of task
Task.basedOn This element is included in summaries. 1..* Reference(ServiceRequest - Lab Orders) Request fulfilled by this task
Task.groupIdentifier This element is included in summaries. 0..1 Identifier Requisition or grouper id
Task.partOf This element is included in summaries. 0..* Reference(Task) Composite task
Task.status This element is a modifier element. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
Task.statusReason This element is included in summaries. 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.
Task.businessStatus This element is included in summaries. 0..1 CodeableConcept E.g. "Specimen collected", "IV prepped"
Binding Description: (example): The domain-specific business-contextual sub-state of the task. For example: "Blood drawn", "IV inserted", "Awaiting physician signature", etc.
Task.intent This element is included in summaries. 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
Required Pattern: order
Task.priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The priority of a task (may affect service level applied to the task).
Task.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if Task is prohibiting action
Task.code This element is included in summaries. 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.
Task.description This element is included in summaries. 0..1 string Human-readable explanation of task
Task.focus This element is included in summaries. C 0..1 Reference(Resource) What task is acting on
Task.for This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Beneficiary of the Task
Task.encounter This element is included in summaries. 0..1 Reference(Encounter) Healthcare event during which this task originated
Task.requestedPeriod This element is included in summaries. 0..1 Period When the task should be performed
Task.executionPeriod This element is included in summaries. 1..1 Period Start and end time of execution
Task.authoredOn C 0..1 dateTime Task Creation Date
Task.lastModified This element is included in summaries. C 0..1 dateTime Task Last Modified Date
Task.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who is asking for task to be done
Task.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.
Task.owner This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Responsible individual
Task.performer This element is included in summaries. 0..* BackboneElement Who or what performed the task
Task.performer.id 0..1 string Unique id for inter-element referencing
Task.performer.extension 0..* Extension Additional content defined by implementations
Task.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.performer.function This element is included in summaries. 0..1 CodeableConcept Type of performance
Binding Description: (example): Codes to identify types of task performers.
Task.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the task
Task.location This element is included in summaries. 0..1 Reference(Location) Where task occurs
Task.reason 0..* CodeableReference() Why task is needed
Binding Description: (example): Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.
Task.insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
Task.note 0..* Annotation Comments made about the task
Task.relevantHistory 0..* Reference(Provenance) Key events in history of the Task
Task.restriction C 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.id 0..1 string Unique id for inter-element referencing
Task.restriction.extension 0..* Extension Additional content defined by implementations
Task.restriction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.restriction.repetitions 0..1 positiveInt How many times to repeat
Task.restriction.period 0..1 Period When fulfillment is sought
Task.restriction.recipient 0..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization) For whom is fulfillment sought?
Task.input 0..* BackboneElement Information used to perform task
Task.input.id 0..1 string Unique id for inter-element referencing
Task.input.extension 0..* Extension Additional content defined by implementations
Task.input.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.input.type 1..1 CodeableConcept Label for the input
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitent Medications", etc.
Task.input.value[x] 1..1 Content to use in performing the task
Task.input.value[x].valueBase64Binary base64Binary
Task.input.value[x].valueBoolean boolean
Task.input.value[x].valueCanonical canonical(Any)
Task.input.value[x].valueCode code
Task.input.value[x].valueDate date
Task.input.value[x].valueDateTime dateTime
Task.input.value[x].valueDecimal decimal
Task.input.value[x].valueId id
Task.input.value[x].valueInstant instant
Task.input.value[x].valueInteger integer
Task.input.value[x].valueInteger64 integer64
Task.input.value[x].valueMarkdown markdown
Task.input.value[x].valueOid oid
Task.input.value[x].valuePositiveInt positiveInt
Task.input.value[x].valueString string
Task.input.value[x].valueTime time
Task.input.value[x].valueUnsignedInt unsignedInt
Task.input.value[x].valueUri uri
Task.input.value[x].valueUrl url
Task.input.value[x].valueUuid uuid
Task.input.value[x].valueAddress Address
Task.input.value[x].valueAge Age
Task.input.value[x].valueAnnotation Annotation
Task.input.value[x].valueAttachment Attachment
Task.input.value[x].valueCodeableConcept CodeableConcept
Task.input.value[x].valueCodeableReference CodeableReference
Task.input.value[x].valueCoding Coding
Task.input.value[x].valueContactPoint ContactPoint
Task.input.value[x].valueCount Count
Task.input.value[x].valueDistance Distance
Task.input.value[x].valueDuration Duration
Task.input.value[x].valueHumanName HumanName
Task.input.value[x].valueIdentifier Identifier
Task.input.value[x].valueMoney Money
Task.input.value[x].valuePeriod Period
Task.input.value[x].valueQuantity Quantity
Task.input.value[x].valueRange Range
Task.input.value[x].valueRatio Ratio
Task.input.value[x].valueRatioRange RatioRange
Task.input.value[x].valueReference Reference(Any)
Task.input.value[x].valueSampledData SampledData
Task.input.value[x].valueSignature Signature
Task.input.value[x].valueTiming Timing
Task.input.value[x].valueContactDetail ContactDetail
Task.input.value[x].valueDataRequirement DataRequirement
Task.input.value[x].valueExpression Expression
Task.input.value[x].valueParameterDefinition ParameterDefinition
Task.input.value[x].valueRelatedArtifact RelatedArtifact
Task.input.value[x].valueTriggerDefinition TriggerDefinition
Task.input.value[x].valueUsageContext UsageContext
Task.input.value[x].valueAvailability Availability
Task.input.value[x].valueExtendedContactDetail ExtendedContactDetail
Task.input.value[x].valueDosage Dosage
Task.input.value[x].valueMeta Meta
Task.output This element must be supported. 0..* BackboneElement Information produced as part of task
Task.output.id 0..1 string Unique id for inter-element referencing
Task.output.extension 0..* Extension Additional content defined by implementations
Task.output.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.output.type 1..1 CodeableConcept Label for output
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Identified issues", "Preliminary results", "Filler order", "Final results", etc.
Task.output.type.id 0..1 id Unique id for inter-element referencing
Task.output.type.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.output.type.coding This element is included in summaries. 0..* Coding Code defined by a terminology system
Task.output.type.text This element is included in summaries. 1..1 string Plain text representation of the concept
Task.output.Slices for value[x] 1..1 Reference() Result of output
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.output.Slices for value[x].value[x]:valueReference 1..1 Reference(DiagnosticReport - Lab Order) Result of output

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.language Base required All Languages 📍5.0.0 FHIR Std.
Task.identifier:FILL.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
Task.identifier:FILL.​type Base extensible Identifier Type Codes 📍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.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
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: 9 elements(2 nested mandatory elements)
Must-Support: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Task.identifier
  • The element 1 is sliced based on the value of Task.output.value[x]

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1, tsk-1
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.contained 0..* Resource Contained, inline Resources
Task.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Task.Slices for identifier 1..* Identifier Task Instance Identifier
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for identifier.identifier:FILL 1..1 Identifier Task Instance Identifier
Task.Slices for identifier.identifier:FILL.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Task.Slices for identifier.identifier:FILL.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/task-id
Task.Slices for identifier.identifier:FILL.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
Task.basedOn This element is included in summaries. 1..* Reference(ServiceRequest - Lab Orders) Request fulfilled by this task
Task.status This element is a modifier element. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
Task.intent This element is included in summaries. 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
Required Pattern: order
Task.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if Task is prohibiting action
Task.for This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Beneficiary of the Task
Task.executionPeriod This element is included in summaries. 1..1 Period Start and end time of execution
Task.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who is asking for task to be done
Task.owner This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Responsible individual
Task.output This element must be supported. 0..* BackboneElement Information produced as part of task
Task.output.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.output.type 1..1 CodeableConcept Label for output
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Identified issues", "Preliminary results", "Filler order", "Final results", etc.
Task.output.type.text This element is included in summaries. 1..1 string Plain text representation of the concept
Task.output.Slices for value[x] 1..1 Reference() Result of output
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.output.Slices for value[x].value[x]:valueReference 1..1 Reference(DiagnosticReport - Lab Order) Result of output

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.identifier:FILL.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
Task.status Base required Task Status 📍5.0.0 FHIR Std.
Task.intent Base required Task Intent 📍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
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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task 0..* Task A task to be performed
Task.Slices for identifier 1..* Identifier Task Instance Identifier
Slice: Unordered, Open by value:system
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for identifier.identifier:FILL 1..1 Identifier Task Instance Identifier
Task.Slices for identifier.identifier:FILL.system 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/task-id
Task.Slices for identifier.identifier:FILL.value 1..1 string The value that is unique
Task.basedOn 1..* Reference(ServiceRequest - Lab Orders) Request fulfilled by this task
Task.intent 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Required Pattern: order
Task.for 1..1 Reference(Patient - Botswana Patient) Beneficiary of the Task
Task.executionPeriod 1..1 Period Start and end time of execution
Task.requester 1..1 Reference(Practitioner | Service Provider) Who is asking for task to be done
Task.owner 1..1 Reference(Practitioner | Service Provider) Responsible individual
Task.output This element must be supported. 0..* BackboneElement Information produced as part of task
Task.output.type
Task.output.type.text 1..1 string Plain text representation of the concept
Task.output.Slices for value[x] 1..1 Reference() Result of output
Slice: Unordered, Open by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.output.Slices for value[x].value[x]:valueReference 1..1 Reference(DiagnosticReport - Lab Order) Result of output

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Task C 0..* Task A task to be performed
Constraints: inv-1, tsk-1
Task.id This element is included in summaries. 0..1 id Logical id of this artifact
Task.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Task.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Task.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
Task.text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
Task.contained 0..* Resource Contained, inline Resources
Task.extension 0..* Extension Additional content defined by implementations
Task.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
Task.Slices for identifier 1..* Identifier Task Instance Identifier
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.Slices for identifier.identifier:FILL 1..1 Identifier Task Instance Identifier
Task.Slices for identifier.identifier:FILL.id 0..1 id Unique id for inter-element referencing
Task.Slices for identifier.identifier:FILL.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.Slices for identifier.identifier:FILL.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
Task.Slices for identifier.identifier:FILL.type This element is included in summaries. 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
Task.Slices for identifier.identifier:FILL.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/task-id
Task.Slices for identifier.identifier:FILL.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
Task.Slices for identifier.identifier:FILL.period This element is included in summaries. 0..1 Period Time period when id is/was valid for use
Task.Slices for identifier.identifier:FILL.assigner This element is included in summaries. 0..1 Reference(Organization) Organization that issued id (may be just text)
Task.instantiatesCanonical This element is included in summaries. 0..1 canonical(ActivityDefinition) Formal definition of task
Task.instantiatesUri This element is included in summaries. 0..1 uri Formal definition of task
Task.basedOn This element is included in summaries. 1..* Reference(ServiceRequest - Lab Orders) Request fulfilled by this task
Task.groupIdentifier This element is included in summaries. 0..1 Identifier Requisition or grouper id
Task.partOf This element is included in summaries. 0..* Reference(Task) Composite task
Task.status This element is a modifier element. This element is included in summaries. 1..1 code draft | requested | received | accepted | +
Binding: TaskStatus (required): The current status of the task.
Task.statusReason This element is included in summaries. 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.
Task.businessStatus This element is included in summaries. 0..1 CodeableConcept E.g. "Specimen collected", "IV prepped"
Binding Description: (example): The domain-specific business-contextual sub-state of the task. For example: "Blood drawn", "IV inserted", "Awaiting physician signature", etc.
Task.intent This element is included in summaries. 1..1 code unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required): Distinguishes whether the task is a proposal, plan or full order.
Required Pattern: order
Task.priority 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): The priority of a task (may affect service level applied to the task).
Task.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if Task is prohibiting action
Task.code This element is included in summaries. 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.
Task.description This element is included in summaries. 0..1 string Human-readable explanation of task
Task.focus This element is included in summaries. C 0..1 Reference(Resource) What task is acting on
Task.for This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Beneficiary of the Task
Task.encounter This element is included in summaries. 0..1 Reference(Encounter) Healthcare event during which this task originated
Task.requestedPeriod This element is included in summaries. 0..1 Period When the task should be performed
Task.executionPeriod This element is included in summaries. 1..1 Period Start and end time of execution
Task.authoredOn C 0..1 dateTime Task Creation Date
Task.lastModified This element is included in summaries. C 0..1 dateTime Task Last Modified Date
Task.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who is asking for task to be done
Task.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.
Task.owner This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Responsible individual
Task.performer This element is included in summaries. 0..* BackboneElement Who or what performed the task
Task.performer.id 0..1 string Unique id for inter-element referencing
Task.performer.extension 0..* Extension Additional content defined by implementations
Task.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.performer.function This element is included in summaries. 0..1 CodeableConcept Type of performance
Binding Description: (example): Codes to identify types of task performers.
Task.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson) Who performed the task
Task.location This element is included in summaries. 0..1 Reference(Location) Where task occurs
Task.reason 0..* CodeableReference() Why task is needed
Binding Description: (example): Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.
Task.insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
Task.note 0..* Annotation Comments made about the task
Task.relevantHistory 0..* Reference(Provenance) Key events in history of the Task
Task.restriction C 0..1 BackboneElement Constraints on fulfillment tasks
Task.restriction.id 0..1 string Unique id for inter-element referencing
Task.restriction.extension 0..* Extension Additional content defined by implementations
Task.restriction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.restriction.repetitions 0..1 positiveInt How many times to repeat
Task.restriction.period 0..1 Period When fulfillment is sought
Task.restriction.recipient 0..* Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization) For whom is fulfillment sought?
Task.input 0..* BackboneElement Information used to perform task
Task.input.id 0..1 string Unique id for inter-element referencing
Task.input.extension 0..* Extension Additional content defined by implementations
Task.input.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.input.type 1..1 CodeableConcept Label for the input
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Comparison source", "Applicable consent", "Concomitent Medications", etc.
Task.input.value[x] 1..1 Content to use in performing the task
Task.input.value[x].valueBase64Binary base64Binary
Task.input.value[x].valueBoolean boolean
Task.input.value[x].valueCanonical canonical(Any)
Task.input.value[x].valueCode code
Task.input.value[x].valueDate date
Task.input.value[x].valueDateTime dateTime
Task.input.value[x].valueDecimal decimal
Task.input.value[x].valueId id
Task.input.value[x].valueInstant instant
Task.input.value[x].valueInteger integer
Task.input.value[x].valueInteger64 integer64
Task.input.value[x].valueMarkdown markdown
Task.input.value[x].valueOid oid
Task.input.value[x].valuePositiveInt positiveInt
Task.input.value[x].valueString string
Task.input.value[x].valueTime time
Task.input.value[x].valueUnsignedInt unsignedInt
Task.input.value[x].valueUri uri
Task.input.value[x].valueUrl url
Task.input.value[x].valueUuid uuid
Task.input.value[x].valueAddress Address
Task.input.value[x].valueAge Age
Task.input.value[x].valueAnnotation Annotation
Task.input.value[x].valueAttachment Attachment
Task.input.value[x].valueCodeableConcept CodeableConcept
Task.input.value[x].valueCodeableReference CodeableReference
Task.input.value[x].valueCoding Coding
Task.input.value[x].valueContactPoint ContactPoint
Task.input.value[x].valueCount Count
Task.input.value[x].valueDistance Distance
Task.input.value[x].valueDuration Duration
Task.input.value[x].valueHumanName HumanName
Task.input.value[x].valueIdentifier Identifier
Task.input.value[x].valueMoney Money
Task.input.value[x].valuePeriod Period
Task.input.value[x].valueQuantity Quantity
Task.input.value[x].valueRange Range
Task.input.value[x].valueRatio Ratio
Task.input.value[x].valueRatioRange RatioRange
Task.input.value[x].valueReference Reference(Any)
Task.input.value[x].valueSampledData SampledData
Task.input.value[x].valueSignature Signature
Task.input.value[x].valueTiming Timing
Task.input.value[x].valueContactDetail ContactDetail
Task.input.value[x].valueDataRequirement DataRequirement
Task.input.value[x].valueExpression Expression
Task.input.value[x].valueParameterDefinition ParameterDefinition
Task.input.value[x].valueRelatedArtifact RelatedArtifact
Task.input.value[x].valueTriggerDefinition TriggerDefinition
Task.input.value[x].valueUsageContext UsageContext
Task.input.value[x].valueAvailability Availability
Task.input.value[x].valueExtendedContactDetail ExtendedContactDetail
Task.input.value[x].valueDosage Dosage
Task.input.value[x].valueMeta Meta
Task.output This element must be supported. 0..* BackboneElement Information produced as part of task
Task.output.id 0..1 string Unique id for inter-element referencing
Task.output.extension 0..* Extension Additional content defined by implementations
Task.output.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Task.output.type 1..1 CodeableConcept Label for output
Binding Description: (example): Codes to identify types of input parameters. These will typically be specific to a particular workflow. E.g. "Identified issues", "Preliminary results", "Filler order", "Final results", etc.
Task.output.type.id 0..1 id Unique id for inter-element referencing
Task.output.type.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Task.output.type.coding This element is included in summaries. 0..* Coding Code defined by a terminology system
Task.output.type.text This element is included in summaries. 1..1 string Plain text representation of the concept
Task.output.Slices for value[x] 1..1 Reference() Result of output
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
Task.output.Slices for value[x].value[x]:valueReference 1..1 Reference(DiagnosticReport - Lab Order) Result of output

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Task.language Base required All Languages 📍5.0.0 FHIR Std.
Task.identifier:FILL.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
Task.identifier:FILL.​type Base extensible Identifier Type Codes 📍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.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
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: 9 elements(2 nested mandatory elements)
Must-Support: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Task.identifier
  • The element 1 is sliced based on the value of Task.output.value[x]

 

Other representations of profile: CSV, Excel, Schematron