-
Notifications
You must be signed in to change notification settings - Fork 9
/
Configuration.json
525 lines (439 loc) · 21.3 KB
/
Configuration.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
{
/**
* General configuration of Orthanc
**/
// The logical name of this instance of Orthanc. This one is
// displayed in Orthanc Explorer and at the URI "/system".
"Name" : "MyOrthanc",
// Path to the directory that holds the heavyweight files (i.e. the
// raw DICOM instances). Backslashes must be either escaped by
// doubling them, or replaced by forward slashes "/".
"StorageDirectory" : "OrthancStorage",
// Path to the directory that holds the SQLite index (if unset, the
// value of StorageDirectory is used). This index could be stored on
// a RAM-drive or a SSD device for performance reasons.
"IndexDirectory" : "OrthancStorage",
// Path to the directory where Orthanc stores its large temporary
// files. The content of this folder can be safely deleted if
// Orthanc once stopped. The folder must exist. The corresponding
// filesystem must be properly sized, given that for instance a ZIP
// archive of DICOM images created by a job can weight several GBs,
// and that there might be up to "min(JobsHistorySize,
// MediaArchiveSize)" archives to be stored simultaneously. If not
// set, Orthanc will use the default temporary folder of the
// operating system (such as "/tmp/" on UNIX-like systems, or
// "C:/Temp" on Microsoft Windows).
// "TemporaryDirectory" : "/tmp/Orthanc/",
// Enable the transparent compression of the DICOM instances
"StorageCompression" : false,
// Maximum size of the storage in MB (a value of "0" indicates no
// limit on the storage size)
"MaximumStorageSize" : 0,
// Maximum number of patients that can be stored at a given time
// in the storage (a value of "0" indicates no limit on the number
// of patients)
"MaximumPatientCount" : 0,
// List of paths to the custom Lua scripts that are to be loaded
// into this instance of Orthanc
"LuaScripts" : [
],
// List of paths to the plugins that are to be loaded into this
// instance of Orthanc (e.g. "./libPluginTest.so" for Linux, or
// "./PluginTest.dll" for Windows). These paths can refer to
// folders, in which case they will be scanned non-recursively to
// find shared libraries. Backslashes must be either escaped by
// doubling them, or replaced by forward slashes "/".
"Plugins" : ["./OrthancDicomWeb-1.0/build/libOrthancDicomWeb.so"
],
// Maximum number of processing jobs that are simultaneously running
// at any given time. A value of "0" indicates to use all the
// available CPU logical cores. To emulate Orthanc <= 1.3.2, set
// this value to "1".
"ConcurrentJobs" : 2,
/**
* Configuration of the HTTP server
**/
// Enable the HTTP server. If this parameter is set to "false",
// Orthanc acts as a pure DICOM server. The REST API and Orthanc
// Explorer will not be available.
"HttpServerEnabled" : true,
// HTTP port for the REST services and for the GUI
"HttpPort" : 8042,
// When the following option is "true", if an error is encountered
// while calling the REST API, a JSON message describing the error
// is put in the HTTP answer. This feature can be disabled if the
// HTTP client does not properly handles such answers.
"HttpDescribeErrors" : true,
// Enable HTTP compression to improve network bandwidth utilization,
// at the expense of more computations on the server. Orthanc
// supports the "gzip" and "deflate" HTTP encodings.
"HttpCompressionEnabled" : true,
/**
* Configuration of the DICOM server
**/
// Enable the DICOM server. If this parameter is set to "false",
// Orthanc acts as a pure REST server. It will not be possible to
// receive files or to do query/retrieve through the DICOM protocol.
"DicomServerEnabled" : true,
// The DICOM Application Entity Title (cannot be longer than 16
// characters)
"DicomAet" : "ORTHANC",
// Check whether the called AET corresponds to the AET of Orthanc
// during an incoming DICOM SCU request
"DicomCheckCalledAet" : false,
// The DICOM port
"DicomPort" : 4242,
// The default encoding that is assumed for DICOM files without
// "SpecificCharacterSet" DICOM tag, and that is used when answering
// C-Find requests (including worklists). The allowed values are
// "Ascii", "Utf8", "Latin1", "Latin2", "Latin3", "Latin4",
// "Latin5", "Cyrillic", "Windows1251", "Arabic", "Greek", "Hebrew",
// "Thai", "Japanese", "Chinese", "JapaneseKanji", "Korean", and
// "SimplifiedChinese".
"DefaultEncoding" : "Latin1",
// The transfer syntaxes that are accepted by Orthanc C-Store SCP
"DeflatedTransferSyntaxAccepted" : true,
"JpegTransferSyntaxAccepted" : true,
"Jpeg2000TransferSyntaxAccepted" : true,
"JpegLosslessTransferSyntaxAccepted" : true,
"JpipTransferSyntaxAccepted" : true,
"Mpeg2TransferSyntaxAccepted" : true,
"RleTransferSyntaxAccepted" : true,
"Mpeg4TransferSyntaxAccepted" : true, // New in Orthanc 1.6.0
// Whether Orthanc accepts to act as C-Store SCP for unknown storage
// SOP classes (aka. "promiscuous mode")
"UnknownSopClassAccepted" : false,
// Set the timeout (in seconds) after which the DICOM associations
// are closed by the Orthanc SCP (server) if no further DIMSE
// command is received from the SCU (client).
"DicomScpTimeout" : 30,
/**
* Security-related options for the HTTP server
**/
// Whether remote hosts can connect to the HTTP server
"RemoteAccessAllowed" : false,
// Whether or not SSL is enabled
"SslEnabled" : false,
// Path to the SSL certificate in the PEM format (meaningful only if
// SSL is enabled)
"SslCertificate" : "certificate.pem",
// Whether or not the password protection is enabled (using HTTP
// basic access authentication). Starting with Orthanc 1.5.8, if
// "AuthenticationEnabled" is not explicitly set, authentication is
// enabled iff. remote access is allowed (i.e. the default value of
// "AuthenticationEnabled" equals that of "RemoteAccessAllowed").
/**
"AuthenticationEnabled" : false,
**/
// The list of the registered users. Because Orthanc uses HTTP
// Basic Authentication, the passwords are stored as plain text.
"RegisteredUsers" : {
// "alice" : "alicePassword"
},
/**
* Network topology
**/
// The list of the known DICOM modalities
"DicomModalities" : {
/**
* Uncommenting the following line would enable Orthanc to
* connect to an instance of the "storescp" open-source DICOM
* store (shipped in the DCMTK distribution), as started by the
* command line "storescp 2000". The first parameter is the
* AET of the remote modality (cannot be longer than 16
* characters), the second one is the remote network address,
* and the third one is the TCP port number corresponding
* to the DICOM protocol on the remote modality (usually 104).
**/
"hippoai" : [ "HIPPOAI", "127.0.0.1", 106 ]
/**
* A fourth parameter is available to enable patches for
* specific PACS manufacturers. The allowed values are currently:
* - "Generic" (default value),
* - "GenericNoWildcardInDates" (to replace "*" by "" in date fields
* in outgoing C-Find requests originating from Orthanc),
* - "GenericNoUniversalWildcard" (to replace "*" by "" in all fields
* in outgoing C-Find SCU requests originating from Orthanc),
* - "StoreScp" (storescp tool from DCMTK),
* - "Vitrea",
* - "GE" (Enterprise Archive, MRI consoles and Advantage Workstation
* from GE Healthcare).
*
* This parameter is case-sensitive.
**/
// "vitrea" : [ "VITREA", "192.168.1.1", 104, "Vitrea" ]
/**
* By default, the Orthanc SCP accepts all DICOM commands (C-ECHO,
* C-STORE, C-FIND, C-MOVE) issued by the registered remote SCU
* modalities. Starting with Orthanc 1.5.0, it is possible to
* specify which DICOM commands are allowed, separately for each
* remote modality, using the syntax below. The "AllowEcho" (resp.
* "AllowStore") option only has an effect respectively if global
* option "DicomAlwaysAllowEcho" (resp. "DicomAlwaysAllowStore")
* is set to false.
**/
//"untrusted" : {
// "AET" : "ORTHANC",
// "Port" : 104,
// "Host" : "127.0.0.1",
// "AllowEcho" : false,
// "AllowFind" : false,
// "AllowMove" : false,
// "AllowStore" : true
//}
},
// Whether to store the DICOM modalities in the Orthanc database
// instead of in this configuration file (new in Orthanc 1.5.0)
"DicomModalitiesInDatabase" : false,
// Whether the Orthanc SCP allows incoming C-Echo requests, even
// from SCU modalities it does not know about (i.e. that are not
// listed in the "DicomModalities" option above). Orthanc 1.3.0
// is the only version to behave as if this argument was set to "false".
"DicomAlwaysAllowEcho" : true,
// Whether the Orthanc SCP allows incoming C-Store requests, even
// from SCU modalities it does not know about (i.e. that are not
// listed in the "DicomModalities" option above)
"DicomAlwaysAllowStore" : true,
// Whether Orthanc checks the IP/hostname address of the remote
// modality initiating a DICOM connection (as listed in the
// "DicomModalities" option above). If this option is set to
// "false", Orthanc only checks the AET of the remote modality.
"DicomCheckModalityHost" : false,
// The timeout (in seconds) after which the DICOM associations are
// considered as closed by the Orthanc SCU (client) if the remote
// DICOM SCP (server) does not answer.
"DicomScuTimeout" : 10,
// The list of the known Orthanc peers
"OrthancPeers" : {
/**
* Each line gives the base URL of an Orthanc peer, possibly
* followed by the username/password pair (if the password
* protection is enabled on the peer).
**/
// "peer" : [ "http://127.0.0.1:8043/", "alice", "alicePassword" ]
// "peer2" : [ "http://127.0.0.1:8044/" ]
/**
* This is another, more advanced format to define Orthanc
* peers. It notably allows to specify HTTP headers, a HTTPS
* client certificate in the PEM format (as in the "--cert" option
* of curl), or to enable PKCS#11 authentication for smart cards.
**/
// "peer" : {
// "Url" : "http://127.0.0.1:8043/",
// "Username" : "alice",
// "Password" : "alicePassword",
// "HttpHeaders" : { "Token" : "Hello world" },
// "CertificateFile" : "client.crt",
// "CertificateKeyFile" : "client.key",
// "CertificateKeyPassword" : "certpass",
// "Pkcs11" : false
// }
},
// Whether to store the Orthanc peers in the Orthanc database
// instead of in this configuration file (new in Orthanc 1.5.0)
"OrthancPeersInDatabase" : false,
// Parameters of the HTTP proxy to be used by Orthanc. If set to the
// empty string, no HTTP proxy is used. For instance:
// "HttpProxy" : "192.168.0.1:3128"
// "HttpProxy" : "proxyUser:[email protected]:3128"
"HttpProxy" : "",
// If set to "true", debug messages from libcurl will be issued
// whenever Orthanc makes an outgoing HTTP request. This is notably
// useful to debug HTTPS-related problems.
"HttpVerbose" : false,
// Set the timeout for HTTP requests issued by Orthanc (in seconds).
"HttpTimeout" : 60,
// Enable the verification of the peers during HTTPS requests. This
// option must be set to "false" if using self-signed certificates.
// Pay attention that setting this option to "false" results in
// security risks!
// Reference: http://curl.haxx.se/docs/sslcerts.html
"HttpsVerifyPeers" : true,
// Path to the CA (certification authority) certificates to validate
// peers in HTTPS requests. From curl documentation ("--cacert"
// option): "Tells curl to use the specified certificate file to
// verify the peers. The file may contain multiple CA
// certificates. The certificate(s) must be in PEM format." On
// Debian-based systems, this option can be set to
// "/etc/ssl/certs/ca-certificates.crt"
"HttpsCACertificates" : "",
/**
* Advanced options
**/
// Dictionary of symbolic names for the user-defined metadata. Each
// entry must map an unique string to an unique number between 1024
// and 65535. Reserved values:
// - The Orthanc whole-slide imaging plugin uses metadata 4200
"UserMetadata" : {
// "Sample" : 1024
},
// Dictionary of symbolic names for the user-defined types of
// attached files. Each entry must map an unique string to an unique
// number between 1024 and 65535. Optionally, a second argument can
// provided to specify a MIME content type for the attachment.
"UserContentType" : {
// "sample" : 1024
// "sample2" : [ 1025, "application/pdf" ]
},
// Number of seconds without receiving any instance before a
// patient, a study or a series is considered as stable.
"StableAge" : 60,
// By default, Orthanc compares AET (Application Entity Titles) in a
// case-insensitive way. Setting this option to "true" will enable
// case-sensitive matching.
"StrictAetComparison" : false,
// When the following option is "true", the MD5 of the DICOM files
// will be computed and stored in the Orthanc database. This
// information can be used to detect disk corruption, at the price
// of a small performance overhead.
"StoreMD5ForAttachments" : true,
// The maximum number of results for a single C-FIND request at the
// Patient, Study or Series level. Setting this option to "0" means
// no limit.
"LimitFindResults" : 0,
// The maximum number of results for a single C-FIND request at the
// Instance level. Setting this option to "0" means no limit.
"LimitFindInstances" : 0,
// The maximum number of active jobs in the Orthanc scheduler. When
// this limit is reached, the addition of new jobs is blocked until
// some job finishes.
"LimitJobs" : 10,
// If this option is set to "true" (default behavior until Orthanc
// 1.3.2), Orthanc will log the resources that are exported to other
// DICOM modalities or Orthanc peers, inside the URI
// "/exports". Setting this option to "false" is useful to prevent
// the index to grow indefinitely in auto-routing tasks (this is the
// default behavior since Orthanc 1.4.0).
"LogExportedResources" : false,
// Enable or disable HTTP Keep-Alive (persistent HTTP
// connections). Setting this option to "true" prevents Orthanc
// issue #32 ("HttpServer does not support multiple HTTP requests in
// the same TCP stream"), but can possibly slow down HTTP clients
// that do not support persistent connections. The default behavior
// used to be "false" in Orthanc <= 1.5.1. Setting this option to
// "false" is also recommended if Orthanc is compiled against
// Mongoose.
"KeepAlive" : true,
// Enable or disable Nagle's algorithm. Only taken into
// consideration if Orthanc is compiled to use CivetWeb. Experiments
// show that best performance can be obtained by setting both
// "KeepAlive" and "TcpNoDelay" to "true". Beware however of
// caveats: https://eklitzke.org/the-caveats-of-tcp-nodelay
"TcpNoDelay" : true,
// Number of threads that are used by the embedded HTTP server.
"HttpThreadsCount" : 50,
// If this option is set to "false", Orthanc will run in index-only
// mode. The DICOM files will not be stored on the drive. Note that
// this option might prevent the upgrade to newer versions of Orthanc.
"StoreDicom" : true,
// DICOM associations initiated by Lua scripts are kept open as long
// as new DICOM commands are issued. This option sets the number of
// seconds of inactivity to wait before automatically closing a
// DICOM association used by Lua. If set to 0, the connection is
// closed immediately.
"DicomAssociationCloseDelay" : 5,
// Maximum number of query/retrieve DICOM requests that are
// maintained by Orthanc. The least recently used requests get
// deleted as new requests are issued.
"QueryRetrieveSize" : 100,
// When handling a C-Find SCP request, setting this flag to "true"
// will enable case-sensitive match for PN value representation
// (such as PatientName). By default, the search is
// case-insensitive, which does not follow the DICOM standard.
"CaseSensitivePN" : false,
// Configure PKCS#11 to use hardware security modules (HSM) and
// smart cards when carrying on HTTPS client authentication.
/**
"Pkcs11" : {
"Module" : "/usr/local/lib/libbeidpkcs11.so",
"Module" : "C:/Windows/System32/beidpkcs11.dll",
"Pin" : "1234",
"Verbose" : true
}
**/
// If set to "false", Orthanc will not load its default dictionary
// of private tags. This might be necessary if you cannot import a
// DICOM file encoded using the Implicit VR Endian transfer syntax,
// and containing private tags: Such an import error might stem from
// a bad dictionary. You can still list your private tags of
// interest in the "Dictionary" configuration option below.
"LoadPrivateDictionary" : true,
// Locale to be used by Orthanc. Currently, only used if comparing
// strings in a case-insensitive way. It should be safe to keep this
// value undefined, which lets Orthanc autodetect the suitable locale.
// "Locale" : "en_US.UTF-8",
// Register a new tag in the dictionary of DICOM tags that are known
// to Orthanc. Each line must contain the tag (formatted as 2
// hexadecimal numbers), the value representation (2 upcase
// characters), a nickname for the tag, possibly the minimum
// multiplicity (> 0 with defaults to 1), possibly the maximum
// multiplicity (0 means arbitrary multiplicity, defaults to 1), and
// possibly the Private Creator (for private tags).
"Dictionary" : {
// "0014,1020" : [ "DA", "ValidationExpiryDate", 1, 1 ]
// "00e1,10c2" : [ "UI", "PET-CT Multi Modality Name", 1, 1, "ELSCINT1" ]
// "7053,1003" : [ "ST", "Original Image Filename", 1, 1, "Philips PET Private Group" ]
// "2001,5f" : [ "SQ", "StackSequence", 1, 1, "Philips Imaging DD 001" ]
},
// Whether to run DICOM C-Move operations synchronously. If set to
// "false" (asynchronous mode), each incoming C-Move request results
// in the creation of a new background job. Up to Orthanc 1.3.2, the
// implicit behavior was to use synchronous C-Move ("true"). Between
// Orthanc 1.4.0 and 1.4.2, the default behavior was set to
// asynchronous C-Move ("false"). Since Orthanc 1.5.0, the default
// behavior is back to synchronous C-Move ("true", which ensures
// backward compatibility with Orthanc <= 1.3.2).
"SynchronousCMove" : true,
// Maximum number of completed jobs that are kept in memory. A
// processing job is considered as complete once it is tagged as
// "Success" or "Failure". Since Orthanc 1.5.0, a value of "0"
// indicates to keep no job in memory (i.e. jobs are removed from
// the history as soon as they are completed), which prevents the
// use of some features of Orthanc (typically, synchronous mode in
// REST API) and should be avoided for non-developers.
"JobsHistorySize" : 10,
// Whether to save the jobs into the Orthanc database. If this
// option is set to "true", the pending/running/completed jobs are
// automatically reloaded from the database if Orthanc is stopped
// then restarted (except if the "--no-jobs" command-line argument
// is specified). This option should be set to "false" if multiple
// Orthanc servers are using the same database (e.g. if PostgreSQL
// or MariaDB/MySQL is used).
"SaveJobs" : true,
// Specifies how Orthanc reacts when it receives a DICOM instance
// whose SOPInstanceUID is already stored. If set to "true", the new
// instance replaces the old one. If set to "false", the new
// instance is discarded and the old one is kept. Up to Orthanc
// 1.4.1, the implicit behavior corresponded to "false".
"OverwriteInstances" : false,
// Maximum number of ZIP/media archives that are maintained by
// Orthanc, as a response to the asynchronous creation of archives.
// The least recently used archives get deleted as new archives are
// generated. This option was introduced in Orthanc 1.5.0, and has
// no effect on the synchronous generation of archives.
"MediaArchiveSize" : 1,
// Performance setting to specify how Orthanc accesses the storage
// area during C-FIND. Three modes are available: (1) "Always"
// allows Orthanc to read the storage area as soon as it needs an
// information that is not present in its database (slowest mode),
// (2) "Never" prevents Orthanc from accessing the storage area, and
// makes it uses exclusively its database (fastest mode), and (3)
// "Answers" allows Orthanc to read the storage area to generate its
// answers, but not to filter the DICOM resources (balance between
// the two modes). By default, the mode is "Always", which
// corresponds to the behavior of Orthanc <= 1.5.0.
"StorageAccessOnFind" : "Always",
// Whether Orthanc monitors its metrics (new in Orthanc 1.5.4). If
// set to "true", the metrics can be retrieved at
// "/tools/metrics-prometheus" formetted using the Prometheus
// text-based exposition format.
"MetricsEnabled" : true,
// Whether calls to URI "/tools/execute-script" is enabled. Starting
// with Orthanc 1.5.8, this URI is disabled by default for security.
"ExecuteLuaEnabled" : true,
// Set the timeout for HTTP requests, in seconds. This corresponds
// to option "request_timeout_ms" of Mongoose/Civetweb. It will set
// the socket options "SO_RCVTIMEO" and "SO_SNDTIMEO" to the
// specified value.
"HttpRequestTimeout" : 30
}