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 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867
|
{
/**
* 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 once
// Orthanc is 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,
// Maximum size of the storage cache in MB. The storage cache
// is stored in RAM and contains a copy of recently accessed
// files (written or read). A value of "0" indicates the cache
// is disabled. (new in Orthanc 1.10.0)
"MaximumStorageCacheSize" : 128,
// 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" : [
],
// 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,
// Enable/disable the Orthanc Explorer Web user interface. This
// option is only meaningful if the "HttpServerEnabled" option is
// set to "true" (new in Orthanc 1.8.2).
"OrthancExplorerEnabled" : 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,
// Enable the publication of the content of the Orthanc server as a
// WebDAV share (new in Orthanc 1.8.0). On the localhost, the WebDAV
// share is mapped as "http://localhost:8042/webdav/".
"WebDavEnabled" : true,
// Whether to allow deletions through the WebDAV share. This is
// disabled by default to avoid accidental loss of DICOM instances.
"WebDavDeleteAllowed" : false,
// Whether to allow uploads through the WebDAV share.
"WebDavUploadAllowed" : 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.
// This is an array listing the accepted transfer syntax UIDs. Each
// entry can contain wildcards ("?" or "*"). By default, all the
// known transfer syntaxes are accepted. (new in Orthanc 1.9.0)
"AcceptedTransferSyntaxes" : [ "1.2.840.10008.1.*" ],
// User-friendly groups of transfer syntaxes that can be enabled or
// disabled at once. These options are applied after the main
// "AcceptedTransferSyntaxes" option has been applied (if present).
/**
"DeflatedTransferSyntaxAccepted" : true,
"JpegTransferSyntaxAccepted" : true,
"Jpeg2000TransferSyntaxAccepted" : true,
"JpegLosslessTransferSyntaxAccepted" : true,
"JpipTransferSyntaxAccepted" : true,
"Mpeg2TransferSyntaxAccepted" : true,
"RleTransferSyntaxAccepted" : true,
"Mpeg4TransferSyntaxAccepted" : true, // New in Orthanc 1.6.0
"H265TransferSyntaxAccepted" : true, // New in Orthanc 1.9.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 used by the HTTP server. The file
// must be stored in the PEM format, and must contain both the
// certificate and the private key. This option is only meaningful
// if "SslEnabled" is true.
"SslCertificate" : "certificate.pem",
// Sets the minimum accepted SSL protocol version
// (cf. "ssl_protocol_version" option of civetweb). By default,
// require SSL 1.2. This option is only meaningful if "SslEnabled"
// is true. (new in Orthanc 1.8.2)
//
// Value => Protocols
// 0 SSL2+SSL3+TLS1.0+TLS1.1+TLS1.2
// 1 SSL3+TLS1.0+TLS1.1+TLS1.2
// 2 TLS1.0+TLS1.1+TLS1.2
// 3 TLS1.1+TLS1.2
// 4 TLS1.2
"SslMinimumProtocolVersion" : 4,
// Set the accepted ciphers for SSL connections. The ciphers must be
// provided as a list of strings. If not set, this will default to
// FIPS 140-2 ciphers. This option is only meaningful if
// "SslEnabled" is true. (new in Orthanc 1.8.2)
/**
"SslCiphersAccepted" : [ "AES128-GCM-SHA256" ],
**/
// Whether or not peer client certificates shall be checked. This
// option is only meaningful if "SslEnabled" is true.
"SslVerifyPeers" : false,
// Path to a file containing the concatenation of the client SSL
// certificate(s) that are trusted to verify the identify of remote
// HTTP clients. The individual certificate(s) must be stored in the
// PEM format. This option is only meaningful if "SslVerifyPeers"
// is true.
"SslTrustedClientCertificates" : "trustedClientCertificates.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"
},
/**
* Security-related options for the DICOM connections (SCU/SCP)
**/
// Whether DICOM TLS is enabled in the Orthanc SCP (new in Orthanc 1.9.0)
"DicomTlsEnabled" : false,
// Path to the TLS certificate file (in PEM format) to be used for
// both Orthanc SCP (incoming DICOM connections) and Orthanc SCU
// (outgoing DICOM connections). Note that contrarily to the
// "SslCertificate" option, the certificate and its private key must
// be split into two separate files. (new in Orthanc 1.9.0)
/**
"DicomTlsCertificate" : "orthanc.crt",
**/
// Path to the file containing the private key (in PEM format) that
// corresponds to the TLS certificate specified in option
// "DicomTlsCertificate". (new in Orthanc 1.9.0)
/**
"DicomTlsPrivateKey" : "orthanc.key",
**/
// Path to a file containing all the TLS certificates that Orthanc
// can trust, both for its SCP (incoming DICOM connections) and SCU
// (outgoing DICOM connections). This file must contain a sequence
// of PEM certificates. (new in Orthanc 1.9.0)
/**
"DicomTlsTrustedCertificates" : "trusted.crt",
**/
// Whether Orthanc rejects DICOM TLS connections to/from remote
// modalities that do not provide a certificate. Setting this option
// to "true" (resp. "false") corresponds to "--require-peer-cert"
// (resp. "--verify-peer-cert") in the DCMTK command-line
// tools. (new in Orthanc 1.9.3)
"DicomTlsRemoteCertificateRequired" : true,
// 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 were 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 the Orthanc SCP allows incoming C-FIND requests, even
// from SCU modalities it does not know about (i.e. that are not
// listed in the "DicomModalities" option above). Setting this
// option to "true" implies security risks. (new in Orthanc 1.9.0)
// Note: From Orthanc 1.10.0, this option only applies to C-FIND
// requests for patients/studies/series/instances. Use option
// "DicomAlwaysAllowFindWorklist" for worklists.
"DicomAlwaysAllowFind" : false,
// Whether the Orthanc SCP allows incoming C-FIND requests for worklists,
// even from SCU modalities it does not know about (i.e. that are not
// listed in the "DicomModalities" option above). Setting this
// option to "true" implies security risks. (new in Orthanc 1.10.0)
"DicomAlwaysAllowFindWorklist" : false,
// Whether the Orthanc SCP allows incoming C-GET requests, even
// from SCU modalities it does not know about (i.e. that are not
// listed in the "DicomModalities" option above). Setting this
// option to "true" implies security risks. (new in Orthanc 1.9.0)
"DicomAlwaysAllowGet" : false,
// Whether the Orthanc SCP allows incoming C-MOVE requests, even
// from SCU modalities it does not know about (i.e. that are not
// listed in the "DicomModalities" option above). Setting this
// option to "true" implies security risks. (new in Orthanc 1.9.7)
"DicomAlwaysAllowMove" : false,
// 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,
/**
* Network topology
**/
// The list of the known DICOM modalities. This option is ignored if
// "DicomModalitiesInDatabase" is set to "true", in which case you
// must use the REST API to define 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).
**/
// "sample" : [ "STORESCP", "127.0.0.1", 2000 ]
/**
* 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),
* - "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, C-GET and storage commitment) 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".
*
* Starting with Orthanc 1.7.0, "AllowTranscoding" can be used to
* disable the transcoding to uncompressed transfer syntaxes if
* this remote modality doesn't support compressed transfer
* syntaxes. This option currently applies to Orthanc C-GET SCP
* and to Orthanc C-STORE SCU. This option only has an effect if
* the global option "EnableTranscoding" is set to "true".
*
* By default, all "Allow*" options are true.
* "AllowStorageCommitment" is actually an alias for
* "AllowNAction" & "AllowEventReport".
*
* The "UseDicomTls" option specifies whether DICOM TLS should be
* used when opening a SCU connection from Orthanc to this remote
* modality. By default, DICOM TLS is not enabled.
*
* The "LocalAet" option allows one to overwrite the global
* "DicomAet" configuration option in order to specify another AET
* for Orthanc when initiating an SCU to this very specific
* modality. Similarly, "Timeout" allows one to overwrite the
* global value "DicomScuTimeout" on a per-modality basis.
**/
//"untrusted" : {
// "AET" : "ORTHANC",
// "Port" : 104,
// "Host" : "127.0.0.1",
// "Manufacturer" : "Generic",
// "AllowEcho" : false,
// "AllowFind" : false,
// "AllowFindWorklist" : false, // new in 1.10.0
// "AllowGet" : false,
// "AllowMove" : false,
// "AllowStore" : true,
// "AllowStorageCommitment" : false, // new in 1.6.0
// "AllowTranscoding" : true, // new in 1.7.0
// "UseDicomTls" : false // new in 1.9.0
// "LocalAet" : "HELLO" // new in 1.9.0
// "Timeout" : 60 // new in 1.9.1
//}
},
// 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 C-ECHO SCU is automatically followed by a C-FIND SCU,
// while testing the connectivity from Orthanc to a remote DICOM
// modality. This allows one to check that the remote modality does
// accept C-FIND requests from Orthanc (new in Orthanc 1.8.1).
"DicomEchoChecksFind" : 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,
// During a C-STORE SCU request initiated by Orthanc, if the remote
// modality doesn't support the original transfer syntax of some
// DICOM instance, specify which transfer syntax should be preferred
// to transcode this instance (provided the remote modality accepts
// this syntax). In Orthanc between 1.7.0 and 1.8.2, this parameter
// was implicitly set to "Little Endian Implicit"
// (1.2.840.10008.1.2). In Orthanc <= 1.6.1 and in Orthanc >= 1.9.0,
// this parameter is by default set to "Little Endian Explicit"
// (1.2.840.10008.1.2.1). This parameter can possibly correspond to
// a compressed transfer syntax. (new in Orthanc 1.9.0)
"DicomScuPreferredTransferSyntax" : "1.2.840.10008.1.2.1",
// Number of threads that are used by the embedded DICOM server.
// This defines the number of concurrent DICOM operations that can
// be run. Note: This is not limiting the number of concurrent
// connections. With a single thread, if a C-Find is received during
// e.g the transcoding of an incoming C-Store, it will have to wait
// until the end of the C-Store before being processed. (new in
// Orthanc 1.10.0, before this version, the value was fixed to 4)
"DicomThreadsCount" : 4,
// The list of the known Orthanc peers. This option is ignored if
// "OrthancPeersInDatabase" is set to "true", in which case you must
// use the REST API to define 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 one 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.
*
* The "Timeout" option allows one to overwrite the global value
* "HttpTimeout" on a per-peer basis.
**/
// "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,
// "Timeout" : 42 // New in Orthanc 1.9.1
// }
},
// 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:proxyPassword@192.168.0.1: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,
// 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: Orthanc
// only indexes the small subset of the so-called "main DICOM tags"
// in its SQL database. Note that this option might prevent the
// upgrade to newer versions of Orthanc. Also note that this
// behavior might not be available with the storage area plugins.
"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. This option is only used in Lua scripts.
"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).
// Note: For private tags, you should only declare the lower 8 bits
// of the element since the higher 8 bits may vary from one file to
// the other.
"Dictionary" : {
// "0014,1020" : [ "DA", "ValidationExpiryDate", 1, 1 ]
// "00e1,c2" : [ "UI", "PET-CT Multi Modality Name", 1, 1, "ELSCINT1" ]
// "7053,03" : [ "ST", "Original Image Filename", 1, 1, "Philips PET Private Group" ]
// "2001,5f" : [ "SQ", "StackSequence", 1, 1, "Philips Imaging DD 001" ]
},
// Load a set of external DICOM dictionaries in order to replace the
// default dictionaries. This option must contain a set of files in
// the DCMTK format. The order of the dictionaries *is*
// important. This option can be used to turn Orthanc into a DICONDE
// server. (new in Orthanc 1.9.4)
/**
"ExternalDictionaries" : [
"/usr/share/libdcmtk12/dicom.dic",
"/usr/share/libdcmtk12/diconde.dic"
]
**/
// 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 find operations (C-FIND, /tools/find API route and
// QIDO-RS in dicom-web). 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" : false,
// Whether the Rest API can write to the filesystem (e.g. in
// /instances/../export route). Starting with Orthanc 1.12.0,
// this URI is disabled by default for security.
"RestApiWriteToFileSystemEnabled": false,
// Set the timeout while serving HTTP requests by the embedded Web
// server, 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,
// Set the default private creator that is used by Orthanc when it
// looks for a private tag in its dictionary (cf. "Dictionary"
// option), or when it creates/modifies a DICOM file (new in Orthanc 1.6.0).
"DefaultPrivateCreator" : "",
// Maximum number of storage commitment reports (i.e. received from
// remote modalities) to be kept in memory (new in Orthanc 1.6.0).
"StorageCommitmentReportsSize" : 100,
// Whether Orthanc transcodes DICOM files to an uncompressed
// transfer syntax over the DICOM protocol, if the remote modality
// does not support compressed transfer syntaxes (new in Orthanc 1.7.0).
"TranscodeDicomProtocol" : true,
// If some plugin to decode/transcode DICOM instances is installed,
// this option specifies whether the built-in decoder/transcoder of
// Orthanc (that uses DCMTK) is applied before or after the plugins,
// or is not applied at all (new in Orthanc 1.7.0). The allowed
// values for this option are "After" (default value, corresponding
// to the behavior of Orthanc <= 1.6.1), "Before", or "Disabled".
"BuiltinDecoderTranscoderOrder" : "After",
// If this option is set, Orthanc will transparently transcode any
// incoming DICOM instance to the given transfer syntax before
// storing it into its database. Beware that this might result in
// high CPU usage (if transcoding to some compressed transfer
// syntax), or in higher disk consumption (if transcoding to an
// uncompressed syntax). Also, beware that transcoding to a transfer
// syntax with lossy compression (notably JPEG) will change the
// "SOPInstanceUID" DICOM tag, and thus the Orthanc identifier at
// the instance level, which might break external workflow.
/**
"IngestTranscoding" : "1.2.840.10008.1.2",
**/
// Whether ingest transcoding is applied to incoming DICOM instances
// that have an uncompressed transfer syntax, i.e. Little Endian
// Implicit, Little Endian Explicit or Big Endian Explicit (new in
// Orthanc 1.8.2).
"IngestTranscodingOfUncompressed" : true,
// Whether ingest transcoding is applied to incoming DICOM instances
// that have a compressed transfer syntax (new in Orthanc 1.8.2).
"IngestTranscodingOfCompressed" : true,
// The compression level that is used when transcoding to one of the
// lossy/JPEG transfer syntaxes (integer between 1 and 100).
"DicomLossyTranscodingQuality" : 90,
// Whether "fsync()" is called after each write to the storage area
// (new in Orthanc 1.7.4). If this option is set to "true", Orthanc
// will run more slowly, but the DICOM are guaranteed to be
// immediately written to the disk. This option only makes sense if
// the builtin filesystem storage area is used. It defaults to
// "false" in Orthanc <= 1.7.3, and to "true" in Orthanc >= 1.7.4.
"SyncStorageArea" : true,
// If specified, on compatible systems, call "mallopt(M_ARENA_MAX,
// ...)" while starting Orthanc. This has the same effect at setting
// the environment variable "MALLOC_ARENA_MAX". This avoids large
// growth in RES memory if the threads of the embedded HTTP server
// have to allocate large chunks of memory (typically the case with
// large DICOM files). By setting "MallocArenaMax" to "N", these
// threads share "N" memory pools (known as "arenas"). Setting this
// option to "0" doesn't call mallopt()", which was the behavior of
// Orthanc <= 1.8.1.
"MallocArenaMax" : 5,
// Deidentify/anonymize the contents of the logs (notably C-FIND,
// C-GET, and C-MOVE queries submitted to Orthanc) according to
// Table E.1-1 of the DICOM standard (new in Orthanc 1.8.2)
"DeidentifyLogs" : true,
// If "DeidentifyLogs" is true, this sets the DICOM standard to
// follow for the deidentification/anonymization of the query
// contents. Possible values are "2008", "2017c" and "2021b" (new
// in Orthanc 1.8.2)
"DeidentifyLogsDicomVersion" : "2021b",
// Maximum length of the PDU (Protocol Data Unit) in the DICOM
// network protocol, expressed in bytes. This value affects both
// Orthanc SCU and Orthanc SCP. It defaults to 16KB. The allowed
// range is [4096,131072]. (new in Orthanc 1.9.0)
"MaximumPduLength" : 16384,
// Arbitrary identifier of this Orthanc server when storing its
// global properties if a custom index plugin is used. This
// identifier is only useful in the case of multiple
// readers/writers, in order to avoid collisions between multiple
// Orthanc servers. If unset, this identifier is taken as a SHA-1
// hash derived from the MAC addresses of the network interfaces,
// and from the AET and TCP ports used by Orthanc. Manually setting
// this option is needed in Docker/Kubernetes environments. (new in
// Orthanc 1.9.2)
/**
"DatabaseServerIdentifier" : "Orthanc1",
**/
// Whether Orthanc protects the modification of metadata and
// attachments using revisions, which is done using the HTTP headers
// "ETag", "If-Match" and "If-None-Match" in the calls to the REST
// API. This is needed to handle collisions between concurrent
// modifications in the case of multiple writers. The database
// back-end must support this option, which is notably *not* yet the
// case of the built-in SQLite index. (new in Orthanc 1.9.2)
"CheckRevisions" : false,
// Whether Orthanc streams ZIP archive/media to the HTTP
// client. Setting this option to "false" corresponds to the
// behavior of Orthanc <= 1.9.3: The ZIP is first entirely written
// to a temporary file, then sent to the client (which necessitates
// disk space and might lead to HTTP timeouts on large archives). If
// set to "true", the chunks of the ZIP file are progressively sent
// as soon as one DICOM file gets compressed (new in Orthanc 1.9.4)
"SynchronousZipStream" : true,
// Default number of loader threads when generating Zip archive/media.
// A value of 0 means reading and writing are performed in sequence
// (default behaviour). A value > 1 is meaningful only if the storage
// is a distributed network storage (e.g object storage plugin).
// (new experimental feature in Orthanc 1.10.0)
"ZipLoaderThreads": 0
}
|