StructureDefinition NHSEngland-Task-Genomics

The core workflow resource for managing processing of a ServiceRequest from order through to delivery of a DiagnosticReport and completion is Task. Task tracking is a core requirement of the central Genomic Medicine Service.

Each ServiceRequest submitted will instantiate a series of High Level Tasks, which MAY be assigned to different organizations for managing the test request e.g. Sample Processing, Interpretation, Reporting etc. The full list of possible Task types/codes, their associated business statuses, and status reasons is pending internal review.

Tasks will be automatically created by the central broker but updates to statuses and attachment of input/output resources is the responsibility of the assigned organizations.

An illustrative diagram of the links between ServiceRequests and Tasks are provided below (for the initial sample processing). Note: not all resource links are represented, to increase legibility of the diagram. In most cases, the full library of 10 tasks, as defined within Genomic-Task-Code, will be 'spun-up', on submission of a Test order. Tasks related to Samples may be duplicated per Sample to allow tracking of work related to individual Samples as part of the same test request, or equally, may be omitted as in the case of Re-Analysis or Re-Interpretation where data from an existing sample is used, eliminating the need for additional wet-work. For the full cardinality breakdown see further guidance for the Task.code element.

Profile url FHIR Module Normative Status
https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomics NHS England Genomics trial-use

Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomicsactive0.3.02026-04-16

This profile defines the Genomics constraints and extensions on the International FHIR resource Task.


Tree View

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
identifier0..*Identifier
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
groupIdentifierΣ0..1Identifier
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(UKCoreOrganization | https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics)
displayΣ0..1string
statusΣ ?!1..1codeBinding
statusReasonΣ0..1CodeableConceptBinding
businessStatusΣ0..1CodeableConceptBinding
intentΣ1..1codeBinding
priority0..1codeBinding
codeΣ1..1CodeableConceptBinding
descriptionΣ0..0string
focusΣ C1..1Reference(NHSEngland_ServiceRequest_Genomics)
forΣ C1..1Reference(Resource | NHSEngland_Patient_Genomics)
encounterΣ C0..0Reference(Encounter)
executionPeriodΣ C0..1Period
authoredOnC1..1dateTime
lastModifiedΣ C0..1dateTime
requesterΣ C1..1Reference(NHSEngland_PractitionerRole_Genomics)
performerType0..0CodeableConceptBinding
id0..1string
extensionC0..*Extension
referenceΣ C0..0string
typeΣ0..1uriBinding
id0..1string
extensionC0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ C0..1Period
assignerΣ C0..1Reference(Organization)
displayΣ0..1string
locationΣ C0..0Reference(Location)
reasonCode0..0CodeableConcept
reasonReferenceC0..0Reference(Resource)
insuranceC0..0Reference(ClaimResponse | Coverage)
note0..*Annotation
relevantHistoryC0..0Reference(Provenance)
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
type1..1CodeableConceptBinding
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
type1..1CodeableConceptBinding
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical
valueCodecode
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactDetailContactDetail
valueContactPointContactPoint
valueContributorContributor
valueCountCount
valueDataRequirementDataRequirement
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueDistanceDistance
valueDosageDosage
valueDurationDuration
valueExpressionExpression
valueHumanNameHumanName
valueIdid
valueIdentifierIdentifier
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueMetaMeta
valueMoneyMoney
valueOidoid
valueParameterDefinitionParameterDefinition
valuePeriodPeriod
valuePositiveIntpositiveInt
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueReferenceReference
valueRelatedArtifactRelatedArtifact
valueSampledDataSampledData
valueSignatureSignature
valueStringstring
valueTimetime
valueTimingTiming
valueTriggerDefinitionTriggerDefinition
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUsageContextUsageContext
valueUuiduuid

Detailed Descriptions

Task
ShortA task to be performed
Definition

A task to be performed.

Cardinality0..*
Constraints
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.empty()
  • dom-4: 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-3: 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().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-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • inv-1: Last modified date must be greater than or equal to authored-on date.
    lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
Mappings
  • rim: Entity. Role, or Act
  • workflow: Request, Event
  • rim: ControlAct[moodCode=INT]
Task.id
ShortLogical id of this artifact
Definition

The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.

Cardinality0..1
Typeid
SummaryTrue
Comments

The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Task.meta
ShortMetadata about the resource
Definition

The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

Cardinality0..1
TypeMeta
SummaryTrue
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.implicitRules
ShortA set of rules under which this content was created
Definition

A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.

Cardinality0..1
Typeuri
ModifierTrue
SummaryTrue
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Task.language
ShortLanguage of the resource content
Definition

The base language in which the resource is written.

Cardinality0..1
Typecode
Binding

A human language.

CommonLanguages (preferred)

Binding extensions
maxValueSetAllLanguages
Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
Task.text
ShortText summary of the resource, for human interpretation
Definition

A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.

Cardinality0..1
TypeNarrative
Aliasnarrative, html, xhtml, display
Comments

Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
Task.contained
ShortContained, inline Resources
Definition

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

Cardinality0..*
TypeResource
Aliasinline resources, anonymous resources, contained resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
Task.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.modifierExtension
ShortExtensions that cannot be ignored
Definition

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Cardinality0..*
TypeExtension
ModifierTrue
Aliasextensions, user content
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.identifier
ShortTask Instance Identifier
Definition

The business identifier for this task.

Cardinality0..*
TypeIdentifier
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • workflow: Request.identifier, Event.identifier
  • w5: FiveWs.identifier
  • rim: .id
Task.instantiatesCanonical
ShortFormal definition of task
Definition

The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.

Cardinality0..1
Typecanonical(ActivityDefinition)
SummaryTrue
Requirements

Enables a formal definition of how he task is to be performed, enabling automation.

Comments
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Request.instantiatesCanonical, Event.instantiatesCanonical
  • rim: .outboundRelationship[typeCode=DEFN].target
Task.instantiatesUri
ShortFormal definition of task
Definition

The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.

Cardinality0..1
Typeuri
SummaryTrue
Requirements

Enables a formal definition of how he task is to be performed (e.g. using BPMN, BPEL, XPDL or other formal notation to be associated with a task), enabling automation.

Comments

see http://en.wikipedia.org/wiki/Uniform_resource_identifier

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.instantiatesUrl
  • rim: .outboundRelationship[typeCode=DEFN].target
Task.basedOn
ShortRequest fulfilled by this task
Definition

This element will not be used within the Genomic Medicine Service. The ServiceRequest a Task is seeking to fulfill SHALL be referenced through the focus element. Specimen resources being acted upon by tasks related to specimen prep/processing SHOULD be referenced through the Task.input element.

Cardinality0..0
TypeReference(Resource)
SummaryTrue
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.basedOn, Event.basedOn
  • rim: .outboundRelationship[typeCode=FLFS].target[moodCode=INT]
Task.basedOn.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.basedOn.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.basedOn.reference
ShortLiteral reference, Relative, internal or absolute URL
Definition

A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.

Cardinality0..1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1, ref-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.basedOn.type
ShortType the reference refers to (e.g. "Patient")
Definition

The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.

The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).

Cardinality0..1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)

SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.basedOn.identifier
ShortLogical reference, when literal reference is not known
Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Cardinality0..1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • rim: .identifier
Task.basedOn.identifier.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.basedOn.identifier.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.basedOn.identifier.use
Shortusual | official | temp | secondary | old (If known)
Definition

The purpose of this identifier.

Cardinality0..1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)

ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: Role.code or implied by context
Task.basedOn.identifier.type
ShortDescription of identifier
Definition

A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

Cardinality0..1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)

SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: CX.5
  • rim: Role.code or implied by context
Task.basedOn.identifier.system
ShortThe namespace for the identifier value
Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Cardinality0..1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
ExamplesGeneral
http://www.acme.com/identifiers/patient
Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
Task.basedOn.identifier.value
ShortThe value that is unique
Definition

The portion of the identifier typically relevant to the user and which is unique within the context of the system.

Cardinality0..1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
ExamplesGeneral
123456
Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
Task.basedOn.identifier.period
ShortTime period when id is/was valid for use
Definition

Time period during which identifier is/was valid for use.

Cardinality0..1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
Task.basedOn.identifier.assigner
ShortOrganization that issued id (may be just text)
Definition

Organization that issued/manages the identifier.

Cardinality0..1
TypeReference(https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics)
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • v2: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
Task.basedOn.display
ShortText alternative for the resource
Definition

Plain text narrative that identifies the resource in addition to the resource reference.

Cardinality0..1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.groupIdentifier
ShortRequisition or grouper id
Definition

An identifier that links together multiple tasks and other requests that were created in the same context.

Cardinality0..1
TypeIdentifier
SummaryTrue
Requirements

Billing and/or reporting can be linked to whether multiple requests were created as a single unit.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • workflow: Request.groupIdentifier
  • rim: .inboundRelationship[typeCode=COMP].source[moodCode=INT].id
Task.partOf
ShortComposite task
Definition

Task that this particular task is part of.

Cardinality0..*
TypeReference(NHSEngland_Task_Genomics)
SummaryTrue
Requirements

Allows tasks to be broken down into sub-steps (and this division can occur independent of the original task).

Comments

This should usually be 0..1.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.partOf
  • rim: .inboundRelationship[typeCode=COMP].source[moodCode=INT]
Task.partOf.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.partOf.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.partOf.reference
ShortLiteral reference, Relative, internal or absolute URL
Definition

A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.

Cardinality0..1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1, ref-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.partOf.type
ShortType the reference refers to (e.g. "Patient")
Definition

The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.

The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).

Cardinality0..1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)

SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.partOf.identifier
ShortLogical reference, when literal reference is not known
Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Cardinality0..1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • rim: .identifier
Task.partOf.identifier.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.partOf.identifier.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.partOf.identifier.use
Shortusual | official | temp | secondary | old (If known)
Definition

The purpose of this identifier.

Cardinality0..1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)

ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: Role.code or implied by context
Task.partOf.identifier.type
ShortDescription of identifier
Definition

A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

Cardinality0..1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)

SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: CX.5
  • rim: Role.code or implied by context
Task.partOf.identifier.system
ShortThe namespace for the identifier value
Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Cardinality0..1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
ExamplesGeneral
http://www.acme.com/identifiers/patient
Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
Task.partOf.identifier.value
ShortThe value that is unique
Definition

The portion of the identifier typically relevant to the user and which is unique within the context of the system.

Cardinality0..1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
ExamplesGeneral
123456
Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
Task.partOf.identifier.period
ShortTime period when id is/was valid for use
Definition

Time period during which identifier is/was valid for use.

Cardinality0..1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
Task.partOf.identifier.assigner
ShortOrganization that issued id (may be just text)
Definition

Organization that issued/manages the identifier.

Cardinality0..1
TypeReference(UKCoreOrganization | https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics)
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • v2: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
Task.partOf.display
ShortText alternative for the resource
Definition

Plain text narrative that identifies the resource in addition to the resource reference.

Cardinality0..1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.status
Shortdraft | requested | received | accepted | +
Definition

Initially, automatically populated by the central service upon instantiation. Tasks will be first marked as 'draft' until their prerequisites have been satisfied, after which they will be marked as 'requested' until accepted/claimed by an organization. Upon acceptance, the owning organization is responsible for updating the status up until completion (or if the owning organization is not integrated into the GMS, the organization who has referred the task to the unintegrated org). If a ServiceRequest is cancelled, any Tasks which have not already moved into in-progress SHALL be moved into the cancelled state, any in-progress Tasks will require lab processes to manage closure of the Task and appropriate reimbursement. For a full list of possible automatic cascading of ServiceRequest.status to Task.status please see additional guidance on the status element on the UKCore-ServiceRequest profile page.

It is not expected that Task statuses will propagate up to the ServiceRequest status, though certain task failure types may require revokation of the authorising request (pending investigation).

For the full list of expected Task statuses in use by the GMS, please refer to the table below. For the allowed Task status transitions, please see the FHIR R4 Task state machine model.

Cardinality1..1
Typecode
Binding

The current status of the task.

TaskStatus (required)

ModifierTrue
SummaryTrue
Requirements

These states enable coordination of task status with off-the-shelf workflow solutions that support automation of tasks.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Request.status, Event.status
  • w5: FiveWs.status
  • rim: .statusCode
Task.statusReason
ShortReason for current status
Definition

Reasons why a Task has been marked as on-hold, cancelled etc. SHOULD use the Genomic-Task-StatusReason CodeSystem. NOTE: The list of appropriate statusReasons is pending finalization. If a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text reason captured within Task.statusReason.text.

Cardinality0..1
TypeCodeableConcept
Binding

Codes to identify the reason for current status. These will typically be specific to a particular workflow.

https://fhir.nhs.uk/ValueSet/task-statusReason-genomics (preferred)

SummaryTrue
Comments

This applies to the current status. Look at the history of the task to see reasons for past statuses.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: .inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN, code="status change"].reasonCode
Task.businessStatus
ShortE.g. "Specimen Received", "Analysis In Progress"
Definition

Genomic specific business statuses for capturing more granular information as part of processing the task. SHOULD use the Genomic-Business-Status CodeSystem. NOTE: The list of appropriate buinessStatuses is pending finalization. Mapping business statuses to the high level container Tasks and statuses is still ongoing. If a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text status captured within Task.businessStatus.text.

Cardinality0..1
TypeCodeableConcept
Binding

The domain-specific business-contextual sub-state of the task. ValueSet specific for Genomics, subject to change.

GenomicsBusinessStatus (preferred)

SummaryTrue
Requirements

There's often a need to track substates of a task - this is often variable by specific workflow implementation.

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: .inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code="business status"]
Task.intent
Shortunknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option
Definition

Indicates the "level" of actionability associated with the Task, i.e. i+R[9]Cs this a proposed task, a planned task, an actionable task, etc.

Cardinality1..1
Typecode
Binding

Distinguishes whether the task is a proposal, plan or full order.

TaskIntent (required)

SummaryTrue
Comments

This element is immutable. Proposed tasks, planned tasks, etc. must be distinct instances.

In most cases, Tasks will have an intent of "order".

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Request.intent
  • w5: FiveWs.class
  • rim: .moodCode
Task.priority
Shortroutine | urgent | asap | stat
Definition

Indicates how quickly the Task should be addressed with respect to other requests.

Cardinality0..1
Typecode
Binding

The task's priority.

RequestPriority (required)

Requirements

Used to identify the service level expected while performing a task.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Meaning when missing

If missing, this task should be performed with normal priority

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Request.priority
  • w5: FiveWs.grade
  • rim: .priorityCode
Task.code
ShortTask Type
Definition

High level coding for the Task, matches the NGTP stages for genomic test processing. Clients SHOULD use the Genomic-Task-Code CodeSystem. NOTE: The list of appropriate codes is pending finalization. The currently allowed code list and their definition is provided in the table below. The table also provides the cardinality of each Task per ServiceRequest or Sample attached to the request as generated by the central broker on submission of a test request. Note: the cardinalities listed reflect the number of concurrent active tasks per service request at any one time, there may be cases where additional Tasks need to be spun up manually, e.g. on failure such as when a new sample needs to be processed after a previous sample fails Quality Control, or when further preparation is required. This cardinality supports the use cases for both requests with multiple participants, e.g. Duo/Trio, and multiple samples per participant e.g. Cancer testing.

Cardinality1..1
TypeCodeableConcept
Binding

Codes to identify what the task involves. These will typically be specific to a particular workflow.

https://fhir.nhs.uk/ValueSet/task-code-genomics (preferred)

SummaryTrue
Comments

The title (eg "My Tasks", "Outstanding Tasks for Patient X") should go into the code.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • workflow: Request.code, Event.code
  • w5: FiveWs.what[x]
  • rim: .code
Task.description
ShortHuman-readable explanation of task
Definition

A free-text description of what is to be performed.

Cardinality0..0
Typestring
SummaryTrue
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .text
Task.focus
ShortWhat task is acting on
Definition

The ServiceRequest the Task is fulfilling. Autopopulated by the central service.

Cardinality1..1
TypeReference(NHSEngland_ServiceRequest_Genomics)
SummaryTrue
Requirements

Used to identify the thing to be done.

Comments

If multiple resources need to be manipulated, use sub-tasks. (This ensures that status can be tracked independently for each referenced resource.).

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • w5: FiveWs.what[x]
  • rim: .outboundRelationship[typeCode=SUBJ].target
Task.for
ShortBeneficiary of the Task
Definition

A reference to the Patient resource or the identifier, NHS number, for the patient for whom the Task is for. Autopopulated by the central service if the Task is automatically generated. If a Task is created by client system or user interaction, for SHALL be populated with a reference to the associated Patient. This MAY be through a resource reference if the ID on the central service is known (or provided within the transaction bundle) or through NHS number where this is known and has been traced through PDS.

Cardinality1..1
TypeReference(Resource | NHSEngland_Patient_Genomics)
SummaryTrue
AliasPatient
Requirements

Used to track tasks outstanding for a beneficiary. Do not use to track the task owner or creator (see owner and creator respectively). This can also affect access control.

Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.subject, Event.subject
  • w5: FiveWs.subject[x]
  • rim: .participation[typeCode=RCT].role
  • w5: FiveWs.subject
Task.encounter
ShortHealthcare event during which this task originated
Definition

The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was created.

Cardinality0..0
TypeReference(Encounter)
SummaryTrue
Requirements

For some tasks it may be important to know the link between the encounter the task originated within.

Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.context, Event.context
  • w5: FiveWs.context
  • rim: .inboundRelationship[typeCode=COMP].source[classCode=PCPR, moodCode=EVN]
Task.executionPeriod
ShortStart and end time of execution
Definition

MAY be used to capture start and end DateTimes associated with execution of a Task. It is expected the start time will be populated as a Task is moved to in-progress and the end time will be populated as a Task is marked as completed. Usage of this field will be investigated during the Alpha phase of the Genomic Order Management project as timelines for task execution can also be derived from the AuditEvents recorded as Tasks are updated.

Cardinality0..1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • workflow: Event.occurrence[x]
  • w5: FiveWs.done[x]
  • rim: .effectiveTime
Task.authoredOn
ShortTask Creation Date
Definition

Autopopulated by the central service on creation of the Task.

Cardinality1..1
TypedateTime
AliasCreated Date
Requirements

Most often used along with lastUpdated to track duration of task to supporting monitoring and management.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1, inv-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Request.authoredOn
  • w5: FiveWs.recorded
  • rim: .participation[typeCode=AUT].time
Task.lastModified
ShortTask Last Modified Date
Definition

Time at which a change to the task was made, e.g. status updated. SHALL be updated on change.

Cardinality0..1
TypedateTime
SummaryTrue
AliasUpdate Date
Requirements

Used along with history to track task activity and time in a particular task state. This enables monitoring and management.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1, inv-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .inboundRelationship[typeCode=SUBJ, ].source[classCode=CACT, moodCode=EVN].effectiveTime
Task.requester
ShortWho is asking for task to be done
Definition

The original requester of the ServiceRequest the Task is fulfilling. Autopopulated by the central service.

Cardinality1..1
TypeReference(NHSEngland_PractitionerRole_Genomics)
SummaryTrue
Requirements

Identifies who created this task. May be used by access control mechanisms (e.g., to ensure that only the creator can cancel a task).

Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.requester
  • w5: FiveWs.author
  • rim: .participation[typeCode=AUT].role
Task.performerType
ShortRequested performer
Definition

The kind of participant that should perform the task.

Cardinality0..0
TypeCodeableConcept
Binding

The type(s) of task performers allowed.

ProcedurePerformerRoleCodes (preferred)

Requirements

Use to distinguish tasks on different activity queues.

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • workflow: Event.performer.role, Request.performerType
  • w5: FiveWs.actor
  • rim: .participation[typeCode=PRF].role.code
Task.owner
ShortResponsible individual
Definition

Autopopulated by the central service if a performer is assigned at Test submission. By default, this will the Home GLH for the submitting organization, unless an alternative is specified. The Home GLH/original performer (managing entity) SHOULD remain the owner for the Process Genomic Test Task, throughout the test order-fulfillment process. This field can be updated by the organization claiming the task (though this could also be autopopulated if automated per test routing tables are integrated into the central service functionality). Owner SHOULD be populated using organization ODS code references.

The responsibility for routing/reassigning ownership of Tasks lies with the current owner following the transfers of responsibility as per the National Genomic Testing Process (NGTP). The different scenarios for how follow-on routing may be achieved is summarised in the points below:

In most cases, by default the test will be routed to the home GLH (or other lab/GLH as dictated by the initial routing table). This would mean all Tasks by default would have this organization, e.g. home GLH, as the initial owner, it would then be the responsibility of the GLH to reassign tasks to other organizations, where they 'send away' or commission work. Once that work is complete, the send-away organization can choose to reassign the current Task (where another organization needs to conduct work against the same Task before it can be marked as complete)/or assign the follow-on Task (where the current task can be marked as complete) to the next organization, if this is known. If the next organization to send work to is unknown, responsibility should lie with the original/previous owner e.g. Home GLH to reassign the task to the next organization that needs to complete work. This should be captured by having the current owner reassign the task back to the GLH (or organization which assigned the task to them) if further work needs to occur within the current task; or the next task in the NGTP moves from the draft state into the requested state (indicating all its prerequisites have been satisfied). The owner of that task, e.g home GLH, then either starts work or assigns this to the relevant organization. In further phases, a routing advice service may be provided by NHS England to aid organizations in identifying which organization should be assigned, after completing their work. Tasks assigned to a particular organization SHOULD be searched for using the owner search parameter with the :identifier modifier i.e. [base]/Task?owner:identifier=8J834 or [base]/Task?owner:identifier=https://fhir.nhs.uk/Id/ods-organization-code|8J834

Cardinality0..1
TypeReference(UKCoreOrganization)
SummaryTrue
AliasPerformer, Executer
Requirements

Identifies who is expected to perform this task.

Comments

Tasks may be created with an owner not yet identified.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.performer.actor, Request.performer
  • w5: FiveWs.actor
  • rim: .participation[typeCode=PRF].role
Task.owner.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.owner.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.owner.reference
ShortLiteral reference, Relative, internal or absolute URL
Definition

A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.

Cardinality0..0
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1, ref-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.owner.type
ShortType the reference refers to (e.g. "Patient")
Definition

The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.

The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).

Cardinality0..1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)

SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.owner.identifier
ShortLogical reference, when literal reference is not known
Definition

An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.

Cardinality1..1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • rim: .identifier
Task.owner.identifier.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.owner.identifier.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.owner.identifier.use
Shortusual | official | temp | secondary | old (If known)
Definition

The purpose of this identifier.

Cardinality0..1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)

ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: Role.code or implied by context
Task.owner.identifier.type
ShortDescription of identifier
Definition

A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.

Cardinality0..1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)

SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: CX.5
  • rim: Role.code or implied by context
Task.owner.identifier.system
ShortThe namespace for the identifier value
Definition

Establishes the namespace for the value - that is, a URL that describes a set values that are unique.

Cardinality0..1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value
https://fhir.nhs.uk/Id/ods-organisation-code
ExamplesGeneral
http://www.acme.com/identifiers/patient
Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
Task.owner.identifier.value
ShortThe value that is unique
Definition

The portion of the identifier typically relevant to the user and which is unique within the context of the system.

Cardinality0..1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
ExamplesGeneral
123456
Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
Task.owner.identifier.period
ShortTime period when id is/was valid for use
Definition

Time period during which identifier is/was valid for use.

Cardinality0..1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
Task.owner.identifier.assigner
ShortOrganization that issued id (may be just text)
Definition

Organization that issued/manages the identifier.

Cardinality0..1
TypeReference(Organization)
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • v2: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
Task.owner.display
ShortText alternative for the resource
Definition

Plain text narrative that identifies the resource in addition to the resource reference.

Cardinality0..1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
Task.location
ShortWhere task occurs
Definition

Principal physical location where the this task is performed.

Cardinality0..0
TypeReference(Location)
SummaryTrue
Requirements

Ties the event to where the records are likely kept and provides context around the event occurrence (e.g. if it occurred inside or outside a dedicated healthcare setting).

Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.reasonCode, Event.reasonCode
  • w5: FiveWs.where[x]
  • rim: .participation[typeCode=LOC].role
Task.reasonCode
ShortWhy task is needed
Definition

A description or code indicating why this task needs to be performed.

Cardinality0..0
TypeCodeableConcept
Binding

Indicates why the task is needed. E.g. Suspended because patient admitted to hospital.

(unbound) (example)

Comments

This should only be included if there is no focus or if it differs from the reason indicated on the focus.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • workflow: Event.location
  • w5: FiveWs.why[x]
  • v2: EVN.7
  • rim: .reasonCode
Task.reasonReference
ShortWhy task is needed
Definition

A resource reference indicating why this task needs to be performed.

Cardinality0..0
TypeReference(Resource)
Comments

