version update
OBS-URL: https://build.opensuse.org/package/show/graphics/orthanc?expand=0&rev=85
This commit is contained in:
commit
b44c4467a5
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
538
Configuration.json
Normal file
538
Configuration.json
Normal file
@ -0,0 +1,538 @@
|
||||
{
|
||||
/**
|
||||
* 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@openSUSE",
|
||||
|
||||
// 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" : "/var/lib/orthanc/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" : "/var/lib/orthanc/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 "/".
|
||||
// global definition for openSUSE
|
||||
"Plugins" : [
|
||||
"/usr/share/orthanc/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,
|
||||
|
||||
// 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).
|
||||
**/
|
||||
// "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),
|
||||
* - "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, 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.
|
||||
**/
|
||||
//"untrusted" : {
|
||||
// "AET" : "ORTHANC",
|
||||
// "Port" : 104,
|
||||
// "Host" : "127.0.0.1",
|
||||
// "Manufacturer" : "Generic",
|
||||
// "AllowEcho" : false,
|
||||
// "AllowFind" : false,
|
||||
// "AllowMove" : false,
|
||||
// "AllowStore" : true,
|
||||
// "AllowStorageCommitment" : false // new in 1.6.0
|
||||
//}
|
||||
},
|
||||
|
||||
// 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: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,
|
||||
|
||||
// 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" : false,
|
||||
|
||||
// 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,
|
||||
|
||||
// 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
|
||||
}
|
3
Orthanc-1.12.4.tar.gz
Normal file
3
Orthanc-1.12.4.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:54964a43639248840abcba23b2566e5f6786594bfa5b494644608cc29db8a92b
|
||||
size 2056110
|
3
Orthanc-1.12.5.tar.gz
Normal file
3
Orthanc-1.12.5.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b9ed9da0a1c1821ad488a1b004ba492c4782839f10f132b35e1d99035adc5b23
|
||||
size 2065505
|
4
_service
Normal file
4
_service
Normal file
@ -0,0 +1,4 @@
|
||||
<services>
|
||||
|
||||
<service name="download_files" mode="localonly" />
|
||||
</services>
|
3
axios-0.19.0.tar.gz
Normal file
3
axios-0.19.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:29577c6085b090b4e4a99392fcdd582fb6bbcb49b2aaf2cc7b7fa3874529b380
|
||||
size 125193
|
233
boost.patch
Normal file
233
boost.patch
Normal file
@ -0,0 +1,233 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Alain Mazy <am@orthanc.team>
|
||||
# Date 1727274427 -7200
|
||||
# Node ID 2b429588de28773d4aa062b3eb78c64663d7cbd2
|
||||
# Parent 16df205057106f4246107cfe45710e56324007e8
|
||||
fix support for Boost 1.86
|
||||
|
||||
diff -r 16df20505710 -r 2b429588de28 OrthancFramework/Resources/CMake/BoostConfiguration.cmake
|
||||
--- a/OrthancFramework/Resources/CMake/BoostConfiguration.cmake Tue Sep 24 09:26:42 2024 +0200
|
||||
+++ b/OrthancFramework/Resources/CMake/BoostConfiguration.cmake Wed Sep 25 16:27:07 2024 +0200
|
||||
@@ -91,10 +91,10 @@
|
||||
## Parameters for static compilation of Boost
|
||||
##
|
||||
|
||||
- set(BOOST_NAME boost_1_85_0)
|
||||
- set(BOOST_VERSION 1.85.0)
|
||||
- set(BOOST_BCP_SUFFIX bcpdigest-1.12.4)
|
||||
- set(BOOST_MD5 "1017e9c8383efdea01c059a8d3cc4dda")
|
||||
+ set(BOOST_NAME boost_1_86_0)
|
||||
+ set(BOOST_VERSION 1.86.0)
|
||||
+ set(BOOST_BCP_SUFFIX bcpdigest-1.12.5)
|
||||
+ set(BOOST_MD5 "20b9c325c0dde830889ee75a9e64ded8")
|
||||
set(BOOST_URL "https://orthanc.uclouvain.be/downloads/third-party-downloads/${BOOST_NAME}_${BOOST_BCP_SUFFIX}.tar.gz")
|
||||
set(BOOST_SOURCES_DIR ${CMAKE_BINARY_DIR}/${BOOST_NAME})
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
if (FirstRun)
|
||||
execute_process(
|
||||
COMMAND ${PATCH_EXECUTABLE} -p0 -N -i
|
||||
- ${CMAKE_CURRENT_LIST_DIR}/../Patches/boost-1.85.0-emscripten.patch
|
||||
+ ${CMAKE_CURRENT_LIST_DIR}/../Patches/boost-1.86.0-emscripten.patch
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
RESULT_VARIABLE Failure
|
||||
)
|
||||
diff -r 16df20505710 -r 2b429588de28 OrthancFramework/Resources/CMake/BoostConfiguration.sh
|
||||
--- a/OrthancFramework/Resources/CMake/BoostConfiguration.sh Tue Sep 24 09:26:42 2024 +0200
|
||||
+++ b/OrthancFramework/Resources/CMake/BoostConfiguration.sh Wed Sep 25 16:27:07 2024 +0200
|
||||
@@ -27,9 +27,10 @@
|
||||
## - Orthanc 1.12.2: Boost 1.83.0
|
||||
## - Orthanc 1.12.3: Boost 1.84.0
|
||||
## - Orthanc > 1.12.3: Boost 1.85.0
|
||||
+## - Orthanc 1.12.5: Boost 1.86.0
|
||||
|
||||
-BOOST_VERSION=1_85_0
|
||||
-ORTHANC_VERSION=1.12.4
|
||||
+BOOST_VERSION=1_86_0
|
||||
+ORTHANC_VERSION=1.12.5
|
||||
|
||||
rm -rf /tmp/boost_${BOOST_VERSION}
|
||||
rm -rf /tmp/bcp/boost_${BOOST_VERSION}
|
||||
diff -r 16df20505710 -r 2b429588de28 OrthancFramework/Resources/Patches/boost-1.86.0-emscripten.patch
|
||||
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||
+++ b/OrthancFramework/Resources/Patches/boost-1.86.0-emscripten.patch Wed Sep 25 16:27:07 2024 +0200
|
||||
@@ -0,0 +1,127 @@
|
||||
+diff -urEb boost_1_86_0.orig/libs/locale/src/boost/locale/shared/date_time.cpp boost_1_86_0/libs/locale/src/boost/locale/shared/date_time.cpp
|
||||
+--- boost_1_86_0.orig/libs/locale/src/boost/locale/shared/date_time.cpp 2024-09-25 15:46:01.000000000 +0200
|
||||
++++ boost_1_86_0/libs/locale/src/boost/locale/shared/date_time.cpp 2024-09-25 15:58:51.306131987 +0200
|
||||
+@@ -12,8 +12,10 @@
|
||||
+ #include <boost/locale/date_time.hpp>
|
||||
+ #include <boost/locale/formatting.hpp>
|
||||
+ #include <boost/core/exchange.hpp>
|
||||
+-#include <boost/thread/locks.hpp>
|
||||
+-#include <boost/thread/mutex.hpp>
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
++# include <boost/thread/locks.hpp>
|
||||
++# include <boost/thread/mutex.hpp>
|
||||
++#endif
|
||||
+ #include <cmath>
|
||||
+
|
||||
+ namespace boost { namespace locale {
|
||||
+@@ -400,6 +402,7 @@
|
||||
+ return impl_->get_option(abstract_calendar::is_dst) != 0;
|
||||
+ }
|
||||
+
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
+ namespace time_zone {
|
||||
+ boost::mutex& tz_mutex()
|
||||
+ {
|
||||
+@@ -422,7 +425,7 @@
|
||||
+ return boost::exchange(tz_id(), new_id);
|
||||
+ }
|
||||
+ } // namespace time_zone
|
||||
+-
|
||||
++#endif
|
||||
+ }} // namespace boost::locale
|
||||
+
|
||||
+ // boostinspect:nominmax
|
||||
+diff -urEb boost_1_86_0.orig/libs/locale/src/boost/locale/shared/generator.cpp boost_1_86_0/libs/locale/src/boost/locale/shared/generator.cpp
|
||||
+--- boost_1_86_0.orig/libs/locale/src/boost/locale/shared/generator.cpp 2024-09-25 15:46:01.000000000 +0200
|
||||
++++ boost_1_86_0/libs/locale/src/boost/locale/shared/generator.cpp 2024-09-25 16:00:07.756233916 +0200
|
||||
+@@ -7,8 +7,10 @@
|
||||
+ #include <boost/locale/encoding.hpp>
|
||||
+ #include <boost/locale/generator.hpp>
|
||||
+ #include <boost/locale/localization_backend.hpp>
|
||||
+-#include <boost/thread/locks.hpp>
|
||||
+-#include <boost/thread/mutex.hpp>
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
++# include <boost/thread/locks.hpp>
|
||||
++# include <boost/thread/mutex.hpp>
|
||||
++#endif
|
||||
+ #include <algorithm>
|
||||
+ #include <map>
|
||||
+ #include <vector>
|
||||
+@@ -21,8 +23,9 @@
|
||||
+ {}
|
||||
+
|
||||
+ mutable std::map<std::string, std::locale> cached;
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
+ mutable boost::mutex cached_lock;
|
||||
+-
|
||||
++#endif
|
||||
+ category_t cats;
|
||||
+ char_facet_t chars;
|
||||
+
|
||||
+@@ -101,7 +104,9 @@
|
||||
+ std::locale generator::generate(const std::locale& base, const std::string& id) const
|
||||
+ {
|
||||
+ if(d->caching_enabled) {
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
+ boost::unique_lock<boost::mutex> guard(d->cached_lock);
|
||||
++#endif
|
||||
+ const auto p = d->cached.find(id);
|
||||
+ if(p != d->cached.end())
|
||||
+ return p->second;
|
||||
+@@ -126,7 +131,9 @@
|
||||
+ result = backend->install(result, facet, char_facet_t::nochar);
|
||||
+ }
|
||||
+ if(d->caching_enabled) {
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
+ boost::unique_lock<boost::mutex> guard(d->cached_lock);
|
||||
++#endif
|
||||
+ const auto p = d->cached.find(id);
|
||||
+ if(p == d->cached.end())
|
||||
+ d->cached[id] = result;
|
||||
+diff -urEb boost_1_86_0.orig/libs/locale/src/boost/locale/shared/localization_backend.cpp boost_1_86_0/libs/locale/src/boost/locale/shared/localization_backend.cpp
|
||||
+--- boost_1_86_0.orig/libs/locale/src/boost/locale/shared/localization_backend.cpp 2024-09-25 15:46:01.000000000 +0200
|
||||
++++ boost_1_86_0/libs/locale/src/boost/locale/shared/localization_backend.cpp 2024-09-25 16:01:09.196820495 +0200
|
||||
+@@ -5,8 +5,10 @@
|
||||
+ // https://www.boost.org/LICENSE_1_0.txt
|
||||
+
|
||||
+ #include <boost/locale/localization_backend.hpp>
|
||||
+-#include <boost/thread/locks.hpp>
|
||||
+-#include <boost/thread/mutex.hpp>
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
++# include <boost/thread/locks.hpp>
|
||||
++# include <boost/thread/mutex.hpp>
|
||||
++#endif
|
||||
+ #include <functional>
|
||||
+ #include <memory>
|
||||
+ #include <vector>
|
||||
+@@ -211,11 +213,13 @@
|
||||
+ return mgr;
|
||||
+ }
|
||||
+
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
+ boost::mutex& localization_backend_manager_mutex()
|
||||
+ {
|
||||
+ static boost::mutex the_mutex;
|
||||
+ return the_mutex;
|
||||
+ }
|
||||
++#endif
|
||||
+ localization_backend_manager& localization_backend_manager_global()
|
||||
+ {
|
||||
+ static localization_backend_manager the_manager = make_default_backend_mgr();
|
||||
+@@ -225,12 +229,16 @@
|
||||
+
|
||||
+ localization_backend_manager localization_backend_manager::global()
|
||||
+ {
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
+ boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
|
||||
++#endif
|
||||
+ return localization_backend_manager_global();
|
||||
+ }
|
||||
+ localization_backend_manager localization_backend_manager::global(const localization_backend_manager& in)
|
||||
+ {
|
||||
++#if !defined(__EMSCRIPTEN__)
|
||||
+ boost::unique_lock<boost::mutex> lock(localization_backend_manager_mutex());
|
||||
++#endif
|
||||
+ return exchange(localization_backend_manager_global(), in);
|
||||
+ }
|
||||
+
|
||||
diff -r 16df20505710 -r 2b429588de28 OrthancFramework/Sources/Toolbox.cpp
|
||||
--- a/OrthancFramework/Sources/Toolbox.cpp Tue Sep 24 09:26:42 2024 +0200
|
||||
+++ b/OrthancFramework/Sources/Toolbox.cpp Wed Sep 25 16:27:07 2024 +0200
|
||||
@@ -812,14 +812,32 @@
|
||||
sha1.process_bytes(data, size);
|
||||
}
|
||||
|
||||
+#if BOOST_VERSION >= 108600
|
||||
+ unsigned char digest[20];
|
||||
+
|
||||
+ // Sanity check for the memory layout: A SHA-1 digest is 160 bits wide
|
||||
+ assert(sizeof(digest) == (160 / 8));
|
||||
+ assert(sizeof(boost::uuids::detail::sha1::digest_type) == 20);
|
||||
+
|
||||
+ // From Boost 1.86, digest_type is "unsigned char[20]" while it was "unsigned int[5]"" in previous versions.
|
||||
+ // Always perform the cast even if it is useless for Boost < 1.86
|
||||
+ sha1.get_digest(digest);
|
||||
+
|
||||
+ result.resize(8 * 5 + 4);
|
||||
+ sprintf(&result[0], "%02x%02x%02x%02x-%02x%02x%02x%02x-%02x%02x%02x%02x-%02x%02x%02x%02x-%02x%02x%02x%02x",
|
||||
+ digest[0], digest[1], digest[2], digest[3],
|
||||
+ digest[4], digest[5], digest[6], digest[7],
|
||||
+ digest[8], digest[9], digest[10], digest[11],
|
||||
+ digest[12], digest[13], digest[14], digest[15],
|
||||
+ digest[16], digest[17], digest[18], digest[19]);
|
||||
+
|
||||
+#else
|
||||
unsigned int digest[5];
|
||||
// Sanity check for the memory layout: A SHA-1 digest is 160 bits wide
|
||||
assert(sizeof(unsigned int) == 4 && sizeof(digest) == (160 / 8));
|
||||
assert(sizeof(boost::uuids::detail::sha1::digest_type) == 20);
|
||||
-
|
||||
- // From Boost 1.86, digest_type is "unsigned char[20]" while it was "unsigned int[5]"" in previous versions.
|
||||
- // Always perform the cast even if it is useless for Boost < 1.86
|
||||
- sha1.get_digest(*(reinterpret_cast<boost::uuids::detail::sha1::digest_type*>(digest)));
|
||||
+
|
||||
+ sha1.get_digest(digest));
|
||||
|
||||
result.resize(8 * 5 + 4);
|
||||
sprintf(&result[0], "%08x-%08x-%08x-%08x-%08x",
|
||||
@@ -828,6 +846,9 @@
|
||||
digest[2],
|
||||
digest[3],
|
||||
digest[4]);
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
}
|
||||
|
||||
void Toolbox::ComputeSHA1(std::string& result,
|
||||
|
3
bootstrap-4.3.1.zip
Normal file
3
bootstrap-4.3.1.zip
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c7fcae50c070250e4e1ae36a670e5ee8fe9d529eb3f1a03c527f8223ce3f61bc
|
||||
size 2705432
|
11
dcmtk.diff
Normal file
11
dcmtk.diff
Normal file
@ -0,0 +1,11 @@
|
||||
diff -U 3 -dHrN -- a/OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake b/OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake
|
||||
--- a/OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake 2024-01-31 12:33:17.000000000 +0100
|
||||
+++ b/OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake 2024-02-07 18:49:46.121815912 +0100
|
||||
@@ -302,6 +302,7 @@
|
||||
/usr/share/libdcmtk18
|
||||
/usr/share/libdcmtk19
|
||||
/usr/share/libdcmtk20
|
||||
+ /usr/share/dcmtk-3.6.8
|
||||
/usr/local/share/dcmtk
|
||||
/usr/local/share/dcmtk-3.6.8
|
||||
)
|
12
index.html
Normal file
12
index.html
Normal file
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<h1>Index of the Orthanc documentation</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="Samples/index.html">Samples for Orthanc</a>.</li>
|
||||
<li><a href="OrthancPlugin/index.html">Plugin SDK</a> to develop plugins for Orthanc.</li>
|
||||
<li><a href="OrthancPluginSamples/index.html">Sample plugins</a>.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
2
jquery-3.4.1.min.js
vendored
Normal file
2
jquery-3.4.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
34
orthanc-readme.SUSE
Normal file
34
orthanc-readme.SUSE
Normal file
@ -0,0 +1,34 @@
|
||||
README: Orthanc for openSUSE
|
||||
============================
|
||||
|
||||
Orthanc is a RESTful DICOM server for healthcare and medical research.
|
||||
This package provides the server for Orthanc (you may want to check for plugins as well)
|
||||
|
||||
Configuration files for Orthanc are in
|
||||
/etc/orthanc
|
||||
Configuration files are in JSON format. Orthanc reads all files in the configuration folder to build up its internal setup.
|
||||
|
||||
We ship a template Configuration.json. In case you are using SQLite, make sure you keep the location of /var/lib/orthanc/OrthancStorage
|
||||
|
||||
Starting/stopping Orthanc
|
||||
Orthanc comes as systemd-service. so you can start it with:
|
||||
systemctl start orthanc
|
||||
To stop it:
|
||||
systemctl stop orthanc
|
||||
To check it:
|
||||
systemctl status orthanc
|
||||
|
||||
To enable it at system start:
|
||||
systemctl enable orthanc
|
||||
|
||||
Once orthanc is running, you can use
|
||||
http://localhost:8042
|
||||
to connect.
|
||||
|
||||
For any 'outside connection', the use of SSL certificates is recommended!
|
||||
|
||||
Further documentation:
|
||||
https://book.orthanc-server.com/
|
||||
|
||||
Have fun
|
||||
Axel Braun <DocB@openSUSE.org> Tue Aug 13 08:06:42 UTC 2019
|
12
orthanc-rpmlintrc
Normal file
12
orthanc-rpmlintrc
Normal file
@ -0,0 +1,12 @@
|
||||
# end-of-line is not really a pain:
|
||||
addFilter("wrong-file-end-of-line-encoding /usr/share/doc/packages/orthanc/Samples/CppHelpers/README.md");
|
||||
# some python files are installed under 'examples'
|
||||
# they should be adjusted
|
||||
addFilter("env-script-interpreter");
|
||||
addFilter("non-executable-script");
|
||||
# false positive
|
||||
addFilter("script-without-shebang /etc/orthanc/Configuration.json");
|
||||
addFilter("script-without-shebang /etc/orthanc/worklists.json");
|
||||
addFilter("script-without-shebang /etc/orthanc/serve-folders.json");
|
||||
# Orthanc source was all the time in /usr/src....
|
||||
addFilter("filelist-forbidden-fhs23 /usr/src/orthanc");
|
676
orthanc.changes
Normal file
676
orthanc.changes
Normal file
@ -0,0 +1,676 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 17:20:24 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.12.5
|
||||
* patches toolbox.patch boost.patch sha.patch removed (in sourcecode)
|
||||
* for details, see NEWS file
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 14 11:53:47 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- applied patches to source tree (for plugins)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 30 08:43:53 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- sha.patch added to fix Leap build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 25 08:35:12 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- toolbox.patch and boost.patch added to fix TW build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 7 06:00:51 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.12.4
|
||||
* boost185.diff removed
|
||||
* API version upgraded to 24
|
||||
* Added "MaximumPatientCount" in /system
|
||||
* Added a new "LimitToThisLevelMainDicomTags" field in the payload of
|
||||
/patients|studies|series/instances/../reconstruct to speed up the reconstruction
|
||||
in case you just want to update the MainDicomTags of that resource level only
|
||||
(e.g., after you have updated the "ExtraMainDicomTags" for this level)
|
||||
* The "requestedTags" GET argument is deprecated in favor of "requested-tags"
|
||||
* Added "?whole" option to "/instances/{id}/tags" to access tags stored after pixel data
|
||||
|
||||
* Multitenant DICOM plugin: added support for locales.
|
||||
* Housekeeper plugin:
|
||||
- Added an option "LimitMainDicomTagsReconstructLevel"
|
||||
(allowed values: "Patient", "Study", "Series", "Instance"). This can greatly speed
|
||||
up the housekeeper process, e.g. if you have only update the Study level ExtraMainDicomTags.
|
||||
- Fixed broken /instances/../tags route after running the Housekeeper
|
||||
after having changed the "IngestTranscoding".
|
||||
* SDK: added OrthancPluginLogMessage() as a new primitive for plugins
|
||||
to log messages. This new primitive will display the plugin name,
|
||||
the plugin file name, and the plugin line number in the logs. If
|
||||
they are not using the LOG() facilities provided by the
|
||||
OrthancFramework, plugins should now use ORTHANC_PLUGINS_LOG_INFO(),
|
||||
ORTHANC_PLUGINS_LOG_WARNING(), and ORTHANC_PLUGINS_LOG_ERROR().
|
||||
|
||||
* C-Find queries:
|
||||
- In C-Find queries including "GenericGroupLength" tags, Orthanc was still
|
||||
extracting these tags from the storage although they were already ignored
|
||||
and not returned in the response.
|
||||
They are now removed from the query earlier to avoid this disk access that
|
||||
could slow down the response time. Note that this seems to happen mainly
|
||||
when the query originates from some GE devices (AWS).
|
||||
- "TimezoneOffsetFromUTC" is now ignored for matching.
|
||||
* The 0x0111 DIMSE Status is now considered as a warning instead of an error
|
||||
when received as a response to a C-Store.
|
||||
See https://discourse.orthanc-server.org/t/ignore-dimse-status-0x0111-when-sending-partial-duplicate-studies/4555/3
|
||||
* Removed potential PHI from the logs when Orthanc encounters an error while
|
||||
creating a ZIP archive.
|
||||
* Monitoring of stable resources now also takes into consideration the
|
||||
resource type, not only the resource identifier identifier.
|
||||
* DICOM TLS:
|
||||
- In prior versions, when "DicomTlsRemoteCertificateRequired" was set to false, Orthanc
|
||||
was still sending a client certificate request during the TLS handshake but was not
|
||||
triggering and error if the client certificate was not trusted (equivalent to the
|
||||
"--verify-peer-cert" DCMTK option). Starting with Orthanc 1.12.4, if this option is
|
||||
set to "false", Orthanc will not send a client certificate request during the TLS
|
||||
handshake anymore (equivalent to the "--ignore-peer-cert" DCMTK option).
|
||||
- When working with "DicomTlsEnabled": true and "DicomTlsRemoteCertificateRequired": false,
|
||||
Orthanc was refusing to start if no "DicomTlsTrustedCertificates" was provided.
|
||||
- New configuration options:
|
||||
- "DicomTlsMinimumProtocolVersion" to select the minimum TLS protocol version
|
||||
- "DicomTlsCiphersAccepted" to fine tune the list of accepted ciphers
|
||||
* Fixed broken /instances/../tags route after calling of
|
||||
/studies/../reconstruct after having changed the "IngestTranscoding".
|
||||
* Upgraded dependencies for static builds:
|
||||
- boost 1.85.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 17 09:30:42 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- boost185.diff added to fix TW build issue
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 21 16:31:18 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||
|
||||
- Update orthanc-source requirements to fix the orthanc-wsi build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 19 08:23:12 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- apply dcmtk patch to install section: we need this patch in the source
|
||||
RPM as well for the plugins, otherwise TW and Leap 15.6 fail to build plugins
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 7 20:21:58 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- fix build for Leap < 15.6
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 7 15:13:59 UTC 2024 - Max Lin <mlin@suse.com>
|
||||
|
||||
- Build orthanc with gcc13 on Leap 15
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 2 11:54:18 UTC 2024 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.12.3
|
||||
* dcmtk.diff added to fix TW build issue
|
||||
* add user/group orthanc
|
||||
* Performance of databases:
|
||||
- At startup, if using a database plugin, displays the latency to access the DB.
|
||||
- Added support for new DB primitives to enable the "READ COMMITTED"
|
||||
transaction mode in the PostgreSQL plugin.
|
||||
* API version upgraded to 23
|
||||
* Added a 'KeepLabels' option in /modify routes (default = false)
|
||||
* Upgraded dependencies for static builds:
|
||||
- boost 1.84.0
|
||||
- curl 8.5.0
|
||||
- dcmtk 3.6.8
|
||||
- jsoncpp 1.9.5
|
||||
- libjpeg 9f
|
||||
- libpng 1.6.40
|
||||
- openssl 3.1.4
|
||||
- pugixml 1.14
|
||||
- zlib 1.3.1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 21 09:13:15 UTC 2023 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.12.2 - see NEWS for full changelog
|
||||
libboost.diff removed (included in source)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 18 14:13:12 UTC 2023 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- libboost.diff to fix build error with boost 1.84
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 5 17:24:07 UTC 2023 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.12.1
|
||||
* Orthanc now anonymizes according to Basic Profile of PS 3.15-2023b Table E.1-1
|
||||
* Added metrics:
|
||||
- "orthanc_storage_read_bytes"
|
||||
- "orthanc_storage_written_bytes"
|
||||
- "orthanc_memory_trimming_duration_ms"
|
||||
|
||||
* API version upgraded to 21
|
||||
* "/tools/create-dicom" can now be used to create Encapsulated 3D
|
||||
Manufacturing Model IODs (MTL, OBJ, or STL)
|
||||
* Added a route to delete the output of an asynchronous job (right now
|
||||
only for archive jobs): e.g. DELETE /jobs/../archive
|
||||
|
||||
* Added "OrthancPluginLoadDicomInstance()" to load DICOM instances from the database
|
||||
* Added "OrthancPluginSetMetricsIntegerValue()" to track metrics with integer values
|
||||
|
||||
* Fix decoding of YBR_FULL RLE images for which the "Planar Configuration"
|
||||
tag (0028,0006) equals 1
|
||||
* Made Orthanc more resilient to common spelling errors in SpecificCharacterSet
|
||||
* Modality worklists plugin: Allow searching on private tags (exact match only)
|
||||
* Fix orphan files remaining in storage when working with MaximumStorageSize
|
||||
(https://discourse.orthanc-server.org/t/issue-with-deleting-incoming-dicoms-when-maximumstoragesize-is-reached/3510)
|
||||
* When deleting a resource, the "LastUpdate" metadata of its parents are now updated
|
||||
* Reduced the memory usage when downloading archives when "ZipLoaderThreads" > 0
|
||||
* Metrics can be stored either as floating-point numbers, or as integers
|
||||
* Reduce the frequency of memory trimming from 100ms to 30s to avoid high idle
|
||||
CPU load (https://discourse.orthanc-server.org/t/onchange-callbacks-and-cpu-loads/3534).
|
||||
* Upgraded dependencies for static builds:
|
||||
- boost 1.82.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 16 19:52:25 UTC 2023 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.12.0
|
||||
* Support for labels associated with patients, studies, series, and instances
|
||||
* Added a sample plugin bringing multitenant DICOM support through labels
|
||||
* Many other fixes and improvements, see NEWS
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 14 17:08:47 UTC 2023 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.11.3
|
||||
* cmake.diff removed (included in source)
|
||||
* install_cmd.diff removed (included in source)
|
||||
* Many improvements, for detailed log see NEWS
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 25 10:13:39 UTC 2022 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Build fixed for new plugins
|
||||
cmake.diff added
|
||||
install_cmd.diff added
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 27 10:52:42 UTC 2022 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.11.2
|
||||
* Added support for RGBA64 images in tools/create-dicom and /preview
|
||||
* New configuration "MaximumStorageMode" to choose between recyling of
|
||||
old patients (default behavior) and rejection of new incoming data when
|
||||
the MaximumStorageSize has been reached.
|
||||
* New sample plugin: "DelayedDeletion" that will delete files from disk
|
||||
asynchronously to speed up deletion of large studies.
|
||||
* Lua: new "SetHttpTimeout" function
|
||||
* Lua: new "OnHeartBeat" callback called at regular interval provided that
|
||||
you have configured "LuaHeartBeatPeriod" > 0.
|
||||
* "ExtraMainDicomTags" configuration now accepts Dicom Sequences. Sequences are
|
||||
stored in a dedicated new metadata "MainDicomSequences". This should improve
|
||||
DicomWeb QIDO-RS and avoid warnings like "Accessing Dicom tags from storage when
|
||||
accessing series : 0040,0275".
|
||||
Main dicom sequences can now be returned in "MainDicomTags" and in "RequestedTags".
|
||||
|
||||
* Fix the "Never" option of the "StorageAccessOnFind" that was sill accessing
|
||||
files (bug introduced in 1.11.0).
|
||||
* Fix the Storage Cache for compressed files (bug introduced in 1.11.1).
|
||||
* Fix the storage cache that was not used by the Plugin SDK. This fixes the
|
||||
DicomWeb plugin "/rendered" route performance issues.
|
||||
|
||||
* DelayedDeletion plugin: Fix leaking of symbols
|
||||
* SQLite now closes and deletes WAL and SHM files on exit. This should improve
|
||||
handling of SQLite DB over network drives.
|
||||
* Fix static compilation of boost 1.69 on Ubuntu 22.04
|
||||
* Upgraded dependencies for static builds:
|
||||
- boost 1.80.0
|
||||
- dcmtk 3.6.7 (fixes CVE-2022-2119 and CVE-2022-2120)
|
||||
- openssl 3.0.5
|
||||
* Housekeeper plugin: Fix resume of previous processing
|
||||
* Added missing MOVEPatientRootQueryRetrieveInformationModel in
|
||||
DicomControlUserConnection::SetupPresentationContexts()
|
||||
* Improved HttpClient error logging (add method + url)
|
||||
|
||||
* API version upgraded to 18
|
||||
* /system is now reporting "DatabaseServerIdentifier"
|
||||
* Added an Asynchronous mode to /modalities/../move.
|
||||
* "RequestedTags" option can now include DICOM sequences.
|
||||
|
||||
* New function in the SDK: "OrthancPluginGetDatabaseServerIdentifier"
|
||||
|
||||
* DicomMap::ParseMainDicomTags has been deprecated -> retrieve "full" tags
|
||||
and use DicomMap::FromDicomAsJson instead
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 10 19:36:27 UTC 2022 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.11.0
|
||||
* new API version 1.7
|
||||
* new configuration parameter
|
||||
* for detailed changelog see NEWS
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 6 13:35:07 UTC 2022 - Marcus Meissner <meissner@suse.com>
|
||||
|
||||
- switched source urls to https
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 25 20:11:18 UTC 2022 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.10.1
|
||||
* for detailed changelog see NEWS
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 13 13:27:12 UTC 2021 - Johannes Segitz <jsegitz@suse.com>
|
||||
|
||||
- Added hardening to systemd service(s) (bsc#1181400). Modified:
|
||||
* orthanc.service
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 26 20:02:08 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Test for SharedLibrary.Basic disabled (fails with new glibc)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 1 07:27:28 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.9.7
|
||||
* New configuration option "DicomAlwaysAllowMove" to disable verification of
|
||||
the remote modality in C-MOVE SCP
|
||||
* API version upgraded to 15
|
||||
* Added "Level" option to POST /tools/bulk-modify
|
||||
* Added missing OpenAPI documentation of "KeepSource" in ".../modify" and ".../anonymize"
|
||||
* Added file CITATION.cff
|
||||
* Linux Standard Base (LSB) builds of Orthanc can load non-LSB builds of plugins
|
||||
* Fix upload of ZIP archives containing a DICOMDIR file
|
||||
* Fix computation of the estimated time of arrival in jobs
|
||||
* Support detection of windowing and rescale in Philips multiframe images
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 22 13:34:16 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.9.6
|
||||
* In lookup and query/retrieve, possibility to provide a specific study date
|
||||
* Clicking on "Send to remote modality" displays the job information to monitor progress
|
||||
* Fix orphaned attachments if bad revision number is provided
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 19 06:00:06 UTC 2021 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Remove executable bits from Python scripts when creating the source
|
||||
tree for the -source package to stop it requiring /usr/bin/python
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jul 11 11:16:07 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.9.5
|
||||
* Anonymization is applied recursively to nested tags
|
||||
* API version upgraded to 14
|
||||
* Added "Short", "Simplify" and/or "Full" options to control the format of DICOM tags in:
|
||||
- POST /modalities/{id}/find-worklist
|
||||
- POST /queries/{id}/answers/{index}/retrieve
|
||||
- POST /queries/{id}/retrieve
|
||||
* Fix broken "Do lookup" button in Orthanc Explorer
|
||||
* Error code and description of jobs are now saved into the Orthanc database
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 24 12:42:18 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.9.4
|
||||
* Orthanc now anonymizes according to Basic Profile of PS 3.15-2021b Table E.1-1
|
||||
* New configuration options:
|
||||
- "ExternalDictionaries" to load external DICOM dictionaries (useful for DICONDE)
|
||||
- "SynchronousZipStream" to disable streaming of ZIP
|
||||
* Orthanc Explorer supports the DICONDE dictionary
|
||||
* API version upgraded to 13
|
||||
* New routes to handle groups of multiple, unrelated DICOM resources at once:
|
||||
- "/tools/bulk-anonymize" to anonymize a set of resources
|
||||
- "/tools/bulk-content" to get the content of a set of resources
|
||||
- "/tools/bulk-delete" to delete a set of resources
|
||||
- "/tools/bulk-modify" to modify a set of resources
|
||||
* ZIP archive/media generated in synchronous mode are now streamed by default
|
||||
* "Replace" tags in "/modify" and "/anonymize" now supports value representation AT
|
||||
* "/jobs/..." has new field "ErrorDetails" to help identify the cause of an error
|
||||
* "Replace", "Keep" and "Remove" in "/modify" and "/anonymize" accept paths to subsequences
|
||||
using the syntax of the dcmodify command-line tool (wildcards are supported as well)
|
||||
* Added "short", "simplify" and/or "full" options to control the format of DICOM tags in:
|
||||
- GET /patients, GET /studies, GET /series, GET /instances (together with "&expand")
|
||||
- GET /patients/{id}, GET /studies/{id}, GET /series/{id}, GET /instances/{id}
|
||||
- GET /patients/{id}/studies, GET /patients/{id}/series, GET /patients/{id}/instances
|
||||
- GET /studies/{id}/patient, GET /studies/{id}/series, GET /studies/{id}/instances
|
||||
- GET /series/{id}/patient, GET /series/{id}/study, GET /series/{id}/instances
|
||||
- GET /instances/{id}/patient, GET /instances/{id}/study, GET /instances/{id}/series
|
||||
- GET /patients/{id}/instances-tags, GET /patients/{id}/shared-tags
|
||||
- GET /studies/{id}/instances-tags, GET /series/{id}/shared-tags
|
||||
- GET /series/{id}/instances-tags, GET /studies/{id}/shared-tags
|
||||
- GET /patients/{id}/module, GET /patients/{id}/patient-module
|
||||
- GET /series/{id}/module, GET /studies/{id}/module, GET /instances/{id}/module
|
||||
- POST /tools/find
|
||||
* "/studies/{id}/split" accepts "Instances" parameter to split instances instead of series
|
||||
* "/studies/{id}/merge" accepts instances inside its "Resources" parameter
|
||||
* Full support of hierarchical relationships in tags whose VR is UI during anonymization
|
||||
* C-MOVE SCP: added possible DIMSE status "Sub-operations Complete - One or more Failures"
|
||||
* Fix issue #146 (Update Anonyization to 2019c) - was actually updated to 2021b
|
||||
* Upgraded dependencies for static builds (notably on Windows):
|
||||
- curl 7.77.0
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun May 9 09:54:25 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.9.3
|
||||
* New configuration option: "DicomTlsRemoteCertificateRequired" to allow secure DICOM TLS
|
||||
connections without certificate
|
||||
* "ETag" headers for metadata and attachments now allow strong comparison (MD5 is included)
|
||||
* New CMake option: "ORTHANC_LUA_VERSION" to use a specific version of system-wide Lua
|
||||
* Fix the lifetime of temporary files associated with jobs that create ZIP archive/media:
|
||||
- In synchronous mode, their number could grow up to "JobsHistorySize" in Orthanc <= 1.9.2
|
||||
- In asynchronous mode, the temporary files are removed as soon as their job gets canceled
|
||||
* Fix regression in the handling of "DicomCheckModalityHost" configuration option
|
||||
introduced by changeset 4182 in Orthanc 1.7.4
|
||||
* Reduced memory consumption of "OrthancPluginHttpClient()", "OrthancPluginHttpClient2()" and
|
||||
"OrthancPluginCallPeerApi()" on POST/PUT if chunked transfer is disabled
|
||||
* Fix issue #195 (No need for BulkDataURI when Data Element is empty)
|
||||
|
||||
- from version 1.9.2:
|
||||
* New configuration options related to multiple readers/writers:
|
||||
- "DatabaseServerIdentifier" identifies the server in the DB among a pool of Orthanc servers
|
||||
- "CheckRevisions" to protect against concurrent modifications of metadata and attachments
|
||||
* API version upgraded to 12
|
||||
* "/system" reports the value of the "CheckRevisions" global option
|
||||
* "/.../{id}/metadata/{name}" and "/.../{id}/attachments/{name}/..." URIs handle the
|
||||
HTTP headers "If-Match", "If-None-Match" and "ETag" to cope with revisions
|
||||
* New function in the SDK: OrthancPluginCallRestApi()
|
||||
* Full refactoring of the database plugin SDK to handle multiple readers/writers,
|
||||
which notably implies the handling of retries in the case of collisions
|
||||
* Use the local timezone for query/retrieve in the Orthanc Explorer interface (was UTC before)
|
||||
* Fix "OrthancServer/Resources/Samples/Python/Replicate.py" for Python 3.x
|
||||
* Fix issue #83 (ServerIndex shall implement retries for DB temporary errors)
|
||||
* Upgraded dependencies for static builds (notably on Windows and LSB):
|
||||
- civetweb 1.14
|
||||
- openssl 1.1.1k
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 25 20:31:58 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.9.1
|
||||
* The "dicom-as-json" attachments are not explicitly stored anymore to improve performance
|
||||
* If the storage area doesn't support range reading, or if "StorageCompression"
|
||||
is enabled, a new type of attachment "dicom-until-pixel-data" is generated
|
||||
* New metadata automatically computed at the instance level: "PixelDataOffset"
|
||||
* New configuration option related to networking:
|
||||
- "Timeout" in "DicomModalities" to set DICOM SCU timeout on a per-modality basis
|
||||
- "Timeout" in "OrthancPeers" to set HTTP client timeout on a per-peer basis
|
||||
* API version upgraded to 11
|
||||
* BREAKING CHANGES:
|
||||
- External applications should not call "/instances/.../attachments/dicom-as-json" anymore,
|
||||
and should use "/instances/.../tags" instead
|
||||
- "/instances/.../tags" route does not report the tags after "Pixel Data" (7fe0,0010) anymore
|
||||
* "/peers/{id}/store-straight": Synchronously send the DICOM instance in POST body to the peer
|
||||
* New arguments in the REST API:
|
||||
- "Timeout" in "/modalities/.../query"
|
||||
- "Timeout" in "/modalities/.../storage-commitment"
|
||||
- "Timeout" in "/queries/.../answers/.../query-{studies|series|instances}"
|
||||
* New value in enumeration: OrthancPluginDicomToJsonFlags_StopAfterPixelData
|
||||
* New value in enumeration: OrthancPluginDicomToJsonFlags_SkipGroupLengths
|
||||
* Improved precision of floating-point numbers in DICOM-as-JSON and DICOM summary
|
||||
* Optimization in C-STORE SCP by avoiding an unnecessary DICOM parsing
|
||||
* Fix build on big-endian architectures
|
||||
* Handle public tags with "UN" value representation and containing a string (cf. DICOM CP 246)
|
||||
* The numbering of sequences in Orthanc Explorer now uses the DICOM convention (starts at 1)
|
||||
* Possibility to generate a static library containing the Orthanc Framework
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 29 16:58:24 UTC 2021 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.9.0
|
||||
* Support of DICOM TLS
|
||||
* New configuration options related to DICOM networking:
|
||||
- "DicomTlsEnabled" to enable DICOM TLS in Orthanc SCP
|
||||
- "DicomTlsCertificate" to provide the TLS certificate to be used in both Orthanc SCU and SCP
|
||||
- "DicomTlsPrivateKey" to provide the private key of the TLS certificate
|
||||
- "DicomTlsTrustedCertificates" to provide the list of TLS certificates to be trusted by Orthanc
|
||||
- "UseDicomTls" in "DicomModalities" to enable DICOM TLS in outgoing SCU on a per-modality basis
|
||||
- "MaximumPduLength" to tune the maximum PDU length (Protocol Data Unit)
|
||||
- "LocalAet" in "DicomModalities" to overwrite global "DicomAet" for SCU on a per-modality basis
|
||||
- "AcceptedTransferSyntaxes" to set the transfer syntax UIDs accepted by Orthanc C-STORE SCP
|
||||
- "H265TransferSyntaxAccepted" to enable/disable all the transfer syntaxes related to H.265
|
||||
- "DicomAlwaysAllowFind" to disable verification of the remote modality in C-FIND SCP
|
||||
- "DicomAlwaysAllowGet" to disable verification of the remote modality in C-GET SCP
|
||||
* New configuration option: "DicomScuPreferredTransferSyntax" to control transcoding in C-STORE SCU
|
||||
* New command-line option: "--openapi" to write the OpenAPI documentation of the REST API to a file
|
||||
* New metadata automatically computed at the series level: "RemoteAET"
|
||||
* The DICOM meta-header and the transfer syntax are displayed at the "Instance" level
|
||||
* API version upgraded to 10
|
||||
* "/tools/accepted-transfer-syntaxes": Get/set transfer syntaxes accepted by Orthanc C-STORE SCP
|
||||
* "/tools/unknown-sop-class-accepted": Get/set whether C-STORE SCP accepts unknown SOP class UID
|
||||
* "/modalities/{...}/query": New string argument "LocalAet"
|
||||
* "/tools/create-dicom": New flag "Force" to bypass consistency checks for the DICOM tags
|
||||
* BREAKING CHANGE: All the Lua callbacks "IsXXXTransferSyntaxAccepted()" and
|
||||
"IsUnknownSopClassAccepted()" have been removed
|
||||
* New functions in the SDK:
|
||||
- OrthancPluginCreateMemoryBuffer64()
|
||||
- OrthancPluginRegisterStorageArea2()
|
||||
- OrthancPluginCreateDicom2()
|
||||
* Refactoring and improvements to the cache of DICOM files (it can now hold many files)
|
||||
* New Prometheus metrics "orthanc_dicom_cache_count" and "orthanc_dicom_cache_size"
|
||||
* Fix upload of multiple DICOM files using one single POST call to "multipart/form-data"
|
||||
Could be the final resolution of issue #21 (DICOM files missing after uploading with Firefox)
|
||||
* Partial fix of issue #48 (Windows service not stopped properly), cf. comments 4 and 5
|
||||
* Explicitly use little-endian to encode uncompressed file size with zlib compression
|
||||
* Upgraded dependencies for static builds (notably on Windows):
|
||||
- dcmtk 3.6.6
|
||||
- jsoncpp 1.9.4
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 30 13:15:11 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Workaround for boo#1180359
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 19 12:53:48 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.8.2
|
||||
* ZIP archives containing DICOM files can be uploaded using WebDAV
|
||||
* New config option "MallocArenaMax" to control memory usage on GNU/Linux
|
||||
* Explicit error log if trying to load a 32bit (resp. 64bit) plugin into
|
||||
a 64bit (resp. 32bit) version of Orthanc
|
||||
* New configuration options contributed by Varian Medical Systems:
|
||||
- "DeidentifyLogs" to remove patient identification from the logs (C-GET, C-MOVE, C-FIND)
|
||||
- "DeidentifyLogsDicomVersion" to specify the deidentification rules for the logs
|
||||
- "OrthancExplorerEnabled" to enable/disable the Orthanc Explorer Web user interface
|
||||
- "SslMinimumProtocolVersion" to set the minimal SSL protocol version (now defaults to SSL 1.2)
|
||||
- "SslCiphersAccepted" to set the accepted ciphers over SSL (now defaults to FIPS 140-2)
|
||||
* New configuration options related to ingest transcoding:
|
||||
- "IngestTranscodingOfUncompressed" to control whether uncompressed transfer syntaxes are transcoded
|
||||
- "IngestTranscodingOfCompressed" to control whether compressed transfer syntaxes are transcoded
|
||||
* "/instances" can be used to import ZIP archives provided in the POST body
|
||||
* Allow concurrency on the OrthancPluginRegisterIncomingHttpRequestFilter() callbacks
|
||||
* Allow empty request body in "/modalities/{id}/echo"
|
||||
* If meta-header is missing, best-effort to extract "TransferSyntax" in "/instances/{id}/metadata"
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 8 06:35:51 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.8.1
|
||||
* adaption to new systemd-macros (OBS)
|
||||
* New sample tool "OrthancImport.py" to easily import compressed archives (ZIP) into Orthanc
|
||||
* Logging categories (cf. command-line options starting with "--verbose-" and "--trace=")
|
||||
* New command-line option "--trace-dicom" to access full debug information from DCMTK
|
||||
* New config option "DicomEchoChecksFind" to automatically complement C-GET SCU with C-FIND SCU
|
||||
* API version upgraded to 9
|
||||
* "/tools/dicom-echo": Execute C-Echo SCU to a modality that is not registered in "/modalities"
|
||||
* "/tools/log-level-*": Dynamically access and/or change the verbosity of logging categories
|
||||
* "/peers/{id}/configuration": Get the configuration of one peer (cf. "/peers?expand")
|
||||
* "/modalities/{id}/configuration": Get the configuration of one modality (cf. "/modalities?expand")
|
||||
* "/tools/dicom-echo" and "/modalities/{id}/echo" now accept the field "CheckFind" in their JSON
|
||||
body to complement C-GET SCU with C-FIND SCU ("DicomEchoChecksFind" on a per-connection basis)
|
||||
* Archive/media jobs report the size of the created ZIP file in content field "ArchiveSizeMB"
|
||||
* New function in the SDK: OrthancPluginGenerateRestApiAuthorizationToken()
|
||||
* C-GET SCP: Fix responses and handling of cancel
|
||||
* Fix decoding sequence if "BuiltinDecoderTranscoderOrder" is "Before"
|
||||
* Fix keep-alive in the embedded HTTP server by setting the "Keep-Alive" HTTP header
|
||||
* Fix access to videos as a single raw frame (feature broken since Orthanc 1.6.0)
|
||||
* REST API now returns 404 error if deleting an inexistent peer or modality
|
||||
* Improved forward ABI compatibility of Orthanc Framework (notably, no inline methods anymore)
|
||||
* Upgraded dependencies for static builds (notably on Windows and LSB):
|
||||
- civetweb 1.13
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 16 10:46:46 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.8.0
|
||||
* Serving the content of Orthanc as a WebDAV network share
|
||||
* New config options: "WebDavEnabled", "WebDavDeleteAllowed" and "WebDavUploadAllowed"
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 18 14:50:14 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.7.4
|
||||
* New configuration options to enable HTTP peers identification through certificates:
|
||||
"SslVerifyPeers" and "SslTrustedClientCertificates"
|
||||
* New configuration option "SyncStorageArea" to immediately commit the files onto the disk
|
||||
(through fsync()), so as to avoid discrepencies between DB and filesystem in case of hard
|
||||
shutdown of the machine running Orthanc. This slows down adding new files into Orthanc.
|
||||
* Underscores are now allowed in peers/modalities symbolic names
|
||||
* Fix compatibility with C-MOVE SCU requests issued by Ambra
|
||||
* Fix transcoding in C-MOVE SCP, in the case where "SynchronousCMove" is "true"
|
||||
* When checking DICOM allowed methods, if there are multiple modalities with the same AET,
|
||||
differentiate them from the calling IP
|
||||
* Enable the access to raw frames in Philips ELSCINT1 proprietary compression
|
||||
* Support empty key passwords when using HTTP client certificates
|
||||
* Fix handling of "ModalitiesInStudy" (0008,0061) in C-FIND and "/tools/find"
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 25 09:02:07 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.7.3
|
||||
|
||||
* API version upgraded to 8
|
||||
* "/peers/{id}/store": New option "Compress" to compress DICOM data using gzip
|
||||
* "OrthancPeerStore" jobs now report the transmitted size in their public content
|
||||
* New config option "Worklist.LimitAnswers" for the sample modality worklist plugin
|
||||
* Add missing tag "Retrieve AE Title (0008,0054)" in C-FIND SCP responses
|
||||
* Fix DICOM SCP filters if some query tag has > 256 characters (list of UIDs matching)
|
||||
* "/series/.../ordered-slices" supports spaces in Image Position/Orientation Patient tags
|
||||
* Fix possible crash in HttpClient if sending multipart body (can occur in STOW-RS)
|
||||
* Support receiving multipart messages larger than 2GB in the embedded HTTP server
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 2 15:19:18 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.7.2
|
||||
* C-FIND SCP now returns private tags (cf. option "DefaultPrivateCreator")
|
||||
* Packaging of the Orthanc framework as a shared library
|
||||
* New change types in the SDK: JobSubmitted, JobSuccess, JobFailure
|
||||
* Issue #182: Better reporting of errors in plugins reading chunked HTTP body
|
||||
* Fix issue #183 (C-ECHO always fails in Orthanc Explorer, regression from 1.6.1 to 1.7.0)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 27 14:24:06 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.7.1
|
||||
* Fix decoding of DICOM images for plugins (for compatibility with
|
||||
Orthanc Web Viewer 2.6)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 22 17:22:11 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- new version 1.7.0
|
||||
* Support of DICOM C-GET SCP (contribution by Varian)
|
||||
* DICOM transcoding over the REST API
|
||||
* Transcoding from compressed to uncompressed transfer syntaxes over DICOM
|
||||
C-STORE SCU (if the remote modality doesn't support compressed syntaxes)
|
||||
* New configuration options related to transcoding:
|
||||
"TranscodeDicomProtocol", "BuiltinDecoderTranscoderOrder",
|
||||
"IngestTranscoding" and "DicomLossyTranscodingQuality"
|
||||
* See NEWS for details
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 22 17:59:05 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.6.1
|
||||
sqlitewrapper.patch removed (included in 1.6.1)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 5 07:33:34 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- sqlitewrapper.patch (boo#1167431)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 25 19:08:48 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- various security hardenings (boo#1167431)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 24 19:34:05 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- ConnectivityCheck Plugin enabled in build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 20 13:16:54 UTC 2020 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.6.0
|
||||
bugfixes and improvements (see /usr/share/doc/packages/orthanc/NEWS
|
||||
rpmlintrc for some rpmlint warnings
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 17 09:02:21 UTC 2019 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- for i586, one test disabled (fail due to rounding issues)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 17 00:02:56 UTC 2019 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.5.8
|
||||
* various bugfixes, see NEWS for details
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 13 08:06:42 UTC 2019 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.5.7
|
||||
* Documentation added
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 25 17:30:32 UTC 2019 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.5.5
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 8 16:17:54 UTC 2019 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.5.4
|
||||
civetweb.patch removed
|
||||
various bugfixes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 30 15:55:39 UTC 2019 - axel.braun@gmx.de
|
||||
|
||||
- civetweb.patch added
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 29 19:35:06 UTC 2019 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.5.3
|
||||
* New configuration option: "SaveJobs" to specify whether jobs are stored in the database
|
||||
* Don't return tags whose group is below 0x0008 in C-FIND SCP answers
|
||||
* Fix compatibility with DICOMweb plugin (allow multipart answers over HTTP Keep-Alive)
|
||||
* Fix issue #73 (/modalities/{modalityId}/store raises 500 errors instead of 404)
|
||||
* Fix issue #90 (C-Find shall match missing tags to null/empty string)
|
||||
* Fix issue #119 (/patients/.../archive returns a 500 when JobsHistorySize is 0)
|
||||
* Fix issue #128 (Asynchronous C-MOVE: invalid number of remaining sub-operations)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 22 12:36:58 UTC 2019 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- version 1.5.2
|
||||
temporary fixes for civetweb 1.11 removed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 22 16:41:25 UTC 2018 - Axel Braun <axel.braun@gmx.de>
|
||||
|
||||
- Version 1.5.1
|
||||
Initial OBS build
|
||||
spec file adapted from Fedora project <s.jodogne@gmail.com>
|
31
orthanc.service
Normal file
31
orthanc.service
Normal file
@ -0,0 +1,31 @@
|
||||
[Unit]
|
||||
Description=Orthanc DICOM server
|
||||
Documentation=man:orthanc(1) http://www.orthanc-server.com/
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
# some security settings
|
||||
PrivateTmp=true
|
||||
ProtectSystem=true
|
||||
ProtectHome=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelTunables=true
|
||||
ProtectControlGroups=true
|
||||
MountFlags=private
|
||||
NoNewPrivileges=true
|
||||
PrivateDevices=true
|
||||
# added automatically, for details please see
|
||||
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
||||
ProtectHostname=true
|
||||
ProtectKernelLogs=true
|
||||
RestrictRealtime=true
|
||||
# end of automatic additions
|
||||
MemoryDenyWriteExecute=true
|
||||
|
||||
Type=simple
|
||||
User=orthanc
|
||||
Group=orthanc
|
||||
ExecStart=/usr/sbin/orthanc /etc/orthanc/
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
322
orthanc.spec
Normal file
322
orthanc.spec
Normal file
@ -0,0 +1,322 @@
|
||||
#
|
||||
# spec file for package orthanc
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2019-2024 Dr. Axel Braun
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: orthanc
|
||||
Version: 1.12.5
|
||||
Release: 0
|
||||
Summary: RESTful DICOM server for healthcare and medical research
|
||||
License: GPL-3.0-or-later
|
||||
Group: Productivity/Graphics/Visualization/Other
|
||||
URL: https://www.orthanc-server.com/
|
||||
Source0: https://orthanc.uclouvain.be/downloads/sources/%{name}/Orthanc-%{version}.tar.gz
|
||||
Source1: orthanc.service
|
||||
Source2: orthanc-readme.SUSE
|
||||
Source3: serve-folders.json
|
||||
Source4: worklists.json
|
||||
Source5: index.html
|
||||
Source7: orthanc-rpmlintrc
|
||||
Source8: Configuration.json
|
||||
# Sources for plugin - need a defined version, so taking them from orthanc-server
|
||||
Source10: https://orthanc.uclouvain.be/downloads/third-party-downloads/dicom-web/bootstrap-4.3.1.zip
|
||||
Source11: https://orthanc.uclouvain.be/downloads/third-party-downloads/dicom-web/axios-0.19.0.tar.gz
|
||||
Source12: https://orthanc.uclouvain.be/downloads/third-party-downloads/jquery-3.4.1.min.js
|
||||
Source13: https://orthanc.uclouvain.be/downloads/third-party-downloads/dicom-web/vuejs-2.6.10.tar.gz
|
||||
|
||||
Patch0: dcmtk.diff
|
||||
## Patch1: toolbox.patch
|
||||
# Patch2: boost.patch
|
||||
## Patch3: sha.patch
|
||||
|
||||
BuildRequires: civetweb-devel
|
||||
BuildRequires: cmake >= 2.8.0
|
||||
BuildRequires: curl-devel
|
||||
BuildRequires: dcmtk
|
||||
BuildRequires: dcmtk-devel
|
||||
BuildRequires: doxygen
|
||||
%if 0%{?suse_version} == 1500 && 0%{?sle_version} > 150200
|
||||
BuildRequires: gcc13-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
BuildRequires: googletest-devel
|
||||
BuildRequires: help2man
|
||||
BuildRequires: jsoncpp-devel
|
||||
BuildRequires: libboost_date_time-devel >= 1.66
|
||||
BuildRequires: libboost_filesystem-devel >= 1.66
|
||||
BuildRequires: libboost_iostreams-devel >= 1.66
|
||||
BuildRequires: libboost_locale-devel >= 1.66
|
||||
BuildRequires: libboost_regex-devel >= 1.66
|
||||
BuildRequires: libboost_system-devel >= 1.66
|
||||
BuildRequires: libboost_thread-devel >= 1.66
|
||||
BuildRequires: protobuf-devel
|
||||
#Workaround for boo#1180359
|
||||
BuildRequires: libbz2-devel
|
||||
BuildRequires: libjpeg-devel
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: libtiff-devel
|
||||
BuildRequires: libuuid-devel
|
||||
BuildRequires: libwrap0
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: pugixml-devel
|
||||
BuildRequires: sqlite3-devel
|
||||
BuildRequires: tcpd-devel
|
||||
BuildRequires: unzip
|
||||
#Workaround for boo#1180359
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: pkgconfig(icu-uc)
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(lua5.1)
|
||||
|
||||
Requires: dcmtk
|
||||
Requires(pre): /usr/sbin/groupadd
|
||||
Requires(pre): /usr/sbin/useradd
|
||||
|
||||
Provides: group(orthanc)
|
||||
Provides: user(orthanc)
|
||||
|
||||
%{?systemd_ordering}
|
||||
|
||||
%description
|
||||
Orthanc aims at providing a simple, yet powerful standalone DICOM server.
|
||||
Orthanc can turn any computer running Windows or Linux into a DICOM store
|
||||
(in other words, a mini-PACS system). Its architecture is lightweight,
|
||||
meaning that no complex database administration is required, nor the
|
||||
installation of third-party dependencies. What makes Orthanc unique
|
||||
is the fact that it provides a RESTful API. Thanks to this major
|
||||
feature, it is possible to drive Orthanc from any computer language.
|
||||
|
||||
The DICOM tags of the stored medical images can be downloaded in the
|
||||
JSON file format. Furthermore, standard PNG images can be generated
|
||||
on-the-fly from the DICOM instances by Orthanc. Orthanc lets its
|
||||
users focus on the content of the DICOM files, hiding the complexity
|
||||
of the DICOM format and of the DICOM protocol.
|
||||
|
||||
%package -n %{name}-devel
|
||||
Summary: Header and source files for creating Orthanc plugins
|
||||
Group: Development/Libraries/C and C++
|
||||
Provides: orthanc-static = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{name}-devel
|
||||
This package includes the header files to develop C/C++ plugins for Orthanc.
|
||||
|
||||
%package -n %{name}-doc
|
||||
Summary: Documentation files for Orthanc
|
||||
Group: Productivity/Graphics/Visualization/Other
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n %{name}-doc
|
||||
This package includes the documentation and the sample codes available
|
||||
for Orthanc.
|
||||
It also includes the Python and LUA Scripts, and the documentation to develop
|
||||
C/C++ plugins for Orthanc.
|
||||
|
||||
%package source
|
||||
Summary: This package includes the source files for Orthanc
|
||||
Group: Development/Sources
|
||||
# DcmtkConfiguration.cmake looks for dicom.dic
|
||||
Requires: dcmtk
|
||||
BuildArch: noarch
|
||||
|
||||
%description source
|
||||
This package includes the source files for Orthanc. Use it in conjunction with the -devel package
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n Orthanc-%{version}
|
||||
|
||||
cp %{S:1} %{S:2} .
|
||||
|
||||
#slight change in standard configuration for OrthancStorage
|
||||
cp %{S:8} OrthancServer/Resources/.
|
||||
|
||||
#OrthancPlugins may ask for additional files to be loaded
|
||||
#Putting them into this folder prevents download of sources from the web
|
||||
mkdir -p OrthancServer/ThirdPartyDownloads
|
||||
cp %{S:10} %{S:11} %{S:12} %{S:13} OrthancServer/ThirdPartyDownloads/.
|
||||
|
||||
%build
|
||||
%if 0%{?suse_version} == 1500 && 0%{?sle_version} > 150200
|
||||
export CC=gcc-13
|
||||
export CXX=g++-13
|
||||
%endif
|
||||
%cmake ../OrthancServer \
|
||||
-DSTANDALONE_BUILD:BOOL=ON \
|
||||
-DSTATIC_BUILD:BOOL=OFF \
|
||||
-DENABLE_CIVETWEB=ON \
|
||||
-DORTHANC_UNIT_TESTS_LINK_FRAMEWORK=OFF \
|
||||
-DUSE_SYSTEM_MONGOOSE=OFF \
|
||||
-DSYSTEM_MONGOOSE_USE_CA/var/tmp/build-root/openSUSE_Tumbleweed-x86_64LLBACKS=OFF \
|
||||
-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=OFF \
|
||||
-DBoost_NO_BOOST_CMAKE=ON
|
||||
|
||||
%cmake_build %{?_smp_mflags}
|
||||
|
||||
# Generate the man page
|
||||
help2man ./Orthanc -N -n "Lightweight, RESTful DICOM server for healthcare and medical research" > %{name}.1
|
||||
|
||||
%check
|
||||
# we disable one test for i586
|
||||
%ifarch != ix86
|
||||
build/UnitTests
|
||||
%else
|
||||
build/UnitTests --gtest_filter=-ImageProcessing.Convolution --gtest_filter=-Version.CivetwebCompression --gtest_filter=-SharedLibrary.Basic
|
||||
%endif
|
||||
|
||||
%install
|
||||
# install: make some dirs...
|
||||
mkdir -p -m 755 %{buildroot}
|
||||
mkdir -p -m 755 %{buildroot}%{_sysconfdir}/%{name}
|
||||
mkdir -p -m 755 %{buildroot}%{_unitdir}
|
||||
mkdir -p -m 755 %{buildroot}%{_initddir}
|
||||
mkdir -p -m 755 %{buildroot}%{_bindir}
|
||||
mkdir -p -m 755 %{buildroot}%{_sbindir}
|
||||
mkdir -p -m 755 %{buildroot}%{_libdir}
|
||||
mkdir -p -m 755 %{buildroot}%{_mandir}
|
||||
mkdir -p -m 755 %{buildroot}%{_docdir}/%{name}
|
||||
|
||||
##setup source directory
|
||||
mkdir -p -m 755 %{buildroot}/usr/src/%{name}
|
||||
# Copy sources
|
||||
tar --strip-components 1 -xzf %{S:0} -C %{buildroot}/usr/src/%{name}/
|
||||
|
||||
#Apply dcmtk patch
|
||||
patch %{buildroot}/usr/src/%{name}/OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake < %{P:0}
|
||||
|
||||
#Apply remaining patches to source tree
|
||||
## patch -p1 -d %{buildroot}/usr/src/%{name} < %{P:1}
|
||||
## patch -p1 -d %{buildroot}/usr/src/%{name} < %{P:2}
|
||||
## patch -p1 -d %{buildroot}/usr/src/%{name} < %{P:3}
|
||||
|
||||
# Do not mark Python scripts as executable
|
||||
find %{buildroot}/usr/src/%{name} -name '*.py' -exec chmod a-x "{}" +
|
||||
#...and delete dot files
|
||||
rm %{buildroot}/usr/src/%{name}/.[!.]*
|
||||
|
||||
# and patched files
|
||||
find %{buildroot}/usr/src/%{name} -iname *.orig -type f -print | xargs /bin/rm -f
|
||||
|
||||
%cmake_install
|
||||
|
||||
##move the doc into
|
||||
cp -r %{buildroot}/usr/share/doc/%{name}/* %{buildroot}%{_docdir}/%{name}/.
|
||||
rm -rf %{buildroot}/usr/share/doc/%{name}
|
||||
|
||||
install -m 755 -d %{buildroot}%{_mandir}/man1
|
||||
cp build/%{name}.1 %{buildroot}%{_mandir}/man1
|
||||
|
||||
install -m 755 -d %{buildroot}%{_sysconfdir}/%{name}
|
||||
cp %{S:3} %{buildroot}%{_sysconfdir}/%{name}
|
||||
cp %{S:4} %{buildroot}%{_sysconfdir}/%{name}
|
||||
cp %{S:8} %{buildroot}%{_sysconfdir}/%{name}
|
||||
|
||||
install -m 755 -d %{buildroot}%{_unitdir}
|
||||
cp orthanc.service %{buildroot}%{_unitdir}
|
||||
|
||||
install -m 755 -d %{buildroot}%{_sharedstatedir}/%{name}/db-v6
|
||||
|
||||
# Move the plugins from "/usr/lib64/" to "/usr/lib64/orthanc", and
|
||||
# remove the symbolic links generated by CMake
|
||||
mkdir -p %{buildroot}%{_libdir}/%{name}
|
||||
mv build/*.so.%{version} %{buildroot}%{_libdir}/%{name}
|
||||
# libs since version 1.11.1 dont install in /usr/lib anymore, we need a workaround:
|
||||
cp %{buildroot}%{_prefix}/share/%{name}/plugins/libConnectivityChecks.so.%{version} %{buildroot}%{_libdir}/%{name}
|
||||
cp %{buildroot}%{_prefix}/share/%{name}/plugins/libDelayedDeletion.so.%{version} %{buildroot}%{_libdir}/%{name}
|
||||
|
||||
rm build/*.so
|
||||
|
||||
# move the executables to stay consistent
|
||||
mv %{buildroot}%{_bindir}/OrthancRecoverCompressedFile %{buildroot}%{_bindir}/orthancRecoverCompressedFile
|
||||
mv %{buildroot}%{_sbindir}/Orthanc %{buildroot}%{_sbindir}/orthanc
|
||||
|
||||
# Create symbolic links to plugins in "/usr/share/orthanc/plugins"
|
||||
# We stick to the "relative symlinks" section of the guideline
|
||||
|
||||
rm %{buildroot}%{_prefix}/share/%{name}/plugins/*.so*
|
||||
|
||||
ln -s ../../../..%{_libdir}/%{name}/libConnectivityChecks.so.%{version} \
|
||||
%{buildroot}%{_prefix}/share/%{name}/plugins/libConnectivityChecks.so
|
||||
ln -s ../../../..%{_libdir}/%{name}/libDelayedDeletion.so.%{version} \
|
||||
%{buildroot}%{_prefix}/share/%{name}/plugins/libDelayedDeletion.so
|
||||
|
||||
ln -s ../../../..%{_libdir}/%{name}/libServeFolders.so.%{version} \
|
||||
%{buildroot}%{_prefix}/share/%{name}/plugins/libServeFolders.so
|
||||
ln -s ../../../..%{_libdir}/%{name}/libModalityWorklists.so.%{version} \
|
||||
%{buildroot}%{_prefix}/share/%{name}/plugins/libModalityWorklists.so
|
||||
|
||||
# Prepare documentation: "index.html", Doxygen of plugin SDK, and sample codes
|
||||
cp -r %{S:5} %{buildroot}%{_docdir}/%{name}/
|
||||
cp -r OrthancServer/Resources/Samples/ %{buildroot}%{_docdir}/%{name}/Samples
|
||||
cp -r OrthancServer/Plugins/Samples/ %{buildroot}%{_docdir}/%{name}/OrthancPluginSamples
|
||||
|
||||
echo 'ldconfig -v | grep libcrypto.so'
|
||||
|
||||
%pre
|
||||
getent group orthanc >/dev/null || groupadd -r orthanc
|
||||
getent passwd orthanc >/dev/null || \
|
||||
useradd -r -g orthanc -G orthanc -d %{_sharedstatedir}/orthanc -s /sbin/nologin \
|
||||
-c "User account that holds information for Orthanc" orthanc
|
||||
|
||||
%service_add_pre orthanc.service
|
||||
|
||||
%preun
|
||||
%service_del_preun orthanc.service
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
%service_add_post orthanc.service
|
||||
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
%service_del_postun orthanc.service
|
||||
|
||||
%files
|
||||
%doc AUTHORS NEWS README TODO orthanc-readme.SUSE
|
||||
%license COPYING
|
||||
%{_mandir}/man1/orthanc.1*
|
||||
%{_bindir}/orthancRecoverCompressedFile
|
||||
%{_sbindir}/orthanc
|
||||
%{_unitdir}/orthanc.service
|
||||
%{_libdir}/orthanc/*.so.%{version}
|
||||
%{_prefix}/share/orthanc/plugins/*.so*
|
||||
%dir %attr(0755, orthanc, orthanc) %{_sysconfdir}/orthanc
|
||||
%dir %{_libdir}/orthanc
|
||||
%dir %{_prefix}/share/orthanc
|
||||
%dir %{_prefix}/share/orthanc/plugins
|
||||
%defattr(0750, orthanc , orthanc)
|
||||
%config(noreplace) %{_sysconfdir}/orthanc/*.json
|
||||
%dir %attr(0755, orthanc, orthanc) %{_sharedstatedir}/orthanc
|
||||
%dir %attr(0755, orthanc, orthanc) %{_sharedstatedir}/orthanc/db-v6
|
||||
|
||||
%files -n orthanc-devel
|
||||
%dir %{_includedir}/orthanc
|
||||
%{_includedir}/orthanc/*
|
||||
|
||||
%files -n orthanc-doc
|
||||
%{_docdir}/orthanc/index.html
|
||||
%{_docdir}/orthanc/Orthanc*
|
||||
%{_docdir}/orthanc/Samples/*
|
||||
%dir %attr(0755, orthanc, orthanc) %{_docdir}/orthanc/Samples
|
||||
|
||||
%files source
|
||||
%defattr(-,root,root)
|
||||
%dir /usr/src/%{name}
|
||||
/usr/src/%{name}/*
|
||||
|
||||
%changelog
|
15
serve-folders.json
Normal file
15
serve-folders.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
/**
|
||||
* Configuration of the ServeFolders plugin, that can be used to
|
||||
* serve additional folders through the embedded Web server of
|
||||
* Orthanc. This is especially useful to avoid problems related to
|
||||
* the same-origin policy when developing Web applications in
|
||||
* JavaScript on the top of the REST API of Orthanc.
|
||||
*
|
||||
* The commented example would serve the documentation of the plugin
|
||||
* SDK at the URL http://localhost:8042/doc/index.html
|
||||
**/
|
||||
"ServeFolders" : {
|
||||
// "/doc" : "/usr/share/doc/orthanc/"
|
||||
}
|
||||
}
|
20
sha.patch
Normal file
20
sha.patch
Normal file
@ -0,0 +1,20 @@
|
||||
# HG changeset patch
|
||||
# User Alain Mazy <am@orthanc.team>
|
||||
# Date 1727274964 -7200
|
||||
# Node ID 122fd5f97d394bbbe46e11b65a7a1294ccf61985
|
||||
# Parent 2b429588de28773d4aa062b3eb78c64663d7cbd2
|
||||
fix
|
||||
|
||||
diff -r 2b429588de28 -r 122fd5f97d39 OrthancFramework/Sources/Toolbox.cpp
|
||||
--- a/OrthancFramework/Sources/Toolbox.cpp Wed Sep 25 16:27:07 2024 +0200
|
||||
+++ b/OrthancFramework/Sources/Toolbox.cpp Wed Sep 25 16:36:04 2024 +0200
|
||||
@@ -837,7 +837,7 @@
|
||||
assert(sizeof(unsigned int) == 4 && sizeof(digest) == (160 / 8));
|
||||
assert(sizeof(boost::uuids::detail::sha1::digest_type) == 20);
|
||||
|
||||
- sha1.get_digest(digest));
|
||||
+ sha1.get_digest(digest);
|
||||
|
||||
result.resize(8 * 5 + 4);
|
||||
sprintf(&result[0], "%08x-%08x-%08x-%08x-%08x",
|
||||
|
27
toolbox.patch
Normal file
27
toolbox.patch
Normal file
@ -0,0 +1,27 @@
|
||||
--- a/OrthancFramework/Sources/Toolbox.cpp Fri Sep 20 16:05:04 2024 +0200
|
||||
+++ b/OrthancFramework/Sources/Toolbox.cpp Tue Sep 24 09:26:42 2024 +0200
|
||||
@@ -801,7 +801,6 @@
|
||||
return result;
|
||||
}
|
||||
|
||||
-
|
||||
void Toolbox::ComputeSHA1(std::string& result,
|
||||
const void* data,
|
||||
size_t size)
|
||||
@@ -814,11 +813,13 @@
|
||||
}
|
||||
|
||||
unsigned int digest[5];
|
||||
-
|
||||
// Sanity check for the memory layout: A SHA-1 digest is 160 bits wide
|
||||
- assert(sizeof(unsigned int) == 4 && sizeof(digest) == (160 / 8));
|
||||
+ assert(sizeof(unsigned int) == 4 && sizeof(digest) == (160 / 8));
|
||||
+ assert(sizeof(boost::uuids::detail::sha1::digest_type) == 20);
|
||||
|
||||
- sha1.get_digest(digest);
|
||||
+ // From Boost 1.86, digest_type is "unsigned char[20]" while it was "unsigned int[5]"" in previous versions.
|
||||
+ // Always perform the cast even if it is useless for Boost < 1.86
|
||||
+ sha1.get_digest(*(reinterpret_cast<boost::uuids::detail::sha1::digest_type*>(digest)));
|
||||
|
||||
result.resize(8 * 5 + 4);
|
||||
sprintf(&result[0], "%08x-%08x-%08x-%08x-%08x",
|
3
vuejs-2.6.10.tar.gz
Normal file
3
vuejs-2.6.10.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e3d900cd9266b5bed9bb6d575fc9ab6787e79e7ad21c01ee1277bff5453121f2
|
||||
size 1576461
|
12
worklists.json
Normal file
12
worklists.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
/**
|
||||
* Configuration of the ModalityWorklists plugin, that can be used
|
||||
* to serve DICOM modality worklists. More information about this
|
||||
* plugin is available in the source distribution at:
|
||||
* https://bitbucket.org/sjodogne/orthanc/src/default/Plugins/Samples/ModalityWorklists/README
|
||||
**/
|
||||
"Worklists" : {
|
||||
"Enable": false,
|
||||
"Database": "/var/lib/orthanc/worklists"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user