Moyae Ophthalmology FHIR Implementation Guide
0.1.0 - ci-build

Moyae Ophthalmology FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Moyae Vision Prescription (current shape)

Official URL: https://fhir.moyae.com/StructureDefinition/moyae-vision-prescription Version: 0.1.0
Draft as of 2026-06-02 Computable Name: MoyaeVisionPrescription

A VisionPrescription as currently emitted by Moyae. This single profile covers two uses, distinguished by status:

  • status = "draft" — refractive measurement captured during an exam. Companion to a MoyaeVisualAcuity or MoyaeRefraction Observation via the Observation's focus reference.
  • status = "active" — signed, finalized prescription. Carries the same lensSpecification shape; the prescriber field is required.

lensSpecification is a two-entry array, one per eye, each with eye-specific sphere / cylinder / axis / add / prism / brand / color / backCurve / diameter. Prism is always serialized as a 2-element array (vertical at index 0, horizontal at index 1) using placeholder 0 amounts when not clinically present.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code active | cancelled | draft | entered-in-error
Binding: Vision Prescription Status (Moyae use) (required)
... patient Σ 1..1 Reference(Patient) Who prescription is for
... encounter 1..1 Reference(Encounter) Created during encounter / admission / stay
... dateWritten Σ 1..1 dateTime When prescription was authorized
... prescriber Σ 1..1 Reference(Practitioner) Who authorized the vision prescription
... lensSpecification Σ 1..* BackboneElement Vision lens authorization
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... product Σ 1..1 CodeableConcept Product to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
.... eye Σ 1..1 code right | left
Binding: Eye (Vision) (required)
.... prism 0..2 BackboneElement Eye alignment compensation
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... amount 1..1 decimal Amount of adjustment
..... base 1..1 code up | down | in | out
Binding: Vision Prism Base (required)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
VisionPrescription.status Base required Vision Prescription Status (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​product Base example Example Vision Prescription Product Codes 📍4.0.1 FHIR Std.
VisionPrescription.lensSpecification.​eye Base required Eye (Vision) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​prism.base Base required Vision Prism Base 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
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()

This structure is derived from VisionPrescription

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. VisionPrescription 0..* VisionPrescription Prescription for vision correction products for a patient
... identifier
.... system 0..1 uri The namespace for the identifier value
Required Pattern: https://moyae.com/vision-prescription-status
... status 1..1 code active | cancelled | draft | entered-in-error
Binding: Vision Prescription Status (Moyae use) (required)
... encounter 1..1 Reference(Encounter) Created during encounter / admission / stay
... lensSpecification
.... product
..... coding
...... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/ex-visionprescriptionproduct
...... code 0..1 code Symbol in syntax defined by the system
Binding: Vision Prescription Product (Moyae use) (required)
.... eye 1..1 code right | left
Binding: Eye (Vision) (required)
.... prism 0..2 BackboneElement Eye alignment compensation
..... base 1..1 code up | down | in | out
Binding: Vision Prism Base (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
VisionPrescription.status Base required Vision Prescription Status (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​product.coding.code Base required Vision Prescription Product (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​eye Base required Eye (Vision) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​prism.base Base required Vision Prism Base 📦0.1.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... 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 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier Business Identifier for vision prescription
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
.... system Σ 0..1 uri The namespace for the identifier value
Required Pattern: https://moyae.com/vision-prescription-status
.... value Σ 0..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... status ?!Σ 1..1 code active | cancelled | draft | entered-in-error
Binding: Vision Prescription Status (Moyae use) (required)
... created Σ 1..1 dateTime Response creation date
... patient Σ 1..1 Reference(Patient) Who prescription is for
... encounter 1..1 Reference(Encounter) Created during encounter / admission / stay
... dateWritten Σ 1..1 dateTime When prescription was authorized
... prescriber Σ 1..1 Reference(Practitioner) Who authorized the vision prescription
... lensSpecification Σ 1..* BackboneElement Vision lens authorization
.... 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
.... product Σ 1..1 CodeableConcept Product to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/ex-visionprescriptionproduct
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Binding: Vision Prescription Product (Moyae use) (required)
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
.... eye Σ 1..1 code right | left
Binding: Eye (Vision) (required)
.... sphere 0..1 decimal Power of the lens
.... cylinder 0..1 decimal Lens power for astigmatism
.... axis 0..1 integer Lens meridian which contain no power for astigmatism
.... prism 0..2 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 1..1 decimal Amount of adjustment
..... base 1..1 code up | down | in | out
Binding: Vision Prism Base (required)
.... add 0..1 decimal Added power for multifocal levels
.... power 0..1 decimal Contact lens power
.... backCurve 0..1 decimal Contact lens back curvature
.... diameter 0..1 decimal Contact lens diameter
.... duration 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

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
VisionPrescription.language Base preferred Common Languages 📍4.0.1 FHIR Std.
VisionPrescription.identifier.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
VisionPrescription.identifier.​type Base extensible IdentifierType 📍4.0.1 FHIR Std.
VisionPrescription.status Base required Vision Prescription Status (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​product Base example Example Vision Prescription Product Codes 📍4.0.1 FHIR Std.
VisionPrescription.lensSpecification.​product.coding.code Base required Vision Prescription Product (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​eye Base required Eye (Vision) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​prism.base Base required Vision Prism Base 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
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()

This structure is derived from VisionPrescription

Summary

Mandatory: 1 element
Fixed: 1 element

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code active | cancelled | draft | entered-in-error
Binding: Vision Prescription Status (Moyae use) (required)
... patient Σ 1..1 Reference(Patient) Who prescription is for
... encounter 1..1 Reference(Encounter) Created during encounter / admission / stay
... dateWritten Σ 1..1 dateTime When prescription was authorized
... prescriber Σ 1..1 Reference(Practitioner) Who authorized the vision prescription
... lensSpecification Σ 1..* BackboneElement Vision lens authorization
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... product Σ 1..1 CodeableConcept Product to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
.... eye Σ 1..1 code right | left
Binding: Eye (Vision) (required)
.... prism 0..2 BackboneElement Eye alignment compensation
..... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
..... amount 1..1 decimal Amount of adjustment
..... base 1..1 code up | down | in | out
Binding: Vision Prism Base (required)

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
VisionPrescription.status Base required Vision Prescription Status (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​product Base example Example Vision Prescription Product Codes 📍4.0.1 FHIR Std.
VisionPrescription.lensSpecification.​eye Base required Eye (Vision) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​prism.base Base required Vision Prism Base 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
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

This structure is derived from VisionPrescription

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. VisionPrescription 0..* VisionPrescription Prescription for vision correction products for a patient
... identifier
.... system 0..1 uri The namespace for the identifier value
Required Pattern: https://moyae.com/vision-prescription-status
... status 1..1 code active | cancelled | draft | entered-in-error
Binding: Vision Prescription Status (Moyae use) (required)
... encounter 1..1 Reference(Encounter) Created during encounter / admission / stay
... lensSpecification
.... product
..... coding
...... system 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/ex-visionprescriptionproduct
...... code 0..1 code Symbol in syntax defined by the system
Binding: Vision Prescription Product (Moyae use) (required)
.... eye 1..1 code right | left
Binding: Eye (Vision) (required)
.... prism 0..2 BackboneElement Eye alignment compensation
..... base 1..1 code up | down | in | out
Binding: Vision Prism Base (required)

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
VisionPrescription.status Base required Vision Prescription Status (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​product.coding.code Base required Vision Prescription Product (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​eye Base required Eye (Vision) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​prism.base Base required Vision Prism Base 📦0.1.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... 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 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier Business Identifier for vision prescription
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
.... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
.... system Σ 0..1 uri The namespace for the identifier value
Required Pattern: https://moyae.com/vision-prescription-status
.... value Σ 0..1 string The value that is unique
Example General: 123456
.... period Σ 0..1 Period Time period when id is/was valid for use
.... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... status ?!Σ 1..1 code active | cancelled | draft | entered-in-error
Binding: Vision Prescription Status (Moyae use) (required)
... created Σ 1..1 dateTime Response creation date
... patient Σ 1..1 Reference(Patient) Who prescription is for
... encounter 1..1 Reference(Encounter) Created during encounter / admission / stay
... dateWritten Σ 1..1 dateTime When prescription was authorized
... prescriber Σ 1..1 Reference(Practitioner) Who authorized the vision prescription
... lensSpecification Σ 1..* BackboneElement Vision lens authorization
.... 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
.... product Σ 1..1 CodeableConcept Product to be supplied
Binding: ExampleVisionPrescriptionProductCodes (example): A coded concept describing the vision products.
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 0..1 uri Identity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/ex-visionprescriptionproduct
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Binding: Vision Prescription Product (Moyae use) (required)
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
.... eye Σ 1..1 code right | left
Binding: Eye (Vision) (required)
.... sphere 0..1 decimal Power of the lens
.... cylinder 0..1 decimal Lens power for astigmatism
.... axis 0..1 integer Lens meridian which contain no power for astigmatism
.... prism 0..2 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 1..1 decimal Amount of adjustment
..... base 1..1 code up | down | in | out
Binding: Vision Prism Base (required)
.... add 0..1 decimal Added power for multifocal levels
.... power 0..1 decimal Contact lens power
.... backCurve 0..1 decimal Contact lens back curvature
.... diameter 0..1 decimal Contact lens diameter
.... duration 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

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
VisionPrescription.language Base preferred Common Languages 📍4.0.1 FHIR Std.
VisionPrescription.identifier.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
VisionPrescription.identifier.​type Base extensible IdentifierType 📍4.0.1 FHIR Std.
VisionPrescription.status Base required Vision Prescription Status (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​product Base example Example Vision Prescription Product Codes 📍4.0.1 FHIR Std.
VisionPrescription.lensSpecification.​product.coding.code Base required Vision Prescription Product (Moyae use) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​eye Base required Eye (Vision) 📦0.1.0 This IG
VisionPrescription.lensSpecification.​prism.base Base required Vision Prism Base 📦0.1.0 This IG

Constraints

Id Grade Path(s) Description Expression
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()

This structure is derived from VisionPrescription

Summary

Mandatory: 1 element
Fixed: 1 element

 

Other representations of profile: CSV, Excel, Schematron