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

Artifacts Summary

This page provides a list of the FHIR artifacts defined as part of this implementation guide.

Structures: Resource Profiles

These define constraints on FHIR resources for systems conforming to this implementation guide.

Moyae Intraocular Pressure Observation

An Intraocular Pressure (IOP) Observation emitted by the Moyae API.

One Observation is created per eye — a single IOP exam in Moyae produces two Observation resources, one for the right eye and one for the left, each with its own id. Laterality is carried on Observation.bodySite; the pressure value is a valueQuantity in UCUM mm[Hg].

See the Relationships page for the legacy (pre-migration) shape this profile replaces — laterality on a custom extension, a redundant eyeCode component, and the value as valueString.

Moyae Refraction Observation (current shape)

A Refraction Observation as currently emitted by Moyae. Structurally identical to MoyaeVisualAcuity — same Observation resource, same component shape — with two distinguishing characteristics:

  1. Observation.code is the SNOMED Refraction concept (251794006), not a visual-acuity code.
  2. The refractive measurement values (sphere / cylinder / axis / add / prism) are carried on the companion VisionPrescription referenced by Observation.focus, with VisionPrescription.status = "draft".

Refraction method (subjective / autorefraction / cycloplegic / overrefraction) is captured as boolean component flags using SNOMED procedure codes. See Caveats for why .focus rather than .derivedFrom is used today.

Moyae Vision Prescription (current shape)

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.

Moyae Visual Acuity Observation (current shape)

A Visual Acuity Observation as currently emitted by Moyae. Captures distance / intermediate / near visual acuity for the right eye, left eye, and binocular contexts, optionally with pinhole, plus a vertex distance per eye. The exam type is encoded on Observation.code (corrected vs. uncorrected vs. retina VA); when the exam is corrected or a refraction, Observation.focus references the companion VisionPrescription that carries sphere / cylinder / axis / add / prism (see Relationships).

This is the canonical "VA Observation" path. The separate MoyaeRefraction profile documents the variant where Observation.code is the SNOMED Refraction concept.

Terminology: Value Sets

These define sets of codes used by systems conforming to this implementation guide.

Eye (Vision)

FHIR VisionPrescription lensSpecification.eye value set.

Moyae Eye Codes (component scope)

SNOMED eye codes used on Observation.component when redundantly carrying laterality alongside the extension. Emitted against the canonical $SCT URI as of Moyae commit c4bf7d5f3.

Moyae Eye Laterality (bodySite)

SNOMED eye codes used on Observation.bodySite to carry laterality. 1290030002 = Right eye, 1290031003 = Left eye.

Moyae Laterality Codes

SNOMED codes used by Moyae on the laterality extension. 419465000 = Unilateral right, 419161000 = Unilateral left.

Moyae Refraction Method Boolean Flags

SNOMED codes used as Observation.component.code for refraction method boolean flags (valueBoolean true means the technique was used). with correction is NOT in this value set because Moyae emits it under a non-SNOMED Moyae-defined URI (https://moyae.com/is-cc) which is flagged in the narrative.

Moyae Visual Acuity / Refraction Top-Level Observation Codes

Codes used on Observation.code for the four typeOfExam values Moyae emits. Refraction (251794006) is profiled separately by MoyaeRefraction but lives on the same Observation path.

Vision Prescription Product (Moyae use)

Subset of FHIR ex-visionprescriptionproduct CodeSystem used by Moyae.

Vision Prescription Status (Moyae use)

Subset of the FHIR VisionPrescription status code system Moyae emits today. draft is overloaded as the in-exam measurement carrier; active is the signed prescription.

Vision Prism Base

FHIR VisionPrescription prism.base value set.

Terminology: Code Systems

These define new code systems used by systems conforming to this implementation guide.

Moyae 'with correction' Code System

Moyae-defined CodeSystem carrying the single concept cc ("with correction"). Used on Observation.component.code in MoyaeVisualAcuity and MoyaeRefraction to indicate whether the patient was wearing their habitual correction (glasses or contacts) when the measurement was taken.

SNOMED CT's 419775003 (Best Corrected Visual Acuity) was considered but is more specific than what Moyae needs — cc=true should also apply when a non-best correction was worn.

Example: Example Instances

These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.

Example: Encounter

Minimal example ambulatory encounter referenced by the Moyae example resources.

Example: Moyae IOP, right eye

Right eye, 14 mmHg, Goldmann applanation tonometer, in the v0.1.x target shape (laterality on bodySite, value as valueQuantity, method on Observation.method).

Example: Moyae VA, corrected, both eyes (distance)

Distance visual acuity corrected (cc), OD 20/20, OS 20/25, vertex 14, referencing the companion draft VisionPrescription via Observation.focus.

Example: Moyae VisionPrescription, status=active (signed Rx)

Status promoted from draft to active by the prescribing doctor's signature. Same lensSpecification shape; same patient and encounter.

Example: Moyae VisionPrescription, status=draft (in-exam measurement)

A draft VisionPrescription carrying the in-progress refractive measurement. Two lensSpecification entries (right and left). Prism array always serialized with placeholders when no clinical prism is present.

Example: Moyae manifest (subjective) refraction

A subjective / manifest refraction Observation referencing the draft VisionPrescription that carries sphere, cylinder, axis, add, and prism.

Example: Patient

Minimal example patient referenced by the Moyae example resources.

Example: Practitioner

Minimal example practitioner referenced as the prescriber on VisionPrescription examples.