Tasks might be justified based on an Observation, a Condition, a past or planned procedure, etc. This should only be included if there is no focus or if it differs from the reason indicated on the focus. Use the CodeableConcept text element in Task.reasonCode if the data is free (uncoded) text.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.reasonReference, Event.reasonReference
  • w5: FiveWs.why[x]
  • rim: .outboundRelationship[typeCode=RSON].target
Task.insurance
ShortAssociated insurance coverage
Definition

Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Task.

Cardinality0..0
TypeReference(ClaimResponse | Coverage)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.insurance
  • v2: IN1/IN2
  • rim: .outboundRelationship[typeCode=COVBY].target
Task.note
ShortComments made about the task
Definition

Used for messaging between owner and other orgnizations e.g. during handover of task or requesting information from requesting clinician.

Cardinality0..*
TypeAnnotation
Comments

For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: Act
  • workflow: Request.note, Event.note
  • rim: .inboundRelationship[typeCode=SUBJ, ].source[classCode=OBS, moodCode=EVN, code="annotation"].value(string)
Task.relevantHistory
ShortKey events in history of the Task
Definition

Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the task.

Cardinality0..0
TypeReference(Provenance)
AliasStatus History
Comments

This element does not point to the Provenance associated with the current version of the resource - as it would be created after this version existed. The Provenance for the current version can be retrieved with a _revinclude.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Request.relevantHistory
  • rim: .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]
Task.restriction
ShortConstraints on fulfillment tasks
Definition

If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.

Cardinality0..0
TypeBackboneElement
Requirements

Sometimes when fulfillment is sought, you don't want full fulfillment.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: Instead of pointing to request, would point to component of request, having these characteristics
Task.restriction.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.restriction.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.restriction.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.restriction.repetitions
ShortHow many times to repeat
Definition

Indicates the number of times the requested action should occur.

Cardinality0..1
TypepositiveInt
Requirements

E.g. order that requests monthly lab tests, fulfillment is sought for 1.

Comments

32 bit number; for values larger than this, use decimal

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .repeatNumber
Task.restriction.period
ShortWhen fulfillment sought
Definition

Over what time-period is fulfillment sought.

Cardinality0..1
TypePeriod
Requirements

E.g. order that authorizes 1 year's services. Fulfillment is sought for next 3 months.

Comments

Note that period.high is the due date representing the time by which the task should be completed.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • rim: .effectiveTime(IVL<TS>)
Task.restriction.recipient
ShortFor whom is fulfillment sought?
Definition

For requests that are targeted to more than on potential recipient/target, for whom is fulfillment sought?

