FHIR Artifacts > Structure Definition: Task Profile

Structure Definition: Task Profile

Canonical URL:http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Task

Simplifier project page: Task

Derived from: Task (R4)

Formal Views of Profile Content

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

Differential View

versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
PatientNeedsToBeSeenS I0..1Extension(boolean)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
referenceS Σ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
groupIdentifierΣ0..1Identifier
partOfΣ I0..*Reference(Task)
statusS Σ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
systemS Σ0..1uriFixed Value
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textS Σ0..1string
intentS Σ1..1codeBinding
priority0..1codeBinding
systemS Σ0..1uriFixed Value
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ0..1string
focusΣ I0..1Reference(Resource)
forΣ I0..1Reference(Resource)
encounterΣ I0..1Reference(Encounter)
executionPeriodΣ I0..1Period
authoredOnS I0..1dateTime
lastModifiedS Σ I0..1dateTime
requesterΣ I0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
performerType0..*CodeableConceptBinding
referenceS Σ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
locationΣ I0..1Reference(Location)
reasonCode0..1CodeableConcept
reasonReferenceI0..1Reference(Resource)
insuranceI0..*Reference(Coverage | ClaimResponse)
note0..*Annotation
relevantHistoryI0..*Reference(Provenance)
repetitions0..1positiveInt
periodI0..1Period
recipientI0..*Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization)
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
type1..1CodeableConcept
valueReferenceReference(Communication)

Hybrid View

versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
PatientNeedsToBeSeenS I0..1Extension(boolean)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
referenceS Σ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
groupIdentifierΣ0..1Identifier
partOfΣ I0..*Reference(Task)
statusS Σ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
systemS Σ0..1uriFixed Value
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textS Σ0..1string
intentS Σ1..1codeBinding
priority0..1codeBinding
systemS Σ0..1uriFixed Value
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ0..1string
focusΣ I0..1Reference(Resource)
forΣ I0..1Reference(Resource)
encounterΣ I0..1Reference(Encounter)
executionPeriodΣ I0..1Period
authoredOnS I0..1dateTime
lastModifiedS Σ I0..1dateTime
requesterΣ I0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
performerType0..*CodeableConceptBinding
referenceS Σ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
locationΣ I0..1Reference(Location)
reasonCode0..1CodeableConcept
reasonReferenceI0..1Reference(Resource)
insuranceI0..*Reference(Coverage | ClaimResponse)
note0..*Annotation
relevantHistoryI0..*Reference(Provenance)
repetitions0..1positiveInt
periodI0..1Period
recipientI0..*Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization)
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
type1..1CodeableConcept
valueReferenceReference(Communication)

Snapshot View

versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileS Σ1..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
tagΣ0..*Coding
PatientNeedsToBeSeenS I0..1Extension(boolean)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
referenceS Σ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
groupIdentifierΣ0..1Identifier
partOfΣ I0..*Reference(Task)
statusS Σ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
systemS Σ0..1uriFixed Value
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textS Σ0..1string
intentS Σ1..1codeBinding
priority0..1codeBinding
systemS Σ0..1uriFixed Value
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ0..1string
focusΣ I0..1Reference(Resource)
forΣ I0..1Reference(Resource)
encounterΣ I0..1Reference(Encounter)
executionPeriodΣ I0..1Period
authoredOnS I0..1dateTime
lastModifiedS Σ I0..1dateTime
requesterΣ I0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
performerType0..*CodeableConceptBinding
referenceS Σ I0..1string
typeΣ0..1uriBinding
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
locationΣ I0..1Reference(Location)
reasonCode0..1CodeableConcept
reasonReferenceI0..1Reference(Resource)
insuranceI0..*Reference(Coverage | ClaimResponse)
note0..*Annotation
relevantHistoryI0..*Reference(Provenance)
repetitions0..1positiveInt
periodI0..1Period
recipientI0..*Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization)
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
type1..1CodeableConcept
valueReferenceReference(Communication)

Table View

Task..
Task.meta1..
Task.meta.profile1..
Task.extension0..
Task.extensionExtension0..1
Task.identifier..
Task.identifier.system..
Task.identifier.value..
Task.basedOnReference(ServiceRequest)1..1
Task.basedOn.reference..
Task.basedOn.identifier..
Task.basedOn.identifier.system..
Task.basedOn.identifier.value..
Task.status..
Task.businessStatus..
Task.businessStatus.coding..
Task.businessStatus.coding.system..
Task.businessStatus.coding.code..
Task.businessStatus.coding.display..
Task.businessStatus.text..
Task.intent..
Task.code..
Task.code.coding..
Task.code.coding.system..
Task.code.coding.code..
Task.code.coding.display..
Task.authoredOn..
Task.lastModified..
Task.ownerReference(PractitionerRole)..
Task.owner.reference..
Task.owner.identifier..
Task.owner.identifier.system..
Task.owner.identifier.value..
Task.input..
Task.output..
Task.output.value[x]Reference(Communication)..


JSON View

{
    "resourceType": "StructureDefinition",
    "id": "ca-on-eReferral-profile-Task",
    "url": "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Task",
    "version": "1.0.1",
    "name": "EReferralTask",
    "title": "Task",
    "status": "draft",
    "description": "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.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Task",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Task",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Task.meta",
                "path": "Task.meta",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Task.meta.profile",
                "path": "Task.meta.profile",
                "comment": "#### **_` FOR eREFERRAL USAGE: The meta.profile = http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Task|1.0.1 `_**\n\nIt is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time.  The list of profile URLs is a set.",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Task.extension",
                "path": "Task.extension",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "url"
                        }
                    ],
                    "rules": "open"
                },
                "min": 0
            },
            {
                "id": "Task.extension:PatientNeedsToBeSeen",
                "path": "Task.extension",
                "sliceName": "PatientNeedsToBeSeen",
                "min": 0,
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eConsult-ext-patient-needs-to-be-seen"
                        ]
                    }
                ],
                "isModifier": false
            },
            {
                "id": "Task.identifier",
                "path": "Task.identifier",
                "mustSupport": true
            },
            {
                "id": "Task.identifier.system",
                "path": "Task.identifier.system",
                "mustSupport": true
            },
            {
                "id": "Task.identifier.value",
                "path": "Task.identifier.value",
                "mustSupport": true
            },
            {
                "id": "Task.basedOn",
                "path": "Task.basedOn",
                "min": 1,
                "max": "1",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-ServiceRequest"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Task.basedOn.reference",
                "path": "Task.basedOn.reference",
                "mustSupport": true
            },
            {
                "id": "Task.basedOn.identifier",
                "path": "Task.basedOn.identifier",
                "mustSupport": true
            },
            {
                "id": "Task.basedOn.identifier.system",
                "path": "Task.basedOn.identifier.system",
                "mustSupport": true
            },
            {
                "id": "Task.basedOn.identifier.value",
                "path": "Task.basedOn.identifier.value",
                "mustSupport": true
            },
            {
                "id": "Task.status",
                "path": "Task.status",
                "mustSupport": true
            },
            {
                "id": "Task.businessStatus",
                "path": "Task.businessStatus",
                "short": "E.g. \"New\", \"Pending\", \"Accepted\", etc.",
                "mustSupport": true,
                "binding": {
                    "strength": "example",
                    "description": "BusinessStatus is used to communicate deployment specific status information. For example: \"New\", \"Pending\", \"Accepted\", etc.",
                    "valueSet": "http://ehealthontario.ca/fhir/ValueSet/task-business-status"
                }
            },
            {
                "id": "Task.businessStatus.coding",
                "path": "Task.businessStatus.coding",
                "mustSupport": true,
                "binding": {
                    "strength": "example",
                    "valueSet": "http://ehealthontario.ca/fhir/ValueSet/task-business-status"
                }
            },
            {
                "id": "Task.businessStatus.coding.system",
                "path": "Task.businessStatus.coding.system",
                "fixedUri": "https://ehealthontario.ca/fhir/CodeSystem/task-business-status",
                "mustSupport": true
            },
            {
                "id": "Task.businessStatus.coding.code",
                "path": "Task.businessStatus.coding.code",
                "mustSupport": true
            },
            {
                "id": "Task.businessStatus.coding.display",
                "path": "Task.businessStatus.coding.display",
                "mustSupport": true
            },
            {
                "id": "Task.businessStatus.text",
                "path": "Task.businessStatus.text",
                "mustSupport": true
            },
            {
                "id": "Task.intent",
                "path": "Task.intent",
                "mustSupport": true
            },
            {
                "id": "Task.code",
                "path": "Task.code",
                "comment": "The title (eg \"My Tasks\", \"Outstanding Tasks for Patient X\") should go into the code",
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "http://ehealthontario.ca/fhir/ValueSet/task-code"
                }
            },
            {
                "id": "Task.code.coding",
                "path": "Task.code.coding",
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "http://ehealthontario.ca/fhir/ValueSet/task-code"
                }
            },
            {
                "id": "Task.code.coding.system",
                "path": "Task.code.coding.system",
                "fixedUri": "https://ehealthontario.ca/fhir/CodeSystem/task-code",
                "mustSupport": true
            },
            {
                "id": "Task.code.coding.code",
                "path": "Task.code.coding.code",
                "mustSupport": true
            },
            {
                "id": "Task.code.coding.display",
                "path": "Task.code.coding.display",
                "mustSupport": true
            },
            {
                "id": "Task.authoredOn",
                "path": "Task.authoredOn",
                "mustSupport": true
            },
            {
                "id": "Task.lastModified",
                "path": "Task.lastModified",
                "mustSupport": true
            },
            {
                "id": "Task.owner",
                "path": "Task.owner",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://hl7.org/fhir/StructureDefinition/PractitionerRole"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Task.owner.reference",
                "path": "Task.owner.reference",
                "mustSupport": true
            },
            {
                "id": "Task.owner.identifier",
                "path": "Task.owner.identifier",
                "mustSupport": true
            },
            {
                "id": "Task.owner.identifier.system",
                "path": "Task.owner.identifier.system",
                "mustSupport": true
            },
            {
                "id": "Task.owner.identifier.value",
                "path": "Task.owner.identifier.value",
                "mustSupport": true
            },
            {
                "id": "Task.input",
                "path": "Task.input",
                "mustSupport": false
            },
            {
                "id": "Task.output",
                "path": "Task.output",
                "mustSupport": true
            },
            {
                "id": "Task.output.value[x]",
                "path": "Task.output.value[x]",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Communication"
                        ]
                    }
                ],
                "mustSupport": true
            }
        ]
    }
}

