.TH "dcmrecv" 1 "Thu Nov 29 2018" "Version 3.6.4" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmrecv \- Simple DICOM storage SCP (receiver) .SH "SYNOPSIS" .PP .PP .nf dcmrecv [options] port .fi .PP .SH "DESCRIPTION" .PP The \fBdcmrecv\fP application implements a Service Class Provider (SCP) for the Storage Service Class\&. In contrast to the well-known \fBstorescp\fP utility, \fBdcmrecv\fP has less options and might, therefore, be easier to use - this also explains the term 'simple' in the title\&. The main purpose of this application is to receive a whole bunch of DICOM datasets from a Storage Service Class User (SCU) and store them to a configurable directory and file structure\&. .SH "PARAMETERS" .PP .PP .nf port tcp/ip port number to listen on .fi .PP .SH "OPTIONS" .PP .SS "general options" .PP .nf -h --help print this help text and exit --version print version information and exit --arguments print expanded command line arguments -q --quiet quiet mode, print no warnings and errors -v --verbose verbose mode, print processing details -d --debug debug mode, print debug information -ll --log-level [l]evel: string constant (fatal, error, warn, info, debug, trace) use level l for the logger -lc --log-config [f]ilename: string use config file f for the logger +v --verbose-pc show presentation contexts in verbose mode .fi .PP .SS "network options" .PP .nf association negotiation profile from configuration file: -xf --config-file [f]ilename, [p]rofile: string use profile p from configuration file f application entity title: -aet --aetitle [a]etitle: string set my AE title (default: DCMRECV) -uca --use-called-aetitle always respond with called AE title other network options: -ta --acse-timeout [s]econds: integer (default: 30) timeout for ACSE messages -td --dimse-timeout [s]econds: integer (default: unlimited) timeout for DIMSE messages -pdu --max-pdu [n]umber of bytes: integer (4096..131072) set max receive pdu to n bytes (default: 16384) -dhl --disable-host-lookup disable hostname lookup .fi .PP .SS "output options" .PP .nf general: -od --output-directory [d]irectory: string (default: ".") write received objects to existing directory d subdirectory generation: -s --no-subdir do not generate any subdirectories (default) +ssd --series-date-subdir generate subdirectories from series date filename generation: +fd --default-filenames generate filename from instance UID (default) +fu --unique-filenames generate unique filename based on new UID +fsu --short-unique-names generate short pseudo-random unique filename +fst --system-time-names generate filename from current system time -fe --filename-extension [e]xtension: string (default: none) append e to all generated filenames storage mode: -B --normal allow implicit format conversions (default) +B --bit-preserving write dataset exactly as received --ignore ignore dataset, receive but do not store it .fi .PP .SH "NOTES" .PP .SS "Typical Usage" A typical use case of \fBdcmrecv\fP is to receive SOP instances that are sent from a storage SCU and save them as DICOM files\&. The following command does exactly this: .PP .PP .nf dcmrecv --verbose --config-file storescp.cfg default .fi .PP .PP If you prefer some automatically created subdirectory structure, shorter file names and the extension '\&.dcm' for all DICOM files, use the following command: .PP .PP .nf dcmrecv -v -xf storescp.cfg default --series-date-subdir --short-unique-names --filename-extension .dcm .fi .PP .PP In case of very large SOP instances or if the dataset should be written exactly as received (e\&.g\&. for debugging purposes), the 'bit preserving mode' could be used: .PP .PP .nf dcmrecv -v -xf storescp.cfg default --bit-preserving .fi .PP .PP The received datasets are always stored as DICOM files with the same Transfer Syntax as used for the network transmission\&. .SS "DICOM Conformance" Basically, the \fBdcmrecv\fP application supports all Storage SOP Classes as an SCP, including private ones\&. This requires, however, that a corresponding association negotiation profile is loaded from a configuration file\&. The format and semantics of this configuration file are documented in \fIasconfig\&.txt\fP\&. .PP By default, that means if no association negotiation profile is loaded, \fBdcmrecv\fP only supports the Verification SOP Class as an SCP (with default transfer syntax, i\&.e\&. Implicit VR Litte Endian)\&. .PP In the future, there might be additional options that allow for specifying the list of supported Presentation Contexts (i\&.e\&. combination of SOP Class and Transfer Syntaxes) directly, i\&.e\&. without loading a configuration file\&. .SS "Subdirectory Generation" The option \fI--series-date-subdir\fP allows for generating subdirectories (below the specified output directory) based on the value of the data element Series Date (0008,0021) from the received DICOM dataset\&. If this value could be retrieved from the dataset and is valid (i\&.e\&. consists of a valid DICOM date field), the subdirectory structure is as follows: .PP .PP .nf /data//// .fi .PP .PP If the Series Date (0008,0021) cannot be retrieved or is invalid, the current system date is used for the following subdirectory structure: .PP .PP .nf /undef// .fi .PP .PP In both cases, consists of 4 decimal digits and as well as of 2 decimal digits\&. .SS "Filename Generation" By default, the filenames for storing the received DICOM datasets are generated according to the following scheme: .PP .PP .nf . .fi .PP .PP If the same SOP instance is received twice, a warning message is reported and the existing file is overwritten\&. .PP The option \fI--unique-filenames\fP makes sure that each received DICOM dataset is stored as a separate file, i\&.e\&. no files should ever be overwritten\&. This is done by using a newly created unique identifier (UID) for each generated filename (and the infix '\&.X' in order to avoid conflicts with real SOP Instance UID values)\&. The naming scheme for this option is as follows: .PP .PP .nf .X. .fi .PP .PP When option \fI--short-unique-names\fP is used, the filenames are generated by some pseudo-random name generator, which also makes sure that there are no conflicts (i\&.e\&. existing files are not overwritten)\&. This is the naming scheme: .PP .PP .nf _ .fi .PP .PP With consisting of 16 digits in hexadecimal notation\&. .PP Finally, option \fI--system-time-names\fP allows for generating filenames based on the current system time: .PP .PP .nf