4 \page storescu DICOM storage (C-STORE) SCU
6 \page storescu storescu: DICOM storage (C-STORE) SCU
9 \section synopsis SYNOPSIS
12 storescu [options] peer port dcmfile-in...
15 \section description DESCRIPTION
17 The \b storescu application implements a Service Class User (SCU) for the
18 Storage Service Class. For each DICOM file on the command line it sends
19 a C-STORE message to a Storage Service Class Provider (SCP) and waits for a
20 response. The application can be used to transmit DICOM images and other
21 DICOM composite objects.
23 \section parameters PARAMETERS
26 peer hostname of DICOM peer
28 port tcp/ip port number of peer
30 dcmfile-in DICOM file or directory to be transmitted
33 \section options OPTIONS
35 \subsection general_options general options
38 print this help text and exit
41 print version information and exit
44 print expanded command line arguments
47 quiet mode, print no warnings and errors
50 verbose mode, print processing details
53 debug mode, print debug information
55 -ll --log-level [l]evel: string constant
56 (fatal, error, warn, info, debug, trace)
57 use level l for the logger
59 -lc --log-config [f]ilename: string
60 use config file f for the logger
63 show presentation contexts in verbose mode
66 \subsection input_options input options
71 read file format or data set (default)
77 read data set without file meta information
81 +sd --scan-directories
82 scan directories for input files (dcmfile-in)
84 +sp --scan-pattern [p]attern: string (only with --scan-directories)
85 pattern for filename matching (wildcards)
87 # possibly not available on all systems
90 do not recurse within directories (default)
93 recurse within specified directories
96 \subsection network_options network options
98 application entity titles:
100 -aet --aetitle [a]etitle: string
101 set my calling AE title (default: STORESCU)
103 -aec --call [a]etitle: string
104 set called AE title of peer (default: ANY-SCP)
106 association negotiation profile from configuration file:
108 -xf --config-file [f]ilename, [p]rofile: string
109 use profile p from config file f
111 proposed transmission transfer syntaxes (not with --config-file):
113 -x= --propose-uncompr
114 propose all uncompressed TS, explicit VR
115 with local byte ordering first (default)
118 propose all uncompressed TS, explicit VR little endian first
121 propose all uncompressed TS, explicit VR big endian first
123 -xi --propose-implicit
124 propose implicit VR little endian TS only
126 -xs --propose-lossless
127 propose default JPEG lossless TS
128 and all uncompressed transfer syntaxes
131 propose default JPEG lossy TS for 8 bit data
132 and all uncompressed transfer syntaxes
135 propose default JPEG lossy TS for 12 bit data
136 and all uncompressed transfer syntaxes
138 -xv --propose-j2k-lossless
139 propose JPEG 2000 lossless TS
140 and all uncompressed transfer syntaxes
142 -xw --propose-j2k-lossy
143 propose JPEG 2000 lossy TS
144 and all uncompressed transfer syntaxes
146 -xt --propose-jls-lossless
147 propose JPEG-LS lossless TS
148 and all uncompressed transfer syntaxes
150 -xu --propose-jls-lossy
151 propose JPEG-LS lossy TS
152 and all uncompressed transfer syntaxes
155 propose MPEG2 Main Profile @ Main Level TS only
157 -xh --propose-mpeg2-high
158 propose MPEG2 Main Profile @ High Level TS only
161 propose RLE lossless TS
162 and all uncompressed transfer syntaxes
165 propose only required presentation contexts
166 (default: propose all supported)
169 combine proposed transfer syntaxes
170 (default: separate presentation context for each TS)
172 post-1993 value representations:
175 enable support for new VRs (UN/UT) (default)
178 disable support for new VRs, convert to OB
180 deflate compression level (only with --propose-deflated or --config-file):
182 +cl --compression-level [l]evel: integer (default: 6)
183 0=uncompressed, 1=fastest, 9=best compression
185 user identity negotiation:
187 -usr --user [u]ser name: string
188 authenticate using user name u
190 -pwd --password [p]assword: string (only with --user)
191 authenticate using password p
193 -epw --empty-password
194 send empty password (only with --user)
196 -kt --kerberos [f]ilename: string
197 read kerberos ticket from file f
199 --saml [f]ilename: string
200 read SAML request from file f
203 expect positive response
205 other network options:
207 -to --timeout [s]econds: integer (default: unlimited)
208 timeout for connection requests
210 -ta --acse-timeout [s]econds: integer (default: 30)
211 timeout for ACSE messages
213 -td --dimse-timeout [s]econds: integer (default: unlimited)
214 timeout for DIMSE messages
216 -pdu --max-pdu [n]umber of bytes: integer (4096..131072)
217 set max receive pdu to n bytes (default: 16384)
219 --max-send-pdu [n]umber of bytes: integer (4096..131072)
220 restrict max send pdu to n bytes
222 --repeat [n]umber: integer
226 abort association instead of releasing it
229 do not halt if unsuccessful store encountered
233 silently correct space-padded UIDs
235 +II --invent-instance
236 invent a new SOP instance UID for every image sent
238 +IR --invent-series [n]umber: integer (implies --invent-instance)
239 invent a new series UID after n images have been sent
242 +IS --invent-study [n]umber: integer (implies --invent-instance)
243 invent a new study UID after n series have been sent
246 +IP --invent-patient [n]umber: integer (implies --invent-instance)
247 invent a new patient ID and name after n studies have been sent
251 \subsection tls_options transport layer security (TLS) options
253 transport protocol stack:
256 use normal TCP/IP connection (default)
258 +tls --enable-tls [p]rivate key file, [c]ertificate file: string
259 use authenticated secure TLS connection
262 use secure TLS connection without certificate
264 private key password (only with --enable-tls):
267 prompt user to type password on stdin (default)
269 +pw --use-passwd [p]assword: string
270 use specified password
273 use empty string as password
275 key and certificate file format:
278 read keys and certificates as PEM file (default)
281 read keys and certificates as DER file
283 certification authority:
285 +cf --add-cert-file [c]ertificate filename: string
286 add certificate file to list of certificates
288 +cd --add-cert-dir [c]ertificate directory: string
289 add certificates in d to list of certificates
293 +cs --cipher [c]iphersuite name: string
294 add ciphersuite to list of negotiated suites
296 +dp --dhparam [f]ilename: string
297 read DH parameters for DH/DSS ciphersuites
299 pseudo random generator:
301 +rs --seed [f]ilename: string
302 seed random generator with contents of f
305 write back modified seed (only with --seed)
307 +wf --write-seed-file [f]ilename: string (only with --seed)
308 write modified seed to file f
312 -rc --require-peer-cert
313 verify peer certificate, fail if absent (default)
315 -vc --verify-peer-cert
316 verify peer certificate if present
318 -ic --ignore-peer-cert
319 don't verify peer certificate
324 \subsection dicom_conformance DICOM Conformance
326 The \b storescu application supports the following Storage SOP Classes as an
330 ComputedRadiographyImageStorage 1.2.840.10008.5.1.4.1.1.1
331 DigitalXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.1
332 DigitalXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.1.1
333 DigitalMammographyXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.2
334 DigitalMammographyXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.2.1
335 DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3
336 DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1
337 CTImageStorage 1.2.840.10008.5.1.4.1.1.2
338 EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1
339 UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1
340 MRImageStorage 1.2.840.10008.5.1.4.1.1.4
341 EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1
342 MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2
343 UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1
344 SecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7
345 MultiframeSingleBitSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.1
346 MultiframeGrayscaleByteSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.2
347 MultiframeGrayscaleWordSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.3
348 MultiframeTrueColorSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.4
349 TwelveLeadECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.1
350 GeneralECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.2
351 AmbulatoryECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.3
352 HemodynamicWaveformStorage 1.2.840.10008.5.1.4.1.1.9.2.1
353 CardiacElectrophysiologyWaveformStorage 1.2.840.10008.5.1.4.1.1.9.3.1
354 BasicVoiceAudioWaveformStorage 1.2.840.10008.5.1.4.1.1.9.4.1
355 GrayscaleSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.1
356 ColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.2
357 PseudoColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.3
358 BlendingSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.4
359 XRayAngiographicImageStorage 1.2.840.10008.5.1.4.1.1.12.1
360 EnhancedXAImageStorage 1.2.840.10008.5.1.4.1.1.12.1.1
361 XRayRadiofluoroscopicImageStorage 1.2.840.10008.5.1.4.1.1.12.2
362 EnhancedXRFImageStorage 1.2.840.10008.5.1.4.1.1.12.2.1
363 NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.20
364 RawDataStorage 1.2.840.10008.5.1.4.1.1.66
365 SpatialRegistrationStorage 1.2.840.10008.5.1.4.1.1.66.1
366 SpatialFiducialsStorage 1.2.840.10008.5.1.4.1.1.66.2
367 RealWorldValueMappingStorage 1.2.840.10008.5.1.4.1.1.67
368 VLEndoscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.1
369 VLMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.2
370 VLSlideCoordinatesMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.3
371 VLPhotographicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.4
372 OphthalmicPhotography8BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.1
373 OphthalmicPhotography16BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.2
374 StereometricRelationshipStorage 1.2.840.10008.5.1.4.1.1.77.1.5.3
375 OphthalmicTomographyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.4
376 BasicTextSRStorage 1.2.840.10008.5.1.4.1.1.88.11
377 EnhancedSRStorage 1.2.840.10008.5.1.4.1.1.88.22
378 ComprehensiveSRStorage 1.2.840.10008.5.1.4.1.1.88.33
379 ProcedureLogStorage 1.2.840.10008.5.1.4.1.1.88.40
380 MammographyCADSRStorage 1.2.840.10008.5.1.4.1.1.88.50
381 KeyObjectSelectionDocumentStorage 1.2.840.10008.5.1.4.1.1.88.59
382 ChestCADSRStorage 1.2.840.10008.5.1.4.1.1.88.65
383 XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67
384 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69
385 EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1
386 PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128
387 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1
388 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2
389 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3
390 RTBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.4
391 RTPlanStorage 1.2.840.10008.5.1.4.1.1.481.5
392 RTBrachyTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.6
393 RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481.7
396 The default behaviour of \b storescu is to propose two presentation contexts
397 for each supported SOP class (abstract syntax) - one with the preferred
398 transfer syntax and one with all other uncompressed transfer syntaxes. The
399 default preferred transfer syntax is explicit VR with byte ordering
400 corresponding to the local byte ordering of the machine on which \b storescu
401 is running. This behaviour can be changed with the \e --propose, \e --combine
402 and \e --required options, see above. Depending on these options, the
403 following transfer syntaxes are supported:
406 LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
407 LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
408 DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99
409 BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
410 JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
411 JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
412 JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
413 JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
414 JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
415 JPEG2000LosslessOnlyTransferSyntax 1.2.840.10008.1.2.4.90
416 JPEG2000TransferSyntax 1.2.840.10008.1.2.4.91
417 MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100
418 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101
419 RLELosslessTransferSyntax 1.2.840.10008.1.2.5
422 Additional Storage SOP Classes and Transfer Syntaxes can be used with the
423 so-called "association negotiation profiles" (see below).
425 The \b storescu application does not support extended negotiation by default.
426 However, using an appropriate association negotiation profile (see below)
427 the optional support for extended negotiation can be added to particular SOP
430 \subsection profiles Association Negotiation Profiles and Configuration Files
432 \b storescu supports a flexible mechanism for specifying the DICOM network
433 association negotiation behaviour, based on so-called "association
434 negotiation profiles" which may be read from a configuration file.
435 The format and semantics of this configuration file are documented in
438 \section logging LOGGING
440 The level of logging output of the various command line tools and underlying
441 libraries can be specified by the user. By default, only errors and warnings
442 are written to the standard error stream. Using option \e --verbose also
443 informational messages like processing details are reported. Option
444 \e --debug can be used to get more details on the internal activity, e.g. for
445 debugging purposes. Other logging levels can be selected using option
446 \e --log-level. In \e --quiet mode only fatal errors are reported. In such
447 very severe error events, the application will usually terminate. For more
448 details on the different logging levels, see documentation of module "oflog".
450 In case the logging output should be written to file (optionally with logfile
451 rotation), to syslog (Unix) or the event log (Windows) option \e --log-config
452 can be used. This configuration file also allows for directing only certain
453 messages to a particular output stream and for filtering certain messages
454 based on the module or application where they are generated. An example
455 configuration file is provided in <em><etcdir>/logger.cfg</em>).
457 \section command_line COMMAND LINE
459 All command line tools use the following notation for parameters: square
460 brackets enclose optional values (0-1), three trailing dots indicate that
461 multiple values are allowed (1-n), a combination of both means 0 to n values.
463 Command line options are distinguished from parameters by a leading '+' or '-'
464 sign, respectively. Usually, order and position of command line options are
465 arbitrary (i.e. they can appear anywhere). However, if options are mutually
466 exclusive the rightmost appearance is used. This behaviour conforms to the
467 standard evaluation rules of common Unix shells.
469 In addition, one or more command files can be specified using an '@' sign as a
470 prefix to the filename (e.g. <em>\@command.txt</em>). Such a command argument
471 is replaced by the content of the corresponding text file (multiple
472 whitespaces are treated as a single separator unless they appear between two
473 quotation marks) prior to any further evaluation. Please note that a command
474 file cannot contain another command file. This simple but effective approach
475 allows to summarize common combinations of options/parameters and avoids
476 longish and confusing command lines (an example is provided in file
477 <em><datadir>/dumppat.txt</em>).
479 \section environment ENVIRONMENT
481 The \b storescu utility will attempt to load DICOM data dictionaries specified
482 in the \e DCMDICTPATH environment variable. By default, i.e. if the
483 \e DCMDICTPATH environment variable is not set, the file
484 <em><datadir>/dicom.dic</em> will be loaded unless the dictionary is built
485 into the application (default for Windows).
487 The default behaviour should be preferred and the \e DCMDICTPATH environment
488 variable only used when alternative data dictionaries are required. The
489 \e DCMDICTPATH environment variable has the same format as the Unix shell
490 \e PATH variable in that a colon (":") separates entries. On Windows systems,
491 a semicolon (";") is used as a separator. The data dictionary code will
492 attempt to load each file specified in the \e DCMDICTPATH environment variable.
493 It is an error if no data dictionary can be loaded.
497 <em><docdir>/asconfig.txt</em> - configuration file documentation
498 \n<em><etcdir>/storescu.cfg</em> - example association negotiation profile
500 \section see_also SEE ALSO
504 \section copyright COPYRIGHT
506 Copyright (C) 1996-2010 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.