annotate README @ 175:09ca519087a1

doc
author am@osimis.io
date Thu, 20 Sep 2018 11:58:08 +0200
parents d468cbe1b161
children 48cc188ffb09
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
174
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
42 To test the worklist plugin
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
43 ---------------------------
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
44
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
45 1. In the first command shell:
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
46
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
47 # python ./GenerateConfigurationForTests.py --force --plugins /home/.../libModalityWorklists.so
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
48 # Orthanc IntegrationTestsConfiguration.json
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
49
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
50 2. In the second command shell:
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
51
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
52 # python ./Tests/Run.py
d468cbe1b161 added tests for IncomingWorklistRequestFilter
am@osimis.io
parents: 135
diff changeset
53
22
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
54
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
55
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 Running the tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 =================
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 The integration tests are written in Python and are started by the
22
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
60 "./Tests/Run.py" script. The tests will validate some "remote"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
61 instance of Orthanc (whose AET is "ORTHANC") that is assumed to be
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
62 running before the tests are started.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
63
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
64 To test the DICOM protocol, a second, "local" instance of Orthanc is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
65 automatically started by the integration tests (its AET is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
66 "ORTHANCTEST"). This situation is depicted on the following
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
67 illustration:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
68
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69
22
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
70 +--------------------------+ +-----------------------+
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
71 | Local computer | | Remote computer |
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
72 +--------------------------+ HTTP +-----------------------+
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
73 | | 5000 : 8042 | |
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
74 | Run.py <---> ORTHANCTEST <===============> ORTHANC |
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
75 | | 5001 : 4242 | |
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
76 +--------------------------+ DICOM +-----------------------+
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
77
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
78
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
79 Obviously, Orthanc must be installed both on the local and remote
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
80 computers.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
81
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
82 NB: Of course, the "local" and "remote" computers are allowed be the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
83 same computer.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
84
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 1. Configure the remote Orthanc
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 -------------------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 To run the integration tests, you first have to create a configuration
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 file for the remote instance of Orthanc. This is done by running the
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 "./GenerateConfigurationForTests.py" script on the *local*
22
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
93 computer. This script will try and autodetect the proper network
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
94 parameters. For instance (a help is available):
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 # ./GenerateConfigurationForTests.py --force
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 This will create the "./IntegrationTestsConfiguration.json"
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 configuration file that must be copied to the remote computer. Then,
22
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
100 start Orthanc on the remote computer using this configuration file.
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 By default, the configuration file will use "ORTHANC" as the AET, 8042
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 as the HTTP port, and 4242 as the DICOM port. You can of course
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 adapt these parameters by editing the generated configuration file,
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 if you have special constraints or if the autodetection fails.
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108
22
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
109 2. Start the integration tests on the local computer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
110 ----------------------------------------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
111
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
112 Once the remote instance of Orthanc is up and running, you can start
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
113 the integration tests. You have 2 possibilities: (a) use your local
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
114 computer as is, or (b) use Docker to have the best reproducibility.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
115
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
116
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
117 (Option 2a) Without Docker:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
118
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
119 # python ./Tests/Run.py
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
120
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
121 Use the flag "--help" to get the full list of arguments. These
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
122 arguments will notably allow you to specify the network parameters
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
123 of your remote instance of Orthanc.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
124
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
125
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
126 (Option 2b) With Docker:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
127
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
128 # sudo docker pull jodogne/orthanc-tests
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
129 # ./Start.sh
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
130
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
131 Note that you will have to grant root access for Docker.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
132
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
133
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 19
diff changeset
134
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 Licensing
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 =========
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138 The integration tests are licensed under the GPLv3 license. The sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 DICOM images contained in the "Database" folder are the property of
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 their respective owners, as listed in the "Database/README.txt" file.
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 We also kindly ask scientific works and clinical studies that make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 use of Orthanc to cite Orthanc in their associated publications.
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 Similarly, we ask open-source and closed-source products that make
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 use of Orthanc to warn us about this use. You can cite our work
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 using the following BibTeX entry:
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147
135
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
148 @Article{Jodogne2018,
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
149 author="Jodogne, S{\'e}bastien",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
150 title="The {O}rthanc Ecosystem for Medical Imaging",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
151 journal="Journal of Digital Imaging",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
152 year="2018",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
153 month="May",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
154 day="03",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
155 issn="1618-727X",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
156 doi="10.1007/s10278-018-0082-y",
6943b41eb239 updated bibtex
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 22
diff changeset
157 url="https://doi.org/10.1007/s10278-018-0082-y"
19
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 }