Cardinality0..*
TypeReference(Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: .participation[typeCode=SBJ].role
Task.input
ShortInformation used to perform task
Definition

Used to attach inputs to a Task, if relevant. e.g. references to Specimen's which a Sample Processing task is acting on. No CodeSystem exists for this field as of publication but this will be investigated as future work. Specimen references SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing. This is to clearly disambiguate which specimen a task is acting on, where multiple specimens are necessary for processing the test request.

Cardinality0..*
TypeBackboneElement
AliasSupporting Information
Requirements

Resources and data used to perform the task. This data is used in the business logic of task execution, and is stored separately because it varies between workflows.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: ???
Task.input.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.input.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.input.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.input.type
ShortLabel for the input
Definition

A code or description indicating how the input is intended to be used as part of the task execution.

Cardinality1..1
TypeCodeableConcept
Binding

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.

https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics (preferred)

AliasName
Requirements

Inputs are named to enable task automation to bind data and pass it from one task to the next.

Comments

If referencing a BPMN workflow or Protocol, the "system" is the URL for the workflow definition and the code is the "name" of the required input.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: ???
Task.input.value[x]
ShortContent to use in performing the task
Definition

The value of the input parameter as a basic type.

Cardinality1..1
TypeAddress | Age | Annotation | Attachment | base64Binary | boolean | canonical | code | CodeableConcept | Coding | ContactDetail | ContactPoint | Contributor | Count | DataRequirement | date | dateTime | decimal | Distance | Dosage | Duration | Expression | HumanName | id | Identifier | instant | integer | markdown | Meta | Money | oid | ParameterDefinition | Period | positiveInt | Quantity | Range | Ratio | Reference | RelatedArtifact | SampledData | Signature | string | time | Timing | TriggerDefinition | unsignedInt | uri | url | UsageContext | uuid
ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: ???
Task.output
ShortInformation produced as part of task
Definition

Used to attach outputs from a Task, if relevant. e.g. VUS files during processing or a DiagnosticReport upon completion of reporting stage. No CodeSystem exists for this field as of publication but this will be investigated as future work. Sample tracking information SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing, on either the output or input elements. This information MAY include consignment number, destination, date sent etc. Further modelling of the types/format expected are pending clinical scenarios.

Cardinality0..*
TypeBackboneElement
Requirements

Resources and data produced during the execution the task. This data is generated by the business logic of task execution, and is stored separately because it varies between workflows.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: ???
Task.output.id
ShortUnique id for inter-element referencing
Definition

Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.

Cardinality0..1
Typestring
Mappings
  • rim: n/a
Task.output.extension
ShortAdditional content defined by implementations
Definition

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

Cardinality0..*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Slicing

Unordered, Open, by url(Value)

Extensions are always sliced by (at least) url

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.output.modifierExtension
ShortExtensions that cannot be ignored even if unrecognized
Definition

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

Cardinality0..*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
Task.output.type
ShortLabel for output
Definition

The name of the Output parameter.

Cardinality1..1
TypeCodeableConcept
Binding

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.

https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics (preferred)

AliasName
Requirements

Outputs are named to enable task automation to bind data and pass it from one task to the next.

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: ???
Task.output.value[x]
ShortResult of output
Definition

The value of the Output parameter as a basic type.

Cardinality1..1
TypeAddress | Age | Annotation | Attachment | base64Binary | boolean | canonical | code | CodeableConcept | Coding | ContactDetail | ContactPoint | Contributor | Count | DataRequirement | date | dateTime | decimal | Distance | Dosage | Duration | Expression | HumanName | id | Identifier | instant | integer | markdown | Meta | Money | oid | ParameterDefinition | Period | positiveInt | Quantity | Range | Ratio | Reference | RelatedArtifact | SampledData | Signature | string | time | Timing | TriggerDefinition | unsignedInt | uri | url | UsageContext | uuid
Requirements

Task outputs can take any form.

ConditionsThe cardinality or value of this element may be affected by these constraints: ele-1
Constraints
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: ???

Table View

Task0..*
Task.idid0..1
Task.metaMeta0..1
Task.implicitRulesuri0..1
Task.languagecode0..1
Task.textNarrative0..1
Task.containedResource0..*
Task.extensionExtension0..*
Task.modifierExtensionExtension0..*
Task.identifierIdentifier0..*
Task.instantiatesCanonicalcanonical(ActivityDefinition)0..1
Task.instantiatesUriuri0..1
Task.basedOnReference(Resource)0..0
Task.basedOn.idstring0..1
Task.basedOn.extensionExtension0..*
Task.basedOn.referencestring0..1
Task.basedOn.typeuri0..1
Task.basedOn.identifierIdentifier0..1
Task.basedOn.identifier.idstring0..1
Task.basedOn.identifier.extensionExtension0..*
Task.basedOn.identifier.usecode0..1
Task.basedOn.identifier.typeCodeableConcept0..1
Task.basedOn.identifier.systemuri0..1
Task.basedOn.identifier.valuestring0..1
Task.basedOn.identifier.periodPeriod0..1
Task.basedOn.identifier.assignerReference(https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics)0..1
Task.basedOn.displaystring0..1
Task.groupIdentifierIdentifier0..1
Task.partOfReference(NHSEngland_Task_Genomics)0..*
Task.partOf.idstring0..1
Task.partOf.extensionExtension0..*
Task.partOf.referencestring0..1
Task.partOf.typeuri0..1
Task.partOf.identifierIdentifier0..1
Task.partOf.identifier.idstring0..1
Task.partOf.identifier.extensionExtension0..*
Task.partOf.identifier.usecode0..1
Task.partOf.identifier.typeCodeableConcept0..1
Task.partOf.identifier.systemuri0..1
Task.partOf.identifier.valuestring0..1
Task.partOf.identifier.periodPeriod0..1
Task.partOf.identifier.assignerReference(UKCoreOrganization | https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics)0..1
Task.partOf.displaystring0..1
Task.statuscode1..1
Task.statusReasonCodeableConcept0..1
Task.businessStatusCodeableConcept0..1
Task.intentcode1..1
Task.prioritycode0..1
Task.codeCodeableConcept1..1
Task.descriptionstring0..0
Task.focusReference(NHSEngland_ServiceRequest_Genomics)1..1
Task.forReference(Resource | NHSEngland_Patient_Genomics)1..1
Task.encounterReference(Encounter)0..0
Task.executionPeriodPeriod0..1
Task.authoredOndateTime1..1
Task.lastModifieddateTime0..1
Task.requesterReference(NHSEngland_PractitionerRole_Genomics)1..1
Task.performerTypeCodeableConcept0..0
Task.ownerReference(UKCoreOrganization)0..1
Task.owner.idstring0..1
Task.owner.extensionExtension0..*
Task.owner.referencestring0..0
Task.owner.typeuri0..1
Task.owner.identifierIdentifier1..1
Task.owner.identifier.idstring0..1
Task.owner.identifier.extensionExtension0..*
Task.owner.identifier.usecode0..1
Task.owner.identifier.typeCodeableConcept0..1
Task.owner.identifier.systemuri0..1
Task.owner.identifier.valuestring0..1
Task.owner.identifier.periodPeriod0..1
Task.owner.identifier.assignerReference(Organization)0..1
Task.owner.displaystring0..1
Task.locationReference(Location)0..0
Task.reasonCodeCodeableConcept0..0
Task.reasonReferenceReference(Resource)0..0
Task.insuranceReference(ClaimResponse | Coverage)0..0
Task.noteAnnotation0..*
Task.relevantHistoryReference(Provenance)0..0
Task.restrictionBackboneElement0..0
Task.restriction.idstring0..1
Task.restriction.extensionExtension0..*
Task.restriction.modifierExtensionExtension0..*
Task.restriction.repetitionspositiveInt0..1
Task.restriction.periodPeriod0..1
Task.restriction.recipientReference(Group | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)0..*
Task.inputBackboneElement0..*
Task.input.idstring0..1
Task.input.extensionExtension0..*
Task.input.modifierExtensionExtension0..*
Task.input.typeCodeableConcept1..1
Task.input.value[x]Address | Age | Annotation | Attachment | base64Binary | boolean | canonical | code | CodeableConcept | Coding | ContactDetail | ContactPoint | Contributor | Count | DataRequirement | date | dateTime | decimal | Distance | Dosage | Duration | Expression | HumanName | id | Identifier | instant | integer | markdown | Meta | Money | oid | ParameterDefinition | Period | positiveInt | Quantity | Range | Ratio | Reference | RelatedArtifact | SampledData | Signature | string | time | Timing | TriggerDefinition | unsignedInt | uri | url | UsageContext | uuid1..1
Task.outputBackboneElement0..*
Task.output.idstring0..1
Task.output.extensionExtension0..*
Task.output.modifierExtensionExtension0..*
Task.output.typeCodeableConcept1..1
Task.output.value[x]Address | Age | Annotation | Attachment | base64Binary | boolean | canonical | code | CodeableConcept | Coding | ContactDetail | ContactPoint | Contributor | Count | DataRequirement | date | dateTime | decimal | Distance | Dosage | Duration | Expression | HumanName | id | Identifier | instant | integer | markdown | Meta | Money | oid | ParameterDefinition | Period | positiveInt | Quantity | Range | Ratio | Reference | RelatedArtifact | SampledData | Signature | string | time | Timing | TriggerDefinition | unsignedInt | uri | url | UsageContext | uuid1..1

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="NHSEngland-Task-Genomics" />
<url value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomics" />
<version value="0.3.0" />
<name value="NHSEngland_Task_Genomics" />
<title value="NHSEngland Task Genomics" />
<status value="active" />
<date value="2026-04-16" />
<publisher value="NHS England" />
<name value="NHS England" />
<system value="email" />
<value value="interoperabilityteam@nhs.net" />
<use value="work" />
<rank value="1" />
</telecom>
</contact>
<description value="This profile defines the Genomics constraints and extensions on the International FHIR resource [Task](http://hl7.org/fhir/StructureDefinition/Task)." />
<purpose value="The core workflow resource for managing processing of a ServiceRequest from order through to delivery of a DiagnosticReport and completion is Task. Task tracking is a core requirement of the central Genomic Medicine Service.\n\nEach ServiceRequest submitted will instantiate a series of High Level Tasks, which MAY be assigned to different organizations for managing the test request e.g. Sample Processing, Interpretation, Reporting etc. The full list of possible Task types/codes, their associated business statuses, and status reasons is pending internal review.\n\nTasks will be automatically created by the central broker but updates to statuses and attachment of input/output resources is the responsibility of the assigned organizations.\n\nIn most cases, the full library of 10 tasks, as defined within Genomic-Task-Code, will be 'spun-up', on submission of a Test order. Tasks related to Samples MAY be duplicated per Sample to allow tracking of work related to individual Samples as part of the same test request, or equally, MAY be omitted as in the case of Re-Analysis or Re-Interpretation where data from an existing sample is used, eliminating the need for additional wet-work. For the full cardinality breakdown see further guidance for the Task.code element." />
<copyright value="Copyright © 2026+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html." />
<fhirVersion value="4.0.1" />
<kind value="resource" />
<abstract value="false" />
<type value="Task" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Task" />
<derivation value="constraint" />
<element id="Task">
<path value="Task" />
<short value="A task to be performed" />
<definition value="A task to be performed." />
<min value="0" />
<max value="*" />
<path value="Task" />
<min value="0" />
<max value="*" />
</base>
<key value="dom-2" />
<severity value="error" />
<human value="If the resource is contained in another resource, it SHALL NOT contain nested Resources" />
<expression value="contained.contained.empty()" />
<xpath value="not(parent::f:contained and f:contained)" />
<source value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
</constraint>
<key value="dom-4" />
<severity value="error" />
<human value="If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated" />
<expression value="contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()" />
<xpath value="not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))" />
<source value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
</constraint>
<key value="dom-3" />
<severity value="error" />
<human value="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" />
<expression value="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()" />
<xpath value="not(exists(for $id in f:contained/*/f:id/@value return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))" />
<source value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
</constraint>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice">
<valueBoolean value="true" />
</extension>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation">
<valueMarkdown value="When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time." />
</extension>
<key value="dom-6" />
<severity value="warning" />
<human value="A resource should have narrative for robust management" />
<expression value="text.`div`.exists()" />
<xpath value="exists(f:text/h:div)" />
<source value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
</constraint>
<key value="dom-5" />
<severity value="error" />
<human value="If a resource is contained in another resource, it SHALL NOT have a security label" />
<expression value="contained.meta.security.empty()" />
<xpath value="not(exists(f:contained/*/f:meta/f:security))" />
<source value="http://hl7.org/fhir/StructureDefinition/DomainResource" />
</constraint>
<key value="inv-1" />
<severity value="error" />
<human value="Last modified date must be greater than or equal to authored-on date." />
<expression value="lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn" />
<xpath value="not(exists(f:lastModified/@value)) or not(exists(f:authoredOn/@value)) or f:lastModified/@value >= f:authoredOn/@value" />
<source value="http://hl7.org/fhir/StructureDefinition/Task" />
</constraint>
<identity value="rim" />
<map value="Entity. Role, or Act" />
</mapping>
<identity value="workflow" />
<map value="Request, Event" />
</mapping>
<identity value="rim" />
<map value="ControlAct[moodCode=INT]" />
</mapping>
</element>
<element id="Task.id">
<path value="Task.id" />
<short value="Logical id of this artifact" />
<definition value="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes." />
<comment value="The only time that a resource does not have an id is when it is being submitted to the server using a create operation." />
<min value="0" />
<max value="1" />
<path value="Resource.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="id" />
</extension>
<code value="id" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.meta">
<path value="Task.meta" />
<short value="Metadata about the resource" />
<definition value="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource." />
<min value="0" />
<max value="1" />
<path value="Resource.meta" />
<min value="0" />
<max value="1" />
</base>
<code value="Meta" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.implicitRules">
<path value="Task.implicitRules" />
<short value="A set of rules under which this content was created" />
<definition value="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc." />
<comment value="Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc." />
<min value="0" />
<max value="1" />
<path value="Resource.implicitRules" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isModifier value="true" />
<isModifierReason value="This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation" />
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.language">
<path value="Task.language" />
<short value="Language of the resource content" />
<definition value="The base language in which the resource is written." />
<comment value="Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute)." />
<min value="0" />
<max value="1" />
<path value="Resource.language" />
<min value="0" />
<max value="1" />
</base>
<code value="code" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet">
<valueCanonical value="http://hl7.org/fhir/ValueSet/all-languages" />
</extension>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="Language" />
</extension>
<strength value="preferred" />
<description value="A human language." />
<valueSet value="http://hl7.org/fhir/ValueSet/languages" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.text">
<path value="Task.text" />
<short value="Text summary of the resource, for human interpretation" />
<definition value="A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety." />
<comment value="Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later." />
<alias value="narrative" />
<alias value="html" />
<alias value="xhtml" />
<alias value="display" />
<min value="0" />
<max value="1" />
<path value="DomainResource.text" />
<min value="0" />
<max value="1" />
</base>
<code value="Narrative" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
<identity value="rim" />
<map value="Act.text?" />
</mapping>
</element>
<element id="Task.contained">
<path value="Task.contained" />
<short value="Contained, inline Resources" />
<definition value="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope." />
<comment value="This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels." />
<alias value="inline resources" />
<alias value="anonymous resources" />
<alias value="contained resources" />
<min value="0" />
<max value="*" />
<path value="DomainResource.contained" />
<min value="0" />
<max value="*" />
</base>
<code value="Resource" />
</type>
<identity value="rim" />
<map value="Entity. Role, or Act" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.extension">
<path value="Task.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="DomainResource.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.modifierExtension">
<path value="Task.modifierExtension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Extensions that cannot be ignored" />
<definition value="May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<requirements value="Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension)." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="DomainResource.modifierExtension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<isModifier value="true" />
<isModifierReason value="Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.identifier">
<path value="Task.identifier" />
<short value="Task Instance Identifier" />
<definition value="The business identifier for this task." />
<min value="0" />
<max value="*" />
<path value="Task.identifier" />
<min value="0" />
<max value="*" />
</base>
<code value="Identifier" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX / EI (occasionally, more often EI maps to a resource id or a URL)" />
</mapping>
<identity value="rim" />
<map value="II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" />
</mapping>
<identity value="servd" />
<map value="Identifier" />
</mapping>
<identity value="workflow" />
<map value="Request.identifier, Event.identifier" />
</mapping>
<identity value="w5" />
<map value="FiveWs.identifier" />
</mapping>
<identity value="rim" />
<map value=".id" />
</mapping>
</element>
<element id="Task.instantiatesCanonical">
<path value="Task.instantiatesCanonical" />
<short value="Formal definition of task" />
<definition value="The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task." />
<comment value="see [Canonical References](references.html#canonical)" />
<requirements value="Enables a formal definition of how he task is to be performed, enabling automation." />
<min value="0" />
<max value="1" />
<path value="Task.instantiatesCanonical" />
<min value="0" />
<max value="1" />
</base>
<code value="canonical" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/ActivityDefinition" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="workflow" />
<map value="Request.instantiatesCanonical, Event.instantiatesCanonical" />
</mapping>
<identity value="rim" />
<map value=".outboundRelationship[typeCode=DEFN].target" />
</mapping>
</element>
<element id="Task.instantiatesUri">
<path value="Task.instantiatesUri" />
<short value="Formal definition of task" />
<definition value="The URL pointing to an *externally* maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task." />
<comment value="see http://en.wikipedia.org/wiki/Uniform_resource_identifier" />
<requirements value="Enables a formal definition of how he task is to be performed (e.g. using BPMN, BPEL, XPDL or other formal notation to be associated with a task), enabling automation." />
<min value="0" />
<max value="1" />
<path value="Task.instantiatesUri" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="workflow" />
<map value="Event.instantiatesUrl" />
</mapping>
<identity value="rim" />
<map value=".outboundRelationship[typeCode=DEFN].target" />
</mapping>
</element>
<element id="Task.basedOn">
<path value="Task.basedOn" />
<short value="Request fulfilled by this task" />
<definition value="This element will not be used within the Genomic Medicine Service. The ServiceRequest a Task is seeking to fulfill SHALL be referenced through the `focus` element. Specimen resources being acted upon by tasks related to specimen prep/processing SHOULD be referenced through the `Task.input` element." />
<comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository." />
<min value="0" />
<max value="0" />
<path value="Task.basedOn" />
<min value="0" />
<max value="*" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Resource" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.basedOn, Event.basedOn" />
</mapping>
<identity value="rim" />
<map value=".outboundRelationship[typeCode=FLFS].target[moodCode=INT]" />
</mapping>
</element>
<element id="Task.basedOn.id">
<path value="Task.basedOn.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.basedOn.extension">
<path value="Task.basedOn.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.basedOn.reference">
<path value="Task.basedOn.reference" />
<short value="Literal reference, Relative, internal or absolute URL" />
<definition value="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources." />
<comment value="Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server." />
<min value="0" />
<max value="1" />
<path value="Reference.reference" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<condition value="ele-1" />
<condition value="ref-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.basedOn.type">
<path value="Task.basedOn.type" />
<short value="Type the reference refers to (e.g. "Patient")" />
<definition value="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources)." />
<comment value="This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified." />
<min value="0" />
<max value="1" />
<path value="Reference.type" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="FHIRResourceTypeExt" />
</extension>
<strength value="extensible" />
<description value="Aa resource (or, for logical models, the URI of the logical model)." />
<valueSet value="http://hl7.org/fhir/ValueSet/resource-types" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.basedOn.identifier">
<path value="Task.basedOn.identifier" />
<short value="Logical reference, when literal reference is not known" />
<definition value="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference." />
<comment value="When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any)." />
<min value="0" />
<max value="1" />
<path value="Reference.identifier" />
<min value="0" />
<max value="1" />
</base>
<code value="Identifier" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX / EI (occasionally, more often EI maps to a resource id or a URL)" />
</mapping>
<identity value="rim" />
<map value="II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" />
</mapping>
<identity value="servd" />
<map value="Identifier" />
</mapping>
<identity value="rim" />
<map value=".identifier" />
</mapping>
</element>
<element id="Task.basedOn.identifier.id">
<path value="Task.basedOn.identifier.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.basedOn.identifier.extension">
<path value="Task.basedOn.identifier.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.basedOn.identifier.use">
<path value="Task.basedOn.identifier.use" />
<short value="usual | official | temp | secondary | old (If known)" />
<definition value="The purpose of this identifier." />
<comment value="Applications can assume that an identifier is permanent unless it explicitly says that it is temporary." />
<requirements value="Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers." />
<min value="0" />
<max value="1" />
<path value="Identifier.use" />
<min value="0" />
<max value="1" />
</base>
<code value="code" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isModifier value="true" />
<isModifierReason value="This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one." />
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="IdentifierUse" />
</extension>
<strength value="required" />
<description value="Identifies the purpose for this identifier, if known ." />
<valueSet value="http://hl7.org/fhir/ValueSet/identifier-use|4.0.1" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="N/A" />
</mapping>
<identity value="rim" />
<map value="Role.code or implied by context" />
</mapping>
</element>
<element id="Task.basedOn.identifier.type">
<path value="Task.basedOn.identifier.type" />
<short value="Description of identifier" />
<definition value="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose." />
<comment value="This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type." />
<requirements value="Allows users to make use of identifiers when the identifier system is not known." />
<min value="0" />
<max value="1" />
<path value="Identifier.type" />
<min value="0" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="IdentifierType" />
</extension>
<strength value="extensible" />
<description value="A coded type for an identifier that can be used to determine which identifier to use for a specific purpose." />
<valueSet value="http://hl7.org/fhir/ValueSet/identifier-type" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="v2" />
<map value="CX.5" />
</mapping>
<identity value="rim" />
<map value="Role.code or implied by context" />
</mapping>
</element>
<element id="Task.basedOn.identifier.system">
<path value="Task.basedOn.identifier.system" />
<short value="The namespace for the identifier value" />
<definition value="Establishes the namespace for the value - that is, a URL that describes a set values that are unique." />
<comment value="Identifier.system is always case sensitive." />
<requirements value="There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers." />
<min value="0" />
<max value="1" />
<path value="Identifier.system" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<label value="General" />
<valueUri value="http://www.acme.com/identifiers/patient" />
</example>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX.4 / EI-2-4" />
</mapping>
<identity value="rim" />
<map value="II.root or Role.id.root" />
</mapping>
<identity value="servd" />
<map value="./IdentifierType" />
</mapping>
</element>
<element id="Task.basedOn.identifier.value">
<path value="Task.basedOn.identifier.value" />
<short value="The value that is unique" />
<definition value="The portion of the identifier typically relevant to the user and which is unique within the context of the system." />
<comment value="If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe." />
<min value="0" />
<max value="1" />
<path value="Identifier.value" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<label value="General" />
<valueString value="123456" />
</example>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX.1 / EI.1" />
</mapping>
<identity value="rim" />
<map value="II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)" />
</mapping>
<identity value="servd" />
<map value="./Value" />
</mapping>
</element>
<element id="Task.basedOn.identifier.period">
<path value="Task.basedOn.identifier.period" />
<short value="Time period when id is/was valid for use" />
<definition value="Time period during which identifier is/was valid for use." />
<comment value="A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration)." />
<min value="0" />
<max value="1" />
<path value="Identifier.period" />
<min value="0" />
<max value="1" />
</base>
<code value="Period" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="per-1" />
<severity value="error" />
<human value="If present, start SHALL have a lower value than end" />
<expression value="start.hasValue().not() or end.hasValue().not() or (start <= end)" />
<xpath value="not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))" />
<source value="http://hl7.org/fhir/StructureDefinition/Period" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="DR" />
</mapping>
<identity value="rim" />
<map value="IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]" />
</mapping>
<identity value="v2" />
<map value="CX.7 + CX.8" />
</mapping>
<identity value="rim" />
<map value="Role.effectiveTime or implied by context" />
</mapping>
<identity value="servd" />
<map value="./StartDate and ./EndDate" />
</mapping>
</element>
<element id="Task.basedOn.identifier.assigner">
<path value="Task.basedOn.identifier.assigner" />
<short value="Organization that issued id (may be just text)" />
<definition value="Organization that issued/manages the identifier." />
<comment value="The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization." />
<min value="0" />
<max value="1" />
<path value="Identifier.assigner" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics" />
<aggregation value="referenced" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="v2" />
<map value="CX.4 / (CX.4,CX.9,CX.10)" />
</mapping>
<identity value="rim" />
<map value="II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper" />
</mapping>
<identity value="servd" />
<map value="./IdentifierIssuingAuthority" />
</mapping>
</element>
<element id="Task.basedOn.display">
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
<valueBoolean value="true" />
</extension>
<path value="Task.basedOn.display" />
<short value="Text alternative for the resource" />
<definition value="Plain text narrative that identifies the resource in addition to the resource reference." />
<comment value="This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it." />
<min value="0" />
<max value="1" />
<path value="Reference.display" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.groupIdentifier">
<path value="Task.groupIdentifier" />
<short value="Requisition or grouper id" />
<definition value="An identifier that links together multiple tasks and other requests that were created in the same context." />
<requirements value="Billing and/or reporting can be linked to whether multiple requests were created as a single unit." />
<min value="0" />
<max value="1" />
<path value="Task.groupIdentifier" />
<min value="0" />
<max value="1" />
</base>
<code value="Identifier" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX / EI (occasionally, more often EI maps to a resource id or a URL)" />
</mapping>
<identity value="rim" />
<map value="II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" />
</mapping>
<identity value="servd" />
<map value="Identifier" />
</mapping>
<identity value="workflow" />
<map value="Request.groupIdentifier" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship[typeCode=COMP].source[moodCode=INT].id" />
</mapping>
</element>
<element id="Task.partOf">
<path value="Task.partOf" />
<short value="Composite task" />
<definition value="Task that this particular task is part of." />
<comment value="This should usually be 0..1." />
<requirements value="Allows tasks to be broken down into sub-steps (and this division can occur independent of the original task)." />
<min value="0" />
<max value="*" />
<path value="Task.partOf" />
<min value="0" />
<max value="*" />
</base>
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomics" />
<aggregation value="referenced" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Event.partOf" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship[typeCode=COMP].source[moodCode=INT]" />
</mapping>
</element>
<element id="Task.partOf.id">
<path value="Task.partOf.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.partOf.extension">
<path value="Task.partOf.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.partOf.reference">
<path value="Task.partOf.reference" />
<short value="Literal reference, Relative, internal or absolute URL" />
<definition value="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources." />
<comment value="Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server." />
<min value="0" />
<max value="1" />
<path value="Reference.reference" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<condition value="ele-1" />
<condition value="ref-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.partOf.type">
<path value="Task.partOf.type" />
<short value="Type the reference refers to (e.g. "Patient")" />
<definition value="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources)." />
<comment value="This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified." />
<min value="0" />
<max value="1" />
<path value="Reference.type" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="FHIRResourceTypeExt" />
</extension>
<strength value="extensible" />
<description value="Aa resource (or, for logical models, the URI of the logical model)." />
<valueSet value="http://hl7.org/fhir/ValueSet/resource-types" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.partOf.identifier">
<path value="Task.partOf.identifier" />
<short value="Logical reference, when literal reference is not known" />
<definition value="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference." />
<comment value="When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any)." />
<min value="0" />
<max value="1" />
<path value="Reference.identifier" />
<min value="0" />
<max value="1" />
</base>
<code value="Identifier" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX / EI (occasionally, more often EI maps to a resource id or a URL)" />
</mapping>
<identity value="rim" />
<map value="II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" />
</mapping>
<identity value="servd" />
<map value="Identifier" />
</mapping>
<identity value="rim" />
<map value=".identifier" />
</mapping>
</element>
<element id="Task.partOf.identifier.id">
<path value="Task.partOf.identifier.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.partOf.identifier.extension">
<path value="Task.partOf.identifier.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.partOf.identifier.use">
<path value="Task.partOf.identifier.use" />
<short value="usual | official | temp | secondary | old (If known)" />
<definition value="The purpose of this identifier." />
<comment value="Applications can assume that an identifier is permanent unless it explicitly says that it is temporary." />
<requirements value="Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers." />
<min value="0" />
<max value="1" />
<path value="Identifier.use" />
<min value="0" />
<max value="1" />
</base>
<code value="code" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isModifier value="true" />
<isModifierReason value="This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one." />
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="IdentifierUse" />
</extension>
<strength value="required" />
<description value="Identifies the purpose for this identifier, if known ." />
<valueSet value="http://hl7.org/fhir/ValueSet/identifier-use|4.0.1" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="N/A" />
</mapping>
<identity value="rim" />
<map value="Role.code or implied by context" />
</mapping>
</element>
<element id="Task.partOf.identifier.type">
<path value="Task.partOf.identifier.type" />
<short value="Description of identifier" />
<definition value="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose." />
<comment value="This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type." />
<requirements value="Allows users to make use of identifiers when the identifier system is not known." />
<min value="0" />
<max value="1" />
<path value="Identifier.type" />
<min value="0" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="IdentifierType" />
</extension>
<strength value="extensible" />
<description value="A coded type for an identifier that can be used to determine which identifier to use for a specific purpose." />
<valueSet value="http://hl7.org/fhir/ValueSet/identifier-type" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="v2" />
<map value="CX.5" />
</mapping>
<identity value="rim" />
<map value="Role.code or implied by context" />
</mapping>
</element>
<element id="Task.partOf.identifier.system">
<path value="Task.partOf.identifier.system" />
<short value="The namespace for the identifier value" />
<definition value="Establishes the namespace for the value - that is, a URL that describes a set values that are unique." />
<comment value="Identifier.system is always case sensitive." />
<requirements value="There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers." />
<min value="0" />
<max value="1" />
<path value="Identifier.system" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<label value="General" />
<valueUri value="http://www.acme.com/identifiers/patient" />
</example>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX.4 / EI-2-4" />
</mapping>
<identity value="rim" />
<map value="II.root or Role.id.root" />
</mapping>
<identity value="servd" />
<map value="./IdentifierType" />
</mapping>
</element>
<element id="Task.partOf.identifier.value">
<path value="Task.partOf.identifier.value" />
<short value="The value that is unique" />
<definition value="The portion of the identifier typically relevant to the user and which is unique within the context of the system." />
<comment value="If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe." />
<min value="0" />
<max value="1" />
<path value="Identifier.value" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<label value="General" />
<valueString value="123456" />
</example>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX.1 / EI.1" />
</mapping>
<identity value="rim" />
<map value="II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)" />
</mapping>
<identity value="servd" />
<map value="./Value" />
</mapping>
</element>
<element id="Task.partOf.identifier.period">
<path value="Task.partOf.identifier.period" />
<short value="Time period when id is/was valid for use" />
<definition value="Time period during which identifier is/was valid for use." />
<comment value="A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration)." />
<min value="0" />
<max value="1" />
<path value="Identifier.period" />
<min value="0" />
<max value="1" />
</base>
<code value="Period" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="per-1" />
<severity value="error" />
<human value="If present, start SHALL have a lower value than end" />
<expression value="start.hasValue().not() or end.hasValue().not() or (start <= end)" />
<xpath value="not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))" />
<source value="http://hl7.org/fhir/StructureDefinition/Period" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="DR" />
</mapping>
<identity value="rim" />
<map value="IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]" />
</mapping>
<identity value="v2" />
<map value="CX.7 + CX.8" />
</mapping>
<identity value="rim" />
<map value="Role.effectiveTime or implied by context" />
</mapping>
<identity value="servd" />
<map value="./StartDate and ./EndDate" />
</mapping>
</element>
<element id="Task.partOf.identifier.assigner">
<path value="Task.partOf.identifier.assigner" />
<short value="Organization that issued id (may be just text)" />
<definition value="Organization that issued/manages the identifier." />
<comment value="The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization." />
<min value="0" />
<max value="1" />
<path value="Identifier.assigner" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics" />
<aggregation value="referenced" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="v2" />
<map value="CX.4 / (CX.4,CX.9,CX.10)" />
</mapping>
<identity value="rim" />
<map value="II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper" />
</mapping>
<identity value="servd" />
<map value="./IdentifierIssuingAuthority" />
</mapping>
</element>
<element id="Task.partOf.display">
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
<valueBoolean value="true" />
</extension>
<path value="Task.partOf.display" />
<short value="Text alternative for the resource" />
<definition value="Plain text narrative that identifies the resource in addition to the resource reference." />
<comment value="This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it." />
<min value="0" />
<max value="1" />
<path value="Reference.display" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.status">
<path value="Task.status" />
<short value="draft | requested | received | accepted | +" />
<definition value="Initially, automatically populated by the central service upon instantiation. Tasks will be first marked as 'draft' until their prerequisites have been satisfied, after which they will be marked as 'requested' until accepted/claimed by an organization. Upon acceptance, the owning organization is responsible for updating the status up until completion (or if the owning organization is not integrated into the GMS, the organization who has referred the task to the unintegrated org).\nIf a ServiceRequest is cancelled, any Tasks which have not already moved into in-progress SHALL be moved into the cancelled state, any in-progress Tasks will require lab processes to manage closure of the Task and appropriate reimbursement. For a full list of possible automatic cascading of ServiceRequest.status to Task.status please see additional guidance on the status element on the UKCore-ServiceRequest profile page.\n\nIt is not expected that Task statuses will propagate up to the ServiceRequest status, though certain task failure types may require revokation of the authorising request (pending investigation).\n\nFor the full list of expected Task statuses in use by the GMS, please refer to the table below. For the allowed Task status transitions, please see the FHIR R4 Task state machine model." />
<comment value="Note that FHIR strings SHALL NOT exceed 1MB in size" />
<requirements value="These states enable coordination of task status with off-the-shelf workflow solutions that support automation of tasks." />
<min value="1" />
<max value="1" />
<path value="Task.status" />
<min value="1" />
<max value="1" />
</base>
<code value="code" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isModifier value="true" />
<isModifierReason value="This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid" />
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskStatus" />
</extension>
<strength value="required" />
<description value="The current status of the task." />
<valueSet value="http://hl7.org/fhir/ValueSet/task-status|4.0.1" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="workflow" />
<map value="Request.status, Event.status" />
</mapping>
<identity value="w5" />
<map value="FiveWs.status" />
</mapping>
<identity value="rim" />
<map value=".statusCode" />
</mapping>
</element>
<element id="Task.statusReason">
<path value="Task.statusReason" />
<short value="Reason for current status" />
<definition value="Reasons why a Task has been marked as on-hold, cancelled etc. SHOULD use the Genomic-Task-StatusReason CodeSystem. NOTE: The list of appropriate statusReasons is pending finalization.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text reason captured within Task.statusReason.text." />
<comment value="This applies to the current status. Look at the history of the task to see reasons for past statuses." />
<min value="0" />
<max value="1" />
<path value="Task.statusReason" />
<min value="0" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskStatusReason" />
</extension>
<strength value="preferred" />
<description value="Codes to identify the reason for current status. These will typically be specific to a particular workflow." />
<valueSet value="https://fhir.nhs.uk/ValueSet/task-statusReason-genomics" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN, code="status change"].reasonCode" />
</mapping>
</element>
<element id="Task.businessStatus">
<path value="Task.businessStatus" />
<short value="E.g. "Specimen Received", "Analysis In Progress"" />
<definition value="Genomic specific business statuses for capturing more granular information as part of processing the task. SHOULD use the Genomic-Business-Status CodeSystem. NOTE: The list of appropriate buinessStatuses is pending finalization. Mapping business statuses to the high level container Tasks and statuses is still ongoing.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text status captured within Task.businessStatus.text." />
<comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination." />
<requirements value="There's often a need to track substates of a task - this is often variable by specific workflow implementation." />
<min value="0" />
<max value="1" />
<path value="Task.businessStatus" />
<min value="0" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskBusinessStatus" />
</extension>
<strength value="preferred" />
<description value="The domain-specific business-contextual sub-state of the task. ValueSet specific for Genomics, subject to change." />
<valueSet value="https://fhir.nhs.uk/ValueSet/genomics-business-status" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code="business status"]" />
</mapping>
</element>
<element id="Task.intent">
<path value="Task.intent" />
<short value="unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option" />
<definition value="Indicates the "level" of actionability associated with the Task, i.e. i+R[9]Cs this a proposed task, a planned task, an actionable task, etc." />
<comment value="This element is immutable. Proposed tasks, planned tasks, etc. must be distinct instances.\n\nIn most cases, Tasks will have an intent of "order"." />
<min value="1" />
<max value="1" />
<path value="Task.intent" />
<min value="1" />
<max value="1" />
</base>
<code value="code" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskIntent" />
</extension>
<strength value="required" />
<description value="Distinguishes whether the task is a proposal, plan or full order." />
<valueSet value="http://hl7.org/fhir/ValueSet/task-intent|4.0.1" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="workflow" />
<map value="Request.intent" />
</mapping>
<identity value="w5" />
<map value="FiveWs.class" />
</mapping>
<identity value="rim" />
<map value=".moodCode" />
</mapping>
</element>
<element id="Task.priority">
<path value="Task.priority" />
<short value="routine | urgent | asap | stat" />
<definition value="Indicates how quickly the Task should be addressed with respect to other requests." />
<comment value="Note that FHIR strings SHALL NOT exceed 1MB in size" />
<requirements value="Used to identify the service level expected while performing a task." />
<min value="0" />
<max value="1" />
<path value="Task.priority" />
<min value="0" />
<max value="1" />
</base>
<code value="code" />
</type>
<meaningWhenMissing value="If missing, this task should be performed with normal priority" />
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskPriority" />
</extension>
<strength value="required" />
<description value="The task's priority." />
<valueSet value="http://hl7.org/fhir/ValueSet/request-priority|4.0.1" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="workflow" />
<map value="Request.priority" />
</mapping>
<identity value="w5" />
<map value="FiveWs.grade" />
</mapping>
<identity value="rim" />
<map value=".priorityCode" />
</mapping>
</element>
<element id="Task.code">
<path value="Task.code" />
<short value="Task Type" />
<definition value="High level coding for the Task, matches the NGTP stages for genomic test processing. Clients SHOULD use the Genomic-Task-Code CodeSystem. NOTE: The list of appropriate codes is pending finalization.\nThe currently allowed code list and their definition is provided in the table below. The table also provides the cardinality of each Task per ServiceRequest or Sample attached to the request as generated by the central broker on submission of a test request. Note: the cardinalities listed reflect the number of concurrent active tasks per service request at any one time, there may be cases where additional Tasks need to be spun up manually, e.g. on failure such as when a new sample needs to be processed after a previous sample fails Quality Control, or when further preparation is required. This cardinality supports the use cases for both requests with multiple participants, e.g. Duo/Trio, and multiple samples per participant e.g. Cancer testing." />
<comment value="The title (eg "My Tasks", "Outstanding Tasks for Patient X") should go into the code." />
<min value="1" />
<max value="1" />
<path value="Task.code" />
<min value="0" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskCode" />
</extension>
<strength value="preferred" />
<description value="Codes to identify what the task involves. These will typically be specific to a particular workflow." />
<valueSet value="https://fhir.nhs.uk/ValueSet/task-code-genomics" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="workflow" />
<map value="Request.code, Event.code" />
</mapping>
<identity value="w5" />
<map value="FiveWs.what[x]" />
</mapping>
<identity value="rim" />
<map value=".code" />
</mapping>
</element>
<element id="Task.description">
<path value="Task.description" />
<short value="Human-readable explanation of task" />
<definition value="A free-text description of what is to be performed." />
<comment value="Note that FHIR strings SHALL NOT exceed 1MB in size" />
<min value="0" />
<max value="0" />
<path value="Task.description" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value=".text" />
</mapping>
</element>
<element id="Task.focus">
<path value="Task.focus" />
<short value="What task is acting on" />
<definition value="The ServiceRequest the Task is fulfilling. Autopopulated by the central service." />
<comment value="If multiple resources need to be manipulated, use sub-tasks. (This ensures that status can be tracked independently for each referenced resource.)." />
<requirements value="Used to identify the thing to be done." />
<min value="1" />
<max value="1" />
<path value="Task.focus" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-ServiceRequest-Genomics" />
<aggregation value="referenced" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="w5" />
<map value="FiveWs.what[x]" />
</mapping>
<identity value="rim" />
<map value=".outboundRelationship[typeCode=SUBJ].target" />
</mapping>
</element>
<element id="Task.for">
<path value="Task.for" />
<short value="Beneficiary of the Task" />
<definition value="A reference to the Patient resource or the identifier, NHS number, for the patient for whom the Task is for. Autopopulated by the central service if the Task is automatically generated.\nIf a Task is created by client system or user interaction, for SHALL be populated with a reference to the associated Patient. This MAY be through a resource reference if the ID on the central service is known (or provided within the transaction bundle) or through NHS number where this is known and has been traced through PDS." />
<comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository." />
<requirements value="Used to track tasks outstanding for a beneficiary. Do not use to track the task owner or creator (see owner and creator respectively). This can also affect access control." />
<alias value="Patient" />
<min value="1" />
<max value="1" />
<path value="Task.for" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Patient-Genomics" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Resource" />
<aggregation value="referenced" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.subject, Event.subject" />
</mapping>
<identity value="w5" />
<map value="FiveWs.subject[x]" />
</mapping>
<identity value="rim" />
<map value=".participation[typeCode=RCT].role" />
</mapping>
<identity value="w5" />
<map value="FiveWs.subject" />
</mapping>
</element>
<element id="Task.encounter">
<path value="Task.encounter" />
<short value="Healthcare event during which this task originated" />
<definition value="The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was created." />
<comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository." />
<requirements value="For some tasks it may be important to know the link between the encounter the task originated within." />
<min value="0" />
<max value="0" />
<path value="Task.encounter" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Encounter" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.context, Event.context" />
</mapping>
<identity value="w5" />
<map value="FiveWs.context" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship[typeCode=COMP].source[classCode=PCPR, moodCode=EVN]" />
</mapping>
</element>
<element id="Task.executionPeriod">
<path value="Task.executionPeriod" />
<short value="Start and end time of execution" />
<definition value="MAY be used to capture start and end DateTimes associated with execution of a Task. It is expected the start time will be populated as a Task is moved to in-progress and the end time will be populated as a Task is marked as completed. Usage of this field will be investigated during the Alpha phase of the Genomic Order Management project as timelines for task execution can also be derived from the AuditEvents recorded as Tasks are updated." />
<comment value="A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration)." />
<min value="0" />
<max value="1" />
<path value="Task.executionPeriod" />
<min value="0" />
<max value="1" />
</base>
<code value="Period" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="per-1" />
<severity value="error" />
<human value="If present, start SHALL have a lower value than end" />
<expression value="start.hasValue().not() or end.hasValue().not() or (start <= end)" />
<xpath value="not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))" />
<source value="http://hl7.org/fhir/StructureDefinition/Period" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="DR" />
</mapping>
<identity value="rim" />
<map value="IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]" />
</mapping>
<identity value="workflow" />
<map value="Event.occurrence[x]" />
</mapping>
<identity value="w5" />
<map value="FiveWs.done[x]" />
</mapping>
<identity value="rim" />
<map value=".effectiveTime" />
</mapping>
</element>
<element id="Task.authoredOn">
<path value="Task.authoredOn" />
<short value="Task Creation Date" />
<definition value="Autopopulated by the central service on creation of the Task." />
<requirements value="Most often used along with lastUpdated to track duration of task to supporting monitoring and management." />
<alias value="Created Date" />
<min value="1" />
<max value="1" />
<path value="Task.authoredOn" />
<min value="0" />
<max value="1" />
</base>
<code value="dateTime" />
</type>
<condition value="ele-1" />
<condition value="inv-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="workflow" />
<map value="Request.authoredOn" />
</mapping>
<identity value="w5" />
<map value="FiveWs.recorded" />
</mapping>
<identity value="rim" />
<map value=".participation[typeCode=AUT].time" />
</mapping>
</element>
<element id="Task.lastModified">
<path value="Task.lastModified" />
<short value="Task Last Modified Date" />
<definition value="Time at which a change to the task was made, e.g. status updated. SHALL be updated on change." />
<requirements value="Used along with history to track task activity and time in a particular task state. This enables monitoring and management." />
<alias value="Update Date" />
<min value="0" />
<max value="1" />
<path value="Task.lastModified" />
<min value="0" />
<max value="1" />
</base>
<code value="dateTime" />
</type>
<condition value="ele-1" />
<condition value="inv-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship[typeCode=SUBJ, ].source[classCode=CACT, moodCode=EVN].effectiveTime" />
</mapping>
</element>
<element id="Task.requester">
<path value="Task.requester" />
<short value="Who is asking for task to be done" />
<definition value="The original requester of the ServiceRequest the Task is fulfilling. Autopopulated by the central service." />
<comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository." />
<requirements value="Identifies who created this task. May be used by access control mechanisms (e.g., to ensure that only the creator can cancel a task)." />
<min value="1" />
<max value="1" />
<path value="Task.requester" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-PractitionerRole-Genomics" />
<aggregation value="referenced" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.requester" />
</mapping>
<identity value="w5" />
<map value="FiveWs.author" />
</mapping>
<identity value="rim" />
<map value=".participation[typeCode=AUT].role" />
</mapping>
</element>
<element id="Task.performerType">
<path value="Task.performerType" />
<short value="Requested performer" />
<definition value="The kind of participant that should perform the task." />
<comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination." />
<requirements value="Use to distinguish tasks on different activity queues." />
<min value="0" />
<max value="0" />
<path value="Task.performerType" />
<min value="0" />
<max value="*" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskPerformerType" />
</extension>
<strength value="preferred" />
<description value="The type(s) of task performers allowed." />
<valueSet value="http://hl7.org/fhir/ValueSet/performer-role" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="workflow" />
<map value="Event.performer.role, Request.performerType" />
</mapping>
<identity value="w5" />
<map value="FiveWs.actor" />
</mapping>
<identity value="rim" />
<map value=".participation[typeCode=PRF].role.code" />
</mapping>
</element>
<element id="Task.owner">
<path value="Task.owner" />
<short value="Responsible individual" />
<definition value="Autopopulated by the central service if a performer is assigned at Test submission. By default, this will the Home GLH for the submitting organization, unless an alternative is specified. The Home GLH/original performer (managing entity) SHOULD remain the owner for the Process Genomic Test Task, throughout the test order-fulfillment process.\nThis field can be updated by the organization claiming the task (though this could also be autopopulated if automated per test routing tables are integrated into the central service functionality). Owner SHOULD be populated using organization ODS code references.\n\nThe responsibility for routing/reassigning ownership of Tasks lies with the current owner following the transfers of responsibility as per the National Genomic Testing Process (NGTP). The different scenarios for how follow-on routing may be achieved is summarised in the points below:\n\nIn most cases, by default the test will be routed to the home GLH (or other lab/GLH as dictated by the initial routing table).\nThis would mean all Tasks by default would have this organization, e.g. home GLH, as the initial owner, it would then be the responsibility of the GLH to reassign tasks to other organizations, where they 'send away' or commission work.\nOnce that work is complete, the send-away organization can choose to reassign the current Task (where another organization needs to conduct work against the same Task before it can be marked as complete)/or assign the follow-on Task (where the current task can be marked as complete) to the next organization, if this is known.\nIf the next organization to send work to is unknown, responsibility should lie with the original/previous owner e.g. Home GLH to reassign the task to the next organization that needs to complete work. This should be captured by having the current owner reassign the task back to the GLH (or organization which assigned the task to them) if further work needs to occur within the current task; or the next task in the NGTP moves from the draft state into the requested state (indicating all its prerequisites have been satisfied). The owner of that task, e.g home GLH, then either starts work or assigns this to the relevant organization.\nIn further phases, a routing advice service may be provided by NHS England to aid organizations in identifying which organization should be assigned, after completing their work.\nTasks assigned to a particular organization SHOULD be searched for using the owner search parameter with the :identifier modifier i.e. [base]/Task?owner:identifier=8J834 or [base]/Task?owner:identifier=https://fhir.nhs.uk/Id/ods-organization-code|8J834" />
<comment value="Tasks may be created with an owner not yet identified." />
<requirements value="Identifies who is expected to perform this task." />
<alias value="Performer" />
<alias value="Executer" />
<min value="0" />
<max value="1" />
<path value="Task.owner" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" />
<aggregation value="referenced" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Event.performer.actor, Request.performer" />
</mapping>
<identity value="w5" />
<map value="FiveWs.actor" />
</mapping>
<identity value="rim" />
<map value=".participation[typeCode=PRF].role" />
</mapping>
</element>
<element id="Task.owner.id">
<path value="Task.owner.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.owner.extension">
<path value="Task.owner.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.owner.reference">
<path value="Task.owner.reference" />
<short value="Literal reference, Relative, internal or absolute URL" />
<definition value="A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources." />
<comment value="Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server." />
<min value="0" />
<max value="0" />
<path value="Reference.reference" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<condition value="ele-1" />
<condition value="ref-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.owner.type">
<path value="Task.owner.type" />
<short value="Type the reference refers to (e.g. "Patient")" />
<definition value="The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources)." />
<comment value="This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified." />
<min value="0" />
<max value="1" />
<path value="Reference.type" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="FHIRResourceTypeExt" />
</extension>
<strength value="extensible" />
<description value="Aa resource (or, for logical models, the URI of the logical model)." />
<valueSet value="http://hl7.org/fhir/ValueSet/resource-types" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.owner.identifier">
<path value="Task.owner.identifier" />
<short value="Logical reference, when literal reference is not known" />
<definition value="An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference." />
<comment value="When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any)." />
<min value="1" />
<max value="1" />
<path value="Reference.identifier" />
<min value="0" />
<max value="1" />
</base>
<code value="Identifier" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX / EI (occasionally, more often EI maps to a resource id or a URL)" />
</mapping>
<identity value="rim" />
<map value="II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]" />
</mapping>
<identity value="servd" />
<map value="Identifier" />
</mapping>
<identity value="rim" />
<map value=".identifier" />
</mapping>
</element>
<element id="Task.owner.identifier.id">
<path value="Task.owner.identifier.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.owner.identifier.extension">
<path value="Task.owner.identifier.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.owner.identifier.use">
<path value="Task.owner.identifier.use" />
<short value="usual | official | temp | secondary | old (If known)" />
<definition value="The purpose of this identifier." />
<comment value="Applications can assume that an identifier is permanent unless it explicitly says that it is temporary." />
<requirements value="Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers." />
<min value="0" />
<max value="1" />
<path value="Identifier.use" />
<min value="0" />
<max value="1" />
</base>
<code value="code" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isModifier value="true" />
<isModifierReason value="This is labeled as "Is Modifier" because applications should not mistake a temporary id for a permanent one." />
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="IdentifierUse" />
</extension>
<strength value="required" />
<description value="Identifies the purpose for this identifier, if known ." />
<valueSet value="http://hl7.org/fhir/ValueSet/identifier-use|4.0.1" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="N/A" />
</mapping>
<identity value="rim" />
<map value="Role.code or implied by context" />
</mapping>
</element>
<element id="Task.owner.identifier.type">
<path value="Task.owner.identifier.type" />
<short value="Description of identifier" />
<definition value="A coded type for the identifier that can be used to determine which identifier to use for a specific purpose." />
<comment value="This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type." />
<requirements value="Allows users to make use of identifiers when the identifier system is not known." />
<min value="0" />
<max value="1" />
<path value="Identifier.type" />
<min value="0" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="IdentifierType" />
</extension>
<strength value="extensible" />
<description value="A coded type for an identifier that can be used to determine which identifier to use for a specific purpose." />
<valueSet value="http://hl7.org/fhir/ValueSet/identifier-type" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="v2" />
<map value="CX.5" />
</mapping>
<identity value="rim" />
<map value="Role.code or implied by context" />
</mapping>
</element>
<element id="Task.owner.identifier.system">
<path value="Task.owner.identifier.system" />
<short value="The namespace for the identifier value" />
<definition value="Establishes the namespace for the value - that is, a URL that describes a set values that are unique." />
<comment value="Identifier.system is always case sensitive." />
<requirements value="There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers." />
<min value="0" />
<max value="1" />
<path value="Identifier.system" />
<min value="0" />
<max value="1" />
</base>
<code value="uri" />
</type>
<fixedUri value="https://fhir.nhs.uk/Id/ods-organisation-code" />
<label value="General" />
<valueUri value="http://www.acme.com/identifiers/patient" />
</example>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX.4 / EI-2-4" />
</mapping>
<identity value="rim" />
<map value="II.root or Role.id.root" />
</mapping>
<identity value="servd" />
<map value="./IdentifierType" />
</mapping>
</element>
<element id="Task.owner.identifier.value">
<path value="Task.owner.identifier.value" />
<short value="The value that is unique" />
<definition value="The portion of the identifier typically relevant to the user and which is unique within the context of the system." />
<comment value="If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe." />
<min value="0" />
<max value="1" />
<path value="Identifier.value" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<label value="General" />
<valueString value="123456" />
</example>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CX.1 / EI.1" />
</mapping>
<identity value="rim" />
<map value="II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)" />
</mapping>
<identity value="servd" />
<map value="./Value" />
</mapping>
</element>
<element id="Task.owner.identifier.period">
<path value="Task.owner.identifier.period" />
<short value="Time period when id is/was valid for use" />
<definition value="Time period during which identifier is/was valid for use." />
<comment value="A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration)." />
<min value="0" />
<max value="1" />
<path value="Identifier.period" />
<min value="0" />
<max value="1" />
</base>
<code value="Period" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="per-1" />
<severity value="error" />
<human value="If present, start SHALL have a lower value than end" />
<expression value="start.hasValue().not() or end.hasValue().not() or (start <= end)" />
<xpath value="not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))" />
<source value="http://hl7.org/fhir/StructureDefinition/Period" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="DR" />
</mapping>
<identity value="rim" />
<map value="IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]" />
</mapping>
<identity value="v2" />
<map value="CX.7 + CX.8" />
</mapping>
<identity value="rim" />
<map value="Role.effectiveTime or implied by context" />
</mapping>
<identity value="servd" />
<map value="./StartDate and ./EndDate" />
</mapping>
</element>
<element id="Task.owner.identifier.assigner">
<path value="Task.owner.identifier.assigner" />
<short value="Organization that issued id (may be just text)" />
<definition value="Organization that issued/manages the identifier." />
<comment value="The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization." />
<min value="0" />
<max value="1" />
<path value="Identifier.assigner" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="v2" />
<map value="CX.4 / (CX.4,CX.9,CX.10)" />
</mapping>
<identity value="rim" />
<map value="II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper" />
</mapping>
<identity value="servd" />
<map value="./IdentifierIssuingAuthority" />
</mapping>
</element>
<element id="Task.owner.display">
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
<valueBoolean value="true" />
</extension>
<path value="Task.owner.display" />
<short value="Text alternative for the resource" />
<definition value="Plain text narrative that identifies the resource in addition to the resource reference." />
<comment value="This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it." />
<min value="0" />
<max value="1" />
<path value="Reference.display" />
<min value="0" />
<max value="1" />
</base>
<code value="string" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.location">
<path value="Task.location" />
<short value="Where task occurs" />
<definition value="Principal physical location where the this task is performed." />
<comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository." />
<requirements value="Ties the event to where the records are likely kept and provides context around the event occurrence (e.g. if it occurred inside or outside a dedicated healthcare setting)." />
<min value="0" />
<max value="0" />
<path value="Task.location" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Location" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.reasonCode, Event.reasonCode" />
</mapping>
<identity value="w5" />
<map value="FiveWs.where[x]" />
</mapping>
<identity value="rim" />
<map value=".participation[typeCode=LOC].role" />
</mapping>
</element>
<element id="Task.reasonCode">
<path value="Task.reasonCode" />
<short value="Why task is needed" />
<definition value="A description or code indicating why this task needs to be performed." />
<comment value="This should only be included if there is no focus or if it differs from the reason indicated on the focus." />
<min value="0" />
<max value="0" />
<path value="Task.reasonCode" />
<min value="0" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskReason" />
</extension>
<strength value="example" />
<description value="Indicates why the task is needed. E.g. Suspended because patient admitted to hospital." />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="workflow" />
<map value="Event.location" />
</mapping>
<identity value="w5" />
<map value="FiveWs.why[x]" />
</mapping>
<identity value="v2" />
<map value="EVN.7" />
</mapping>
<identity value="rim" />
<map value=".reasonCode" />
</mapping>
</element>
<element id="Task.reasonReference">
<path value="Task.reasonReference" />
<short value="Why task is needed" />
<definition value="A resource reference indicating why this task needs to be performed." />
<comment value="Tasks might be justified based on an Observation, a Condition, a past or planned procedure, etc. This should only be included if there is no focus or if it differs from the reason indicated on the focus. Use the CodeableConcept text element in `Task.reasonCode` if the data is free (uncoded) text." />
<min value="0" />
<max value="0" />
<path value="Task.reasonReference" />
<min value="0" />
<max value="1" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Resource" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.reasonReference, Event.reasonReference" />
</mapping>
<identity value="w5" />
<map value="FiveWs.why[x]" />
</mapping>
<identity value="rim" />
<map value=".outboundRelationship[typeCode=RSON].target" />
</mapping>
</element>
<element id="Task.insurance">
<path value="Task.insurance" />
<short value="Associated insurance coverage" />
<definition value="Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Task." />
<comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository." />
<min value="0" />
<max value="0" />
<path value="Task.insurance" />
<min value="0" />
<max value="*" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Coverage" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/ClaimResponse" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.insurance" />
</mapping>
<identity value="v2" />
<map value="IN1/IN2" />
</mapping>
<identity value="rim" />
<map value=".outboundRelationship[typeCode=COVBY].target" />
</mapping>
</element>
<element id="Task.note">
<path value="Task.note" />
<short value="Comments made about the task" />
<definition value="Used for messaging between owner and other orgnizations e.g. during handover of task or requesting information from requesting clinician." />
<comment value="For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. *Annotations SHOULD NOT* be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible)." />
<min value="0" />
<max value="*" />
<path value="Task.note" />
<min value="0" />
<max value="*" />
</base>
<code value="Annotation" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="N/A" />
</mapping>
<identity value="rim" />
<map value="Act" />
</mapping>
<identity value="workflow" />
<map value="Request.note, Event.note" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship[typeCode=SUBJ, ].source[classCode=OBS, moodCode=EVN, code="annotation"].value(string)" />
</mapping>
</element>
<element id="Task.relevantHistory">
<path value="Task.relevantHistory" />
<short value="Key events in history of the Task" />
<definition value="Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the task." />
<comment value="This element does not point to the Provenance associated with the *current* version of the resource - as it would be created after this version existed. The Provenance for the current version can be retrieved with a _revinclude." />
<alias value="Status History" />
<min value="0" />
<max value="0" />
<path value="Task.relevantHistory" />
<min value="0" />
<max value="*" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Provenance" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="workflow" />
<map value="Request.relevantHistory" />
</mapping>
<identity value="rim" />
<map value=".inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]" />
</mapping>
</element>
<element id="Task.restriction">
<path value="Task.restriction" />
<short value="Constraints on fulfillment tasks" />
<definition value="If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned." />
<requirements value="Sometimes when fulfillment is sought, you don't want full fulfillment." />
<min value="0" />
<max value="0" />
<path value="Task.restriction" />
<min value="0" />
<max value="1" />
</base>
<code value="BackboneElement" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="Instead of pointing to request, would point to component of request, having these characteristics" />
</mapping>
</element>
<element id="Task.restriction.id">
<path value="Task.restriction.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.restriction.extension">
<path value="Task.restriction.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.restriction.modifierExtension">
<path value="Task.restriction.modifierExtension" />
<short value="Extensions that cannot be ignored even if unrecognized" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<requirements value="Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension)." />
<alias value="extensions" />
<alias value="user content" />
<alias value="modifiers" />
<min value="0" />
<max value="*" />
<path value="BackboneElement.modifierExtension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<isModifier value="true" />
<isModifierReason value="Modifier extensions are expected to modify the meaning or interpretation of the element that contains them" />
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.restriction.repetitions">
<path value="Task.restriction.repetitions" />
<short value="How many times to repeat" />
<definition value="Indicates the number of times the requested action should occur." />
<comment value="32 bit number; for values larger than this, use decimal" />
<requirements value="E.g. order that requests monthly lab tests, fulfillment is sought for 1." />
<min value="0" />
<max value="1" />
<path value="Task.restriction.repetitions" />
<min value="0" />
<max value="1" />
</base>
<code value="positiveInt" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value=".repeatNumber" />
</mapping>
</element>
<element id="Task.restriction.period">
<path value="Task.restriction.period" />
<short value="When fulfillment sought" />
<definition value="Over what time-period is fulfillment sought." />
<comment value="Note that period.high is the due date representing the time by which the task should be completed." />
<requirements value="E.g. order that authorizes 1 year's services. Fulfillment is sought for next 3 months." />
<min value="0" />
<max value="1" />
<path value="Task.restriction.period" />
<min value="0" />
<max value="1" />
</base>
<code value="Period" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="per-1" />
<severity value="error" />
<human value="If present, start SHALL have a lower value than end" />
<expression value="start.hasValue().not() or end.hasValue().not() or (start <= end)" />
<xpath value="not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))" />
<source value="http://hl7.org/fhir/StructureDefinition/Period" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="DR" />
</mapping>
<identity value="rim" />
<map value="IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]" />
</mapping>
<identity value="rim" />
<map value=".effectiveTime(IVL<TS>)" />
</mapping>
</element>
<element id="Task.restriction.recipient">
<path value="Task.restriction.recipient" />
<short value="For whom is fulfillment sought?" />
<definition value="For requests that are targeted to more than on potential recipient/target, for whom is fulfillment sought?" />
<comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository." />
<min value="0" />
<max value="*" />
<path value="Task.restriction.recipient" />
<min value="0" />
<max value="*" />
</base>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Practitioner" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/PractitionerRole" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/RelatedPerson" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Group" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ref-1" />
<severity value="error" />
<human value="SHALL have a contained resource if a local reference is provided" />
<expression value="reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))" />
<xpath value="not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Reference" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="The target of a resource reference is a RIM entry point (Act, Role, or Entity)" />
</mapping>
<identity value="rim" />
<map value=".participation[typeCode=SBJ].role" />
</mapping>
</element>
<element id="Task.input">
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name">
<valueString value="Parameter" />
</extension>
<path value="Task.input" />
<short value="Information used to perform task" />
<definition value="Used to attach inputs to a Task, if relevant. e.g. references to Specimen's which a Sample Processing task is acting on. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSpecimen references SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing. This is to clearly disambiguate which specimen a task is acting on, where multiple specimens are necessary for processing the test request." />
<requirements value="Resources and data used to perform the task. This data is used in the business logic of task execution, and is stored separately because it varies between workflows." />
<alias value="Supporting Information" />
<min value="0" />
<max value="*" />
<path value="Task.input" />
<min value="0" />
<max value="*" />
</base>
<code value="BackboneElement" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="???" />
</mapping>
</element>
<element id="Task.input.id">
<path value="Task.input.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.input.extension">
<path value="Task.input.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.input.modifierExtension">
<path value="Task.input.modifierExtension" />
<short value="Extensions that cannot be ignored even if unrecognized" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<requirements value="Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension)." />
<alias value="extensions" />
<alias value="user content" />
<alias value="modifiers" />
<min value="0" />
<max value="*" />
<path value="BackboneElement.modifierExtension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<isModifier value="true" />
<isModifierReason value="Modifier extensions are expected to modify the meaning or interpretation of the element that contains them" />
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.input.type">
<path value="Task.input.type" />
<short value="Label for the input" />
<definition value="A code or description indicating how the input is intended to be used as part of the task execution." />
<comment value="If referencing a BPMN workflow or Protocol, the "system" is the URL for the workflow definition and the code is the "name" of the required input." />
<requirements value="Inputs are named to enable task automation to bind data and pass it from one task to the next." />
<alias value="Name" />
<min value="1" />
<max value="1" />
<path value="Task.input.type" />
<min value="1" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskInputParameterType" />
</extension>
<strength value="preferred" />
<description value="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." />
<valueSet value="https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="rim" />
<map value="???" />
</mapping>
</element>
<element id="Task.input.value[x]">
<path value="Task.input.value[x]" />
<short value="Content to use in performing the task" />
<definition value="The value of the input parameter as a basic type." />
<min value="1" />
<max value="1" />
<path value="Task.input.value[x]" />
<min value="1" />
<max value="1" />
</base>
<code value="base64Binary" />
</type>
<code value="boolean" />
</type>
<code value="canonical" />
</type>
<code value="code" />
</type>
<code value="date" />
</type>
<code value="dateTime" />
</type>
<code value="decimal" />
</type>
<code value="id" />
</type>
<code value="instant" />
</type>
<code value="integer" />
</type>
<code value="markdown" />
</type>
<code value="oid" />
</type>
<code value="positiveInt" />
</type>
<code value="string" />
</type>
<code value="time" />
</type>
<code value="unsignedInt" />
</type>
<code value="uri" />
</type>
<code value="url" />
</type>
<code value="uuid" />
</type>
<code value="Address" />
</type>
<code value="Age" />
</type>
<code value="Annotation" />
</type>
<code value="Attachment" />
</type>
<code value="CodeableConcept" />
</type>
<code value="Coding" />
</type>
<code value="ContactPoint" />
</type>
<code value="Count" />
</type>
<code value="Distance" />
</type>
<code value="Duration" />
</type>
<code value="HumanName" />
</type>
<code value="Identifier" />
</type>
<code value="Money" />
</type>
<code value="Period" />
</type>
<code value="Quantity" />
</type>
<code value="Range" />
</type>
<code value="Ratio" />
</type>
<code value="Reference" />
</type>
<code value="SampledData" />
</type>
<code value="Signature" />
</type>
<code value="Timing" />
</type>
<code value="ContactDetail" />
</type>
<code value="Contributor" />
</type>
<code value="DataRequirement" />
</type>
<code value="Expression" />
</type>
<code value="ParameterDefinition" />
</type>
<code value="RelatedArtifact" />
</type>
<code value="TriggerDefinition" />
</type>
<code value="UsageContext" />
</type>
<code value="Dosage" />
</type>
<code value="Meta" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="???" />
</mapping>
</element>
<element id="Task.output">
<path value="Task.output" />
<short value="Information produced as part of task" />
<definition value="Used to attach outputs from a Task, if relevant. e.g. VUS files during processing or a DiagnosticReport upon completion of reporting stage. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSample tracking information SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing, on either the output or input elements. This information MAY include consignment number, destination, date sent etc. Further modelling of the types/format expected are pending clinical scenarios." />
<requirements value="Resources and data produced during the execution the task. This data is generated by the business logic of task execution, and is stored separately because it varies between workflows." />
<min value="0" />
<max value="*" />
<path value="Task.output" />
<min value="0" />
<max value="*" />
</base>
<code value="BackboneElement" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="???" />
</mapping>
</element>
<element id="Task.output.id">
<path value="Task.output.id" />
<representation value="xmlAttr" />
<short value="Unique id for inter-element referencing" />
<definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces." />
<min value="0" />
<max value="1" />
<path value="Element.id" />
<min value="0" />
<max value="1" />
</base>
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
<valueUrl value="string" />
</extension>
<code value="http://hl7.org/fhirpath/System.String" />
</type>
<identity value="rim" />
<map value="n/a" />
</mapping>
</element>
<element id="Task.output.extension">
<path value="Task.output.extension" />
<type value="value" />
<path value="url" />
</discriminator>
<description value="Extensions are always sliced by (at least) url" />
<rules value="open" />
</slicing>
<short value="Additional content defined by implementations" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<alias value="extensions" />
<alias value="user content" />
<min value="0" />
<max value="*" />
<path value="Element.extension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.output.modifierExtension">
<path value="Task.output.modifierExtension" />
<short value="Extensions that cannot be ignored even if unrecognized" />
<definition value="May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)." />
<comment value="There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone." />
<requirements value="Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension)." />
<alias value="extensions" />
<alias value="user content" />
<alias value="modifiers" />
<min value="0" />
<max value="*" />
<path value="BackboneElement.modifierExtension" />
<min value="0" />
<max value="*" />
</base>
<code value="Extension" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<key value="ext-1" />
<severity value="error" />
<human value="Must have either extensions or value[x], not both" />
<expression value="extension.exists() != value.exists()" />
<xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
<source value="http://hl7.org/fhir/StructureDefinition/Extension" />
</constraint>
<isModifier value="true" />
<isModifierReason value="Modifier extensions are expected to modify the meaning or interpretation of the element that contains them" />
<isSummary value="true" />
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element id="Task.output.type">
<path value="Task.output.type" />
<short value="Label for output" />
<definition value="The name of the Output parameter." />
<comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination." />
<requirements value="Outputs are named to enable task automation to bind data and pass it from one task to the next." />
<alias value="Name" />
<min value="1" />
<max value="1" />
<path value="Task.output.type" />
<min value="1" />
<max value="1" />
</base>
<code value="CodeableConcept" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
<valueString value="TaskOutputParameterType" />
</extension>
<strength value="preferred" />
<description value="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." />
<valueSet value="https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics" />
</binding>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="v2" />
<map value="CE/CNE/CWE" />
</mapping>
<identity value="rim" />
<map value="CD" />
</mapping>
<identity value="orim" />
<map value="fhir:CodeableConcept rdfs:subClassOf dt:CD" />
</mapping>
<identity value="rim" />
<map value="???" />
</mapping>
</element>
<element id="Task.output.value[x]">
<path value="Task.output.value[x]" />
<short value="Result of output" />
<definition value="The value of the Output parameter as a basic type." />
<requirements value="Task outputs can take any form." />
<min value="1" />
<max value="1" />
<path value="Task.output.value[x]" />
<min value="1" />
<max value="1" />
</base>
<code value="base64Binary" />
</type>
<code value="boolean" />
</type>
<code value="canonical" />
</type>
<code value="code" />
</type>
<code value="date" />
</type>
<code value="dateTime" />
</type>
<code value="decimal" />
</type>
<code value="id" />
</type>
<code value="instant" />
</type>
<code value="integer" />
</type>
<code value="markdown" />
</type>
<code value="oid" />
</type>
<code value="positiveInt" />
</type>
<code value="string" />
</type>
<code value="time" />
</type>
<code value="unsignedInt" />
</type>
<code value="uri" />
</type>
<code value="url" />
</type>
<code value="uuid" />
</type>
<code value="Address" />
</type>
<code value="Age" />
</type>
<code value="Annotation" />
</type>
<code value="Attachment" />
</type>
<code value="CodeableConcept" />
</type>
<code value="Coding" />
</type>
<code value="ContactPoint" />
</type>
<code value="Count" />
</type>
<code value="Distance" />
</type>
<code value="Duration" />
</type>
<code value="HumanName" />
</type>
<code value="Identifier" />
</type>
<code value="Money" />
</type>
<code value="Period" />
</type>
<code value="Quantity" />
</type>
<code value="Range" />
</type>
<code value="Ratio" />
</type>
<code value="Reference" />
</type>
<code value="SampledData" />
</type>
<code value="Signature" />
</type>
<code value="Timing" />
</type>
<code value="ContactDetail" />
</type>
<code value="Contributor" />
</type>
<code value="DataRequirement" />
</type>
<code value="Expression" />
</type>
<code value="ParameterDefinition" />
</type>
<code value="RelatedArtifact" />
</type>
<code value="TriggerDefinition" />
</type>
<code value="UsageContext" />
</type>
<code value="Dosage" />
</type>
<code value="Meta" />
</type>
<condition value="ele-1" />
<key value="ele-1" />
<severity value="error" />
<human value="All FHIR elements must have a @value or children" />
<expression value="hasValue() or (children().count() > id.count())" />
<xpath value="@value|f:*|h:div" />
<source value="http://hl7.org/fhir/StructureDefinition/Element" />
</constraint>
<identity value="rim" />
<map value="n/a" />
</mapping>
<identity value="rim" />
<map value="???" />
</mapping>
</element>
</snapshot>
<element id="Task.basedOn">
<path value="Task.basedOn" />
<definition value="This element will not be used within the Genomic Medicine Service. The ServiceRequest a Task is seeking to fulfill SHALL be referenced through the `focus` element. Specimen resources being acted upon by tasks related to specimen prep/processing SHOULD be referenced through the `Task.input` element." />
<max value="0" />
</element>
<element id="Task.basedOn.identifier.assigner">
<path value="Task.basedOn.identifier.assigner" />
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics" />
<aggregation value="referenced" />
</type>
</element>
<element id="Task.partOf">
<path value="Task.partOf" />
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomics" />
<aggregation value="referenced" />
</type>
</element>
<element id="Task.partOf.identifier.assigner">
<path value="Task.partOf.identifier.assigner" />
<code value="Reference" />
<targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics" />
<aggregation value="referenced" />
</type>
</element>
<element id="Task.status">
<path value="Task.status" />
<definition value="Initially, automatically populated by the central service upon instantiation. Tasks will be first marked as 'draft' until their prerequisites have been satisfied, after which they will be marked as 'requested' until accepted/claimed by an organization. Upon acceptance, the owning organization is responsible for updating the status up until completion (or if the owning organization is not integrated into the GMS, the organization who has referred the task to the unintegrated org).\nIf a ServiceRequest is cancelled, any Tasks which have not already moved into in-progress SHALL be moved into the cancelled state, any in-progress Tasks will require lab processes to manage closure of the Task and appropriate reimbursement. For a full list of possible automatic cascading of ServiceRequest.status to Task.status please see additional guidance on the status element on the UKCore-ServiceRequest profile page.\n\nIt is not expected that Task statuses will propagate up to the ServiceRequest status, though certain task failure types may require revokation of the authorising request (pending investigation).\n\nFor the full list of expected Task statuses in use by the GMS, please refer to the table below. For the allowed Task status transitions, please see the FHIR R4 Task state machine model." />
</element>
<element id="Task.statusReason">
<path value="Task.statusReason" />
<definition value="Reasons why a Task has been marked as on-hold, cancelled etc. SHOULD use the Genomic-Task-StatusReason CodeSystem. NOTE: The list of appropriate statusReasons is pending finalization.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text reason captured within Task.statusReason.text." />
<strength value="preferred" />
<valueSet value="https://fhir.nhs.uk/ValueSet/task-statusReason-genomics" />
</binding>
</element>
<element id="Task.businessStatus">
<path value="Task.businessStatus" />
<short value="E.g. "Specimen Received", "Analysis In Progress"" />
<definition value="Genomic specific business statuses for capturing more granular information as part of processing the task. SHOULD use the Genomic-Business-Status CodeSystem. NOTE: The list of appropriate buinessStatuses is pending finalization. Mapping business statuses to the high level container Tasks and statuses is still ongoing.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text status captured within Task.businessStatus.text." />
<strength value="preferred" />
<description value="The domain-specific business-contextual sub-state of the task. ValueSet specific for Genomics, subject to change." />
<valueSet value="https://fhir.nhs.uk/ValueSet/genomics-business-status" />
</binding>
</element>
<element id="Task.code">
<path value="Task.code" />
<definition value="High level coding for the Task, matches the NGTP stages for genomic test processing. Clients SHOULD use the Genomic-Task-Code CodeSystem. NOTE: The list of appropriate codes is pending finalization.\nThe currently allowed code list and their definition is provided in the table below. The table also provides the cardinality of each Task per ServiceRequest or Sample attached to the request as generated by the central broker on submission of a test request. Note: the cardinalities listed reflect the number of concurrent active tasks per service request at any one time, there may be cases where additional Tasks need to be spun up manually, e.g. on failure such as when a new sample needs to be processed after a previous sample fails Quality Control, or when further preparation is required. This cardinality supports the use cases for both requests with multiple participants, e.g. Duo/Trio, and multiple samples per participant e.g. Cancer testing." />
<min value="1" />
<strength value="preferred" />
<valueSet value="https://fhir.nhs.uk/ValueSet/task-code-genomics" />
</binding>
</element>
<element id="Task.description">
<path value="Task.description" />
<max value="0" />
</element>
<element id="Task.focus">
<path value="Task.focus" />
<definition value="The ServiceRequest the Task is fulfilling. Autopopulated by the central service." />
<min value="1" />
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-ServiceRequest-Genomics" />
<aggregation value="referenced" />
</type>
</element>
<element id="Task.for">
<path value="Task.for" />
<definition value="A reference to the Patient resource or the identifier, NHS number, for the patient for whom the Task is for. Autopopulated by the central service if the Task is automatically generated.\nIf a Task is created by client system or user interaction, for SHALL be populated with a reference to the associated Patient. This MAY be through a resource reference if the ID on the central service is known (or provided within the transaction bundle) or through NHS number where this is known and has been traced through PDS." />
<min value="1" />
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-Patient-Genomics" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Resource" />
<aggregation value="referenced" />
</type>
</element>
<element id="Task.encounter">
<path value="Task.encounter" />
<max value="0" />
</element>
<element id="Task.executionPeriod">
<path value="Task.executionPeriod" />
<definition value="MAY be used to capture start and end DateTimes associated with execution of a Task. It is expected the start time will be populated as a Task is moved to in-progress and the end time will be populated as a Task is marked as completed. Usage of this field will be investigated during the Alpha phase of the Genomic Order Management project as timelines for task execution can also be derived from the AuditEvents recorded as Tasks are updated." />
</element>
<element id="Task.authoredOn">
<path value="Task.authoredOn" />
<definition value="Autopopulated by the central service on creation of the Task." />
<min value="1" />
</element>
<element id="Task.lastModified">
<path value="Task.lastModified" />
<definition value="Time at which a change to the task was made, e.g. status updated. SHALL be updated on change." />
</element>
<element id="Task.requester">
<path value="Task.requester" />
<definition value="The original requester of the ServiceRequest the Task is fulfilling. Autopopulated by the central service." />
<min value="1" />
<code value="Reference" />
<targetProfile value="https://fhir.nhs.uk/StructureDefinition/NHSEngland-PractitionerRole-Genomics" />
<aggregation value="referenced" />
</type>
</element>
<element id="Task.performerType">
<path value="Task.performerType" />
<max value="0" />
</element>
<element id="Task.owner">
<path value="Task.owner" />
<definition value="Autopopulated by the central service if a performer is assigned at Test submission. By default, this will the Home GLH for the submitting organization, unless an alternative is specified. The Home GLH/original performer (managing entity) SHOULD remain the owner for the Process Genomic Test Task, throughout the test order-fulfillment process.\nThis field can be updated by the organization claiming the task (though this could also be autopopulated if automated per test routing tables are integrated into the central service functionality). Owner SHOULD be populated using organization ODS code references.\n\nThe responsibility for routing/reassigning ownership of Tasks lies with the current owner following the transfers of responsibility as per the National Genomic Testing Process (NGTP). The different scenarios for how follow-on routing may be achieved is summarised in the points below:\n\nIn most cases, by default the test will be routed to the home GLH (or other lab/GLH as dictated by the initial routing table).\nThis would mean all Tasks by default would have this organization, e.g. home GLH, as the initial owner, it would then be the responsibility of the GLH to reassign tasks to other organizations, where they 'send away' or commission work.\nOnce that work is complete, the send-away organization can choose to reassign the current Task (where another organization needs to conduct work against the same Task before it can be marked as complete)/or assign the follow-on Task (where the current task can be marked as complete) to the next organization, if this is known.\nIf the next organization to send work to is unknown, responsibility should lie with the original/previous owner e.g. Home GLH to reassign the task to the next organization that needs to complete work. This should be captured by having the current owner reassign the task back to the GLH (or organization which assigned the task to them) if further work needs to occur within the current task; or the next task in the NGTP moves from the draft state into the requested state (indicating all its prerequisites have been satisfied). The owner of that task, e.g home GLH, then either starts work or assigns this to the relevant organization.\nIn further phases, a routing advice service may be provided by NHS England to aid organizations in identifying which organization should be assigned, after completing their work.\nTasks assigned to a particular organization SHOULD be searched for using the owner search parameter with the :identifier modifier i.e. [base]/Task?owner:identifier=8J834 or [base]/Task?owner:identifier=https://fhir.nhs.uk/Id/ods-organization-code|8J834" />
<code value="Reference" />
<targetProfile value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization" />
<aggregation value="referenced" />
</type>
</element>
<element id="Task.owner.reference">
<path value="Task.owner.reference" />
<max value="0" />
</element>
<element id="Task.owner.identifier">
<path value="Task.owner.identifier" />
<min value="1" />
</element>
<element id="Task.owner.identifier.system">
<path value="Task.owner.identifier.system" />
<fixedUri value="https://fhir.nhs.uk/Id/ods-organisation-code" />
</element>
<element id="Task.location">
<path value="Task.location" />
<max value="0" />
</element>
<element id="Task.reasonCode">
<path value="Task.reasonCode" />
<max value="0" />
</element>
<element id="Task.reasonReference">
<path value="Task.reasonReference" />
<max value="0" />
</element>
<element id="Task.insurance">
<path value="Task.insurance" />
<max value="0" />
</element>
<element id="Task.note">
<path value="Task.note" />
<definition value="Used for messaging between owner and other orgnizations e.g. during handover of task or requesting information from requesting clinician." />
</element>
<element id="Task.relevantHistory">
<path value="Task.relevantHistory" />
<max value="0" />
</element>
<element id="Task.restriction">
<path value="Task.restriction" />
<max value="0" />
</element>
<element id="Task.input">
<path value="Task.input" />
<definition value="Used to attach inputs to a Task, if relevant. e.g. references to Specimen's which a Sample Processing task is acting on. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSpecimen references SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing. This is to clearly disambiguate which specimen a task is acting on, where multiple specimens are necessary for processing the test request." />
</element>
<element id="Task.input.type">
<path value="Task.input.type" />
<strength value="preferred" />
<valueSet value="https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics" />
</binding>
</element>
<element id="Task.output">
<path value="Task.output" />
<definition value="Used to attach outputs from a Task, if relevant. e.g. VUS files during processing or a DiagnosticReport upon completion of reporting stage. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSample tracking information SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing, on either the output or input elements. This information MAY include consignment number, destination, date sent etc. Further modelling of the types/format expected are pending clinical scenarios." />
</element>
<element id="Task.output.type">
<path value="Task.output.type" />
<strength value="preferred" />
<valueSet value="https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics" />
</binding>
</element>
</differential>
</StructureDefinition>

JSON View

{
"resourceType": "StructureDefinition",
"id": "NHSEngland-Task-Genomics",
"url": "https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomics",
"version": "0.3.0",
"name": "NHSEngland_Task_Genomics",
"title": "NHSEngland Task Genomics",
"status": "active",
"date": "2026-04-16",
"publisher": "NHS England",
"contact": [
{
"name": "NHS England",
"telecom": [
{
"system": "email",
"value": "interoperabilityteam@nhs.net",
"use": "work",
"rank": 1
}
]
}
],
"description": "This profile defines the Genomics constraints and extensions on the International FHIR resource [Task](http://hl7.org/fhir/StructureDefinition/Task).",
"purpose": "The core workflow resource for managing processing of a ServiceRequest from order through to delivery of a DiagnosticReport and completion is Task. Task tracking is a core requirement of the central Genomic Medicine Service.\n\nEach ServiceRequest submitted will instantiate a series of High Level Tasks, which MAY be assigned to different organizations for managing the test request e.g. Sample Processing, Interpretation, Reporting etc. The full list of possible Task types/codes, their associated business statuses, and status reasons is pending internal review.\n\nTasks will be automatically created by the central broker but updates to statuses and attachment of input/output resources is the responsibility of the assigned organizations.\n\nIn most cases, the full library of 10 tasks, as defined within Genomic-Task-Code, will be 'spun-up', on submission of a Test order. Tasks related to Samples MAY be duplicated per Sample to allow tracking of work related to individual Samples as part of the same test request, or equally, MAY be omitted as in the case of Re-Analysis or Re-Interpretation where data from an existing sample is used, eliminating the need for additional wet-work. For the full cardinality breakdown see further guidance for the Task.code element.",
"copyright": "Copyright © 2026+ NHS England Licensed under the Apache License, Version 2.0 (the \\\\\\\"License\\\\\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\\\\\"AS IS\\\\\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html.",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Task",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Task",
"derivation": "constraint",
"element": [
{
"id": "Task",
"path": "Task",
"short": "A task to be performed",
"definition": "A task to be performed.",
"min": 0,
"max": "*",
"base": {
"path": "Task",
"min": 0,
"max": "*"
},
{
"key": "dom-2",
"severity": "error",
"human": "If the resource is contained in another resource, it SHALL NOT contain nested Resources",
"expression": "contained.contained.empty()",
"xpath": "not(parent::f:contained and f:contained)",
"source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
},
{
"key": "dom-4",
"severity": "error",
"human": "If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated",
"expression": "contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()",
"xpath": "not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))",
"source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
},
{
"key": "dom-3",
"severity": "error",
"human": "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",
"expression": "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()",
"xpath": "not(exists(for $id in f:contained/*/f:id/@value return $contained[not(parent::*/descendant::f:reference/@value=concat('#', $contained/*/id/@value) or descendant::f:reference[@value='#'])]))",
"source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
},
{
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice",
"valueBoolean": true
},
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bestpractice-explanation",
"valueMarkdown": "When a resource has no narrative, only systems that fully understand the data can display the resource to a human safely. Including a human readable representation in the resource makes for a much more robust eco-system and cheaper handling of resources by intermediary systems. Some ecosystems restrict distribution of resources to only those systems that do fully understand the resources, and as a consequence implementers may believe that the narrative is superfluous. However experience shows that such eco-systems often open up to new participants over time."
}
],
"key": "dom-6",
"severity": "warning",
"human": "A resource should have narrative for robust management",
"expression": "text.`div`.exists()",
"xpath": "exists(f:text/h:div)",
"source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
},
{
"key": "dom-5",
"severity": "error",
"human": "If a resource is contained in another resource, it SHALL NOT have a security label",
"expression": "contained.meta.security.empty()",
"xpath": "not(exists(f:contained/*/f:meta/f:security))",
"source": "http://hl7.org/fhir/StructureDefinition/DomainResource"
},
{
"key": "inv-1",
"severity": "error",
"human": "Last modified date must be greater than or equal to authored-on date.",
"expression": "lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn",
"xpath": "not(exists(f:lastModified/@value)) or not(exists(f:authoredOn/@value)) or f:lastModified/@value >= f:authoredOn/@value",
"source": "http://hl7.org/fhir/StructureDefinition/Task"
}
],
"mapping": [
{
"identity": "rim",
"map": "Entity. Role, or Act"
},
{
"identity": "workflow",
"map": "Request, Event"
},
{
"identity": "rim",
"map": "ControlAct[moodCode=INT]"
}
]
},
{
"id": "Task.id",
"path": "Task.id",
"short": "Logical id of this artifact",
"definition": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.",
"comment": "The only time that a resource does not have an id is when it is being submitted to the server using a create operation.",
"min": 0,
"max": "1",
"base": {
"path": "Resource.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "id"
}
],
"code": "id"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.meta",
"path": "Task.meta",
"short": "Metadata about the resource",
"definition": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.",
"min": 0,
"max": "1",
"base": {
"path": "Resource.meta",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Meta"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.implicitRules",
"path": "Task.implicitRules",
"short": "A set of rules under which this content was created",
"definition": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.",
"comment": "Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.",
"min": 0,
"max": "1",
"base": {
"path": "Resource.implicitRules",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isModifier": true,
"isModifierReason": "This element is labeled as a modifier because the implicit rules may provide additional knowledge about the resource that modifies it's meaning or interpretation",
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.language",
"path": "Task.language",
"short": "Language of the resource content",
"definition": "The base language in which the resource is written.",
"comment": "Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).",
"min": 0,
"max": "1",
"base": {
"path": "Resource.language",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet",
"valueCanonical": "http://hl7.org/fhir/ValueSet/all-languages"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "Language"
}
],
"strength": "preferred",
"description": "A human language.",
"valueSet": "http://hl7.org/fhir/ValueSet/languages"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.text",
"path": "Task.text",
"short": "Text summary of the resource, for human interpretation",
"definition": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.",
"comment": "Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a \"text blob\" or where text is additionally entered raw or narrated and encoded information is added later.",
"alias": [
"narrative",
"html",
"xhtml",
"display"
],
"min": 0,
"max": "1",
"base": {
"path": "DomainResource.text",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Narrative"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
},
{
"identity": "rim",
"map": "Act.text?"
}
]
},
{
"id": "Task.contained",
"path": "Task.contained",
"short": "Contained, inline Resources",
"definition": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.",
"comment": "This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.",
"alias": [
"inline resources",
"anonymous resources",
"contained resources"
],
"min": 0,
"max": "*",
"base": {
"path": "DomainResource.contained",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Resource"
}
],
"mapping": [
{
"identity": "rim",
"map": "Entity. Role, or Act"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.extension",
"path": "Task.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "DomainResource.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.modifierExtension",
"path": "Task.modifierExtension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Extensions that cannot be ignored",
"definition": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "DomainResource.modifierExtension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"isModifier": true,
"isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the resource that contains them",
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.identifier",
"path": "Task.identifier",
"short": "Task Instance Identifier",
"definition": "The business identifier for this task.",
"min": 0,
"max": "*",
"base": {
"path": "Task.identifier",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Identifier"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)"
},
{
"identity": "rim",
"map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]"
},
{
"identity": "servd",
"map": "Identifier"
},
{
"identity": "workflow",
"map": "Request.identifier, Event.identifier"
},
{
"identity": "w5",
"map": "FiveWs.identifier"
},
{
"identity": "rim",
"map": ".id"
}
]
},
{
"id": "Task.instantiatesCanonical",
"path": "Task.instantiatesCanonical",
"short": "Formal definition of task",
"definition": "The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.",
"comment": "see [Canonical References](references.html#canonical)",
"requirements": "Enables a formal definition of how he task is to be performed, enabling automation.",
"min": 0,
"max": "1",
"base": {
"path": "Task.instantiatesCanonical",
"min": 0,
"max": "1"
},
"type": [
{
"code": "canonical",
"http://hl7.org/fhir/StructureDefinition/ActivityDefinition"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "workflow",
"map": "Request.instantiatesCanonical, Event.instantiatesCanonical"
},
{
"identity": "rim",
"map": ".outboundRelationship[typeCode=DEFN].target"
}
]
},
{
"id": "Task.instantiatesUri",
"path": "Task.instantiatesUri",
"short": "Formal definition of task",
"definition": "The URL pointing to an *externally* maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task.",
"comment": "see http://en.wikipedia.org/wiki/Uniform_resource_identifier",
"requirements": "Enables a formal definition of how he task is to be performed (e.g. using BPMN, BPEL, XPDL or other formal notation to be associated with a task), enabling automation.",
"min": 0,
"max": "1",
"base": {
"path": "Task.instantiatesUri",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "workflow",
"map": "Event.instantiatesUrl"
},
{
"identity": "rim",
"map": ".outboundRelationship[typeCode=DEFN].target"
}
]
},
{
"id": "Task.basedOn",
"path": "Task.basedOn",
"short": "Request fulfilled by this task",
"definition": "This element will not be used within the Genomic Medicine Service. The ServiceRequest a Task is seeking to fulfill SHALL be referenced through the `focus` element. Specimen resources being acted upon by tasks related to specimen prep/processing SHOULD be referenced through the `Task.input` element.",
"comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.",
"min": 0,
"max": "0",
"base": {
"path": "Task.basedOn",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Resource"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.basedOn, Event.basedOn"
},
{
"identity": "rim",
"map": ".outboundRelationship[typeCode=FLFS].target[moodCode=INT]"
}
]
},
{
"id": "Task.basedOn.id",
"path": "Task.basedOn.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.basedOn.extension",
"path": "Task.basedOn.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.basedOn.reference",
"path": "Task.basedOn.reference",
"short": "Literal reference, Relative, internal or absolute URL",
"definition": "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.",
"comment": "Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure \"/[type]/[id]\" then it should be assumed that the reference is to a FHIR RESTful server.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.reference",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"ele-1",
"ref-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.basedOn.type",
"path": "Task.basedOn.type",
"short": "Type the reference refers to (e.g. \"Patient\")",
"definition": "The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).",
"comment": "This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.type",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "FHIRResourceTypeExt"
}
],
"strength": "extensible",
"description": "Aa resource (or, for logical models, the URI of the logical model).",
"valueSet": "http://hl7.org/fhir/ValueSet/resource-types"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.basedOn.identifier",
"path": "Task.basedOn.identifier",
"short": "Logical reference, when literal reference is not known",
"definition": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.",
"comment": "When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).",
"min": 0,
"max": "1",
"base": {
"path": "Reference.identifier",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Identifier"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)"
},
{
"identity": "rim",
"map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]"
},
{
"identity": "servd",
"map": "Identifier"
},
{
"identity": "rim",
"map": ".identifier"
}
]
},
{
"id": "Task.basedOn.identifier.id",
"path": "Task.basedOn.identifier.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.basedOn.identifier.extension",
"path": "Task.basedOn.identifier.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.basedOn.identifier.use",
"path": "Task.basedOn.identifier.use",
"short": "usual | official | temp | secondary | old (If known)",
"definition": "The purpose of this identifier.",
"comment": "Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.",
"requirements": "Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.use",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isModifier": true,
"isModifierReason": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.",
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "IdentifierUse"
}
],
"strength": "required",
"description": "Identifies the purpose for this identifier, if known .",
"valueSet": "http://hl7.org/fhir/ValueSet/identifier-use|4.0.1"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "N/A"
},
{
"identity": "rim",
"map": "Role.code or implied by context"
}
]
},
{
"id": "Task.basedOn.identifier.type",
"path": "Task.basedOn.identifier.type",
"short": "Description of identifier",
"definition": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.",
"comment": "This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.",
"requirements": "Allows users to make use of identifiers when the identifier system is not known.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.type",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "IdentifierType"
}
],
"strength": "extensible",
"description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.",
"valueSet": "http://hl7.org/fhir/ValueSet/identifier-type"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "v2",
"map": "CX.5"
},
{
"identity": "rim",
"map": "Role.code or implied by context"
}
]
},
{
"id": "Task.basedOn.identifier.system",
"path": "Task.basedOn.identifier.system",
"short": "The namespace for the identifier value",
"definition": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.",
"comment": "Identifier.system is always case sensitive.",
"requirements": "There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.system",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"example": [
{
"label": "General",
"valueUri": "http://www.acme.com/identifiers/patient"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX.4 / EI-2-4"
},
{
"identity": "rim",
"map": "II.root or Role.id.root"
},
{
"identity": "servd",
"map": "./IdentifierType"
}
]
},
{
"id": "Task.basedOn.identifier.value",
"path": "Task.basedOn.identifier.value",
"short": "The value that is unique",
"definition": "The portion of the identifier typically relevant to the user and which is unique within the context of the system.",
"comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.value",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"example": [
{
"label": "General",
"valueString": "123456"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX.1 / EI.1"
},
{
"identity": "rim",
"map": "II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"
},
{
"identity": "servd",
"map": "./Value"
}
]
},
{
"id": "Task.basedOn.identifier.period",
"path": "Task.basedOn.identifier.period",
"short": "Time period when id is/was valid for use",
"definition": "Time period during which identifier is/was valid for use.",
"comment": "A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.period",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Period"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "per-1",
"severity": "error",
"human": "If present, start SHALL have a lower value than end",
"expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)",
"xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))",
"source": "http://hl7.org/fhir/StructureDefinition/Period"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "DR"
},
{
"identity": "rim",
"map": "IVL<TS>[lowClosed=\"true\" and highClosed=\"true\"] or URG<TS>[lowClosed=\"true\" and highClosed=\"true\"]"
},
{
"identity": "v2",
"map": "CX.7 + CX.8"
},
{
"identity": "rim",
"map": "Role.effectiveTime or implied by context"
},
{
"identity": "servd",
"map": "./StartDate and ./EndDate"
}
]
},
{
"id": "Task.basedOn.identifier.assigner",
"path": "Task.basedOn.identifier.assigner",
"short": "Organization that issued id (may be just text)",
"definition": "Organization that issued/manages the identifier.",
"comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.assigner",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics"
],
"referenced"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "v2",
"map": "CX.4 / (CX.4,CX.9,CX.10)"
},
{
"identity": "rim",
"map": "II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper"
},
{
"identity": "servd",
"map": "./IdentifierIssuingAuthority"
}
]
},
{
"id": "Task.basedOn.display",
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
}
],
"path": "Task.basedOn.display",
"short": "Text alternative for the resource",
"definition": "Plain text narrative that identifies the resource in addition to the resource reference.",
"comment": "This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.display",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.groupIdentifier",
"path": "Task.groupIdentifier",
"short": "Requisition or grouper id",
"definition": "An identifier that links together multiple tasks and other requests that were created in the same context.",
"requirements": "Billing and/or reporting can be linked to whether multiple requests were created as a single unit.",
"min": 0,
"max": "1",
"base": {
"path": "Task.groupIdentifier",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Identifier"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)"
},
{
"identity": "rim",
"map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]"
},
{
"identity": "servd",
"map": "Identifier"
},
{
"identity": "workflow",
"map": "Request.groupIdentifier"
},
{
"identity": "rim",
"map": ".inboundRelationship[typeCode=COMP].source[moodCode=INT].id"
}
]
},
{
"id": "Task.partOf",
"path": "Task.partOf",
"short": "Composite task",
"definition": "Task that this particular task is part of.",
"comment": "This should usually be 0..1.",
"requirements": "Allows tasks to be broken down into sub-steps (and this division can occur independent of the original task).",
"min": 0,
"max": "*",
"base": {
"path": "Task.partOf",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomics"
],
"referenced"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Event.partOf"
},
{
"identity": "rim",
"map": ".inboundRelationship[typeCode=COMP].source[moodCode=INT]"
}
]
},
{
"id": "Task.partOf.id",
"path": "Task.partOf.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.partOf.extension",
"path": "Task.partOf.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.partOf.reference",
"path": "Task.partOf.reference",
"short": "Literal reference, Relative, internal or absolute URL",
"definition": "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.",
"comment": "Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure \"/[type]/[id]\" then it should be assumed that the reference is to a FHIR RESTful server.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.reference",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"ele-1",
"ref-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.partOf.type",
"path": "Task.partOf.type",
"short": "Type the reference refers to (e.g. \"Patient\")",
"definition": "The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).",
"comment": "This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.type",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "FHIRResourceTypeExt"
}
],
"strength": "extensible",
"description": "Aa resource (or, for logical models, the URI of the logical model).",
"valueSet": "http://hl7.org/fhir/ValueSet/resource-types"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.partOf.identifier",
"path": "Task.partOf.identifier",
"short": "Logical reference, when literal reference is not known",
"definition": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.",
"comment": "When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).",
"min": 0,
"max": "1",
"base": {
"path": "Reference.identifier",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Identifier"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)"
},
{
"identity": "rim",
"map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]"
},
{
"identity": "servd",
"map": "Identifier"
},
{
"identity": "rim",
"map": ".identifier"
}
]
},
{
"id": "Task.partOf.identifier.id",
"path": "Task.partOf.identifier.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.partOf.identifier.extension",
"path": "Task.partOf.identifier.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.partOf.identifier.use",
"path": "Task.partOf.identifier.use",
"short": "usual | official | temp | secondary | old (If known)",
"definition": "The purpose of this identifier.",
"comment": "Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.",
"requirements": "Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.use",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isModifier": true,
"isModifierReason": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.",
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "IdentifierUse"
}
],
"strength": "required",
"description": "Identifies the purpose for this identifier, if known .",
"valueSet": "http://hl7.org/fhir/ValueSet/identifier-use|4.0.1"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "N/A"
},
{
"identity": "rim",
"map": "Role.code or implied by context"
}
]
},
{
"id": "Task.partOf.identifier.type",
"path": "Task.partOf.identifier.type",
"short": "Description of identifier",
"definition": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.",
"comment": "This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.",
"requirements": "Allows users to make use of identifiers when the identifier system is not known.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.type",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "IdentifierType"
}
],
"strength": "extensible",
"description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.",
"valueSet": "http://hl7.org/fhir/ValueSet/identifier-type"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "v2",
"map": "CX.5"
},
{
"identity": "rim",
"map": "Role.code or implied by context"
}
]
},
{
"id": "Task.partOf.identifier.system",
"path": "Task.partOf.identifier.system",
"short": "The namespace for the identifier value",
"definition": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.",
"comment": "Identifier.system is always case sensitive.",
"requirements": "There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.system",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"example": [
{
"label": "General",
"valueUri": "http://www.acme.com/identifiers/patient"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX.4 / EI-2-4"
},
{
"identity": "rim",
"map": "II.root or Role.id.root"
},
{
"identity": "servd",
"map": "./IdentifierType"
}
]
},
{
"id": "Task.partOf.identifier.value",
"path": "Task.partOf.identifier.value",
"short": "The value that is unique",
"definition": "The portion of the identifier typically relevant to the user and which is unique within the context of the system.",
"comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.value",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"example": [
{
"label": "General",
"valueString": "123456"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX.1 / EI.1"
},
{
"identity": "rim",
"map": "II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"
},
{
"identity": "servd",
"map": "./Value"
}
]
},
{
"id": "Task.partOf.identifier.period",
"path": "Task.partOf.identifier.period",
"short": "Time period when id is/was valid for use",
"definition": "Time period during which identifier is/was valid for use.",
"comment": "A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.period",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Period"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "per-1",
"severity": "error",
"human": "If present, start SHALL have a lower value than end",
"expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)",
"xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))",
"source": "http://hl7.org/fhir/StructureDefinition/Period"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "DR"
},
{
"identity": "rim",
"map": "IVL<TS>[lowClosed=\"true\" and highClosed=\"true\"] or URG<TS>[lowClosed=\"true\" and highClosed=\"true\"]"
},
{
"identity": "v2",
"map": "CX.7 + CX.8"
},
{
"identity": "rim",
"map": "Role.effectiveTime or implied by context"
},
{
"identity": "servd",
"map": "./StartDate and ./EndDate"
}
]
},
{
"id": "Task.partOf.identifier.assigner",
"path": "Task.partOf.identifier.assigner",
"short": "Organization that issued id (may be just text)",
"definition": "Organization that issued/manages the identifier.",
"comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.assigner",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics"
],
"referenced"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "v2",
"map": "CX.4 / (CX.4,CX.9,CX.10)"
},
{
"identity": "rim",
"map": "II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper"
},
{
"identity": "servd",
"map": "./IdentifierIssuingAuthority"
}
]
},
{
"id": "Task.partOf.display",
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
}
],
"path": "Task.partOf.display",
"short": "Text alternative for the resource",
"definition": "Plain text narrative that identifies the resource in addition to the resource reference.",
"comment": "This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.display",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.status",
"path": "Task.status",
"short": "draft | requested | received | accepted | +",
"definition": "Initially, automatically populated by the central service upon instantiation. Tasks will be first marked as 'draft' until their prerequisites have been satisfied, after which they will be marked as 'requested' until accepted/claimed by an organization. Upon acceptance, the owning organization is responsible for updating the status up until completion (or if the owning organization is not integrated into the GMS, the organization who has referred the task to the unintegrated org).\nIf a ServiceRequest is cancelled, any Tasks which have not already moved into in-progress SHALL be moved into the cancelled state, any in-progress Tasks will require lab processes to manage closure of the Task and appropriate reimbursement. For a full list of possible automatic cascading of ServiceRequest.status to Task.status please see additional guidance on the status element on the UKCore-ServiceRequest profile page.\n\nIt is not expected that Task statuses will propagate up to the ServiceRequest status, though certain task failure types may require revokation of the authorising request (pending investigation).\n\nFor the full list of expected Task statuses in use by the GMS, please refer to the table below. For the allowed Task status transitions, please see the FHIR R4 Task state machine model.",
"comment": "Note that FHIR strings SHALL NOT exceed 1MB in size",
"requirements": "These states enable coordination of task status with off-the-shelf workflow solutions that support automation of tasks.",
"min": 1,
"max": "1",
"base": {
"path": "Task.status",
"min": 1,
"max": "1"
},
"type": [
{
"code": "code"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isModifier": true,
"isModifierReason": "This element is labeled as a modifier because it is a status element that contains status entered-in-error which means that the resource should not be treated as valid",
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskStatus"
}
],
"strength": "required",
"description": "The current status of the task.",
"valueSet": "http://hl7.org/fhir/ValueSet/task-status|4.0.1"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "workflow",
"map": "Request.status, Event.status"
},
{
"identity": "w5",
"map": "FiveWs.status"
},
{
"identity": "rim",
"map": ".statusCode"
}
]
},
{
"id": "Task.statusReason",
"path": "Task.statusReason",
"short": "Reason for current status",
"definition": "Reasons why a Task has been marked as on-hold, cancelled etc. SHOULD use the Genomic-Task-StatusReason CodeSystem. NOTE: The list of appropriate statusReasons is pending finalization.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text reason captured within Task.statusReason.text.",
"comment": "This applies to the current status. Look at the history of the task to see reasons for past statuses.",
"min": 0,
"max": "1",
"base": {
"path": "Task.statusReason",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskStatusReason"
}
],
"strength": "preferred",
"description": "Codes to identify the reason for current status. These will typically be specific to a particular workflow.",
"valueSet": "https://fhir.nhs.uk/ValueSet/task-statusReason-genomics"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "rim",
"map": ".inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN, code=\"status change\"].reasonCode"
}
]
},
{
"id": "Task.businessStatus",
"path": "Task.businessStatus",
"short": "E.g. \"Specimen Received\", \"Analysis In Progress\"",
"definition": "Genomic specific business statuses for capturing more granular information as part of processing the task. SHOULD use the Genomic-Business-Status CodeSystem. NOTE: The list of appropriate buinessStatuses is pending finalization. Mapping business statuses to the high level container Tasks and statuses is still ongoing.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text status captured within Task.businessStatus.text.",
"comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.",
"requirements": "There's often a need to track substates of a task - this is often variable by specific workflow implementation.",
"min": 0,
"max": "1",
"base": {
"path": "Task.businessStatus",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskBusinessStatus"
}
],
"strength": "preferred",
"description": "The domain-specific business-contextual sub-state of the task. ValueSet specific for Genomics, subject to change.",
"valueSet": "https://fhir.nhs.uk/ValueSet/genomics-business-status"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "rim",
"map": ".inboundRelationship[typeCode=SUBJ].source[classCode=OBS, moodCode=EVN, code=\"business status\"]"
}
]
},
{
"id": "Task.intent",
"path": "Task.intent",
"short": "unknown | proposal | plan | order | original-order | reflex-order | filler-order | instance-order | option",
"definition": "Indicates the \"level\" of actionability associated with the Task, i.e. i+R[9]Cs this a proposed task, a planned task, an actionable task, etc.",
"comment": "This element is immutable. Proposed tasks, planned tasks, etc. must be distinct instances.\n\nIn most cases, Tasks will have an intent of \"order\".",
"min": 1,
"max": "1",
"base": {
"path": "Task.intent",
"min": 1,
"max": "1"
},
"type": [
{
"code": "code"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskIntent"
}
],
"strength": "required",
"description": "Distinguishes whether the task is a proposal, plan or full order.",
"valueSet": "http://hl7.org/fhir/ValueSet/task-intent|4.0.1"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "workflow",
"map": "Request.intent"
},
{
"identity": "w5",
"map": "FiveWs.class"
},
{
"identity": "rim",
"map": ".moodCode"
}
]
},
{
"id": "Task.priority",
"path": "Task.priority",
"short": "routine | urgent | asap | stat",
"definition": "Indicates how quickly the Task should be addressed with respect to other requests.",
"comment": "Note that FHIR strings SHALL NOT exceed 1MB in size",
"requirements": "Used to identify the service level expected while performing a task.",
"min": 0,
"max": "1",
"base": {
"path": "Task.priority",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
],
"meaningWhenMissing": "If missing, this task should be performed with normal priority",
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskPriority"
}
],
"strength": "required",
"description": "The task's priority.",
"valueSet": "http://hl7.org/fhir/ValueSet/request-priority|4.0.1"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "workflow",
"map": "Request.priority"
},
{
"identity": "w5",
"map": "FiveWs.grade"
},
{
"identity": "rim",
"map": ".priorityCode"
}
]
},
{
"id": "Task.code",
"path": "Task.code",
"short": "Task Type",
"definition": "High level coding for the Task, matches the NGTP stages for genomic test processing. Clients SHOULD use the Genomic-Task-Code CodeSystem. NOTE: The list of appropriate codes is pending finalization.\nThe currently allowed code list and their definition is provided in the table below. The table also provides the cardinality of each Task per ServiceRequest or Sample attached to the request as generated by the central broker on submission of a test request. Note: the cardinalities listed reflect the number of concurrent active tasks per service request at any one time, there may be cases where additional Tasks need to be spun up manually, e.g. on failure such as when a new sample needs to be processed after a previous sample fails Quality Control, or when further preparation is required. This cardinality supports the use cases for both requests with multiple participants, e.g. Duo/Trio, and multiple samples per participant e.g. Cancer testing.",
"comment": "The title (eg \"My Tasks\", \"Outstanding Tasks for Patient X\") should go into the code.",
"min": 1,
"max": "1",
"base": {
"path": "Task.code",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskCode"
}
],
"strength": "preferred",
"description": "Codes to identify what the task involves. These will typically be specific to a particular workflow.",
"valueSet": "https://fhir.nhs.uk/ValueSet/task-code-genomics"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "workflow",
"map": "Request.code, Event.code"
},
{
"identity": "w5",
"map": "FiveWs.what[x]"
},
{
"identity": "rim",
"map": ".code"
}
]
},
{
"id": "Task.description",
"path": "Task.description",
"short": "Human-readable explanation of task",
"definition": "A free-text description of what is to be performed.",
"comment": "Note that FHIR strings SHALL NOT exceed 1MB in size",
"min": 0,
"max": "0",
"base": {
"path": "Task.description",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": ".text"
}
]
},
{
"id": "Task.focus",
"path": "Task.focus",
"short": "What task is acting on",
"definition": "The ServiceRequest the Task is fulfilling. Autopopulated by the central service.",
"comment": "If multiple resources need to be manipulated, use sub-tasks. (This ensures that status can be tracked independently for each referenced resource.).",
"requirements": "Used to identify the thing to be done.",
"min": 1,
"max": "1",
"base": {
"path": "Task.focus",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-ServiceRequest-Genomics"
],
"referenced"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "w5",
"map": "FiveWs.what[x]"
},
{
"identity": "rim",
"map": ".outboundRelationship[typeCode=SUBJ].target"
}
]
},
{
"id": "Task.for",
"path": "Task.for",
"short": "Beneficiary of the Task",
"definition": "A reference to the Patient resource or the identifier, NHS number, for the patient for whom the Task is for. Autopopulated by the central service if the Task is automatically generated.\nIf a Task is created by client system or user interaction, for SHALL be populated with a reference to the associated Patient. This MAY be through a resource reference if the ID on the central service is known (or provided within the transaction bundle) or through NHS number where this is known and has been traced through PDS.",
"comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.",
"requirements": "Used to track tasks outstanding for a beneficiary. Do not use to track the task owner or creator (see owner and creator respectively). This can also affect access control.",
"alias": [
"Patient"
],
"min": 1,
"max": "1",
"base": {
"path": "Task.for",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Patient-Genomics",
"http://hl7.org/fhir/StructureDefinition/Resource"
],
"referenced"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.subject, Event.subject"
},
{
"identity": "w5",
"map": "FiveWs.subject[x]"
},
{
"identity": "rim",
"map": ".participation[typeCode=RCT].role"
},
{
"identity": "w5",
"map": "FiveWs.subject"
}
]
},
{
"id": "Task.encounter",
"path": "Task.encounter",
"short": "Healthcare event during which this task originated",
"definition": "The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was created.",
"comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.",
"requirements": "For some tasks it may be important to know the link between the encounter the task originated within.",
"min": 0,
"max": "0",
"base": {
"path": "Task.encounter",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Encounter"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.context, Event.context"
},
{
"identity": "w5",
"map": "FiveWs.context"
},
{
"identity": "rim",
"map": ".inboundRelationship[typeCode=COMP].source[classCode=PCPR, moodCode=EVN]"
}
]
},
{
"id": "Task.executionPeriod",
"path": "Task.executionPeriod",
"short": "Start and end time of execution",
"definition": "MAY be used to capture start and end DateTimes associated with execution of a Task. It is expected the start time will be populated as a Task is moved to in-progress and the end time will be populated as a Task is marked as completed. Usage of this field will be investigated during the Alpha phase of the Genomic Order Management project as timelines for task execution can also be derived from the AuditEvents recorded as Tasks are updated.",
"comment": "A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).",
"min": 0,
"max": "1",
"base": {
"path": "Task.executionPeriod",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Period"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "per-1",
"severity": "error",
"human": "If present, start SHALL have a lower value than end",
"expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)",
"xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))",
"source": "http://hl7.org/fhir/StructureDefinition/Period"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "DR"
},
{
"identity": "rim",
"map": "IVL<TS>[lowClosed=\"true\" and highClosed=\"true\"] or URG<TS>[lowClosed=\"true\" and highClosed=\"true\"]"
},
{
"identity": "workflow",
"map": "Event.occurrence[x]"
},
{
"identity": "w5",
"map": "FiveWs.done[x]"
},
{
"identity": "rim",
"map": ".effectiveTime"
}
]
},
{
"id": "Task.authoredOn",
"path": "Task.authoredOn",
"short": "Task Creation Date",
"definition": "Autopopulated by the central service on creation of the Task.",
"requirements": "Most often used along with lastUpdated to track duration of task to supporting monitoring and management.",
"alias": [
"Created Date"
],
"min": 1,
"max": "1",
"base": {
"path": "Task.authoredOn",
"min": 0,
"max": "1"
},
"type": [
{
"code": "dateTime"
}
],
"ele-1",
"inv-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "workflow",
"map": "Request.authoredOn"
},
{
"identity": "w5",
"map": "FiveWs.recorded"
},
{
"identity": "rim",
"map": ".participation[typeCode=AUT].time"
}
]
},
{
"id": "Task.lastModified",
"path": "Task.lastModified",
"short": "Task Last Modified Date",
"definition": "Time at which a change to the task was made, e.g. status updated. SHALL be updated on change.",
"requirements": "Used along with history to track task activity and time in a particular task state. This enables monitoring and management.",
"alias": [
"Update Date"
],
"min": 0,
"max": "1",
"base": {
"path": "Task.lastModified",
"min": 0,
"max": "1"
},
"type": [
{
"code": "dateTime"
}
],
"ele-1",
"inv-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": ".inboundRelationship[typeCode=SUBJ, ].source[classCode=CACT, moodCode=EVN].effectiveTime"
}
]
},
{
"id": "Task.requester",
"path": "Task.requester",
"short": "Who is asking for task to be done",
"definition": "The original requester of the ServiceRequest the Task is fulfilling. Autopopulated by the central service.",
"comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.",
"requirements": "Identifies who created this task. May be used by access control mechanisms (e.g., to ensure that only the creator can cancel a task).",
"min": 1,
"max": "1",
"base": {
"path": "Task.requester",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-PractitionerRole-Genomics"
],
"referenced"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.requester"
},
{
"identity": "w5",
"map": "FiveWs.author"
},
{
"identity": "rim",
"map": ".participation[typeCode=AUT].role"
}
]
},
{
"id": "Task.performerType",
"path": "Task.performerType",
"short": "Requested performer",
"definition": "The kind of participant that should perform the task.",
"comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.",
"requirements": "Use to distinguish tasks on different activity queues.",
"min": 0,
"max": "0",
"base": {
"path": "Task.performerType",
"min": 0,
"max": "*"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskPerformerType"
}
],
"strength": "preferred",
"description": "The type(s) of task performers allowed.",
"valueSet": "http://hl7.org/fhir/ValueSet/performer-role"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "workflow",
"map": "Event.performer.role, Request.performerType"
},
{
"identity": "w5",
"map": "FiveWs.actor"
},
{
"identity": "rim",
"map": ".participation[typeCode=PRF].role.code"
}
]
},
{
"id": "Task.owner",
"path": "Task.owner",
"short": "Responsible individual",
"definition": "Autopopulated by the central service if a performer is assigned at Test submission. By default, this will the Home GLH for the submitting organization, unless an alternative is specified. The Home GLH/original performer (managing entity) SHOULD remain the owner for the Process Genomic Test Task, throughout the test order-fulfillment process.\nThis field can be updated by the organization claiming the task (though this could also be autopopulated if automated per test routing tables are integrated into the central service functionality). Owner SHOULD be populated using organization ODS code references.\n\nThe responsibility for routing/reassigning ownership of Tasks lies with the current owner following the transfers of responsibility as per the National Genomic Testing Process (NGTP). The different scenarios for how follow-on routing may be achieved is summarised in the points below:\n\nIn most cases, by default the test will be routed to the home GLH (or other lab/GLH as dictated by the initial routing table).\nThis would mean all Tasks by default would have this organization, e.g. home GLH, as the initial owner, it would then be the responsibility of the GLH to reassign tasks to other organizations, where they 'send away' or commission work.\nOnce that work is complete, the send-away organization can choose to reassign the current Task (where another organization needs to conduct work against the same Task before it can be marked as complete)/or assign the follow-on Task (where the current task can be marked as complete) to the next organization, if this is known.\nIf the next organization to send work to is unknown, responsibility should lie with the original/previous owner e.g. Home GLH to reassign the task to the next organization that needs to complete work. This should be captured by having the current owner reassign the task back to the GLH (or organization which assigned the task to them) if further work needs to occur within the current task; or the next task in the NGTP moves from the draft state into the requested state (indicating all its prerequisites have been satisfied). The owner of that task, e.g home GLH, then either starts work or assigns this to the relevant organization.\nIn further phases, a routing advice service may be provided by NHS England to aid organizations in identifying which organization should be assigned, after completing their work.\nTasks assigned to a particular organization SHOULD be searched for using the owner search parameter with the :identifier modifier i.e. [base]/Task?owner:identifier=8J834 or [base]/Task?owner:identifier=https://fhir.nhs.uk/Id/ods-organization-code|8J834",
"comment": "Tasks may be created with an owner not yet identified.",
"requirements": "Identifies who is expected to perform this task.",
"alias": [
"Performer",
"Executer"
],
"min": 0,
"max": "1",
"base": {
"path": "Task.owner",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization"
],
"referenced"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Event.performer.actor, Request.performer"
},
{
"identity": "w5",
"map": "FiveWs.actor"
},
{
"identity": "rim",
"map": ".participation[typeCode=PRF].role"
}
]
},
{
"id": "Task.owner.id",
"path": "Task.owner.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.owner.extension",
"path": "Task.owner.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.owner.reference",
"path": "Task.owner.reference",
"short": "Literal reference, Relative, internal or absolute URL",
"definition": "A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.",
"comment": "Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure \"/[type]/[id]\" then it should be assumed that the reference is to a FHIR RESTful server.",
"min": 0,
"max": "0",
"base": {
"path": "Reference.reference",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"ele-1",
"ref-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.owner.type",
"path": "Task.owner.type",
"short": "Type the reference refers to (e.g. \"Patient\")",
"definition": "The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.\n\nThe type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. \"Patient\" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).",
"comment": "This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.type",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "FHIRResourceTypeExt"
}
],
"strength": "extensible",
"description": "Aa resource (or, for logical models, the URI of the logical model).",
"valueSet": "http://hl7.org/fhir/ValueSet/resource-types"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.owner.identifier",
"path": "Task.owner.identifier",
"short": "Logical reference, when literal reference is not known",
"definition": "An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.",
"comment": "When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. \n\nWhen both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference\n\nApplications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.\n\nReference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).",
"min": 1,
"max": "1",
"base": {
"path": "Reference.identifier",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Identifier"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX / EI (occasionally, more often EI maps to a resource id or a URL)"
},
{
"identity": "rim",
"map": "II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]"
},
{
"identity": "servd",
"map": "Identifier"
},
{
"identity": "rim",
"map": ".identifier"
}
]
},
{
"id": "Task.owner.identifier.id",
"path": "Task.owner.identifier.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.owner.identifier.extension",
"path": "Task.owner.identifier.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.owner.identifier.use",
"path": "Task.owner.identifier.use",
"short": "usual | official | temp | secondary | old (If known)",
"definition": "The purpose of this identifier.",
"comment": "Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.",
"requirements": "Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.use",
"min": 0,
"max": "1"
},
"type": [
{
"code": "code"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isModifier": true,
"isModifierReason": "This is labeled as \"Is Modifier\" because applications should not mistake a temporary id for a permanent one.",
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "IdentifierUse"
}
],
"strength": "required",
"description": "Identifies the purpose for this identifier, if known .",
"valueSet": "http://hl7.org/fhir/ValueSet/identifier-use|4.0.1"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "N/A"
},
{
"identity": "rim",
"map": "Role.code or implied by context"
}
]
},
{
"id": "Task.owner.identifier.type",
"path": "Task.owner.identifier.type",
"short": "Description of identifier",
"definition": "A coded type for the identifier that can be used to determine which identifier to use for a specific purpose.",
"comment": "This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.",
"requirements": "Allows users to make use of identifiers when the identifier system is not known.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.type",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "IdentifierType"
}
],
"strength": "extensible",
"description": "A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.",
"valueSet": "http://hl7.org/fhir/ValueSet/identifier-type"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "v2",
"map": "CX.5"
},
{
"identity": "rim",
"map": "Role.code or implied by context"
}
]
},
{
"id": "Task.owner.identifier.system",
"path": "Task.owner.identifier.system",
"short": "The namespace for the identifier value",
"definition": "Establishes the namespace for the value - that is, a URL that describes a set values that are unique.",
"comment": "Identifier.system is always case sensitive.",
"requirements": "There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.system",
"min": 0,
"max": "1"
},
"type": [
{
"code": "uri"
}
],
"fixedUri": "https://fhir.nhs.uk/Id/ods-organisation-code",
"example": [
{
"label": "General",
"valueUri": "http://www.acme.com/identifiers/patient"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX.4 / EI-2-4"
},
{
"identity": "rim",
"map": "II.root or Role.id.root"
},
{
"identity": "servd",
"map": "./IdentifierType"
}
]
},
{
"id": "Task.owner.identifier.value",
"path": "Task.owner.identifier.value",
"short": "The value that is unique",
"definition": "The portion of the identifier typically relevant to the user and which is unique within the context of the system.",
"comment": "If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the [Rendered Value extension](extension-rendered-value.html). Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.value",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"example": [
{
"label": "General",
"valueString": "123456"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CX.1 / EI.1"
},
{
"identity": "rim",
"map": "II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)"
},
{
"identity": "servd",
"map": "./Value"
}
]
},
{
"id": "Task.owner.identifier.period",
"path": "Task.owner.identifier.period",
"short": "Time period when id is/was valid for use",
"definition": "Time period during which identifier is/was valid for use.",
"comment": "A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. \"the patient was an inpatient of the hospital for this time range\") or one value from the range applies (e.g. \"give to the patient between these two times\").\n\nPeriod is not used for a duration (a measure of elapsed time). See [Duration](datatypes.html#Duration).",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.period",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Period"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "per-1",
"severity": "error",
"human": "If present, start SHALL have a lower value than end",
"expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)",
"xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))",
"source": "http://hl7.org/fhir/StructureDefinition/Period"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "DR"
},
{
"identity": "rim",
"map": "IVL<TS>[lowClosed=\"true\" and highClosed=\"true\"] or URG<TS>[lowClosed=\"true\" and highClosed=\"true\"]"
},
{
"identity": "v2",
"map": "CX.7 + CX.8"
},
{
"identity": "rim",
"map": "Role.effectiveTime or implied by context"
},
{
"identity": "servd",
"map": "./StartDate and ./EndDate"
}
]
},
{
"id": "Task.owner.identifier.assigner",
"path": "Task.owner.identifier.assigner",
"short": "Organization that issued id (may be just text)",
"definition": "Organization that issued/manages the identifier.",
"comment": "The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.",
"min": 0,
"max": "1",
"base": {
"path": "Identifier.assigner",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Organization"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "v2",
"map": "CX.4 / (CX.4,CX.9,CX.10)"
},
{
"identity": "rim",
"map": "II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper"
},
{
"identity": "servd",
"map": "./IdentifierIssuingAuthority"
}
]
},
{
"id": "Task.owner.display",
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable",
"valueBoolean": true
}
],
"path": "Task.owner.display",
"short": "Text alternative for the resource",
"definition": "Plain text narrative that identifies the resource in addition to the resource reference.",
"comment": "This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.",
"min": 0,
"max": "1",
"base": {
"path": "Reference.display",
"min": 0,
"max": "1"
},
"type": [
{
"code": "string"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.location",
"path": "Task.location",
"short": "Where task occurs",
"definition": "Principal physical location where the this task is performed.",
"comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.",
"requirements": "Ties the event to where the records are likely kept and provides context around the event occurrence (e.g. if it occurred inside or outside a dedicated healthcare setting).",
"min": 0,
"max": "0",
"base": {
"path": "Task.location",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Location"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.reasonCode, Event.reasonCode"
},
{
"identity": "w5",
"map": "FiveWs.where[x]"
},
{
"identity": "rim",
"map": ".participation[typeCode=LOC].role"
}
]
},
{
"id": "Task.reasonCode",
"path": "Task.reasonCode",
"short": "Why task is needed",
"definition": "A description or code indicating why this task needs to be performed.",
"comment": "This should only be included if there is no focus or if it differs from the reason indicated on the focus.",
"min": 0,
"max": "0",
"base": {
"path": "Task.reasonCode",
"min": 0,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskReason"
}
],
"strength": "example",
"description": "Indicates why the task is needed. E.g. Suspended because patient admitted to hospital."
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "workflow",
"map": "Event.location"
},
{
"identity": "w5",
"map": "FiveWs.why[x]"
},
{
"identity": "v2",
"map": "EVN.7"
},
{
"identity": "rim",
"map": ".reasonCode"
}
]
},
{
"id": "Task.reasonReference",
"path": "Task.reasonReference",
"short": "Why task is needed",
"definition": "A resource reference indicating why this task needs to be performed.",
"comment": "Tasks might be justified based on an Observation, a Condition, a past or planned procedure, etc. This should only be included if there is no focus or if it differs from the reason indicated on the focus. Use the CodeableConcept text element in `Task.reasonCode` if the data is free (uncoded) text.",
"min": 0,
"max": "0",
"base": {
"path": "Task.reasonReference",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Resource"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.reasonReference, Event.reasonReference"
},
{
"identity": "w5",
"map": "FiveWs.why[x]"
},
{
"identity": "rim",
"map": ".outboundRelationship[typeCode=RSON].target"
}
]
},
{
"id": "Task.insurance",
"path": "Task.insurance",
"short": "Associated insurance coverage",
"definition": "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Task.",
"comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.",
"min": 0,
"max": "0",
"base": {
"path": "Task.insurance",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Coverage",
"http://hl7.org/fhir/StructureDefinition/ClaimResponse"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.insurance"
},
{
"identity": "v2",
"map": "IN1/IN2"
},
{
"identity": "rim",
"map": ".outboundRelationship[typeCode=COVBY].target"
}
]
},
{
"id": "Task.note",
"path": "Task.note",
"short": "Comments made about the task",
"definition": "Used for messaging between owner and other orgnizations e.g. during handover of task or requesting information from requesting clinician.",
"comment": "For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. *Annotations SHOULD NOT* be used to communicate \"modifying\" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).",
"min": 0,
"max": "*",
"base": {
"path": "Task.note",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Annotation"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "N/A"
},
{
"identity": "rim",
"map": "Act"
},
{
"identity": "workflow",
"map": "Request.note, Event.note"
},
{
"identity": "rim",
"map": ".inboundRelationship[typeCode=SUBJ, ].source[classCode=OBS, moodCode=EVN, code=\"annotation\"].value(string)"
}
]
},
{
"id": "Task.relevantHistory",
"path": "Task.relevantHistory",
"short": "Key events in history of the Task",
"definition": "Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the task.",
"comment": "This element does not point to the Provenance associated with the *current* version of the resource - as it would be created after this version existed. The Provenance for the current version can be retrieved with a _revinclude.",
"alias": [
"Status History"
],
"min": 0,
"max": "0",
"base": {
"path": "Task.relevantHistory",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Provenance"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "workflow",
"map": "Request.relevantHistory"
},
{
"identity": "rim",
"map": ".inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]"
}
]
},
{
"id": "Task.restriction",
"path": "Task.restriction",
"short": "Constraints on fulfillment tasks",
"definition": "If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned.",
"requirements": "Sometimes when fulfillment is sought, you don't want full fulfillment.",
"min": 0,
"max": "0",
"base": {
"path": "Task.restriction",
"min": 0,
"max": "1"
},
"type": [
{
"code": "BackboneElement"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "Instead of pointing to request, would point to component of request, having these characteristics"
}
]
},
{
"id": "Task.restriction.id",
"path": "Task.restriction.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.restriction.extension",
"path": "Task.restriction.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.restriction.modifierExtension",
"path": "Task.restriction.modifierExtension",
"short": "Extensions that cannot be ignored even if unrecognized",
"definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
"alias": [
"extensions",
"user content",
"modifiers"
],
"min": 0,
"max": "*",
"base": {
"path": "BackboneElement.modifierExtension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"isModifier": true,
"isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.restriction.repetitions",
"path": "Task.restriction.repetitions",
"short": "How many times to repeat",
"definition": "Indicates the number of times the requested action should occur.",
"comment": "32 bit number; for values larger than this, use decimal",
"requirements": "E.g. order that requests monthly lab tests, fulfillment is sought for 1.",
"min": 0,
"max": "1",
"base": {
"path": "Task.restriction.repetitions",
"min": 0,
"max": "1"
},
"type": [
{
"code": "positiveInt"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": ".repeatNumber"
}
]
},
{
"id": "Task.restriction.period",
"path": "Task.restriction.period",
"short": "When fulfillment sought",
"definition": "Over what time-period is fulfillment sought.",
"comment": "Note that period.high is the due date representing the time by which the task should be completed.",
"requirements": "E.g. order that authorizes 1 year's services. Fulfillment is sought for next 3 months.",
"min": 0,
"max": "1",
"base": {
"path": "Task.restriction.period",
"min": 0,
"max": "1"
},
"type": [
{
"code": "Period"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "per-1",
"severity": "error",
"human": "If present, start SHALL have a lower value than end",
"expression": "start.hasValue().not() or end.hasValue().not() or (start <= end)",
"xpath": "not(exists(f:start/@value)) or not(exists(f:end/@value)) or (xs:dateTime(f:start/@value) <= xs:dateTime(f:end/@value))",
"source": "http://hl7.org/fhir/StructureDefinition/Period"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "DR"
},
{
"identity": "rim",
"map": "IVL<TS>[lowClosed=\"true\" and highClosed=\"true\"] or URG<TS>[lowClosed=\"true\" and highClosed=\"true\"]"
},
{
"identity": "rim",
"map": ".effectiveTime(IVL<TS>)"
}
]
},
{
"id": "Task.restriction.recipient",
"path": "Task.restriction.recipient",
"short": "For whom is fulfillment sought?",
"definition": "For requests that are targeted to more than on potential recipient/target, for whom is fulfillment sought?",
"comment": "References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.",
"min": 0,
"max": "*",
"base": {
"path": "Task.restriction.recipient",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Reference",
"http://hl7.org/fhir/StructureDefinition/Patient",
"http://hl7.org/fhir/StructureDefinition/Practitioner",
"http://hl7.org/fhir/StructureDefinition/PractitionerRole",
"http://hl7.org/fhir/StructureDefinition/RelatedPerson",
"http://hl7.org/fhir/StructureDefinition/Group",
"http://hl7.org/fhir/StructureDefinition/Organization"
]
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ref-1",
"severity": "error",
"human": "SHALL have a contained resource if a local reference is provided",
"expression": "reference.exists() implies (reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids')) or (reference='#' and %rootResource!=%resource))",
"xpath": "not(starts-with(f:reference/@value, '#')) or exists(ancestor::*[self::f:entry or self::f:parameter]/f:resource/f:*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')]|/*/f:contained/f:*[f:id/@value=substring-after(current()/f:reference/@value, '#')])",
"source": "http://hl7.org/fhir/StructureDefinition/Reference"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "The target of a resource reference is a RIM entry point (Act, Role, or Entity)"
},
{
"identity": "rim",
"map": ".participation[typeCode=SBJ].role"
}
]
},
{
"id": "Task.input",
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-explicit-type-name",
"valueString": "Parameter"
}
],
"path": "Task.input",
"short": "Information used to perform task",
"definition": "Used to attach inputs to a Task, if relevant. e.g. references to Specimen's which a Sample Processing task is acting on. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSpecimen references SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing. This is to clearly disambiguate which specimen a task is acting on, where multiple specimens are necessary for processing the test request.",
"requirements": "Resources and data used to perform the task. This data is used in the business logic of task execution, and is stored separately because it varies between workflows.",
"alias": [
"Supporting Information"
],
"min": 0,
"max": "*",
"base": {
"path": "Task.input",
"min": 0,
"max": "*"
},
"type": [
{
"code": "BackboneElement"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "???"
}
]
},
{
"id": "Task.input.id",
"path": "Task.input.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.input.extension",
"path": "Task.input.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.input.modifierExtension",
"path": "Task.input.modifierExtension",
"short": "Extensions that cannot be ignored even if unrecognized",
"definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
"alias": [
"extensions",
"user content",
"modifiers"
],
"min": 0,
"max": "*",
"base": {
"path": "BackboneElement.modifierExtension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"isModifier": true,
"isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.input.type",
"path": "Task.input.type",
"short": "Label for the input",
"definition": "A code or description indicating how the input is intended to be used as part of the task execution.",
"comment": "If referencing a BPMN workflow or Protocol, the \"system\" is the URL for the workflow definition and the code is the \"name\" of the required input.",
"requirements": "Inputs are named to enable task automation to bind data and pass it from one task to the next.",
"alias": [
"Name"
],
"min": 1,
"max": "1",
"base": {
"path": "Task.input.type",
"min": 1,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskInputParameterType"
}
],
"strength": "preferred",
"description": "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.",
"valueSet": "https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "rim",
"map": "???"
}
]
},
{
"id": "Task.input.value[x]",
"path": "Task.input.value[x]",
"short": "Content to use in performing the task",
"definition": "The value of the input parameter as a basic type.",
"min": 1,
"max": "1",
"base": {
"path": "Task.input.value[x]",
"min": 1,
"max": "1"
},
"type": [
{
"code": "base64Binary"
},
{
"code": "boolean"
},
{
"code": "canonical"
},
{
"code": "code"
},
{
"code": "date"
},
{
"code": "dateTime"
},
{
"code": "decimal"
},
{
"code": "id"
},
{
"code": "instant"
},
{
"code": "integer"
},
{
"code": "markdown"
},
{
"code": "oid"
},
{
"code": "positiveInt"
},
{
"code": "string"
},
{
"code": "time"
},
{
"code": "unsignedInt"
},
{
"code": "uri"
},
{
"code": "url"
},
{
"code": "uuid"
},
{
"code": "Address"
},
{
"code": "Age"
},
{
"code": "Annotation"
},
{
"code": "Attachment"
},
{
"code": "CodeableConcept"
},
{
"code": "Coding"
},
{
"code": "ContactPoint"
},
{
"code": "Count"
},
{
"code": "Distance"
},
{
"code": "Duration"
},
{
"code": "HumanName"
},
{
"code": "Identifier"
},
{
"code": "Money"
},
{
"code": "Period"
},
{
"code": "Quantity"
},
{
"code": "Range"
},
{
"code": "Ratio"
},
{
"code": "Reference"
},
{
"code": "SampledData"
},
{
"code": "Signature"
},
{
"code": "Timing"
},
{
"code": "ContactDetail"
},
{
"code": "Contributor"
},
{
"code": "DataRequirement"
},
{
"code": "Expression"
},
{
"code": "ParameterDefinition"
},
{
"code": "RelatedArtifact"
},
{
"code": "TriggerDefinition"
},
{
"code": "UsageContext"
},
{
"code": "Dosage"
},
{
"code": "Meta"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "???"
}
]
},
{
"id": "Task.output",
"path": "Task.output",
"short": "Information produced as part of task",
"definition": "Used to attach outputs from a Task, if relevant. e.g. VUS files during processing or a DiagnosticReport upon completion of reporting stage. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSample tracking information SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing, on either the output or input elements. This information MAY include consignment number, destination, date sent etc. Further modelling of the types/format expected are pending clinical scenarios.",
"requirements": "Resources and data produced during the execution the task. This data is generated by the business logic of task execution, and is stored separately because it varies between workflows.",
"min": 0,
"max": "*",
"base": {
"path": "Task.output",
"min": 0,
"max": "*"
},
"type": [
{
"code": "BackboneElement"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "???"
}
]
},
{
"id": "Task.output.id",
"path": "Task.output.id",
"xmlAttr"
],
"short": "Unique id for inter-element referencing",
"definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
"min": 0,
"max": "1",
"base": {
"path": "Element.id",
"min": 0,
"max": "1"
},
"type": [
{
{
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type",
"valueUrl": "string"
}
],
"code": "http://hl7.org/fhirpath/System.String"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
}
]
},
{
"id": "Task.output.extension",
"path": "Task.output.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"description": "Extensions are always sliced by (at least) url",
"rules": "open"
},
"short": "Additional content defined by implementations",
"definition": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"alias": [
"extensions",
"user content"
],
"min": 0,
"max": "*",
"base": {
"path": "Element.extension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.output.modifierExtension",
"path": "Task.output.modifierExtension",
"short": "Extensions that cannot be ignored even if unrecognized",
"definition": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
"comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.",
"requirements": "Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](extensibility.html#modifierExtension).",
"alias": [
"extensions",
"user content",
"modifiers"
],
"min": 0,
"max": "*",
"base": {
"path": "BackboneElement.modifierExtension",
"min": 0,
"max": "*"
},
"type": [
{
"code": "Extension"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
},
{
"key": "ext-1",
"severity": "error",
"human": "Must have either extensions or value[x], not both",
"expression": "extension.exists() != value.exists()",
"xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])",
"source": "http://hl7.org/fhir/StructureDefinition/Extension"
}
],
"isModifier": true,
"isModifierReason": "Modifier extensions are expected to modify the meaning or interpretation of the element that contains them",
"isSummary": true,
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "N/A"
}
]
},
{
"id": "Task.output.type",
"path": "Task.output.type",
"short": "Label for output",
"definition": "The name of the Output parameter.",
"comment": "Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.",
"requirements": "Outputs are named to enable task automation to bind data and pass it from one task to the next.",
"alias": [
"Name"
],
"min": 1,
"max": "1",
"base": {
"path": "Task.output.type",
"min": 1,
"max": "1"
},
"type": [
{
"code": "CodeableConcept"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"binding": {
{
"url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
"valueString": "TaskOutputParameterType"
}
],
"strength": "preferred",
"description": "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.",
"valueSet": "https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics"
},
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "v2",
"map": "CE/CNE/CWE"
},
{
"identity": "rim",
"map": "CD"
},
{
"identity": "orim",
"map": "fhir:CodeableConcept rdfs:subClassOf dt:CD"
},
{
"identity": "rim",
"map": "???"
}
]
},
{
"id": "Task.output.value[x]",
"path": "Task.output.value[x]",
"short": "Result of output",
"definition": "The value of the Output parameter as a basic type.",
"requirements": "Task outputs can take any form.",
"min": 1,
"max": "1",
"base": {
"path": "Task.output.value[x]",
"min": 1,
"max": "1"
},
"type": [
{
"code": "base64Binary"
},
{
"code": "boolean"
},
{
"code": "canonical"
},
{
"code": "code"
},
{
"code": "date"
},
{
"code": "dateTime"
},
{
"code": "decimal"
},
{
"code": "id"
},
{
"code": "instant"
},
{
"code": "integer"
},
{
"code": "markdown"
},
{
"code": "oid"
},
{
"code": "positiveInt"
},
{
"code": "string"
},
{
"code": "time"
},
{
"code": "unsignedInt"
},
{
"code": "uri"
},
{
"code": "url"
},
{
"code": "uuid"
},
{
"code": "Address"
},
{
"code": "Age"
},
{
"code": "Annotation"
},
{
"code": "Attachment"
},
{
"code": "CodeableConcept"
},
{
"code": "Coding"
},
{
"code": "ContactPoint"
},
{
"code": "Count"
},
{
"code": "Distance"
},
{
"code": "Duration"
},
{
"code": "HumanName"
},
{
"code": "Identifier"
},
{
"code": "Money"
},
{
"code": "Period"
},
{
"code": "Quantity"
},
{
"code": "Range"
},
{
"code": "Ratio"
},
{
"code": "Reference"
},
{
"code": "SampledData"
},
{
"code": "Signature"
},
{
"code": "Timing"
},
{
"code": "ContactDetail"
},
{
"code": "Contributor"
},
{
"code": "DataRequirement"
},
{
"code": "Expression"
},
{
"code": "ParameterDefinition"
},
{
"code": "RelatedArtifact"
},
{
"code": "TriggerDefinition"
},
{
"code": "UsageContext"
},
{
"code": "Dosage"
},
{
"code": "Meta"
}
],
"ele-1"
],
{
"key": "ele-1",
"severity": "error",
"human": "All FHIR elements must have a @value or children",
"expression": "hasValue() or (children().count() > id.count())",
"xpath": "@value|f:*|h:div",
"source": "http://hl7.org/fhir/StructureDefinition/Element"
}
],
"mapping": [
{
"identity": "rim",
"map": "n/a"
},
{
"identity": "rim",
"map": "???"
}
]
}
]
},
"element": [
{
"id": "Task.basedOn",
"path": "Task.basedOn",
"definition": "This element will not be used within the Genomic Medicine Service. The ServiceRequest a Task is seeking to fulfill SHALL be referenced through the `focus` element. Specimen resources being acted upon by tasks related to specimen prep/processing SHOULD be referenced through the `Task.input` element.",
"max": "0"
},
{
"id": "Task.basedOn.identifier.assigner",
"path": "Task.basedOn.identifier.assigner",
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics"
],
"referenced"
]
}
]
},
{
"id": "Task.partOf",
"path": "Task.partOf",
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Task-Genomics"
],
"referenced"
]
}
]
},
{
"id": "Task.partOf.identifier.assigner",
"path": "Task.partOf.identifier.assigner",
"type": [
{
"code": "Reference",
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Organization-Genomics"
],
"referenced"
]
}
]
},
{
"id": "Task.status",
"path": "Task.status",
"definition": "Initially, automatically populated by the central service upon instantiation. Tasks will be first marked as 'draft' until their prerequisites have been satisfied, after which they will be marked as 'requested' until accepted/claimed by an organization. Upon acceptance, the owning organization is responsible for updating the status up until completion (or if the owning organization is not integrated into the GMS, the organization who has referred the task to the unintegrated org).\nIf a ServiceRequest is cancelled, any Tasks which have not already moved into in-progress SHALL be moved into the cancelled state, any in-progress Tasks will require lab processes to manage closure of the Task and appropriate reimbursement. For a full list of possible automatic cascading of ServiceRequest.status to Task.status please see additional guidance on the status element on the UKCore-ServiceRequest profile page.\n\nIt is not expected that Task statuses will propagate up to the ServiceRequest status, though certain task failure types may require revokation of the authorising request (pending investigation).\n\nFor the full list of expected Task statuses in use by the GMS, please refer to the table below. For the allowed Task status transitions, please see the FHIR R4 Task state machine model."
},
{
"id": "Task.statusReason",
"path": "Task.statusReason",
"definition": "Reasons why a Task has been marked as on-hold, cancelled etc. SHOULD use the Genomic-Task-StatusReason CodeSystem. NOTE: The list of appropriate statusReasons is pending finalization.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text reason captured within Task.statusReason.text.",
"binding": {
"strength": "preferred",
"valueSet": "https://fhir.nhs.uk/ValueSet/task-statusReason-genomics"
}
},
{
"id": "Task.businessStatus",
"path": "Task.businessStatus",
"short": "E.g. \"Specimen Received\", \"Analysis In Progress\"",
"definition": "Genomic specific business statuses for capturing more granular information as part of processing the task. SHOULD use the Genomic-Business-Status CodeSystem. NOTE: The list of appropriate buinessStatuses is pending finalization. Mapping business statuses to the high level container Tasks and statuses is still ongoing.\nIf a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text status captured within Task.businessStatus.text.",
"binding": {
"strength": "preferred",
"description": "The domain-specific business-contextual sub-state of the task. ValueSet specific for Genomics, subject to change.",
"valueSet": "https://fhir.nhs.uk/ValueSet/genomics-business-status"
}
},
{
"id": "Task.code",
"path": "Task.code",
"definition": "High level coding for the Task, matches the NGTP stages for genomic test processing. Clients SHOULD use the Genomic-Task-Code CodeSystem. NOTE: The list of appropriate codes is pending finalization.\nThe currently allowed code list and their definition is provided in the table below. The table also provides the cardinality of each Task per ServiceRequest or Sample attached to the request as generated by the central broker on submission of a test request. Note: the cardinalities listed reflect the number of concurrent active tasks per service request at any one time, there may be cases where additional Tasks need to be spun up manually, e.g. on failure such as when a new sample needs to be processed after a previous sample fails Quality Control, or when further preparation is required. This cardinality supports the use cases for both requests with multiple participants, e.g. Duo/Trio, and multiple samples per participant e.g. Cancer testing.",
"min": 1,
"binding": {
"strength": "preferred",
"valueSet": "https://fhir.nhs.uk/ValueSet/task-code-genomics"
}
},
{
"id": "Task.description",
"path": "Task.description",
"max": "0"
},
{
"id": "Task.focus",
"path": "Task.focus",
"definition": "The ServiceRequest the Task is fulfilling. Autopopulated by the central service.",
"min": 1,
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-ServiceRequest-Genomics"
],
"referenced"
]
}
]
},
{
"id": "Task.for",
"path": "Task.for",
"definition": "A reference to the Patient resource or the identifier, NHS number, for the patient for whom the Task is for. Autopopulated by the central service if the Task is automatically generated.\nIf a Task is created by client system or user interaction, for SHALL be populated with a reference to the associated Patient. This MAY be through a resource reference if the ID on the central service is known (or provided within the transaction bundle) or through NHS number where this is known and has been traced through PDS.",
"min": 1,
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-Patient-Genomics",
"http://hl7.org/fhir/StructureDefinition/Resource"
],
"referenced"
]
}
]
},
{
"id": "Task.encounter",
"path": "Task.encounter",
"max": "0"
},
{
"id": "Task.executionPeriod",
"path": "Task.executionPeriod",
"definition": "MAY be used to capture start and end DateTimes associated with execution of a Task. It is expected the start time will be populated as a Task is moved to in-progress and the end time will be populated as a Task is marked as completed. Usage of this field will be investigated during the Alpha phase of the Genomic Order Management project as timelines for task execution can also be derived from the AuditEvents recorded as Tasks are updated."
},
{
"id": "Task.authoredOn",
"path": "Task.authoredOn",
"definition": "Autopopulated by the central service on creation of the Task.",
"min": 1
},
{
"id": "Task.lastModified",
"path": "Task.lastModified",
"definition": "Time at which a change to the task was made, e.g. status updated. SHALL be updated on change."
},
{
"id": "Task.requester",
"path": "Task.requester",
"definition": "The original requester of the ServiceRequest the Task is fulfilling. Autopopulated by the central service.",
"min": 1,
"type": [
{
"code": "Reference",
"https://fhir.nhs.uk/StructureDefinition/NHSEngland-PractitionerRole-Genomics"
],
"referenced"
]
}
]
},
{
"id": "Task.performerType",
"path": "Task.performerType",
"max": "0"
},
{
"id": "Task.owner",
"path": "Task.owner",
"definition": "Autopopulated by the central service if a performer is assigned at Test submission. By default, this will the Home GLH for the submitting organization, unless an alternative is specified. The Home GLH/original performer (managing entity) SHOULD remain the owner for the Process Genomic Test Task, throughout the test order-fulfillment process.\nThis field can be updated by the organization claiming the task (though this could also be autopopulated if automated per test routing tables are integrated into the central service functionality). Owner SHOULD be populated using organization ODS code references.\n\nThe responsibility for routing/reassigning ownership of Tasks lies with the current owner following the transfers of responsibility as per the National Genomic Testing Process (NGTP). The different scenarios for how follow-on routing may be achieved is summarised in the points below:\n\nIn most cases, by default the test will be routed to the home GLH (or other lab/GLH as dictated by the initial routing table).\nThis would mean all Tasks by default would have this organization, e.g. home GLH, as the initial owner, it would then be the responsibility of the GLH to reassign tasks to other organizations, where they 'send away' or commission work.\nOnce that work is complete, the send-away organization can choose to reassign the current Task (where another organization needs to conduct work against the same Task before it can be marked as complete)/or assign the follow-on Task (where the current task can be marked as complete) to the next organization, if this is known.\nIf the next organization to send work to is unknown, responsibility should lie with the original/previous owner e.g. Home GLH to reassign the task to the next organization that needs to complete work. This should be captured by having the current owner reassign the task back to the GLH (or organization which assigned the task to them) if further work needs to occur within the current task; or the next task in the NGTP moves from the draft state into the requested state (indicating all its prerequisites have been satisfied). The owner of that task, e.g home GLH, then either starts work or assigns this to the relevant organization.\nIn further phases, a routing advice service may be provided by NHS England to aid organizations in identifying which organization should be assigned, after completing their work.\nTasks assigned to a particular organization SHOULD be searched for using the owner search parameter with the :identifier modifier i.e. [base]/Task?owner:identifier=8J834 or [base]/Task?owner:identifier=https://fhir.nhs.uk/Id/ods-organization-code|8J834",
"type": [
{
"code": "Reference",
"https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization"
],
"referenced"
]
}
]
},
{
"id": "Task.owner.reference",
"path": "Task.owner.reference",
"max": "0"
},
{
"id": "Task.owner.identifier",
"path": "Task.owner.identifier",
"min": 1
},
{
"id": "Task.owner.identifier.system",
"path": "Task.owner.identifier.system",
"fixedUri": "https://fhir.nhs.uk/Id/ods-organisation-code"
},
{
"id": "Task.location",
"path": "Task.location",
"max": "0"
},
{
"id": "Task.reasonCode",
"path": "Task.reasonCode",
"max": "0"
},
{
"id": "Task.reasonReference",
"path": "Task.reasonReference",
"max": "0"
},
{
"id": "Task.insurance",
"path": "Task.insurance",
"max": "0"
},
{
"id": "Task.note",
"path": "Task.note",
"definition": "Used for messaging between owner and other orgnizations e.g. during handover of task or requesting information from requesting clinician."
},
{
"id": "Task.relevantHistory",
"path": "Task.relevantHistory",
"max": "0"
},
{
"id": "Task.restriction",
"path": "Task.restriction",
"max": "0"
},
{
"id": "Task.input",
"path": "Task.input",
"definition": "Used to attach inputs to a Task, if relevant. e.g. references to Specimen's which a Sample Processing task is acting on. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSpecimen references SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing. This is to clearly disambiguate which specimen a task is acting on, where multiple specimens are necessary for processing the test request."
},
{
"id": "Task.input.type",
"path": "Task.input.type",
"binding": {
"strength": "preferred",
"valueSet": "https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics"
}
},
{
"id": "Task.output",
"path": "Task.output",
"definition": "Used to attach outputs from a Task, if relevant. e.g. VUS files during processing or a DiagnosticReport upon completion of reporting stage. No CodeSystem exists for this field as of publication but this will be investigated as future work.\nSample tracking information SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing, on either the output or input elements. This information MAY include consignment number, destination, date sent etc. Further modelling of the types/format expected are pending clinical scenarios."
},
{
"id": "Task.output.type",
"path": "Task.output.type",
"binding": {
"strength": "preferred",
"valueSet": "https://fhir.nhs.uk/ValueSet/AdditionalInfoTypeGenomics"
}
}
]
}
}

