Da Vinci - Coverage Requirements Discovery
2.2.1 - STU 2.2

Da Vinci - Coverage Requirements Discovery, published by HL7 International / Financial Management. This guide is not an authorized publication; it is the continuous build for version 2.2.1 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/davinci-crd/ and changes regularly. See the Directory of published versions

## Resource Profile: CRD Vision Prescription

Official URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-visionprescription | Version: 2.2.1 | Highlight text changes?
Standards status: Trial-use Active as of 2026-03-26 | Maturity Level: 1 | Computable Name: CRDVisionPrescription
Other Identifiers: OID:2.16.840.1.113883.4.642.40.18.42.19

This profile defines an initial profile on the VisionPrescription resource to support coverage requirements discovery.

### Usage

CRD Clients SHALL use the CRD VisionPrescription profile to resolve references to VisionPrescription resources passed to CRD Servers (e.g. `selections` context references) and to populate `draftOrders` context objects when invoking the following CDS Hooks: §prof-12

- order-select
- order-sign
- order-dispatch

!

Information provided in Must Support elements will commonly be required for CRD Servers to perform coverage requirements discovery.

NOTE: This profile is not currently based on US Core because US Core does not yet profile the VisionPrescription resource. If a future version of US-Core adds support for the resource, this profile will be revised to extend the US Core profile.

Usages:

