QI-Core Implementation Guide: STU 4 (v4.0.0 for FHIR 4.0.1)

QI-Core Implementation Guide - This is the current published version.. See the Directory of published versions

D.4.1 StructureDefinition-qicore-task

Introduction:

See the patterns page for implementation and usage patterns.

Examples:

Task Example

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-task

Profile of Task for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on Task.

This profile was published on Wed Aug 22 00:00:00 UTC 2018 as a draft by Health Level Seven, Inc. - CQI WG.

Description of Profiles, Differentials, and Snapshots.

Summary

Mandatory: 6 elements
Must-Support: 5 elements

NameFlagsCard.TypeDescription & Constraintsdoco
.. Task I0..*TaskA task to be performed
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier:identifier SI1..*IdentifierTask Instance Identifier
... instantiatesCanonical ΣI0..1canonical(ActivityDefinition)Formal definition of task
... instantiatesUri ΣI0..1uriFormal definition of task
... basedOn ΣI0..*Reference(Resource)Request fulfilled by this task
... groupIdentifier ΣI0..1IdentifierRequisition or grouper id
... partOf ΣI0..*Reference(Task)Composite task
... status:status ?!SΣI1..1codedraft | requested | received | accepted | +
Binding: TaskStatus (required)
... statusReason ΣI0..1CodeableConceptReason for current status
Binding: (unbound) (example)
... businessStatus ΣI0..1CodeableConceptE.g. "Specimen collected", "IV prepped"
Binding: (unbound) (example)
... intent:intent SΣI1..1codeunknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required)
... priority:priority SI1..1coderoutine | urgent | asap | stat
Binding: RequestPriority (required)
... code:code SΣI1..1CodeableConceptTask Type
Binding: TaskCode (example)
... description ΣI0..1stringHuman-readable explanation of task
... focus ΣI0..1Reference(Resource)What task is acting on
... for ΣI0..1Reference(Resource)Beneficiary of the Task
... encounter ΣI0..1Reference(Encounter)Healthcare event during which this task originated
... executionPeriod:executionPeriod ΣI1..1PeriodStart and end time of execution
... authoredOn I0..1dateTimeTask Creation Date
... lastModified ΣI0..1dateTimeTask Last Modified Date
... requester ΣI0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who is asking for task to be done
... performerType I0..*CodeableConceptRequested performer
Binding: ProcedurePerformerRoleCodes (preferred)
... owner ΣI0..1Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson)Responsible individual
... location ΣI0..1Reference(Location)Where task occurs
... reasonCode I0..1CodeableConceptWhy task is needed
Binding: (unbound) (example)
... reasonReference I0..1Reference(Resource)Why task is needed
... insurance I0..*Reference(Coverage | ClaimResponse)Associated insurance coverage
... note I0..*AnnotationComments made about the task
... relevantHistory I0..*Reference(Provenance)Key events in history of the Task
... restriction I0..1BackboneElementConstraints on fulfillment tasks
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... repetitions I0..1positiveIntHow many times to repeat
.... period I0..1PeriodWhen fulfillment sought
.... recipient I0..*Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization)For whom is fulfillment sought?
... input I0..*BackboneElementInformation used to perform task
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I1..1CodeableConceptLabel for the input
Binding: (unbound) (example)
.... value[x] I1..1Content to use in performing the task
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical(Any)
..... 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
..... valueReferenceReference(Any)
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueContributorContributor
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueDosageDosage
..... valueMetaMeta
... output I0..*BackboneElementInformation produced as part of task
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I1..1CodeableConceptLabel for output
Binding: (unbound) (example)
.... value[x] I1..1Result of output
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical(Any)
..... 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
..... valueReferenceReference(Any)
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueContributorContributor
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueDosageDosage
..... valueMetaMeta

doco Documentation for this format

Summary