Task-NonWGSRareDiseaseTestOrder-Cancellation-Example
Task-NonWGSRareDiseaseTestOrder-Example
Task-NonWGSRareDiseaseTestOrderAccepted-Example
Task-NonWGSRareDiseaseTestOrderAccepted-FetalScenario-Example
Task-NonWGSRareDiseaseTestOrderAccepted-FollowupTest-Example
Task-NonWGSRareDiseaseTestOrderAccepted-HaemOncology-Example
Task-NonWGSRareDiseaseTestOrderAccepted-Reanalysis-Example
Task-NonWGSRareDiseaseTestOrderAccepted-SufficientSample-Example
Task-NonWGSRareDiseaseTestOrderCancelled-FollowupTest-Example
Task-NonWGSRareDiseaseTestOrderCompleted-CascadeTesting-Example
Task-NonWGSRareDiseaseTestOrderCompleted-FollowupTest-Example
Task-NonWGSRareDiseaseTestOrderForwarded-OutOfCountry-Example
Task-NonWGSRareDiseaseTestOrderForwarded-SolidTumor-Example
Task-NonWGSRareDiseaseTestOrderRejected-Example
Task-NonWGSRareDiseaseTestOrderHold-Example
Task-NonWGSRareDiseaseTestOrderRejected-CancerSolidTumor-Example
Task-NonWGSRareDiseaseTestOrderRejected-FetalScenario-Example
Task-NonWGSRareDiseaseTestOrder-InsufficientSample-Example
Task-NonWGSTestOrderAccepted-VariantReinterpretation-Example
Task-NonWGSTestOrderFormAccepted-UsingStoredSample-Example
Task-TestOrderFormAccepted-StorageOfMaterial-Example
Task-WGSRareDiseaseTestOrder-Example
Task-WGSRareDiseaseTestOrderAccepted-Example
Task-WGSRareDiseaseTestOrderAccepted-DirectToLab-Example
Task-WGSRareDiseaseTestOrderAccepted-TrioTestingProband-Example
Task-WGSRareDiseaseTestOrderCompleted-DirectToLab-Example
Task-WGSRareDiseaseTestOrderCompleted-TrioTestingProband-Example
Task-WGSRareDiseaseTestOrderForwarded-Example
Task-WGSRareDiseaseTestOrderHold-DirectToLab-Example
Task-WGSRareDiseaseTestOrderHold-TrioTestingProband-Example
Task-WGSRareDiseaseTestOrderRequested-DirectToLab-Example
Task-NonWGSTestOrderFormRequested-UsingStoredSample-Example
Task-WGSRareDiseaseTestOrderAccepted-TrioTestingFather-Example
Task-WGSRareDiseaseTestOrderAccepted-TrioTestingMother-Example
FHIRMDSHL7v2
Task.executionPeriod.startPLCM activity - Activity start date and timeDerived from TQ1-7 in the ORL response message for the activity based on the OML request
Task.executionPeriod.endPLCM activity - Activity end date and timeDerived from TQ1-8 in the ORL response message for the activity based on the OML request
Task.ownerPLCM activity - ODS code of organisation submitting to PLCM, PLCM activity - ODS code of organisation delivering requested test, PLCM activity - ODS code of the laboratory site delivering requested testOBR-32.7 if sourced from principle results interpreter, OBX-32.10, AFF-2.10 associated with performing organization
Task.statusPLCM activity - Sample plating quality controlImplied through status recorded in ORC-25 indicating plating quality control had passed
Task.statusReasonPLCM activity - Sample plating quality control fail codeORC-25
Task.outputExtracted specimen - Location detailsSAC-15

Additional Guidance

basedOn

This element will not be used within the Genomic Medicine Service. The ServiceRequest a Task is seeking to fulfill SHALL be referenced through the `focus` element. Specimen resources being acted upon by tasks related to specimen prep/processing SHOULD be referenced through the `Task.input` element.

status

Initially, automatically populated by the central service upon instantiation. Tasks will be first marked as 'draft' until their prerequisites have been satisfied, after which they will be marked as 'requested' until accepted/claimed by an organization. Upon acceptance, the owning organization is responsible for updating the status up until completion (or if the owning organization is not integrated into the GMS, the organization who has referred the task to the unintegrated org).

If a ServiceRequest is cancelled, any Tasks which have not already moved into in-progress SHALL be moved into the cancelled state, any in-progress Tasks will require lab processes to manage closure of the Task and appropriate reimbursement. For a full list of possible automatic cascading of ServiceRequest.status to Task.status please see additional guidance on the status element on the Genomics-ServiceRequest profile page.

It is not expected that Task statuses will propagate up to the ServiceRequest status, though certain task failure types may require revokation of the authorising request (pending investigation).

For the full list of expected Task statuses in use by the GMS, please refer to the table below. For the allowed Task status transitions, please see the FHIR R4 Task state machine model.

Status Description Genomic workflow usage
Draft The task is not yet ready to be acted upon. Initial state for Tasks. Used for tasks which require prerequisite tasks to be completed first.
Requested The task is ready to be acted upon and action is sought. Status indicating a task can be worked on/claimed, all prerequisites have been satisfied.
Received A potential performer has claimed ownership of the task and is evaluating whether to perform it. NOT USED within Genomics as Tasks will be polled for rather than being sent out to assigned organizations. Most likely not used unless tasks are automatically assigned and organizations are notified by the central service, e.g. to GLH.
Accepted The potential performer has agreed to execute the task but has not yet started work. Used when an assigned owner has accepted the task after being assigned.
Rejected The potential performer who claimed ownership of the task has decided not to execute it prior to performing any action. Used if an organization was assigned to a task but is unable to perform work against it. It is expected if an alternative organization can be assigned, this is done as an owner update rather than marking the task as rejected. If subsequent work does occur, a duplicate task will need to be created as the 'rejected' state is a terminal one.
Ready The task is ready to be performed, but no action has yet been taken. Used in place of requested/received/accepted/rejected when request assignment and acceptance is a given. NOT USED within Genomics as it is not assumed that Tasks will be automatically accepted when prerequisites are satisfied.
Cancelled The task was not completed. Used when a task has been created but later identified as unneeded, e.g. due to modifications to test order such as the ServiceRequest being cancelled. Automatically set by the central broker.
In Progress The task has been started but is not yet complete. When work has commenced.
On Hold The task has been started but work has been paused. A holding state where work is expected to continue but is being blocked through some external issue. Suppliers will need to state reason why work is on hold through the statusReason field e.g. Awaiting Sample.
Failed The task was attempted but could not be completed due to some error. Indicates the task cannot continue and is unrcoverable without external intervention. If modifications to the test order allow the task to be resumed, a new task should be created e.g. a new sample is provided to replace a previous sample which has failed quality control. If the Task results in an unrecoverable error, the ServiceRequest may need to be revoked.
Completed The task has been completed. Marked once all actions against a task are complete, and follow on Tasks can commence.
Entered in Error The task should never have existed and is retained only because of the possibility it may have used. May be used if user created Tasks are created in error, e.g. duplicate Tasks, or Tasks have been created by the central broker and the ServiceRequest has subsequently been marked as entered-in-error.
"status": "rejected",

