19
|
1 Orthanc - A Lightweight, RESTful DICOM Server
|
|
2 =============================================
|
|
3
|
|
4
|
|
5 General Information
|
|
6 ===================
|
|
7
|
|
8 This repository contains the integration tests that are used to
|
|
9 validate Orthanc before each official release, in complement to the
|
22
|
10 unit tests that are part of the Orthanc core repository. These
|
|
11 integration tests should be run by the package maintainers of the
|
|
12 various platforms supported by Orthanc.
|
19
|
13
|
|
14 General information about Orthanc can be found on its official
|
|
15 Website: http://www.orthanc-server.com/
|
|
16
|
174
|
17 Prerequisites:
|
|
18 =============
|
|
19
|
|
20 You need Python2.7 installed with the following package
|
|
21 # pip2 install httplib2 Pillow
|
|
22
|
|
23 You also need DCMTK and Dicom3Tools
|
|
24 # sudo apt-get install -y dicom3tools DCMTK
|
19
|
25
|
22
|
26 Quick-start: Running tests on the localhost
|
|
27 ===========================================
|
|
28
|
|
29 This section explains how to run the integration tests in the simplest
|
|
30 framework. First, install Orthanc. Then, open 2 command shells and
|
|
31 run the instructions that follow:
|
|
32
|
|
33 1. In the first command shell:
|
|
34
|
|
35 # python ./GenerateConfigurationForTests.py --force
|
|
36 # Orthanc IntegrationTestsConfiguration.json
|
|
37
|
|
38 2. In the second command shell:
|
|
39
|
|
40 # python ./Tests/Run.py
|
|
41
|
174
|
42 To test the worklist plugin
|
|
43 ---------------------------
|
|
44
|
|
45 1. In the first command shell:
|
|
46
|
|
47 # python ./GenerateConfigurationForTests.py --force --plugins /home/.../libModalityWorklists.so
|
|
48 # Orthanc IntegrationTestsConfiguration.json
|
|
49
|
|
50 2. In the second command shell:
|
|
51
|
|
52 # python ./Tests/Run.py
|
|
53
|
22
|
54
|
|
55
|
19
|
56 Running the tests
|
|
57 =================
|
|
58
|
|
59 The integration tests are written in Python and are started by the
|
22
|
60 "./Tests/Run.py" script. The tests will validate some "remote"
|
|
61 instance of Orthanc (whose AET is "ORTHANC") that is assumed to be
|
|
62 running before the tests are started.
|
|
63
|
|
64 To test the DICOM protocol, a second, "local" instance of Orthanc is
|
|
65 automatically started by the integration tests (its AET is
|
|
66 "ORTHANCTEST"). This situation is depicted on the following
|
|
67 illustration:
|
|
68
|
19
|
69
|
22
|
70 +--------------------------+ +-----------------------+
|
|
71 | Local computer | | Remote computer |
|
|
72 +--------------------------+ HTTP +-----------------------+
|
|
73 | | 5000 : 8042 | |
|
|
74 | Run.py <---> ORTHANCTEST <===============> ORTHANC |
|
|
75 | | 5001 : 4242 | |
|
|
76 +--------------------------+ DICOM +-----------------------+
|
|
77
|
|
78
|
|
79 Obviously, Orthanc must be installed both on the local and remote
|
|
80 computers.
|
|
81
|
|
82 NB: Of course, the "local" and "remote" computers are allowed be the
|
|
83 same computer.
|
|
84
|
19
|
85
|
|
86
|
|
87 1. Configure the remote Orthanc
|
|
88 -------------------------------
|
|
89
|
|
90 To run the integration tests, you first have to create a configuration
|
|
91 file for the remote instance of Orthanc. This is done by running the
|
|
92 "./GenerateConfigurationForTests.py" script on the *local*
|
22
|
93 computer. This script will try and autodetect the proper network
|
|
94 parameters. For instance (a help is available):
|
19
|
95
|
|
96 # ./GenerateConfigurationForTests.py --force
|
|
97
|
|
98 This will create the "./IntegrationTestsConfiguration.json"
|
|
99 configuration file that must be copied to the remote computer. Then,
|
22
|
100 start Orthanc on the remote computer using this configuration file.
|
19
|
101
|
|
102 By default, the configuration file will use "ORTHANC" as the AET, 8042
|
|
103 as the HTTP port, and 4242 as the DICOM port. You can of course
|
|
104 adapt these parameters by editing the generated configuration file,
|
|
105 if you have special constraints or if the autodetection fails.
|
|
106
|
|
107
|
|
108
|
22
|
109 2. Start the integration tests on the local computer
|
|
110 ----------------------------------------------------
|
|
111
|
|
112 Once the remote instance of Orthanc is up and running, you can start
|
|
113 the integration tests. You have 2 possibilities: (a) use your local
|
|
114 computer as is, or (b) use Docker to have the best reproducibility.
|
|
115
|
|
116
|
|
117 (Option 2a) Without Docker:
|
|
118
|
|
119 # python ./Tests/Run.py
|
|
120
|
|
121 Use the flag "--help" to get the full list of arguments. These
|
|
122 arguments will notably allow you to specify the network parameters
|
|
123 of your remote instance of Orthanc.
|
|
124
|
|
125
|
|
126 (Option 2b) With Docker:
|
|
127
|
|
128 # sudo docker pull jodogne/orthanc-tests
|
|
129 # ./Start.sh
|
|
130
|
|
131 Note that you will have to grant root access for Docker.
|
|
132
|
|
133
|
|
134
|
19
|
135 Licensing
|
|
136 =========
|
|
137
|
|
138 The integration tests are licensed under the GPLv3 license. The sample
|
|
139 DICOM images contained in the "Database" folder are the property of
|
|
140 their respective owners, as listed in the "Database/README.txt" file.
|
|
141
|
|
142 We also kindly ask scientific works and clinical studies that make
|
|
143 use of Orthanc to cite Orthanc in their associated publications.
|
|
144 Similarly, we ask open-source and closed-source products that make
|
|
145 use of Orthanc to warn us about this use. You can cite our work
|
|
146 using the following BibTeX entry:
|
|
147
|
135
|
148 @Article{Jodogne2018,
|
|
149 author="Jodogne, S{\'e}bastien",
|
|
150 title="The {O}rthanc Ecosystem for Medical Imaging",
|
|
151 journal="Journal of Digital Imaging",
|
|
152 year="2018",
|
|
153 month="May",
|
|
154 day="03",
|
|
155 issn="1618-727X",
|
|
156 doi="10.1007/s10278-018-0082-y",
|
|
157 url="https://doi.org/10.1007/s10278-018-0082-y"
|
19
|
158 }
|