view README @ 241:adc6372b8820

dicomweb: test_add_server
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 12 Jun 2019 18:15:32 +0200
parents 48cc188ffb09
children 192665e6113f
line wrap: on
line source

Orthanc - A Lightweight, RESTful DICOM Server
=============================================


General Information
===================

This repository contains the integration tests that are used to
validate Orthanc before each official release, in complement to the
unit tests that are part of the Orthanc core repository. These
integration tests should be run by the package maintainers of the
various platforms supported by Orthanc.

General information about Orthanc can be found on its official
Website: http://www.orthanc-server.com/

Prerequisites:
=============

You need Python2.7 installed with the following package
# pip2 install httplib2 Pillow

You also need DCMTK and Dicom3Tools
# sudo apt-get install -y dicom3tools dcmtk libgdcm-tools 

Quick-start: Running tests on the localhost 
===========================================

This section explains how to run the integration tests in the simplest
framework. First, install Orthanc. Then, open 2 command shells and
run the instructions that follow:

1. In the first command shell:

# python ./GenerateConfigurationForTests.py --force
# Orthanc IntegrationTestsConfiguration.json

2. In the second command shell:

# python ./Tests/Run.py

to run a single test:

# python Tests/Run.py Orthanc.test_findscu_counters

To test the worklist plugin
---------------------------

1. In the first command shell:

# python ./GenerateConfigurationForTests.py --force --plugins /home/.../libModalityWorklists.so
# Orthanc IntegrationTestsConfiguration.json

2. In the second command shell:

# python ./Tests/Run.py



Running the tests
=================

The integration tests are written in Python and are started by the
"./Tests/Run.py" script. The tests will validate some "remote"
instance of Orthanc (whose AET is "ORTHANC") that is assumed to be
running before the tests are started.

To test the DICOM protocol, a second, "local" instance of Orthanc is
automatically started by the integration tests (its AET is
"ORTHANCTEST"). This situation is depicted on the following
illustration:


+--------------------------+               +-----------------------+
| Local computer           |               | Remote computer       |
+--------------------------+      HTTP     +-----------------------+
|                          |  5000 : 8042  |                       |
| Run.py <---> ORTHANCTEST <===============> ORTHANC               |
|                          |  5001 : 4242  |                       |
+--------------------------+     DICOM     +-----------------------+


Obviously, Orthanc must be installed both on the local and remote
computers.

NB: Of course, the "local" and "remote" computers are allowed be the
same computer.



1. Configure the remote Orthanc
-------------------------------

To run the integration tests, you first have to create a configuration
file for the remote instance of Orthanc. This is done by running the
"./GenerateConfigurationForTests.py" script on the *local*
computer. This script will try and autodetect the proper network
parameters. For instance (a help is available):

# ./GenerateConfigurationForTests.py --force

This will create the "./IntegrationTestsConfiguration.json"
configuration file that must be copied to the remote computer. Then,
start Orthanc on the remote computer using this configuration file.

By default, the configuration file will use "ORTHANC" as the AET, 8042
as the HTTP port, and 4242 as the DICOM port. You can of course
adapt these parameters by editing the generated configuration file,
if you have special constraints or if the autodetection fails.



2. Start the integration tests on the local computer
----------------------------------------------------

Once the remote instance of Orthanc is up and running, you can start
the integration tests. You have 2 possibilities: (a) use your local
computer as is, or (b) use Docker to have the best reproducibility.


(Option 2a) Without Docker:

# python ./Tests/Run.py

Use the flag "--help" to get the full list of arguments. These
arguments will notably allow you to specify the network parameters
of your remote instance of Orthanc.


(Option 2b) With Docker:

# sudo docker pull jodogne/orthanc-tests
# ./Start.sh

Note that you will have to grant root access for Docker.



Licensing
=========

The integration tests are licensed under the GPLv3 license. The sample
DICOM images contained in the "Database" folder are the property of
their respective owners, as listed in the "Database/README.txt" file.

We also kindly ask scientific works and clinical studies that make
use of Orthanc to cite Orthanc in their associated publications.
Similarly, we ask open-source and closed-source products that make
use of Orthanc to warn us about this use. You can cite our work
using the following BibTeX entry:

@Article{Jodogne2018,
  author="Jodogne, S{\'e}bastien",
  title="The {O}rthanc Ecosystem for Medical Imaging",
  journal="Journal of Digital Imaging",
  year="2018",
  month="May",
  day="03",
  issn="1618-727X",
  doi="10.1007/s10278-018-0082-y",
  url="https://doi.org/10.1007/s10278-018-0082-y"
}