statusReason

Reasons why a Task has been marked as on-hold, cancelled etc. SHOULD use the Genomic-Task-StatusReason CodeSystem. NOTE: The list of appropriate statusReasons is pending finalization.

If a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text reason captured within Task.statusReason.text.

"statusReason": {
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/task-status-reason-genomics",
                "code": "further-information-needed",
                "display": "Further Information Needed"
            }
        ]
    },

businessStatus

Genomic specific business statuses for capturing more granular information as part of processing the task. SHOULD use the Genomic-Business-Status CodeSystem. NOTE: The list of appropriate buinessStatuses is pending finalization. Mapping business statuses to the high level container Tasks and statuses is still ongoing.

If a code from the linked CodeSystem is not applicable, the code of other SHOULD be used, with a free text status captured within Task.businessStatus.text.

"businessStatus": {
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/business-status-genomics",
                "code": "sample-sent",
                "display": "Sample Sent"
            }
        ]
    },

code

High level coding for the Task, matches the NGTP stages for genomic test processing. Clients SHOULD use the Genomic-Task-Code CodeSystem. NOTE: The list of appropriate codes is pending finalization.

The currently allowed code list and their definition is provided in the table below. The table also provides the cardinality of each Task per ServiceRequest or Sample attached to the request as generated by the central broker on submission of a test request. Note: the cardinalities listed reflect the number of concurrent active tasks per service request at any one time, there may be cases where additional Tasks need to be spun up manually, e.g. on failure such as when a new sample needs to be processed after a previous sample fails Quality Control, or when further preparation is required. This cardinality supports the use cases for both requests with multiple participants, e.g. Duo/Trio, and multiple samples per participant e.g. Cancer testing.

Task.code display Definition of work within Task Cardinality (general case) Cardinality (Reanalysis/Reinterpretation) Cardinality (DNA Storage)
Process Genomic Test Request Test code requested is ratified by the lab against provided patient information (checking eligibility) 1..1 (per ServiceRequest) 1..1 1..1
Request & Sample Alignment The lab confirms/validates the data and sample(s) required for given test type are present 1..* (1 per Specimen referenced from or referencing the ServiceRequest) 1..1 (At least 1 will always be required, e.g. for validation of data in the No Sample scenario) 1..* (per Sample)
Sample Preparation Sample is prepared, as appropriate for the selected test type, and DNA extracted. May have multiples if further preparation is required 1..* (1 per Sample) 0..0 (Not required for Reanalysis/Reinterpretation requests where a sample does not need to be prepared) 1..* (1 per Sample)
Sample Processing DNA sample(s) are sequenced, generating read/sequence data to feed into analysis 1..* (1 per Sample or extracted DNA sample) 0..0 (Not required for Reanalysis/Reinterpretation requests where a sample does not need to be sequenced) 0..0 (Not required for DNA storage where a sample does not need to be sequenced)
Genetic/Genomic Data Processing Sequence data is passed through a bio-pipeline, generates variant priorities lists for analysis 1..* (1 per Sample or read data) 0..* (For Reanalysis, should match the number of Samples for the parent request. Not required for Reinterpretation requests) 0..0 (Not required for DNA storage requests)
Interpretation Results analysis is organised and interpreted by a Clincial Scientist 1..* (1 per Sample or variant priorities list) 1..* (For Reanalysis/Reinterpretation, should match the number of Samples for the parent request 0..0 (Not required for DNA storage requests)
Produce Interim Report A report is created and deemed interim pending MDT, if necessary 1..* (1 per Sample. TBC whether one interim report would be generated per sample/set of genetic data or 1 per request) 1..* (For Reanalysis/Reinterpretation, should match the number of Samples for the parent request 0..0 (Not required for DNA storage requests)
Genomic MDT Multi-Diciplinary-Team consults on the interim report 1..1 (max 1 per ServiceRequest, for the purposes of the Alpha an MDT task will always be created, even if not needed) 1..1 0..0 (Not required for DNA storage requests)
Produce Final Report Interim report is deemed final or is updated following MDT 1..1 (per ServiceRequest) 1..1 1..1
Distribute Report Final report is distributed or marked as distributable/available 1..1 (per ServiceRequest or Final Report) 1..1 1..1

Rendered within a diagram, the Task cardinalities and their inputs are illustrated in the diagram below:

GenomicOrderManagementTaskModel

"code": {
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/task-code-genomics",
                "code": "sample-processing",
                "display": "Sample Processing"
            }
        ]
    },

focus

The ServiceRequest the Task is fulfilling. Autopopulated by the central service.
"focus": {
        "reference": "ServiceRequest/ServiceRequest-SavedTestOrder-Example"
    },

for

A reference to the Patient resource or the identifier, NHS number, for the patient for whom the Task is for. Autopopulated by the central service if the Task is automatically generated.

If a Task is created by client system or user interaction, for SHALL be populated with a reference to the associated Patient. This MAY be through a resource reference if the ID on the central service is known (or provided within the transaction bundle) or through NHS number where this is known and has been traced through PDS.

"for": {
        "reference": "Patient/Patient-MeirLieberman-Example",
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9449307873"
        }
    },

executionPeriod

MAY be used to capture start and end DateTimes associated with execution of a Task. It is expected the start time will be populated as a Task is moved to in-progress and the end time will be populated as a Task is marked as completed. Usage of this field will be investigated during the Alpha phase of the Genomic Order Management project as timelines for task execution can also be derived from the AuditEvents recorded as Tasks are updated.
"executionPeriod": {
        "start": "2023-10-31T10:25:05+00:00",
        "end": "2023-11-15T16:45:05+00:00"
    },

authoredOn

Autopopulated by the central service on creation of the Task.
"authoredOn": "2023-09-18T18:30:00Z"

lastModidified

Time at which a change to the task was made, e.g. status updated. SHALL be updated on change.
"lastModified": "2023-09-18T19:11:00Z"

requester

The original requester of the ServiceRequest the Task is fulfilling. Autopopulated by the central service.
"requester": {
        "reference": "PractitionerRole/PractitionerRole-GeneSmithENT-Example"
    },

owner

Autopopulated by the central service if a performer is assigned at Test submission. By default, this will the Home GLH for the submitting organization, unless an alternative is specified. The Home GLH/original performer (managing entity) SHOULD remain the owner for the Process Genomic Test Task, throughout the test order-fulfillment process.

This field can be updated by the organization claiming the task (though this could also be autopopulated if automated per test routing tables are integrated into the central service functionality). Owner SHOULD be populated using organization ODS code references.

The responsibility for routing/reassigning ownership of Tasks lies with the current owner following the transfers of responsibility as per the National Genomic Testing Process (NGTP). The different scenarios for how follow-on routing may be achieved is summarised in the points below:

  • In most cases, by default the test will be routed to the home GLH (or other lab/GLH as dictated by the initial routing table).
  • This would mean all Tasks by default would have this organization, e.g. home GLH, as the initial owner, it would then be the responsibility of the GLH to reassign tasks to other organizations, where they 'send away' or commission work.
  • Once that work is complete, the send-away organization can choose to reassign the current Task (where another organization needs to conduct work against the same Task before it can be marked as complete)/or assign the follow-on Task (where the current task can be marked as complete) to the next organization, if this is known.
  • If the next organization to send work to is unknown, responsibility should lie with the original/previous owner e.g. Home GLH to reassign the task to the next organization that needs to complete work. This should be captured by having the current owner reassign the task back to the GLH (or organization which assigned the task to them) if further work needs to occur within the current task; or the next task in the NGTP moves from the draft state into the requested state (indicating all its prerequisites have been satisfied). The owner of that task, e.g home GLH, then either starts work or assigns this to the relevant organization.
  • In further phases, a routing advice service may be provided by NHS England to aid organizations in identifying which organization should be assigned, after completing their work.

Tasks assigned to a particular organization SHOULD be searched for using the owner search parameter with the :identifier modifier i.e. [base]/Task?owner:identifier=8J834 or [base]/Task?owner:identifier=https://fhir.nhs.uk/Id/ods-organization-code|8J834

"owner": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "69010"
        },
        "display": "Pathology Lab - ADDENBROOKE'S HOSPITAL LABORATORY"
    },

note

Used for messaging between owner and other orgnizations e.g. during handover of task or requesting information from requesting clinician.
"note":  [
        {
            "text": "Sample has not been received within 4 week window. Task will be closed unless further communication is received"
        }
    ]

input

Used to attach inputs to a Task, if relevant. e.g. references to Specimen's which a Sample Processing task is acting on. No CodeSystem exists for this field as of publication but this will be investigated as future work.

Specimen references SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing. This is to clearly disambiguate which specimen a task is acting on, where multiple specimens are necessary for processing the test request.

The table below provides possible inputs that could be provided for certain Tasks as part of fulfillment of a test order. A finalised list is pending business analysis work to identify the operational data generated as fulfilment against a test order progresses and the need for this data to pass between organizations.

Task.code display Possible Task.input
Process Genomic Test Request N/A, all information required should be part of or refernced from the ServiceRequest
Request & Sample Alignment Specimen resource to be aligned and potentially Consent resources where these are captured post submission of a test request
Sample Preparation Specimen resource to be prepared as part of this Task
Sample Processing DNA Specimen resource to be sequenced as part of this Task as well as Consignment, Rack and Well identifiers to allow for specimen tracking
Genetic/Genomic Data Processing Sequence data generated from the previous Task, potentially referenced using DocumentReference resources, these SHOULD reference the Specimen from which the data originated
Interpretation Variant Priorities lists generated from the previous Task, the representation of these lists is still under investigation
Produce Interim Report Guidance/Recommendations generated though data interpretation, the representation of these items is still under investigation
Genomic MDT Interim reports, references to Diagnostic report resources containing either structured Genomic reports or binary representations of the reports
Produce Final Report Interim reports and potentially recommendations from the MDT, whether these are represented within the DiagnosticReport itself or contained as other resource types is still under investigation
Distribute Report The final report to be distributed
"input":  [
    {
            "type": {
                "coding":  [
                    {
                        "system": "https://fhir.nhs.uk/CodeSystem/AdditionalInfoTypeGenomics",
                        "code": "Specimen",
                        "display": "Specimen"
                    }
                ]
            },
            "valueReference": {
                "reference": "Specimen/Specimen-CancerSolidTumor-Example"
            }
        }
    ]

output

Used to attach outputs from a Task, if relevant. e.g. VUS files during processing or a DiagnosticReport upon completion of reporting stage. No CodeSystem exists for this field as of publication but this will be investigated as future work.

Sample tracking information SHOULD be added to Tasks acting on Specimen resources, e.g. Tasks marked SamplePreparation or SampleProcessing, on either the output or input elements. This information MAY include consignment number, destination, date sent etc. Further modelling of the types/format expected are pending clinical scenarios.

The table below provides possible outputs that could be generated by certain Tasks as part of fulfillment of a test order. A finalised list is pending business analysis work to identify the operational data generated as fulfilment against a test order progresses and the need for this data to pass between organizations.

Task.code display Possible Task.output
Process Genomic Test Request N/A, may result in updates to the ServiceRequest if codes or supporting information needs to change
Request & Sample Alignment Aligned Specimen resource for request (except for Reanalysis/Reinterpretation)
Sample Preparation DNA Specimen resource as well as Consignment, Rack and Well identifiers to allow for specimen tracking
Sample Processing Sequence/Read data
Genetic/Genomic Data Processing Variant information
Interpretation Potentially structured guidance/recommendations
Produce Interim Report Interim reports
Genomic MDT Potentially ammended Interim/combined report or recommendations from MDT
Produce Final Report Final Report
Distribute Report N/A, final report will be included as input to Task
"output":  [
       {
          "type": {
            "coding": [
              {
                "system": "https://fhir.nhs.uk/CodeSystem/AdditionalInfoTypeGenomics",
                "code": "DiagnosticReport",
                "display": "DiagnosticReport"
              }
            ]
          },
          "valueReference": {
            "reference": "DiagnosticReport/DiagnosticReport-PhoebeSmithGeneticReport-Example"
          }
        }
    ]