-
Notifications
You must be signed in to change notification settings - Fork 45
Installation Instructions v6.0
This document provides install instructions of OpenEyes™ v6 in simple to follow steps. It outlines two install routes
- an upgrade for users of v4.2 or v5, this includes some required post-update steps.
- or a fresh install of v6
Please also review the general post update steps, while some steps are optional, some are important for the use of OpenEyes™ v6.
OpenEyes™ default implementation uses Apache2 Web Server, MariaDB and PHP. It is expected that the user has some familiarity with these services.
OpenEyes™ v6.0+ requires a minimum of 4GB of RAM to run successfully.
The documentation below details how to install OpenEyes™ on a Linux Ubuntu Server Version 20.04.06.
The automated installation scripts found in /var/www/openeyes/protected/scripts have been deprecated and cannot be used to install OpenEyes so please following the installation instructions outlined below.
=============
apt-get install php7.4-imagick \
&& git submodule update \
&& cd protected/modules/eyedraw && git checkout -f v6.8.0 \
&& echo "Success";
git checkout -f v6.2.19 \
&& cd /var/www/openeyes/protected && php yiic migrate --interactive=0 && php yiic migratemodules --interactive=0 \
&& git checkout -f v6.4.1 \
&& cd /var/www/openeyes/protected && php yiic migrate --interactive=0 && php yiic migratemodules --interactive=0 \
&& git checkout -f v6.6.21 \
&& cd /var/www/openeyes/protected && php yiic migrate --interactive=0 && php yiic migratemodules --interactive=0 \
&& git checkout -f v6.8.0 \
&& cd /var/www/openeyes/protected && php yiic migrate --interactive=0 && php yiic migratemodules --interactive=0 \
&& echo "Success";
Following the installation of v6.8.0 the following further dependencies are required to be ran:
cd /var/www/openeyes/ \
&& rm -rf assets/* \
&& composer update \
&& npm update \
&& echo "Success";
- [Optional] If you previously had worklist definition mappings to show the patient arrival status, then these should now be removed
- Otherwise the arrival status value will be displayed under the “Clinic” column in the worklist
- Note that arrival status has been linked to the Check-in step since v6.0.2, so the custom mapping is no longer needed
Add these details according to your database connection:
sudo sh -c 'echo "host=localhost
port=3306
dbname=openeyes
username=openeyes
password=openeyes" >> /etc/openeyes/db.conf'
With the exception of the database settings, all default settings (including all settings that found in the existing config/local/common.php) have moved to the admin front end which can found and updated at https://your_URL/admin/settings. Please review and update your previous settings to match your existing config file.
=============
Please ensure that your Ubuntu-Server installation is in a clean ‘just installed’ state and that you did not include any additional services that was offered during the install, with the exception of sshd ‘opensshd’.
We recommend that the non-root user you create is ‘openeyes’, if you do not follow this advice, please swap your chosen non-root username in the guide when suitable.
Assumptions
- The Ubuntu system is up to date and appropriate local user rights have been created and granted.
- You are logged into the system via ssh or a direct terminal as your non-root user 'openeyes' and that you are a member of the sudo group (which should be default).
Install Apache2 web server:
sudo apt update -y \
&& sudo apt install apache2 -y \
&& echo "Success"
Expected result
Success
Disable the firewall:
Please note this is a security concern and you should re-enable and configure the firewall as is appropriate to your deployment after the end of this guide.
sudo ufw disable \
&& echo "Success"
Expected result
Success
Ensure that the rewrite engine mod is enabled:
sudo a2enmod rewrite \
&& echo "Success"
Expected result
Success
Ensure that the headers mod is enabled:
sudo a2enmod headers \
&& echo "Success"
Expected result
Success
Restart Apache2 Service:
sudo systemctl restart apache2 \
&& echo "Success"
Expected result
Success
=============
OpenEyes Version 6 requires PHP 7.4 and several associated dependencies to be installed.
sudo apt-get update -y \
&& sudo apt -y install software-properties-common \
&& sudo add-apt-repository "ppa:ondrej/php" -y \
&& sudo apt update -y \
&& sudo apt install -y php7.4 \
&& php -v
Expected result (Approximate)
PHP 7.4.33 (cli) (built: Sep 2 2023 08:03:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
Dependencies(PHP): Unit, MultiByte, DOM, XML Writer(for composer), GD, Spreadsheet, MySQL
sudo apt install -y \
php7.4-curl \
php7.4-mysql \
php7.4-xml \
php7.4-gd \
php7.4-mbstring \
php7.4-zip \
php7.4-gd \
phpunit \
libnss3 \
libxss1 \
libasound2 \
php7.4-soap \
php7.4-imagick \
&& echo "Success"
&& cd /var/www/openeyes/
&& npm i
&& echo "Success"
Install Node JS
sudo apt install nodejs unzip \
&& sudo apt-get install -y npm nodejs \
&& sudo service apache2 restart \
&& echo "Success"
(optional) Install MariaDb Client Core:
sudo apt update \
&& sudo apt install -y mariadb-client-core-10.* \
&& sudo apt install mariadb-server \
&& sudo mysql_secure_installation \
&& echo "Success"
=============
While MariaDb is the default database used with OpenEyes, its possible to use other SQL databases.
It is recommended for development purposes that MariaDb is installed via Docker. An example install would look like this:
sudo apt install -y docker.io \
&& sudo docker run --detach --name openeyes -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 mariadb:10.4 \
&& echo "Success"
Details on how to install MariaDb can found at the following link: https://hub.docker.com/_/mariadb
MariaDb 10.4 is required for OpenEyes Version 4.0.4
Once MariaDb or an alternative has been installed, access the service and create a user and database.
Access mariaDb -A
mariadb --host <IP or host> --user root -p
Expected result
Welcome to the MariaDB monitor. Commands end with ; or \g.
...
MariaDB [(none)]>
Create a user:
CREATE User openeyes;
Update password for user 'openeyes':
SET PASSWORD FOR openeyes = PASSWORD('openeyes');
Create database:
CREATE database openeyes;
Grant ALL privileges (caution, for development only):
GRANT ALL PRIVILEGES ON *.* TO 'openeyes'@'%';
Flush privileges:
FLUSH PRIVILEGES;
Test database connection:
mysql --host=<IP or host> --user=openeyes --password=openeyes --database=openeyes --execute="SELECT now()" && echo "Success"
Download the sample DB from:
wget
https://github.com/AppertaFoundation/openeyes-sample-db/raw/refs/heads/release/v6.8.0/sql/sample_db.zip
Manually extract the zip file onto the server.
Import the sample db to the openeyes database (you will be prompted for the password)
mysql --host=<IP or host> --user openeyes --password=openeyes --database openeyes < sample_db \
&& echo "Success"
Test the database connection; (you will be prompted for the password)
mysql --host=<IP or host> --user=openeyes --password=openeyes --database=openeyes --execute="SELECT username FROM user LIMIT 1"
Expected result
username |
---|
admin |
=============
- Git clone OpenEyes code from github to the /var/www/ folder and run the migrations:
sudo git clone https://github.com/AppertaFoundation/openeyes.git /var/www/openeyes \
Run NPM update
cd /var/www/openeyes/ \
&& npm i \
&& echo "Success"
Run PHP Composer, this is essential to build OpenEyes. It must be ran from the /var/www/openeyes folder:
cd /var/www/openeyes \
&& curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php \
&& sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer \
&& echo "Success"
Make the local user the owner of the www/openeyes folder, replace "openeyes" with your local user name:
sudo chown -R openeyes:openeyes /var/www/openeyes \
&& echo "Success"
Initialise the yii framework and clone the Eyedraw module to /var/www/openeyes/protected/modules/ using the following commands in the www:
cd /var/www/openeyes/protected \
&& git submodule init \
&& git submodule update \
&& echo "Success"
Add these details according to your database connection:
sudo sh -c 'echo "host=localhost
port=3306
dbname=openeyes
username=openeyes
password=openeyes" >> /etc/openeyes/db.conf'
Update the .htaccess file /var/www/openeyes/.htaccess
On the first 2 lines of the file should be the following:
Options +FollowSymLinks
IndexIgnore */*
Adjust line the text to be:
Options +FollowSymLinks
IndexIgnore /
Create the following cache directories:
mkdir -p /var/www/openeyes/cache \
mkdir -p /var/www/openeyes/protected/cache \
mkdir -p /var/www/openeyes/assets \
&& chmod -R 755 /var/www/openeyes/assets
Clone the Eyedraw module to /var/www/openeyes/protected/modules/
git clone https://github.com/AppertaFoundation/eyedraw.git /var/www/openeyes/protected/modules/eyedraw \
&& cd /var/www/openeyes/protected/modules/eyedraw \
&& git checkout v6.7.19 \
&& echo "Success"
Update permissions to openeyes directory structure:
sudo chmod 777 -R /var/www/openeyes \
&& echo "Success"
Update the OpenEyes specific Node JS dependencies from the OpenEyes root folder i.e. /var/www/openeyes/:
cd /var/www/openeyes/ \
&& curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash \
&& source ~/.bashrc \
&& nvm --version \
&& echo "Success"
Install nvm lts:
nvm install 16.20.2 \
&& nvm use 16.20.2 \
&& echo "Success"
Install node dependencies for OpenEyes:
npm install sortablejs \
&& echo "Success"
Run the OpenEyes v6 migrations:
cd /var/www/openeyes/protected && php yiic migrate --interactive=0 && php yiic migratemodules --interactive=0 \
&& echo "Success";
sudo systemctl reload apache2 \
&& sudo systemctl start mariadb \
&& sudo systemctl enable mariadb \
&& echo "Success"
You should now be able to see the OpenEyes™ login screen from the http://hostname/ where hostname is the DNS name or IP address of your server/vm. Assuming you have used the sample database, the default user account is 'admin' with password 'admin'.
=============
- If you want to use the new “Anaesthetist cover required” (AKA “LAC”) checkbox in Operation Booking, then you will need to go to Admin->System->Settings and set ‘Show "Anaesthetic Cover Required" option in Operation Booking’ to On
- To enable the link to [Cerner] HIE, if desired, you will need to:
- configure the following settings under Admin->System->Settings:
- HIE API remote url
- HIE API Organisation value (usr_org)
- HIE API FAC value (usr_fac)
- HIE API external value (hie_external)
- HIE API org user value (org_user)
- Add one of the following roles to each OpenEyes user account that should have HIE access:
- HIE – View
- HIE – Summary
- HIE – Extend
- HIE – Admin
- configure the following settings under Admin->System->Settings:
- To Enable the Civica CITO document management integration, if desired. You will need to set values for the following options in Admin->System->Settings
- Civica Cito API access token URL
- Civica Cito API OTP URL
- Civica Cito API sign URL
- Civica Cito API grant type
- Civica Cito API client id
- To enable viewing of nextgen healthcare (a.k.a. Mirth) connect inside the openeyes admin interface, you’ll need to supply values for the following variables:
- MIRTH_DB_HOST
- MIRTH_DB_PORT
- MIRTH_DB_USER
- MIRTH_DB_PASSWORD (can be supplied as a docker secret)
- [Optional] You may want to configure some comments under Admin->Investigation Management->Investigations (per investigation).
- [Optional] If you wish to add any ICD-10 codes to disorders, you can do so by going to Admin->Disorders->Disorders and editing the relevant disorder
- [Optional] If you wish to disable the requirement to sign Letters / Prescriptions / Consent / CVI with a PIN, then change the relevant system setting(s):
- “Require PIN for Correspondence signing” to No. Default is Yes.
- “Require PIN for Prescription signing” to No. Default is Yes.
- “Require PIN for Consent signing” to No. Default is Yes.
- “Require PIN for CVI signing” to No. Default is Yes.
- [Optional] If you wish to enable the new “Offer to close all non-started examination elements” feature:
- Set the Offer to automatically close incomplete examinationelements system setting to On
- IMPORTANT: You need to make at least one admin user a “Super Team Manager”. Otherwise you will not be able to administer teams from Admin->Core->Teams
- Go to Admin->Core->Users
- Select a user that already has admin rights
- Add the “Super Team Manager” role
- This user will now be able to view all teams and assign other users as managers or owners. Mangers and owners can only see teams for which they have manger or owner rights
- To enable manual creation of visual field events:
- Go to Admin->Generic->Generic event subtypes->Visual Fields
- Check the Enable Manual Creation checkbox
- Save
- To create shared mailboxes:
- First, create 1 or more Teams in Admin->Core->Teams
- Then Go to Admin->Message->Shared mailboxes
- Create a mailbox
- Assign 1 or more teams to the mailbox