MyNixOS website logo
Description

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

OPI Discourse Forum.

Metadata

Version

3.0.2

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows