Specialty Medication Enrollment
2.1.0 - CI Build United States of America flag

Specialty Medication Enrollment, published by HL7 International - Pharmacy. This is not an authorized publication; it is the continuous build for version 2.1.0). This version is based on the current content of https://github.com/HL7/fhir-specialty-rx/ and changes regularly. See the Directory of published versions

Resource Profile: Specialty Rx Task - Consent Request

Official URL: http://hl7.org/fhir/us/specialty-rx/StructureDefinition/specialty-rx-task-consent-request Version: 2.1.0
Active as of 2021-12-20 Computable Name: SpecialtyRxTaskConsentRequest

This profile defines use of the Task resource to request that consent or authorization associated with prescribed product be obtained and made available to the requesting system.

The profile…

  • requests consent or authorizations to support fulfillment of a prescribed specialty product
  • provides the appropriate consent form for the prescribed product

Important elements in this profile:

  • Task.status: “requested”
  • Task.code: “obtain-consent”
    • Characterizes the requested user action (and directs the EHR to make the consent form referenced in Task.input available to the user)
  • Task.description
    • User-directed text describing the task to be performed
    • e.g., “Have the patient complete the attached consent form and capture a PDF of the signed form in a Consent”
  • Task.for
    • Reference to the patient resource that resides in the Data Source system
  • Task.requester
    • The organization submitting the Task
  • Task.owner
    • The prescriber
  • Task.reasonReference
    • The prescription to which the task pertains
  • Task.input
    • A reference to a Consent resource containing the consent form that is appropriate for the prescribed product
    • Task.input.type: “consent-form-reference”
    • Task.input.valueReference: reference to the blank consent form
  • Task.output (populated when the Task status is set to “completed”)
    • A reference to a Consent resource containing a consent form that has been completed
    • Task.output.type: “completed-consent-reference”
    • Task.output.valueReference: reference to the completed consent form

Usage:

Formal Views of Profile Content

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

This structure is derived from Task

Terminology Bindings (Differential)

PathConformanceValueSet / Code
Task.coderequiredPattern: obtain-consent
Task.input:ConsentFormReference.typerequiredPattern: consent-form-reference
Task.output:CompletedConsent.typerequiredPattern: completed-consent-reference

Constraints

IdGradePath(s)DetailsRequirements
srx-1warningTask.reasonReferenceIf Task.reasonReference is present, either reference or identifier SHOULD be present. If reasonReference.identifier is present, it SHALL be the placer order ID
: reference.exists() or identifier.exists()
srx-2errorTask.requesterEither requester.reference or requester.identifier SHALL be present
: reference.exists() or identifier.exists()
srx-3errorTask.ownerEither owner.reference or owner.identifier SHALL be present
: reference.exists() or identifier.exists()

Terminology Bindings

PathConformanceValueSet / Code
Task.statusrequiredTaskStatus
Task.intentrequiredFixed Value: plan
Task.coderequiredPattern: obtain-consent
Task.requester.identifier:pharmacyNcpdpId.userequiredIdentifierUse
Task.requester.identifier:NPI.userequiredIdentifierUse
Task.owner.identifier.userequiredIdentifierUse
Task.reasonReference.identifier.userequiredIdentifierUse
Task.input.typeexample
Task.input:ConsentFormReference.typerequiredPattern: consent-form-reference
Task.output.typeexample
Task.output:CompletedConsent.typerequiredPattern: completed-consent-reference

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorTaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorTaskIf 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-4errorTaskIf 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-5errorTaskIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceTaskA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
inv-1errorTaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
srx-1warningTask.reasonReferenceIf Task.reasonReference is present, either reference or identifier SHOULD be present. If reasonReference.identifier is present, it SHALL be the placer order ID
: reference.exists() or identifier.exists()
srx-2errorTask.requesterEither requester.reference or requester.identifier SHALL be present
: reference.exists() or identifier.exists()
srx-3errorTask.ownerEither owner.reference or owner.identifier SHALL be present
: reference.exists() or identifier.exists()

Terminology Bindings

PathConformanceValueSet / Code
Task.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Task.statusrequiredTaskStatus
Task.statusReasonexample
Task.businessStatusexample
Task.intentrequiredFixed Value: plan
Task.priorityrequiredRequestPriority
Task.coderequiredPattern: obtain-consent
Task.requester.typeextensibleResourceType
Task.requester.identifier:pharmacyNcpdpId.userequiredIdentifierUse
Task.requester.identifier:pharmacyNcpdpId.typeextensibleIdentifier Type Codes
Task.requester.identifier:NPI.userequiredIdentifierUse
Task.requester.identifier:NPI.typeextensibleIdentifier Type Codes
Task.performerTypepreferredProcedurePerformerRoleCodes
Task.owner.typeextensibleResourceType
Task.owner.identifier.userequiredIdentifierUse
Task.owner.identifier.typeextensibleIdentifier Type Codes
Task.reasonCodeexample
Task.reasonReference.typeextensibleResourceType
Task.reasonReference.identifier.userequiredIdentifierUse
Task.reasonReference.identifier.typeextensibleIdentifier Type Codes
Task.input.typeexample
Task.input:ConsentFormReference.typerequiredPattern: consent-form-reference
Task.output.typeexample
Task.output:CompletedConsent.typerequiredPattern: completed-consent-reference

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
srx-1warningTask.reasonReferenceIf Task.reasonReference is present, either reference or identifier SHOULD be present. If reasonReference.identifier is present, it SHALL be the placer order ID
: reference.exists() or identifier.exists()
srx-2errorTask.requesterEither requester.reference or requester.identifier SHALL be present
: reference.exists() or identifier.exists()
srx-3errorTask.ownerEither owner.reference or owner.identifier SHALL be present
: reference.exists() or identifier.exists()

