Introduction

Proxy is the part of the Gazelle testbed which is used to capture the messages exchanged between two systems under test. This tool is also bind to the EVSClient in order to validate the messages stored in the Proxy in a very simple way.

As for the other tools, the proxy is an open source project and its sources are available at https://gitlab.inria.fr/gazelle/applications/test-execution/gazelle-proxy.git.
You can download the latest gazelle-proxy.ear in nexus http://gazelle.ihe.net/nexus/index.html#nexus-search;quick~gazelle-proxy.ear

Compilation and installation

Gazelle testbed tools are built using Maven 3, when you have download the sources, go to the gazelle-proxy folder and execute

mvn -P public clean package

You will get an EAR in the gazelle-proxy-ear/target folder.

Then, follow the instructions below:

1. Create database

In your database (postgresql 9.1 or higher) create a database named “gazelle-proxy”, using UTF-8 encoding and owned by the user gazelle

createdb -U gazelle -E UTF8 gazelle-proxy

2. On your file system, create a directory /opt/proxy/DICOM and an empty file /opt/proxy/proxyPersistentChannels.csv

sudo mkdir -p /opt/proxy/DICOM
sudo touch /opt/proxy/proxyPersistentChannels.csv
sudo chown -R jboss:jboss-admin /opt/proxy
sudo chmod -R 775 /opt/proxy

3. Put the ear in the deploy folder of your Jboss AS

cp gazelle-proxy-ear/target/gazelle-proxy.ear /usr/local/jboss7/standalone/deployments/gazelle-proxy.ear

4. Manage datasource

[WARNING] : From version 4.7.0, datasources have been extracted from the ear. The template file can be found in /src/main/application/datasource in the source or in the file gazelle-proxy-X.X.X-datasource.zip from the nexus. For more information about how to manage that externalization, please refer to general considerations for JBoss7.

  • Datasource name : gazelle-proxyDS

  • Database name : gazelle-proxy

5. Configure SSO registration

Since version 5.1.0, Proxy can register itself as a client of a SSO server. This is done by giving some environment variables to the application.

Variable name Description Example of value
GZL_PROXY_K8S_ID Describes the instance ID and the replica ID of the application. gazelle-proxy-6dfeeb5595-tl29k

[WARNING] There are additional required variables for registration of the proxy to the SSO server. Please refer to the README.md in sso-client-v7.

6. Start Jboss AS 7

sudo /etc/init.d/jboss7 start

7. Execute the sql script available in your workspace at gazelle-proxy-ear/src/main/sql/schema-X.X.X.sql

psql -U gazelle gazelle-proxy < schema-X.X.X.sql

8. Execute the sql script available in your workspace at gazelle-proxy-ear/src/main/sql/init-5.0.0.sql

psql -U gazelle gazelle-proxy < init-X.X.X.sql

9. Browse the application

Open a browser and go to http://yourServer:8080/proxy

10. The proxy is now up and running, see the next section for information on the configuration.

This new instance of the proxy is running without the CAS feature, that means that anyone accessing the tool has the administrator privileges.

If you rather want to use a single-sign one authentication, configure the application in this way. Edit the preference application_works_without_cas to set it to false.

Called tools

Check that dcmtk is installed on the machine. Actually, the proxy uses dcmdump to render the dicom files.

sudo apt get install dcmtk

Configuration

There is a set of properties that you can configure on the Configuration page, the table below describes the various properties defined and their default values.

Property name Description Default value
application_documentation The link to the user manual. Link to this page  
application_issue_tracker The link to the section of the issue tracker where to report issues about the Gazelle Proxy tool https://gazelle.ihe.net/jra/browse/PROXY
application_release_notes The link to the application release notes of the tool https://gazelle.ihe.net/jira
application_works_without_cas Specifies if the CAS should be used or not, if no CAS is used, property shall be set to true otherwise, it’s set to false true
application_url The URL used by any user to access the tool. The application needs it to build permanent links inside the tool http://yourASURL/proxy
cas_enable If you intent to use a CAS, set it tu true here true
dcmdump_path Path to dcmdump /usr/bin/dcmdump
evs_client_url The URL of the EVSClient application. This is required to validate the messages captured by the proxy. If you install your own instance of the proxy, you also need your own instance of the EVSClient tool. (Do not forget the tailing slash) https://gazelle.ihe.net/EVSClient/
ip_login if the application is not linked to a CAS, you can choose to restraint the access to the administration sections of the application to a subset of IP addresses false
ip_login_admin regex to be matched by IP address of the users granted as admin .*
jms_communication_is_enabled Enable jms communication false
max_proxy_port Specifies the high limit for the opened ports 11000
min_proxy_port Specifies the low limit for the opened ports 10000
NUMBER_OF_ITEMS_PER_PAGE Number of items to display in datatable 20
proxy_ip_addresses This property is used to inform the users of the IP address(es) to use to contact the proxy 131.254.209.16 (kujira.irisa.fr), 131.254.209.17 (kujira1.irisa.fr), 131.254.209.18 (kujira2.irisa.fr), 131.254.209.19 (kujira3.irisa.fr)
proxy_oid For each tool, we need an OID which uniquely identify the instance of the tool and the URL used to send back results. 1.1.1.1.1
storage_dicom Absolute path to the system folder used to store the DICOM datasets /opt/proxy/DICOM
time_zone The time zone used to display the timestamps Europe/Paris
admin_only_mode This preference is used to enable/disable the Admin Only mode. This mode restricts the access to messages list and messages details to admin only. Connection can however be shared by an administrator to allow users knowing the connection privacy key to see messages from the connection. false
proxy_persistent_channels_file_path This file path where persistent channels are written. The file must be created by server admin /opt/proxy/proxyPersistentChannels.csv