- Use this Profile: CRD CDSHooks Additional Orders Response (Logical Definition), CRD CDSHooks Alternate Request Response (Logical Definition), CRD CDSHooks Coverage Information Response (Logical Definition) and CRD Bundle of Request Resources
- Refer to this Profile: Coverage Information
- CapabilityStatements using this Profile: CRD Client USCDI 1, CRD Client USCDI 3 and CRD Client USCDI 4

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description Differentials, Snapshots, and other representations.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
VisionPrescription |  | 0..* | VisionPrescription | Prescription for vision correction products for a patient
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained | S | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url, value:value
extension:Coverage-Information | S C | 0..* | (Complex) | Coverage Info URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8, crd-ci-q9
extension:EncounterCategory | S | 0..1 | (Complex) | Encounter Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: ActEncounterCode (3.0.0) (required)
extension:ServiceCategory | S | 0..1 | (Complex) | Service Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: X12 Service Type (required)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | S | 0..* | Identifier | Business Identifier for vision prescription
status | ?!S Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance. Example General: draft
created | S Σ | 1..1 | dateTime | Response creation date
patient | S Σ | 1..1 | Reference(CRD Patient) | Who prescription is for
encounter | S | 0..1 | Reference(CRD Encounter) | Created during encounter / admission / stay
dateWritten | S Σ | 1..1 | dateTime | When prescription was authorized
prescriber | S Σ | 1..1 | Reference(CRD Practitioner S | HRex PractitionerRole Profile S) | Who authorized the vision prescription
lensSpecification | S Σ | 1..* | BackboneElement | Vision lens authorization
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:BillingOptions | S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible)
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
product | S Σ | 1..1 | CodeableConcept | Product to be supplied Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
eye | S Σ | 1..1 | code | right | left Binding: VisionEyes (required): A coded concept listing the eye codes.
sphere | S | 0..1 | decimal | Power of the lens
cylinder | S | 0..1 | decimal | Lens power for astigmatism
axis | S | 0..1 | integer | Lens meridian which contain no power for astigmatism
prism | S | 0..* | BackboneElement | Eye alignment compensation
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
amount | S | 1..1 | decimal | Amount of adjustment
base | S | 1..1 | code | up | down | in | out Binding: VisionBase (required): A coded concept listing the base codes.
add | S | 0..1 | decimal | Added power for multifocal levels
power | S | 0..1 | decimal | Contact lens power
backCurve | S | 0..1 | decimal | Contact lens back curvature
diameter | S | 0..1 | decimal | Contact lens diameter
duration | S | 0..1 | SimpleQuantity(4.0.1) | Lens wear duration
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
VisionPrescription.extension:EncounterCategory.​value[x] | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.1
VisionPrescription.extension:ServiceCategory.​value[x] | Base | required | X12 Service Type | 📦2.2.1 | This IG
VisionPrescription.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​product | Base | example | Example Vision Prescription Product Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​eye | Base | required | VisionEyes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​prism.base | Base | required | VisionBase | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
crd-ci-q1 | error | VisionPrescription.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists | `extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()`
crd-ci-q2 | error | VisionPrescription.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. | `extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()`
crd-ci-q3 | error | VisionPrescription.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()`
crd-ci-q4 | error | VisionPrescription.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. | `extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')`
crd-ci-q5 | error | VisionPrescription.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. | `extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()`
crd-ci-q6 | error | VisionPrescription.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified | `extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q7 | error | VisionPrescription.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present | `extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')`
crd-ci-q8 | error | VisionPrescription.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present | `extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q9 | error | VisionPrescription.extension:Coverage-Information | If any of 'covered', 'pa-needed', or 'doc-needed' is set to 'indeterminate', then reason must be present to explain the issue that is preventing the payer from making a coverage determination. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'indeterminate').count() >= 1 implies extension.where(url = 'reason').exists()`
dom-2 | error | VisionPrescription | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | VisionPrescription | 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-4 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | VisionPrescription | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
VisionPrescription |  |  | VisionPrescription |
contained | S | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url, value:value
extension:Coverage-Information | S | 0..* | (Complex) | Coverage Info URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
extension:EncounterCategory | S | 0..1 | (Complex) | Encounter Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: ActEncounterCode (3.0.0) (required)
extension:ServiceCategory | S | 0..1 | (Complex) | Service Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: X12 Service Type (required)
identifier | S | 0..* | Identifier | Business Identifier for vision prescription
status | S | 1..1 | code | active | cancelled | draft | entered-in-error Example General: draft
created | S | 1..1 | dateTime | Response creation date
patient | S | 1..1 | Reference(CRD Patient) | Who prescription is for
encounter | S | 0..1 | Reference(CRD Encounter) | Created during encounter / admission / stay
dateWritten | S | 1..1 | dateTime | When prescription was authorized
prescriber | S | 1..1 | Reference(CRD Practitioner S | HRex PractitionerRole Profile S) | Who authorized the vision prescription
lensSpecification | S | 1..* | BackboneElement | Vision lens authorization
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:BillingOptions | S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible)
product | S | 1..1 | CodeableConcept | Product to be supplied
eye | S | 1..1 | code | right | left
sphere | S | 0..1 | decimal | Power of the lens
cylinder | S | 0..1 | decimal | Lens power for astigmatism
axis | S | 0..1 | integer | Lens meridian which contain no power for astigmatism
prism | S | 0..* | BackboneElement | Eye alignment compensation
amount | S | 1..1 | decimal | Amount of adjustment
base | S | 1..1 | code | up | down | in | out
add | S | 0..1 | decimal | Added power for multifocal levels
power | S | 0..1 | decimal | Contact lens power
backCurve | S | 0..1 | decimal | Contact lens back curvature
diameter | S | 0..1 | decimal | Contact lens diameter
duration | S | 0..1 | SimpleQuantity(4.0.1) | Lens wear duration
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
VisionPrescription.extension:EncounterCategory.​value[x] | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.1
VisionPrescription.extension:ServiceCategory.​value[x] | Base | required | X12 Service Type | 📦2.2.1 | This IG

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
VisionPrescription |  | 0..* | VisionPrescription | Prescription for vision correction products for a patient
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained | S | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url, value:value
extension:Coverage-Information | S C | 0..* | (Complex) | Coverage Info URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8, crd-ci-q9
extension:EncounterCategory | S | 0..1 | (Complex) | Encounter Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: ActEncounterCode (3.0.0) (required)
extension:ServiceCategory | S | 0..1 | (Complex) | Service Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: X12 Service Type (required)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | S | 0..* | Identifier | Business Identifier for vision prescription
status | ?!S Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance. Example General: draft
created | S Σ | 1..1 | dateTime | Response creation date
patient | S Σ | 1..1 | Reference(CRD Patient) | Who prescription is for
encounter | S | 0..1 | Reference(CRD Encounter) | Created during encounter / admission / stay
dateWritten | S Σ | 1..1 | dateTime | When prescription was authorized
prescriber | S Σ | 1..1 | Reference(CRD Practitioner S | HRex PractitionerRole Profile S) | Who authorized the vision prescription
lensSpecification | S Σ | 1..* | BackboneElement | Vision lens authorization
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:BillingOptions | S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible)
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
product | S Σ | 1..1 | CodeableConcept | Product to be supplied Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
eye | S Σ | 1..1 | code | right | left Binding: VisionEyes (required): A coded concept listing the eye codes.
sphere | S | 0..1 | decimal | Power of the lens
cylinder | S | 0..1 | decimal | Lens power for astigmatism
axis | S | 0..1 | integer | Lens meridian which contain no power for astigmatism
prism | S | 0..* | BackboneElement | Eye alignment compensation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
amount | S | 1..1 | decimal | Amount of adjustment
base | S | 1..1 | code | up | down | in | out Binding: VisionBase (required): A coded concept listing the base codes.
add | S | 0..1 | decimal | Added power for multifocal levels
power | S | 0..1 | decimal | Contact lens power
backCurve | S | 0..1 | decimal | Contact lens back curvature
diameter | S | 0..1 | decimal | Contact lens diameter
duration | S | 0..1 | SimpleQuantity(4.0.1) | Lens wear duration
color |  | 0..1 | string | Color required
brand |  | 0..1 | string | Brand required
note |  | 0..* | Annotation | Notes for coatings
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
VisionPrescription.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
VisionPrescription.extension:EncounterCategory.​value[x] | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.1
VisionPrescription.extension:ServiceCategory.​value[x] | Base | required | X12 Service Type | 📦2.2.1 | This IG
VisionPrescription.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​product | Base | example | Example Vision Prescription Product Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​eye | Base | required | VisionEyes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​prism.base | Base | required | VisionBase | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
crd-ci-q1 | error | VisionPrescription.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists | `extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()`
crd-ci-q2 | error | VisionPrescription.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. | `extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()`
crd-ci-q3 | error | VisionPrescription.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()`
crd-ci-q4 | error | VisionPrescription.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. | `extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')`
crd-ci-q5 | error | VisionPrescription.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. | `extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()`
crd-ci-q6 | error | VisionPrescription.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified | `extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q7 | error | VisionPrescription.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present | `extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')`
crd-ci-q8 | error | VisionPrescription.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present | `extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q9 | error | VisionPrescription.extension:Coverage-Information | If any of 'covered', 'pa-needed', or 'doc-needed' is set to 'indeterminate', then reason must be present to explain the issue that is preventing the payer from making a coverage determination. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'indeterminate').count() >= 1 implies extension.where(url = 'reason').exists()`
dom-2 | error | VisionPrescription | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | VisionPrescription | 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-4 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | VisionPrescription | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Summary

