Da Vinci - Coverage Requirements Discovery
2.0.1 - STU 2 United States of America flag

This page is part of the Da Vinci Coverage Requirements Discovery (CRD) FHIR IG (v2.0.1: STU 2.0) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, 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.0.1
Standards status: Trial-use Maturity Level: 1 Computable Name: VisionPrescription

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

Usage


CRD Clients SHALL use this 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 when invoking the following CDS Hooks:

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.

Usage:

  • This Resource Profile is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

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

This structure is derived from VisionPrescription

NameFlagsCard.TypeDescription & Constraintsdoco
.. VisionPrescription 0..*VisionPrescriptionPrescription for vision correction products for a patient
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... Coverage-Information S0..*(Complex)Coverage Info
URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
... identifier S0..*IdentifierBusiness Identifier for vision prescription
... created S1..1dateTimeResponse creation date
... patient S1..1Reference(CRD Patient)Who prescription is for
... encounter S0..1Reference(CRD Encounter)Created during encounter / admission / stay
... dateWritten S1..1dateTimeWhen prescription was authorized
... prescriber S1..1Reference(CRD Practitioner | US Core PractitionerRole Profile)Who authorized the vision prescription
... lensSpecification S1..*BackboneElementVision lens authorization
.... product S1..1CodeableConceptProduct to be supplied
.... eye S1..1coderight | left
.... sphere S0..1decimalPower of the lens
.... cylinder S0..1decimalLens power for astigmatism
.... axis S0..1integerLens meridian which contain no power for astigmatism
.... prism S0..*BackboneElementEye alignment compensation
..... amount S1..1decimalAmount of adjustment
..... base S1..1codeup | down | in | out
.... add S0..1decimalAdded power for multifocal levels
.... power S0..1decimalContact lens power
.... backCurve S0..1decimalContact lens back curvature
.... diameter S0..1decimalContact lens diameter
.... duration S0..1SimpleQuantityLens wear duration

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. VisionPrescription 0..*VisionPrescriptionPrescription for vision correction products for a patient
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... Coverage-Information SC0..*(Complex)Coverage Info
URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
... identifier S0..*IdentifierBusiness Identifier for vision prescription
... status ?!SΣ1..1codeactive | cancelled | draft | entered-in-error
Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.


Fixed Value: draft
... created SΣ1..1dateTimeResponse creation date
... patient SΣ1..1Reference(CRD Patient)Who prescription is for
... encounter S0..1Reference(CRD Encounter)Created during encounter / admission / stay
... dateWritten SΣ1..1dateTimeWhen prescription was authorized
... prescriber SΣ1..1Reference(CRD Practitioner | US Core PractitionerRole Profile)Who authorized the vision prescription
... lensSpecification SΣ1..*BackboneElementVision lens authorization
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... product SΣ1..1CodeableConceptProduct to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.

.... eye SΣ1..1coderight | left
Binding: VisionEyes (required): A coded concept listing the eye codes.

.... sphere S0..1decimalPower of the lens
.... cylinder S0..1decimalLens power for astigmatism
.... axis S0..1integerLens meridian which contain no power for astigmatism
.... prism S0..*BackboneElementEye alignment compensation
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... amount S1..1decimalAmount of adjustment
..... base S1..1codeup | down | in | out
Binding: VisionBase (required): A coded concept listing the base codes.

.... add S0..1decimalAdded power for multifocal levels
.... power S0..1decimalContact lens power
.... backCurve S0..1decimalContact lens back curvature
.... diameter S0..1decimalContact lens diameter
.... duration S0..1SimpleQuantityLens wear duration

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
VisionPrescription.statusrequiredFixed Value: draft
VisionPrescription.lensSpecification.productexampleExampleVisionPrescriptionProductCodes
VisionPrescription.lensSpecification.eyerequiredVisionEyes
VisionPrescription.lensSpecification.prism.baserequiredVisionBase

Constraints