Mandatory: 6 elements
Must-Support: 5 elements

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Task I0..*TaskA task to be performed
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier:identifier SI1..*IdentifierTask Instance Identifier
... instantiatesCanonical ΣI0..1canonical(ActivityDefinition)Formal definition of task
... instantiatesUri ΣI0..1uriFormal definition of task
... basedOn ΣI0..*Reference(Resource)Request fulfilled by this task
... groupIdentifier ΣI0..1IdentifierRequisition or grouper id
... partOf ΣI0..*Reference(Task)Composite task
... status:status ?!SΣI1..1codedraft | requested | received | accepted | +
Binding: TaskStatus (required)
... statusReason ΣI0..1CodeableConceptReason for current status
Binding: (unbound) (example)
... businessStatus ΣI0..1CodeableConceptE.g. "Specimen collected", "IV prepped"
Binding: (unbound) (example)
... intent:intent SΣI1..1codeunknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Binding: TaskIntent (required)
... priority:priority SI1..1coderoutine | urgent | asap | stat
Binding: RequestPriority (required)
... code:code SΣI1..1CodeableConceptTask Type
Binding: TaskCode (example)
... description ΣI0..1stringHuman-readable explanation of task
... focus ΣI0..1Reference(Resource)What task is acting on
... for ΣI0..1Reference(Resource)Beneficiary of the Task
... encounter ΣI0..1Reference(Encounter)Healthcare event during which this task originated
... executionPeriod:executionPeriod ΣI1..1PeriodStart and end time of execution
... authoredOn I0..1dateTimeTask Creation Date
... lastModified ΣI0..1dateTimeTask Last Modified Date
... requester ΣI0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)Who is asking for task to be done
... performerType I0..*CodeableConceptRequested performer
Binding: ProcedurePerformerRoleCodes (preferred)
... owner ΣI0..1Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson)Responsible individual
... location ΣI0..1Reference(Location)Where task occurs
... reasonCode I0..1CodeableConceptWhy task is needed
Binding: (unbound) (example)
... reasonReference I0..1Reference(Resource)Why task is needed
... insurance I0..*Reference(Coverage | ClaimResponse)Associated insurance coverage
... note I0..*AnnotationComments made about the task
... relevantHistory I0..*Reference(Provenance)Key events in history of the Task
... restriction I0..1BackboneElementConstraints on fulfillment tasks
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... repetitions I0..1positiveIntHow many times to repeat
.... period I0..1PeriodWhen fulfillment sought
.... recipient I0..*Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization)For whom is fulfillment sought?
... input I0..*BackboneElementInformation used to perform task
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I1..1CodeableConceptLabel for the input
Binding: (unbound) (example)
.... value[x] I1..1Content to use in performing the task
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical(Any)
..... 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
..... valueReferenceReference(Any)
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueContributorContributor
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueDosageDosage
..... valueMetaMeta
... output I0..*BackboneElementInformation produced as part of task
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type I1..1CodeableConceptLabel for output
Binding: (unbound) (example)
.... value[x] I1..1Result of output
..... valueBase64Binarybase64Binary
..... valueBooleanboolean
..... valueCanonicalcanonical(Any)
..... 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
..... valueReferenceReference(Any)
..... valueSampledDataSampledData
..... valueSignatureSignature
..... valueTimingTiming
..... valueContactDetailContactDetail
..... valueContributorContributor
..... valueDataRequirementDataRequirement
..... valueExpressionExpression
..... valueParameterDefinitionParameterDefinition
..... valueRelatedArtifactRelatedArtifact
..... valueTriggerDefinitionTriggerDefinition
..... valueUsageContextUsageContext
..... valueDosageDosage
..... valueMetaMeta

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Task.languagepreferredCommonLanguages
Max Binding: AllLanguages
Task.status:statusrequiredTaskStatus
Task.statusReasonexample
Task.businessStatusexample
Task.intent:intentrequiredTaskIntent
Task.priority:priorityrequiredRequestPriority
Task.code:codeexampleTaskCode
Task.performerTypepreferredProcedurePerformerRoleCodes
Task.reasonCodeexample
Task.input.typeexample
Task.output.typeexample

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2TaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3TaskIf 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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4TaskIf 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-5TaskIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6TaskA resource should have narrative for robust management
: text.`div`.exists()
inv-1TaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
ele-1Task.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.identifier:identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.instantiatesCanonicalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.instantiatesUriAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.groupIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.partOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.status:statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.businessStatusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.intent:intentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.priority:priorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.code:codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.descriptionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.focusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.forAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.executionPeriod:executionPeriodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.authoredOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.lastModifiedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.requesterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.performerTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.ownerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.insuranceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.relevantHistoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.restrictionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.restriction.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.restriction.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.restriction.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.restriction.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.restriction.repetitionsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.restriction.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.restriction.recipientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.inputAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.input.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.input.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.input.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.input.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.input.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.input.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.outputAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.output.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.output.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.output.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Task.output.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Task.output.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Task.output.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())