Open Perimetry Interface

Implementation of the Open Perimetry Interface (OPI) for simulating and controlling visual field machines using R. The OPI is a standard for interfacing with visual field testing machines (perimeters) first started as an open source project with support of Haag-Streit in 2010. It specifies basic functions that allow many visual field tests to be constructed. As of February 2022 it is fully implemented on the Haag-Streit Octopus 900 and 'CrewT ImoVifa' ('Topcon Tempo') with partial implementations on the Centervue Compass, Kowa AP 7000 and Android phones. It also has a cousin: the R package 'visualFields', which has tools for analysing and manipulating visual field data.


Open Perimetry Interface (OPI)

The OPI package (Open Perimetry Interface) is used to both simulate and execute visual field testing algorithms (perimetry algorithms) on machines that can create visual stimuli. The simulation can be done solely with this package. Controlling machines, be they standard displays, phones, tablets, etc or commercial perimeters requires the OPI Monitor Java package. Use of commercial machines usually requires permission from the manufacturer and some other relevant third party software or key.

Why should I use it?

You should use this package for implementing, developing, testing and using visual psychophysics test procedures particularly (but not limited to) those used for clinical visual field testing (perimetry).

How do I use it?

The package supports 5 R functions that work across multiple platforms:

  • opiInitialize() For creating a connection to a machine or simulated subject.
  • opiSetup() For setting parameters like fixation markers, background colors, luminance, etc.
  • opiPresent() For presenting visual stimuli and getting a response.
  • opiClose() For closing a connection with a machine or simulated subject.
  • opiQuery() For getting information about a machine or simulated subject.

The machine or simulation that the set of functions operate upon is selected using the chooseOPI() function.

How do I get it?

The OPI package is free from CRAN and includes all code needed for simulation and use on machines such as standard displays (ie your computer monitor).

To use the

  • Octopus 900 machine, you should contact Haag-Streit to seek permission.
  • imoVifa/Tempo machine, contact CREWT (Japan)or Topcon Healthcare Inc (USA) to seek permission.
  • Compass or Maia machine, contact iCare to seek permission.
  • Kowa AP7000 machine, contact Kowa to seek permission.

Note the reason for requiring permission from commercial partners of the OPI for use on their machines is for medico-legal reasons related to the accreditation of the machines as medical devices by regulating bodies in different countries.

If you do not have contact details with the companies, email Andrew Turpin and he can put you in touch with the right person.

Other resources

OPI www page

OPI github

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("OPI")

3.1.1 by Andrew Turpin, 4 months ago


https://opi.lei.org.au/


Browse source code at https://github.com/cran/OPI


Authors: Andrew Turpin [cre, aut, cph] , David Lawson [ctb, cph] , Ivan Marin-Franch [ctb, cph] , Matthias Muller [ctb] , Jonathan Denniss [ctb, cph] , Astrid Zeman [ctb] , Giovanni Montesano [ctb]


Documentation:   PDF Manual  


Apache License (>= 2) license


Imports jsonlite, Rfast, abind, openssl

Suggests testthat


See at CRAN