PHPackages                             openeyes/oph-in-visualfields - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. openeyes/oph-in-visualfields

AbandonedArchivedOpeneyes-module[File &amp; Storage](/categories/file-storage)

openeyes/oph-in-visualfields
============================

Module capable of communicating with Visual Fields machine to import images

v1.12(10y ago)06505PHP

Since May 20Pushed 10y ago16 watchersCompare

[ Source](https://github.com/openeyes/OphInVisualfields)[ Packagist](https://packagist.org/packages/openeyes/oph-in-visualfields)[ RSS](/packages/openeyes-oph-in-visualfields/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (1)Versions (11)Used By (0)

THIS REPOSITORY IS NO LONGER IN USE
-----------------------------------

[](#this-repository-is-no-longer-in-use)

As of Openeyes release 1.12.1, this module has been merged into the core [openeyes](https://github.com/openeyes/openeyes) repository.

This repository is kept for historic purposes only

---

OphInVisualfields
=================

[](#ophinvisualfields)

This description requires extra information for the Import standard fields section. Using the Openeyes Vagrant vm might help run the legacy import below faster.

Importing Legacy Events: OpenEyes
=================================

[](#importing-legacy-events-openeyes)

Requirements:

- Latest version of the OphInVisualfields module and an OpenEyes instance to support it.
- OpenEyes has already been set up, and all necessary modules imported and necessary database migrations ran.

The legacy import script in the OphInVisualfields/commands directory is used to import .fmes files. For help on the command, simply run (from protected/):

```
./yiic importlegacyvf help

```

The arguments are very much similar to the import performed on the client, only with differently named options:

```
--importDir: specifies which directory to import legacy files from;
--archiveDir: move successfully imported measurements to specified directory;
--errorDir: where to move files that were not successfully imported;
--dupDir: where to place files that have already been imported to OpenEyes
--interval: an acceptable time span that exists between tests for a given patient; specified as a PHP time interval (e.g. PT1H30M);

```

Create folders required by import process

```
1 - ssh the VM - vagrant ssh
2 - Create directories
	cd /var/www/protected; \
	mkdir runtime/fields;  \
	mkdir runtime/fields/legacy; \
	mkdir runtime/fields/out; \
	mkdir runtime/fields/err; \
	mkdir runtime/fields/dups;
3 - copy test legacy fmes files  - cp  modules/OphInVisualfields/tests/fields/legacy/* runtime/fields/legacy/
4 - These files have sample numbers that might not match your patient ID, change the number part in patient ids in the xml to map a user in your system

```

Run the command below to import the legacy events:

```
    ./yiic importlegacyvf import --importDir=runtime/fields/legacy --archiveDir=runtime/fields/out --errorDir=runtime/fields/err --dupDir=runtime/fields/dups

```

Note that if import is successful a list of legacy events will appear under "Legacy events" on the patien's Episodes and events page. Also the command informs of the result for each attempted import

Importing Standard Fields
=========================

[](#importing-standard-fields)

(This is not tested and left only for future reference)

Once all legacy field events have been imported, standard (that is, non-legacy) fields can be imported. The import process for standard imports is very different to the legacy import method - standard fields are sent to OpenEyes using HTTP to access the OpenEyes API.

In order to import the fields via the API, a new user must be set up, via the admin (localhost/admin) page. You can use a current user but it's best to set up a fields user specifically for this task. This can be done via the admin interface. The user will need 3 roles when created, API access, Admin and User. "Yes" should be chosen for "doctor". The config/local/common.php needs to be updated, using 'local\_users' =&gt; array('admin','fields\_user').

Again, like the legacy import, there are several folders that are used to marshal files into: -a (archive, where successfully transferred files are moved to), -d (directory to watch for newly arrived files from the fields machine), -e (error directory) and -u (duplicate directory), -t (outgoing - when a file is not sent due to a network error it is moved here to be re-scheduled for sending). There are also some extra arguments to take into account:

-c,--credentials : Supply (necessary) username/password (comma separated); if no password is given after the comma it is prompted for when the process runs; -g,--global-search-path : Specify the location of the imagemagick installation; necessary only on Windows installations. -i,--interval : Time in seconds to sleep between checks for the in-directory. -o,--image-options : Set up by default but can be parameterised. Specify location and segment of humphrey test to extract, along with scaling parameters. Format: x,y,w,h,x1,y1 where x,y is the the location to cut image with wxh size, scaled to x1,y1. Scaling parameters (x1,y1) are optional and can be omitted. -p,--port : Port to connect to on server. Default 80. Local 8888. -r,--regex : Regular expression to determine valid patient identifiers. Defaults to ^(\[0-9\]{1,9})$ -s,--host : Specify server to send messages to. -t,--outgoing : Directory to place measurement files that were not successfully sent. -u,--duplicates : Duplicate files (successfully transferred) are moved to this directory. -x,--xml-source: Include XML source file information with captured data. Default is false.

For example, to send fields to the server 'openeyes' with username fields\_user and password admin, with ImageMagick being installed in ImageMagick-6.8.8-Q16, the following would import all file from fields/in and post them to the server:

sh target/appassembler/bin/fields -d fields/in -e fields/err -u fields/dups -a fields/out -t fields/resend -c fields\_user,admin -s localhost -p 8888 Note that the credentials could have been specified as -c fields, and the password will be prompted for at the command line.

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 63.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~47 days

Total

4

Last Release

3749d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4c8ecdaf9f393f657426df23bbab5048338267c221b82b14328ac6f573896fd0?d=identicon)[OpenEyes](/maintainers/OpenEyes)

---

Top Contributors

[![jam13](https://avatars.githubusercontent.com/u/546883?v=4)](https://github.com/jam13 "jam13 (14 commits)")[![adamdyer](https://avatars.githubusercontent.com/u/3879275?v=4)](https://github.com/adamdyer "adamdyer (3 commits)")[![antonypenn](https://avatars.githubusercontent.com/u/13641429?v=4)](https://github.com/antonypenn "antonypenn (2 commits)")[![badsyntax](https://avatars.githubusercontent.com/u/102141?v=4)](https://github.com/badsyntax "badsyntax (1 commits)")[![bizmate](https://avatars.githubusercontent.com/u/1427498?v=4)](https://github.com/bizmate "bizmate (1 commits)")[![vetusko](https://avatars.githubusercontent.com/u/6493817?v=4)](https://github.com/vetusko "vetusko (1 commits)")

### Embed Badge

![Health badge](/badges/openeyes-oph-in-visualfields/health.svg)

```
[![Health](https://phpackages.com/badges/openeyes-oph-in-visualfields/health.svg)](https://phpackages.com/packages/openeyes-oph-in-visualfields)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15161.6M2.6k](/packages/illuminate-filesystem)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)[madnest/madzipper

Easier zip file handling for Laravel applications.

1382.3M6](/packages/madnest-madzipper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