IdGradePath(s)DetailsRequirements
crd-ci-q1errorVisionPrescription.extension:Coverage-InformationQuestionnaire and QuestionnaireResponse are only allowed when doc-needed exists and not equal to 'no-doc'
: extension.where(url='questionnaire' or url='response').exists() implies (extension.where(url = 'doc-needed').exists() and extension.where(url = 'doc-needed').all(value != 'no-doc'))
crd-ci-q2errorVisionPrescription.extension:Coverage-InformationIf covered is set to 'not-covered', then 'pa-needed' should not exist.
: extension.where(url = 'covered' and value != 'not-covered') implies extension.where(url = 'pa-needed').exists()
crd-ci-q3errorVisionPrescription.extension:Coverage-InformationIf 'info-needed' exists, then at least one of 'covered', 'pa-needed', or 'doc-needed' must be 'conditional'.
: extension.where(url = 'info-needed').exists() implies extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1
crd-ci-q4errorVisionPrescription.extension:Coverage-InformationIf 'pa-needed' is 'satisfied', then 'Doc-purpose' can't be 'PA'.
: extension.where(url = 'pa-needed' and value = 'satisfied') and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'PA')
crd-ci-q5errorVisionPrescription.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()
dom-2errorVisionPrescriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorVisionPrescriptionIf 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-4errorVisionPrescriptionIf 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-5errorVisionPrescriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceVisionPrescriptionA 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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. VisionPrescription 0..*VisionPrescriptionPrescription for vision correction products for a patient
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... Coverage-Information SC0..*(Complex)Coverage Info
URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S0..*IdentifierBusiness Identifier for vision prescription
... status ?!SΣ1..1codeactive | cancelled | draft | entered-in-error
Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.


Fixed Value: draft
... created SΣ1..1dateTimeResponse creation date
... patient SΣ1..1Reference(CRD Patient)Who prescription is for
... encounter S0..1Reference(CRD Encounter)Created during encounter / admission / stay
... dateWritten SΣ1..1dateTimeWhen prescription was authorized
... prescriber SΣ1..1Reference(CRD Practitioner | US Core PractitionerRole Profile)Who authorized the vision prescription
... lensSpecification SΣ1..*BackboneElementVision lens authorization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... product SΣ1..1CodeableConceptProduct to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.

.... eye SΣ1..1coderight | left
Binding: VisionEyes (required): A coded concept listing the eye codes.

.... sphere S0..1decimalPower of the lens
.... cylinder S0..1decimalLens power for astigmatism
.... axis S0..1integerLens meridian which contain no power for astigmatism
.... prism S0..*BackboneElementEye alignment compensation
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... amount S1..1decimalAmount of adjustment
..... base S1..1codeup | down | in | out
Binding: VisionBase (required): A coded concept listing the base codes.

.... add S0..1decimalAdded power for multifocal levels
.... power S0..1decimalContact lens power
.... backCurve S0..1decimalContact lens back curvature
.... diameter S0..1decimalContact lens diameter
.... duration S0..1SimpleQuantityLens wear duration
.... color 0..1stringColor required
.... brand 0..1stringBrand required
.... note 0..*AnnotationNotes for coatings

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
VisionPrescription.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
VisionPrescription.statusrequiredFixed Value: draft
VisionPrescription.lensSpecification.productexampleExampleVisionPrescriptionProductCodes
VisionPrescription.lensSpecification.eyerequiredVisionEyes
VisionPrescription.lensSpecification.prism.baserequiredVisionBase

Constraints

IdGradePath(s)DetailsRequirements
crd-ci-q1errorVisionPrescription.extension:Coverage-InformationQuestionnaire and QuestionnaireResponse are only allowed when doc-needed exists and not equal to 'no-doc'
: extension.where(url='questionnaire' or url='response').exists() implies (extension.where(url = 'doc-needed').exists() and extension.where(url = 'doc-needed').all(value != 'no-doc'))
crd-ci-q2errorVisionPrescription.extension:Coverage-InformationIf covered is set to 'not-covered', then 'pa-needed' should not exist.
: extension.where(url = 'covered' and value != 'not-covered') implies extension.where(url = 'pa-needed').exists()
crd-ci-q3errorVisionPrescription.extension:Coverage-InformationIf 'info-needed' exists, then at least one of 'covered', 'pa-needed', or 'doc-needed' must be 'conditional'.
: extension.where(url = 'info-needed').exists() implies extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1
crd-ci-q4errorVisionPrescription.extension:Coverage-InformationIf 'pa-needed' is 'satisfied', then 'Doc-purpose' can't be 'PA'.
: extension.where(url = 'pa-needed' and value = 'satisfied') and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'PA')
crd-ci-q5errorVisionPrescription.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()
dom-2errorVisionPrescriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorVisionPrescriptionIf 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-4errorVisionPrescriptionIf 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-5errorVisionPrescriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceVisionPrescriptionA 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()

Differential View

This structure is derived from VisionPrescription

NameFlagsCard.TypeDescription & Constraintsdoco
.. VisionPrescription 0..*VisionPrescriptionPrescription for vision correction products for a patient
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... Coverage-Information S0..*(Complex)Coverage Info
URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
... identifier S0..*IdentifierBusiness Identifier for vision prescription
... created S1..1dateTimeResponse creation date
... patient S1..1Reference(CRD Patient)Who prescription is for
... encounter S0..1Reference(CRD Encounter)Created during encounter / admission / stay
... dateWritten S1..1dateTimeWhen prescription was authorized
... prescriber S1..1Reference(CRD Practitioner | US Core PractitionerRole Profile)Who authorized the vision prescription
... lensSpecification S1..*BackboneElementVision lens authorization
.... product S1..1CodeableConceptProduct to be supplied
.... eye S1..1coderight | left
.... sphere S0..1decimalPower of the lens
.... cylinder S0..1decimalLens power for astigmatism
.... axis S0..1integerLens meridian which contain no power for astigmatism
.... prism S0..*BackboneElementEye alignment compensation
..... amount S1..1decimalAmount of adjustment
..... base S1..1codeup | down | in | out
.... add S0..1decimalAdded power for multifocal levels
.... power S0..1decimalContact lens power
.... backCurve S0..1decimalContact lens back curvature
.... diameter S0..1decimalContact lens diameter
.... duration S0..1SimpleQuantityLens wear duration

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. VisionPrescription 0..*VisionPrescriptionPrescription for vision correction products for a patient
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... Coverage-Information SC0..*(Complex)Coverage Info
URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
... identifier S0..*IdentifierBusiness Identifier for vision prescription
... status ?!SΣ1..1codeactive | cancelled | draft | entered-in-error
Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.


Fixed Value: draft
... created SΣ1..1dateTimeResponse creation date
... patient SΣ1..1Reference(CRD Patient)Who prescription is for
... encounter S0..1Reference(CRD Encounter)Created during encounter / admission / stay
... dateWritten SΣ1..1dateTimeWhen prescription was authorized
... prescriber SΣ1..1Reference(CRD Practitioner | US Core PractitionerRole Profile)Who authorized the vision prescription
... lensSpecification SΣ1..*BackboneElementVision lens authorization
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... product SΣ1..1CodeableConceptProduct to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.

.... eye SΣ1..1coderight | left
Binding: VisionEyes (required): A coded concept listing the eye codes.

.... sphere S0..1decimalPower of the lens
.... cylinder S0..1decimalLens power for astigmatism
.... axis S0..1integerLens meridian which contain no power for astigmatism
.... prism S0..*BackboneElementEye alignment compensation
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... amount S1..1decimalAmount of adjustment
..... base S1..1codeup | down | in | out
Binding: VisionBase (required): A coded concept listing the base codes.

.... add S0..1decimalAdded power for multifocal levels
.... power S0..1decimalContact lens power
.... backCurve S0..1decimalContact lens back curvature
.... diameter S0..1decimalContact lens diameter
.... duration S0..1SimpleQuantityLens wear duration

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
VisionPrescription.statusrequiredFixed Value: draft
VisionPrescription.lensSpecification.productexampleExampleVisionPrescriptionProductCodes
VisionPrescription.lensSpecification.eyerequiredVisionEyes
VisionPrescription.lensSpecification.prism.baserequiredVisionBase

Constraints

IdGradePath(s)DetailsRequirements
crd-ci-q1errorVisionPrescription.extension:Coverage-InformationQuestionnaire and QuestionnaireResponse are only allowed when doc-needed exists and not equal to 'no-doc'
: extension.where(url='questionnaire' or url='response').exists() implies (extension.where(url = 'doc-needed').exists() and extension.where(url = 'doc-needed').all(value != 'no-doc'))
crd-ci-q2errorVisionPrescription.extension:Coverage-InformationIf covered is set to 'not-covered', then 'pa-needed' should not exist.
: extension.where(url = 'covered' and value != 'not-covered') implies extension.where(url = 'pa-needed').exists()
crd-ci-q3errorVisionPrescription.extension:Coverage-InformationIf 'info-needed' exists, then at least one of 'covered', 'pa-needed', or 'doc-needed' must be 'conditional'.
: extension.where(url = 'info-needed').exists() implies extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1
crd-ci-q4errorVisionPrescription.extension:Coverage-InformationIf 'pa-needed' is 'satisfied', then 'Doc-purpose' can't be 'PA'.
: extension.where(url = 'pa-needed' and value = 'satisfied') and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'PA')
crd-ci-q5errorVisionPrescription.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()
dom-2errorVisionPrescriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorVisionPrescriptionIf 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-4errorVisionPrescriptionIf 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-5errorVisionPrescriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceVisionPrescriptionA 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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. VisionPrescription 0..*VisionPrescriptionPrescription for vision correction products for a patient
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... Coverage-Information SC0..*(Complex)Coverage Info
URL: http://hl7.org/fhir/us/davinci-crd/StructureDefinition/ext-coverage-information
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier S0..*IdentifierBusiness Identifier for vision prescription
... status ?!SΣ1..1codeactive | cancelled | draft | entered-in-error
Binding: FinancialResourceStatusCodes (required): A code specifying the state of the resource instance.


Fixed Value: draft
... created SΣ1..1dateTimeResponse creation date
... patient SΣ1..1Reference(CRD Patient)Who prescription is for
... encounter S0..1Reference(CRD Encounter)Created during encounter / admission / stay
... dateWritten SΣ1..1dateTimeWhen prescription was authorized
... prescriber SΣ1..1Reference(CRD Practitioner | US Core PractitionerRole Profile)Who authorized the vision prescription
... lensSpecification SΣ1..*BackboneElementVision lens authorization
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... product SΣ1..1CodeableConceptProduct to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.

.... eye SΣ1..1coderight | left
Binding: VisionEyes (required): A coded concept listing the eye codes.

.... sphere S0..1decimalPower of the lens
.... cylinder S0..1decimalLens power for astigmatism
.... axis S0..1integerLens meridian which contain no power for astigmatism
.... prism S0..*BackboneElementEye alignment compensation
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... amount S1..1decimalAmount of adjustment
..... base S1..1codeup | down | in | out
Binding: VisionBase (required): A coded concept listing the base codes.

.... add S0..1decimalAdded power for multifocal levels
.... power S0..1decimalContact lens power
.... backCurve S0..1decimalContact lens back curvature
.... diameter S0..1decimalContact lens diameter
.... duration S0..1SimpleQuantityLens wear duration
.... color 0..1stringColor required
.... brand 0..1stringBrand required
.... note 0..*AnnotationNotes for coatings

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
VisionPrescription.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
VisionPrescription.statusrequiredFixed Value: draft
VisionPrescription.lensSpecification.productexampleExampleVisionPrescriptionProductCodes
VisionPrescription.lensSpecification.eyerequiredVisionEyes
VisionPrescription.lensSpecification.prism.baserequiredVisionBase

Constraints

IdGradePath(s)DetailsRequirements
crd-ci-q1errorVisionPrescription.extension:Coverage-InformationQuestionnaire and QuestionnaireResponse are only allowed when doc-needed exists and not equal to 'no-doc'
: extension.where(url='questionnaire' or url='response').exists() implies (extension.where(url = 'doc-needed').exists() and extension.where(url = 'doc-needed').all(value != 'no-doc'))
crd-ci-q2errorVisionPrescription.extension:Coverage-InformationIf covered is set to 'not-covered', then 'pa-needed' should not exist.
: extension.where(url = 'covered' and value != 'not-covered') implies extension.where(url = 'pa-needed').exists()
crd-ci-q3errorVisionPrescription.extension:Coverage-InformationIf 'info-needed' exists, then at least one of 'covered', 'pa-needed', or 'doc-needed' must be 'conditional'.
: extension.where(url = 'info-needed').exists() implies extension.where((url = 'covered' or url = 'pa-needed' or url = 'doc-needed') and value = 'conditional').count() >= 1
crd-ci-q4errorVisionPrescription.extension:Coverage-InformationIf 'pa-needed' is 'satisfied', then 'Doc-purpose' can't be 'PA'.
: extension.where(url = 'pa-needed' and value = 'satisfied') and extension.where(url = 'doc-purpose').exists() implies extension.where(url = 'doc-purpose').all(value != 'PA')
crd-ci-q5errorVisionPrescription.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()
dom-2errorVisionPrescriptionIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorVisionPrescriptionIf 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-4errorVisionPrescriptionIf 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-5errorVisionPrescriptionIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceVisionPrescriptionA 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()

 

Other representations of profile: CSV, Excel, Schematron