Must-Support: 26 elements

Structures

This structure refers to these other structures:

- CRD Patient (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient)
- CRD Encounter (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter)
- CRD Practitioner (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner)
- HRex PractitionerRole Profile (http://hl7.org/fhir/us/davinci-hrex/StructureDefinition/hrex-practitionerrole)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options

Maturity: 1

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
VisionPrescription |  | 0..* | VisionPrescription | Prescription for vision correction products for a patient
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained | S | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url, value:value
extension:Coverage-Information | S C | 0..* | (Complex) | Coverage Info URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8, crd-ci-q9
extension:EncounterCategory | S | 0..1 | (Complex) | Encounter Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: ActEncounterCode (3.0.0) (required)
extension:ServiceCategory | S | 0..1 | (Complex) | Service Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: X12 Service Type (required)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | S | 0..* | Identifier | Business Identifier for vision prescription
status | ?!S Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance. Example General: draft
created | S Σ | 1..1 | dateTime | Response creation date
patient | S Σ | 1..1 | Reference(CRD Patient) | Who prescription is for
encounter | S | 0..1 | Reference(CRD Encounter) | Created during encounter / admission / stay
dateWritten | S Σ | 1..1 | dateTime | When prescription was authorized
prescriber | S Σ | 1..1 | Reference(CRD Practitioner S | HRex PractitionerRole Profile S) | Who authorized the vision prescription
lensSpecification | S Σ | 1..* | BackboneElement | Vision lens authorization
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:BillingOptions | S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible)
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
product | S Σ | 1..1 | CodeableConcept | Product to be supplied Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
eye | S Σ | 1..1 | code | right | left Binding: VisionEyes (required): A coded concept listing the eye codes.
sphere | S | 0..1 | decimal | Power of the lens
cylinder | S | 0..1 | decimal | Lens power for astigmatism
axis | S | 0..1 | integer | Lens meridian which contain no power for astigmatism
prism | S | 0..* | BackboneElement | Eye alignment compensation
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
amount | S | 1..1 | decimal | Amount of adjustment
base | S | 1..1 | code | up | down | in | out Binding: VisionBase (required): A coded concept listing the base codes.
add | S | 0..1 | decimal | Added power for multifocal levels
power | S | 0..1 | decimal | Contact lens power
backCurve | S | 0..1 | decimal | Contact lens back curvature
diameter | S | 0..1 | decimal | Contact lens diameter
duration | S | 0..1 | SimpleQuantity(4.0.1) | Lens wear duration
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
VisionPrescription.extension:EncounterCategory.​value[x] | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.1
VisionPrescription.extension:ServiceCategory.​value[x] | Base | required | X12 Service Type | 📦2.2.1 | This IG
VisionPrescription.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​product | Base | example | Example Vision Prescription Product Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​eye | Base | required | VisionEyes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​prism.base | Base | required | VisionBase | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
crd-ci-q1 | error | VisionPrescription.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists | `extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()`
crd-ci-q2 | error | VisionPrescription.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. | `extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()`
crd-ci-q3 | error | VisionPrescription.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()`
crd-ci-q4 | error | VisionPrescription.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. | `extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')`
crd-ci-q5 | error | VisionPrescription.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. | `extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()`
crd-ci-q6 | error | VisionPrescription.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified | `extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q7 | error | VisionPrescription.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present | `extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')`
crd-ci-q8 | error | VisionPrescription.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present | `extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q9 | error | VisionPrescription.extension:Coverage-Information | If any of 'covered', 'pa-needed', or 'doc-needed' is set to 'indeterminate', then reason must be present to explain the issue that is preventing the payer from making a coverage determination. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'indeterminate').count() >= 1 implies extension.where(url = 'reason').exists()`
dom-2 | error | VisionPrescription | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | VisionPrescription | 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-4 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | VisionPrescription | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Differential View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
VisionPrescription |  |  | VisionPrescription |
contained | S | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url, value:value
extension:Coverage-Information | S | 0..* | (Complex) | Coverage Info URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
extension:EncounterCategory | S | 0..1 | (Complex) | Encounter Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: ActEncounterCode (3.0.0) (required)
extension:ServiceCategory | S | 0..1 | (Complex) | Service Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: X12 Service Type (required)
identifier | S | 0..* | Identifier | Business Identifier for vision prescription
status | S | 1..1 | code | active | cancelled | draft | entered-in-error Example General: draft
created | S | 1..1 | dateTime | Response creation date
patient | S | 1..1 | Reference(CRD Patient) | Who prescription is for
encounter | S | 0..1 | Reference(CRD Encounter) | Created during encounter / admission / stay
dateWritten | S | 1..1 | dateTime | When prescription was authorized
prescriber | S | 1..1 | Reference(CRD Practitioner S | HRex PractitionerRole Profile S) | Who authorized the vision prescription
lensSpecification | S | 1..* | BackboneElement | Vision lens authorization
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:BillingOptions | S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible)
product | S | 1..1 | CodeableConcept | Product to be supplied
eye | S | 1..1 | code | right | left
sphere | S | 0..1 | decimal | Power of the lens
cylinder | S | 0..1 | decimal | Lens power for astigmatism
axis | S | 0..1 | integer | Lens meridian which contain no power for astigmatism
prism | S | 0..* | BackboneElement | Eye alignment compensation
amount | S | 1..1 | decimal | Amount of adjustment
base | S | 1..1 | code | up | down | in | out
add | S | 0..1 | decimal | Added power for multifocal levels
power | S | 0..1 | decimal | Contact lens power
backCurve | S | 0..1 | decimal | Contact lens back curvature
diameter | S | 0..1 | decimal | Contact lens diameter
duration | S | 0..1 | SimpleQuantity(4.0.1) | Lens wear duration
Documentation for this format