This structure is derived from Task

Summary

Mandatory: 11 elements (5 nested mandatory elements)
Must-Support: 28 elements
Fixed Value: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Task.requester.identifier is sliced based on the value of pattern:$this
  • The element Task.input is sliced based on the value of pattern:type
  • The element Task.output is sliced based on the value of pattern:type

Differential View

This structure is derived from Task

Terminology Bindings (Differential)

PathConformanceValueSet / Code
Task.coderequiredPattern: obtain-consent
Task.input:ConsentFormReference.typerequiredPattern: consent-form-reference
Task.output:CompletedConsent.typerequiredPattern: completed-consent-reference

Constraints

IdGradePath(s)DetailsRequirements
srx-1warningTask.reasonReferenceIf Task.reasonReference is present, either reference or identifier SHOULD be present. If reasonReference.identifier is present, it SHALL be the placer order ID
: reference.exists() or identifier.exists()
srx-2errorTask.requesterEither requester.reference or requester.identifier SHALL be present
: reference.exists() or identifier.exists()
srx-3errorTask.ownerEither owner.reference or owner.identifier SHALL be present
: reference.exists() or identifier.exists()

Key Elements View

Terminology Bindings

PathConformanceValueSet / Code
Task.statusrequiredTaskStatus
Task.intentrequiredFixed Value: plan
Task.coderequiredPattern: obtain-consent
Task.requester.identifier:pharmacyNcpdpId.userequiredIdentifierUse
Task.requester.identifier:NPI.userequiredIdentifierUse
Task.owner.identifier.userequiredIdentifierUse
Task.reasonReference.identifier.userequiredIdentifierUse
Task.input.typeexample
Task.input:ConsentFormReference.typerequiredPattern: consent-form-reference
Task.output.typeexample
Task.output:CompletedConsent.typerequiredPattern: completed-consent-reference

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorTaskIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorTaskIf 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-4errorTaskIf 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-5errorTaskIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceTaskA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
inv-1errorTaskLast modified date must be greater than or equal to authored-on date.
: lastModified.exists().not() or authoredOn.exists().not() or lastModified >= authoredOn
srx-1warningTask.reasonReferenceIf Task.reasonReference is present, either reference or identifier SHOULD be present. If reasonReference.identifier is present, it SHALL be the placer order ID
: reference.exists() or identifier.exists()
srx-2errorTask.requesterEither requester.reference or requester.identifier SHALL be present
: reference.exists() or identifier.exists()
srx-3errorTask.ownerEither owner.reference or owner.identifier SHALL be present
: reference.exists() or identifier.exists()

Snapshot View

Terminology Bindings

PathConformanceValueSet / Code
Task.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Task.statusrequiredTaskStatus
Task.statusReasonexample
Task.businessStatusexample
Task.intentrequiredFixed Value: plan
Task.priorityrequiredRequestPriority
Task.coderequiredPattern: obtain-consent
Task.requester.typeextensibleResourceType
Task.requester.identifier:pharmacyNcpdpId.userequiredIdentifierUse
Task.requester.identifier:pharmacyNcpdpId.typeextensibleIdentifier Type Codes
Task.requester.identifier:NPI.userequiredIdentifierUse
Task.requester.identifier:NPI.typeextensibleIdentifier Type Codes
Task.performerTypepreferredProcedurePerformerRoleCodes
Task.owner.typeextensibleResourceType
Task.owner.identifier.userequiredIdentifierUse
Task.owner.identifier.typeextensibleIdentifier Type Codes
Task.reasonCodeexample
Task.reasonReference.typeextensibleResourceType
Task.reasonReference.identifier.userequiredIdentifierUse
Task.reasonReference.identifier.typeextensibleIdentifier Type Codes
Task.input.typeexample
Task.input:ConsentFormReference.typerequiredPattern: consent-form-reference
Task.output.typeexample
Task.output:CompletedConsent.typerequiredPattern: completed-consent-reference

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
srx-1warningTask.reasonReferenceIf Task.reasonReference is present, either reference or identifier SHOULD be present. If reasonReference.identifier is present, it SHALL be the placer order ID
: reference.exists() or identifier.exists()
srx-2errorTask.requesterEither requester.reference or requester.identifier SHALL be present
: reference.exists() or identifier.exists()
srx-3errorTask.ownerEither owner.reference or owner.identifier SHALL be present
: reference.exists() or identifier.exists()

This structure is derived from Task

Summary

Mandatory: 11 elements (5 nested mandatory elements)
Must-Support: 28 elements
Fixed Value: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Task.requester.identifier is sliced based on the value of pattern:$this
  • The element Task.input is sliced based on the value of pattern:type
  • The element Task.output is sliced based on the value of pattern:type

 

Other representations of profile: CSV, Excel, Schematron