0
|
1 Transfers accelerator plugin for Orthanc
|
|
2 ========================================
|
|
3
|
|
4
|
|
5 General information
|
|
6 -------------------
|
|
7
|
|
8 This repository contains the source code of a plugin for Orthanc that
|
|
9 speeds up the transfers of DICOM instances over Internet.
|
|
10
|
|
11 The plugin can be used to send local images to remote Orthanc peers,
|
|
12 or to retrieve images stored on remote Orthanc peers.
|
|
13
|
|
14 Technically, this plugin extends the REST API of Orthanc with
|
|
15 endpoints that optimize the use of the network bandwidth over the HTTP
|
|
16 and HTTPS protocols, through the combination of the following
|
|
17 mechanisms:
|
|
18
|
|
19 * Small DICOM instances are grouped together to form so-called
|
|
20 "buckets" of some megabytes in order to reduce the number of HTTP
|
|
21 handshakes.
|
|
22
|
|
23 * Large DICOM instances are split as a set of smaller buckets in order
|
|
24 to bypass nasty effects of TCP congestion control on low-quality
|
|
25 network links.
|
|
26
|
|
27 * Buckets are download concurrently by several threads.
|
|
28
|
|
29 * Buckets can be individually compressed using the gzip algorithm,
|
|
30 hereby reducing the network usage. On a typical medical image, this
|
|
31 can divide the volume of the transmission by a factor 2 to 3, at the
|
|
32 price of a larger CPU usage.
|
|
33
|
|
34 * Sending images to remote Orthanc peers can either be done with HTTP
|
|
35 PUT requests (so-called "push mode"), or with HTTP GET requests if
|
|
36 the local Orthanc server has a public IP address (so-called "pull
|
|
37 mode").
|
|
38
|
|
39 Note that the protocol is built over HTTP/HTTPS (and not directly over
|
|
40 TCP), making it friendly with network firewalls and Web caches. Also,
|
|
41 the plugin takes advantage of the jobs engine of Orthanc, so that
|
|
42 transfers can be easily paused/canceled/resubmitted.
|
|
43
|
|
44
|
|
45 Content
|
|
46 -------
|
|
47
|
|
48 * ./Framework/ - Core C++ framework
|
|
49 * ./Plugin/ - Source code of the plugin
|
|
50 * ./Resources/ -
|
|
51 * ./UnitTestsSources/ - Unit tests
|
|
52
|
|
53
|
|
54 Compilation and usage
|
|
55 ---------------------
|
|
56
|
|
57 The compilation and usage of the plugin is part of the Orthanc Book:
|
|
58 http://book.orthanc-server.com/plugins/transfers.html
|
|
59
|
|
60
|
|
61 Licensing
|
|
62 ---------
|
|
63
|
|
64 The transfers accelerator plugin for Orthanc is licensed under the
|
|
65 AGPL license.
|
|
66
|
|
67 We also kindly ask scientific works and clinical studies that make
|
|
68 use of Orthanc to cite Orthanc in their associated publications.
|
|
69 Similarly, we ask open-source and closed-source products that make
|
|
70 use of Orthanc to warn us about this use. You can cite our work
|
|
71 using the following BibTeX entry:
|
|
72
|
|
73 @Article{Jodogne2018,
|
|
74 author="Jodogne, S{\'e}bastien",
|
|
75 title="The {O}rthanc Ecosystem for Medical Imaging",
|
|
76 journal="Journal of Digital Imaging",
|
|
77 year="2018",
|
|
78 month="Jun",
|
|
79 day="01",
|
|
80 volume="31",
|
|
81 number="3",
|
|
82 pages="341--352",
|
|
83 issn="1618-727X",
|
|
84 doi="10.1007/s10278-018-0082-y",
|
|
85 url="https://doi.org/10.1007/s10278-018-0082-y"
|
|
86 }
|