Usage

The Task resource is used as follows in this IG:

  • a "Process Request" Task ("Task.code": "process-request") SHALL be used by an RMS Target to track and communicate the status of a referral request to the RMS Source

  • a "Process Request Consult" Task ("Task.code": "process-request-consult") SHALL be used by an RMS Target to track and communicate the status of a consult request to the RMS Source

  • a "Request for Information" Task ("Task.code": "request-for-information-for-requester") MAY be used by an RMS Target to track and communicate a request for information

Each Task SHALL reference the ServiceRequest it is basedOn.

Notes

.id

  • used to uniquely identify the resource
  • if a persistent identity for the resource is not available to use when constructing a message Bundle for transmission via Direct Messaging, a UUID SHOULD be used in this element (with a corresponding value in Bundle.entry.fullUrl)

.meta.profile

  • used to declare conformance to this profile
  • populate with a fixed value: `http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-Task|1.0.1'

.extension:PatientNeedsToBeSeen

  • For eConsult: when a Performer (Specialist) responds to a consult request suggesting an eReferral, SHALL be set to true

.basedOn

  • used to associate the Task with the ServiceRequest being performed
  • SHALL be populated with a reference to the ServiceRequest being performed
  • if the Task is being transmitted via messaging, the referenced ServiceRequest resource SHALL be included in the message as a Bundle.entry

.status

  • for a "Process Request" Task, used to track the status of the ServiceRequest being performed as work progresses through to completion see - state machine
  • for a "Request for Information" Task, used to track the status of the request for information

.businessStatus

  • for a "Process Request" Task businessStatus.text or businessStatus.code (extensible) MAY be used to communicate deployment specific status information

.intent

  • populate with "proposal"

.code

  • identifies the type of task
  • SHALL always be populated
    • with "process-request" for a "Process Request" Task
    • with "request-for-information-for-requester" for a "Request for information" Task
    • with "process-request-consult" for a "Process Request" eConsult Task

.description (for further discussion)

  • where .code is "request-for-information-for-requester" MAY include a free-text description of what is needed

.authoredOn

  • indicates the dateTime that the eReferral was received by the RMS
  • usually the same as ServiceRequest.authoredOn, except in cases when ServiceRequest.authoredOn is used to record that a request was signed by the requester before the transmission took place

.lastModified

  • indicates the dateTime when an update of note/significance was made to the referral (i.e., related resources such as ServiceRequest, patient, Task, Appointment, etc...)

.owner

  • a reference to the person or organization responsible for handling the referral
  • if the Task is being transmitted via messaging, the referenced PractitionerRole resource SHALL be included in the message as a Bundle.entry

.output

  • MAY to used to provide the outcome of a Referral
  • SHALL contain a reference to Communication when an eConsult is provided by a specialist

.output.valueReference

  • a reference to Communication (or potentially other resources)

  • if the Task is being transmitted via messaging, the referenced FHIR resource SHALL be included in the message as a Bundle.entry

  • For eConsult: When a consult is provided by a specialist .output.valueReference SHALL reference Communication

NOTE: Communication.payload.content can be string and/or attachment