#### Terminology Bindings (Differential)

Path | Status | Usage | ValueSet | Version | Source
VisionPrescription.extension:EncounterCategory.​value[x] | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.1
VisionPrescription.extension:ServiceCategory.​value[x] | Base | required | X12 Service Type | 📦2.2.1 | This IG

Snapshot ViewView

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
VisionPrescription |  | 0..* | VisionPrescription | Prescription for vision correction products for a patient
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained | S | 0..* | Resource | Contained, inline Resources
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url, value:value
extension:Coverage-Information | S C | 0..* | (Complex) | Coverage Info URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information Constraints: crd-ci-q1, crd-ci-q2, crd-ci-q3, crd-ci-q4, crd-ci-q5, crd-ci-q6, crd-ci-q7, crd-ci-q8, crd-ci-q9
extension:EncounterCategory | S | 0..1 | (Complex) | Encounter Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: ActEncounterCode (3.0.0) (required)
extension:ServiceCategory | S | 0..1 | (Complex) | Service Category URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..0 |  | Extension Slice: Unordered, Open by value:url
url |  | 1..1 | uri | "http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category"
value[x] |  | 0..1 | CodeableConcept | Value of extension Binding: X12 Service Type (required)
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | S | 0..* | Identifier | Business Identifier for vision prescription
status | ?!S Σ | 1..1 | code | active | cancelled | draft | entered-in-error Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance. Example General: draft
created | S Σ | 1..1 | dateTime | Response creation date
patient | S Σ | 1..1 | Reference(CRD Patient) | Who prescription is for
encounter | S | 0..1 | Reference(CRD Encounter) | Created during encounter / admission / stay
dateWritten | S Σ | 1..1 | dateTime | When prescription was authorized
prescriber | S Σ | 1..1 | Reference(CRD Practitioner S | HRex PractitionerRole Profile S) | Who authorized the vision prescription
lensSpecification | S Σ | 1..* | BackboneElement | Vision lens authorization
id |  | 0..1 | string | Unique id for inter-element referencing
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:BillingOptions | S | 0..* | CodeableConcept | Expected Billing Code(s) URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options Binding: CRD Billing Codes Value Set (extensible)
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
product | S Σ | 1..1 | CodeableConcept | Product to be supplied Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
eye | S Σ | 1..1 | code | right | left Binding: VisionEyes (required): A coded concept listing the eye codes.
sphere | S | 0..1 | decimal | Power of the lens
cylinder | S | 0..1 | decimal | Lens power for astigmatism
axis | S | 0..1 | integer | Lens meridian which contain no power for astigmatism
prism | S | 0..* | BackboneElement | Eye alignment compensation
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
amount | S | 1..1 | decimal | Amount of adjustment
base | S | 1..1 | code | up | down | in | out Binding: VisionBase (required): A coded concept listing the base codes.
add | S | 0..1 | decimal | Added power for multifocal levels
power | S | 0..1 | decimal | Contact lens power
backCurve | S | 0..1 | decimal | Contact lens back curvature
diameter | S | 0..1 | decimal | Contact lens diameter
duration | S | 0..1 | SimpleQuantity(4.0.1) | Lens wear duration
color |  | 0..1 | string | Color required
brand |  | 0..1 | string | Brand required
note |  | 0..* | Annotation | Notes for coatings
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
VisionPrescription.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std.
VisionPrescription.extension:EncounterCategory.​value[x] | Base | required | ActEncounterCode | 📍3.0.0 | THO v7.1
VisionPrescription.extension:ServiceCategory.​value[x] | Base | required | X12 Service Type | 📦2.2.1 | This IG
VisionPrescription.status | Base | required | Financial Resource Status Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​product | Base | example | Example Vision Prescription Product Codes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​eye | Base | required | VisionEyes | 📍4.0.1 | FHIR Std.
VisionPrescription.lensSpecification.​prism.base | Base | required | VisionBase | 📍4.0.1 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
crd-ci-q1 | error | VisionPrescription.extension:Coverage-Information | Questionnaire is only allowed when doc-needed exists | `extension.where(url='questionnaire').exists() implies extension.where(url = 'doc-needed').exists()`
crd-ci-q2 | error | VisionPrescription.extension:Coverage-Information | If covered is set to 'not-covered', then 'pa-needed' must not exist. | `extension.where(url = 'covered' and value = 'not-covered').exists() implies extension.where(url = 'pa-needed').exists().not()`
crd-ci-q3 | error | VisionPrescription.extension:Coverage-Information | 'info-needed' SHALL exist if and only if at least one of 'covered', 'pa-needed', or 'doc-needed' is set to 'conditional'. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1 implies extension.where(url = 'info-needed').exists()`
crd-ci-q4 | error | VisionPrescription.extension:Coverage-Information | If 'pa-needed' is 'satisfied', 'noauth', or 'not-covered', then 'Doc-purpose' cannot be 'withpa'. | `extension.where(url = 'pa-needed' and (value = 'satisfied' or value = 'noauth' or value = 'not-covered')) and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'withpa')`
crd-ci-q5 | error | VisionPrescription.extension:Coverage-Information | 'satisfied-pa-id' must exist if and only if 'pa-needed' is set to 'satisfied'. | `extension.where(url = 'pa-needed' and value = 'satisfied').exists() = extension.where(url = 'satisfied-pa-id').exists()`
crd-ci-q6 | error | VisionPrescription.extension:Coverage-Information | If 'info-needed' is OTH, then reason must be specified | `extension.where(url = 'info-needed' and value = 'OTH').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q7 | error | VisionPrescription.extension:Coverage-Information | If reason.coding is present and is not from the extensible value set, then reason.text must be present | `extension.where(url = 'reason').empty() or extension.where(url = 'reason').value.text.exists() or extension.where(url = 'reason').value.memberOf('http://hl7.org/fhir/us/davinci-crd/ValueSet/coverageAssertionReasons')`
crd-ci-q8 | error | VisionPrescription.extension:Coverage-Information | If doc-purpose is present with a value other than 'conditional', then reason must be present | `extension.where(url = 'doc-purpose' and value != 'conditional').exists() implies extension.where(url = 'reason').exists()`
crd-ci-q9 | error | VisionPrescription.extension:Coverage-Information | If any of 'covered', 'pa-needed', or 'doc-needed' is set to 'indeterminate', then reason must be present to explain the issue that is preventing the payer from making a coverage determination. | `extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'indeterminate').count() >= 1 implies extension.where(url = 'reason').exists()`
dom-2 | error | VisionPrescription | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | VisionPrescription | 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-4 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | VisionPrescription | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | VisionPrescription | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both | `extension.exists() != value.exists()`

Summary

Must-Support: 26 elements

Structures

This structure refers to these other structures:

- CRD Patient (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-patient)
- CRD Encounter (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-encounter)
- CRD Practitioner (http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-practitioner)
- HRex PractitionerRole Profile (http://hl7.org/fhir/us/davinci-hrex/StructureDefinition/hrex-practitionerrole)

Extensions

This structure refers to these extensions:

- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-request-category
- http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-billing-options

Maturity: 1

Other representations of profile: CSV, Excel, Schematron