annotate README @ 205:42e4c00fe7c8 Orthanc-1.5.2

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