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

Home

Official URL: https://fhir.moyae.com/ImplementationGuide/moyae.fhir.ophthalmology Version: 0.1.0
Draft as of 2026-06-02 Computable Name: MoyaeFhirOphthalmology

Moyae Ophthalmology FHIR Implementation Guide

Version 0.1.0 — first cut of profiles for the four resources Moyae emits today.

What v0.1.0 covers

Profile Source file in Moyae Purpose
MoyaeIntraocularPressure packages/api/services/fhirObservations/iop.ts One Observation per eye for IOP measurements.
MoyaeVisualAcuity packages/api/services/fhirObservations/visualAcuityHelpers/formatObservation.ts Distance / intermediate / near VA per eye, with pinhole and binocular variants.
MoyaeRefraction Same file, typeOfExam = "refraction" path A refraction event. Shares structure with MoyaeVisualAcuity but code is SNOMED Refraction; focus always references the companion VisionPrescription.
MoyaeVisionPrescription packages/api/services/fhirObservations/visualAcuityHelpers/formatVisionPrescription.ts Used twice in the lifecycle: status="draft" as the in-exam measurement carrier, status="active" as the signed Rx.

Important characteristics of the current implementation

These are the items partners and validators most often ask about. Each is documented honestly here, and where Moyae's current emission deviates from "ideal FHIR" or from peer IGs (e.g. the HL7 Eye Care IG), the Relationships and caveats page calls out the rationale and the v0.1.x migration plan.

  • One Observation per eye for IOP. Each IOP exam produces two Observation resources. Eye is identified via a laterality extension and (redundantly) via a component entry.
  • Visual acuity and refraction share an Observation shape. They are distinguished by Observation.code (corrected vs. uncorrected vs. refraction vs. retina VA) and by component method flags.
  • Refraction values live on VisionPrescription, not Observation. The Observation references the VisionPrescription via Observation.focus. See the caveat below.
  • VisionPrescription is dual-purpose. status="draft" carries measurements during the exam; status="active" is the signed Rx.
  • All measurement values are valueString today. This includes IOP pressure and VA notation. v0.1.x migrates to valueQuantity with UCUM where the unit is well-defined (mm[Hg] for IOP, LogMAR / decimal for VA).

Partner customization

Moyae operates a translation layer between the canonical shapes documented here and partner-specific profiles. Customized endpoints, mappings, and per-partner derivations can be requested via the partnership program at moyae.com/build-with-moyae. The translation layer is permanent infrastructure; we don't expect every partner to consume the canonical shape directly.

Tooling

Authored in FHIR Shorthand and built with SUSHI + the HL7 IG Publisher. Source repo: github.com/MOYAE/FHIR.

Acknowledgments

Thanks to David Flade and Tero Lipponen for reviewing early drafts of this Implementation Guide. Their review is ongoing, and not all of their suggestions are reflected in the current version — revisions are being incorporated across upcoming releases.

Contact

Implementation feedback, partner inquiries: partnerships@moyae.com or book at calendar.app.google/joEV8YqqYastTaNf6.