Mercurial > hg > orthanc-transfers
comparison README @ 6:6f504d862494
documentation is in the Orthanc Book
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 18 Sep 2018 17:32:27 +0200 |
parents | 95226b754d9e |
children | 2bdb38da2562 |
comparison
equal
deleted
inserted
replaced
5:5e6de82bb10f | 6:6f504d862494 |
---|---|
6 ------------------- | 6 ------------------- |
7 | 7 |
8 This repository contains the source code of a plugin for Orthanc that | 8 This repository contains the source code of a plugin for Orthanc that |
9 speeds up the transfers of DICOM instances over Internet. | 9 speeds up the transfers of DICOM instances over Internet. |
10 | 10 |
11 The plugin can be used to send local images to remote Orthanc peers, | 11 Instructions for the compilation and usage of the plugin is part of |
12 or to retrieve images stored on remote Orthanc peers. | 12 the Orthanc Book: |
13 | 13 http://book.orthanc-server.com/plugins/transfers.html |
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 | 14 |
44 | 15 |
45 Content | 16 Content |
46 ------- | 17 ------- |
47 | 18 |
48 * ./Framework/ - Core C++ framework | 19 * ./Framework/ - Core C++ framework |
49 * ./Plugin/ - Source code of the plugin | 20 * ./Plugin/ - Source code of the plugin |
50 * ./Resources/ - | 21 * ./Resources/ - Static resources |
51 * ./UnitTestsSources/ - Unit tests | 22 * ./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 | 23 |
60 | 24 |
61 Licensing | 25 Licensing |
62 --------- | 26 --------- |
63 | 27 |