4 \page storescp DICOM storage (C-STORE) SCP
6 \page storescp storescp: DICOM storage (C-STORE) SCP
9 \section synopsis SYNOPSIS
12 storescp [options] [port]
15 \section description DESCRIPTION
17 The \b storescp application implements a Service Class Provider (SCP) for the
18 Storage Service Class. It listens on a specific TCP/IP port for incoming
19 association requests from a Storage Service Class User (SCU) and can receive
20 both DICOM images and other DICOM composite objects. The \b storescp
21 application also supports the Verification Service Class as an SCP.
23 \section parameters PARAMETERS
26 port tcp/ip port number to listen on
27 (this parameter is required unless the --inetd option is specified)
30 \section options OPTIONS
32 \subsection general_options general options
35 print this help text and exit
38 print version information and exit
41 print expanded command line arguments
44 quiet mode, print no warnings and errors
47 verbose mode, print processing details
50 debug mode, print debug information
52 -ll --log-level [l]evel: string constant
53 (fatal, error, warn, info, debug, trace)
54 use level l for the logger
56 -lc --log-config [f]ilename: string
57 use config file f for the logger
60 show presentation contexts in verbose mode
63 \subsection multi_process_options multi-process options
66 single process mode (default)
69 fork child process for each association
72 \subsection network_options network options
74 association negotiation profile from configuration file:
76 -xf --config-file [f]ilename [p]rofile: string
77 use profile p from config file f
79 preferred network transfer syntaxes (not with --config-file):
82 prefer explicit VR local byte order (default)
85 prefer explicit VR little endian TS
88 prefer explicit VR big endian TS
91 prefer default JPEG lossless TS
94 prefer default JPEG lossy TS for 8 bit data
97 prefer default JPEG lossy TS for 12 bit data
99 +xv --prefer-j2k-lossless
100 prefer JPEG 2000 lossless TS
102 +xw --prefer-j2k-lossy
103 prefer JPEG 2000 lossy TS
105 +xt --prefer-jls-lossless
106 prefer JPEG-LS lossless TS
108 +xu --prefer-jls-lossy
109 prefer JPEG-LS lossy TS
112 prefer MPEG2 Main Profile @ Main Level TS
114 +xh --prefer-mpeg2-high
115 prefer MPEG2 Main Profile @ High Level TS
118 prefer RLE lossless TS
120 +xd --prefer-deflated
121 prefer deflated explicit VR little endian TS
124 accept implicit VR little endian TS only
127 accept all supported transfer syntaxes
129 network host access control (tcp wrapper):
132 accept connections from any host (default)
135 enforce host access control rules
137 other network options:
140 run from inetd super server (not with --fork)
141 (this option is available only on Posix platforms)
143 -ta --acse-timeout [s]econds: integer (default: 30)
144 timeout for ACSE messages
146 -td --dimse-timeout [s]econds: integer (default: unlimited)
147 timeout for DIMSE messages
149 -aet --aetitle [a]etitle: string
150 set my AE title (default: STORESCP)
152 -pdu --max-pdu [n]umber of bytes: integer (4096..131072)
153 set max receive pdu to n bytes (default: 16384)
155 -dhl --disable-host-lookup
156 disable hostname lookup
162 reject association if no implementation class UID
165 ignore store data, receive but do not store
167 --sleep-after [s]econds: integer
168 sleep s seconds after store (default: 0)
170 --sleep-during [s]econds: integer
171 sleep s seconds during store (default: 0)
174 abort association after receipt of C-STORE-RQ
175 (but before sending response)
178 abort association during receipt of C-STORE-RQ
181 promiscuous mode, accept unknown SOP classes
182 (not with --config-file)
185 silently correct space-padded UIDs
188 \section output_options output options
193 -od --output-directory [d]irectory: string (default: ".")
194 write received objects to existing directory d
199 allow implicit format conversions (default)
202 write data exactly as read
207 write file format (default)
210 write data set without file meta information
212 output transfer syntax
213 (not with --bit-preserving or compressed transmission):
215 +t= --write-xfer-same
216 write with same TS as input (default)
218 +te --write-xfer-little
219 write with explicit VR little endian TS
222 write with explicit VR big endian TS
224 +ti --write-xfer-implicit
225 write with implicit VR little endian TS
227 +td --write-xfer-deflated
228 write with deflated explicit VR little endian TS
230 post-1993 value representations (not with --bit-preserving):
233 enable support for new VRs (UN/UT) (default)
236 disable support for new VRs, convert to OB
238 group length encoding (not with --bit-preserving):
240 +g= --group-length-recalc
241 recalculate group lengths if present (default)
243 +g --group-length-create
244 always write with group length elements
246 -g --group-length-remove
247 always write without group length elements
249 length encoding in sequences and items (not with --bit-preserving):
252 write with explicit lengths (default)
254 -e --length-undefined
255 write with undefined lengths
257 data set trailing padding
258 (not with --write-dataset or --bit-preserving):
263 +p --padding-create [f]ile-pad [i]tem-pad: integer
264 align file on multiple of f bytes and items on
267 deflate compression level (only with --write-xfer-deflated/same):
269 +cl --compression-level [l]evel: integer (default: 6)
270 0=uncompressed, 1=fastest, 9=best compression
272 sorting into subdirectories (not with --bit-preserving):
274 -ss --sort-conc-studies [p]refix: string
275 sort studies using prefix p and a timestamp
277 -su --sort-on-study-uid [p]refix: string
278 sort studies using prefix p and the Study Instance UID
280 -sp --sort-on-patientname
281 sort studies using the Patient's Name and a timestamp
285 -uf --default-filenames
286 generate filename from instance UID (default)
288 +uf --unique-filenames
289 generate unique filenames
292 generate filename from creation time
294 -fe --filename-extension [e]xtension: string
295 append e to all filenames
298 \subsection event_options event options
300 -xcr --exec-on-reception [c]ommand: string
301 execute command c after having received and processed
302 one C-STORE-RQ message
304 -xcs --exec-on-eostudy [c]ommand: string
305 execute command c after having received and processed
306 all C-STORE-RQ messages that belong to one study
308 -rns --rename-on-eostudy
309 having received and processed all C-STORE-RQ messages
310 that belong to one study, rename output files according
313 -tos --eostudy-timeout [t]imeout: integer
314 specifies a timeout of t seconds for end-of-study
318 execute command synchronously in foreground
321 \subsection tls_options transport layer security (TLS) options
323 transport protocol stack:
326 use normal TCP/IP connection (default)
328 +tls --enable-tls [p]rivate key file, [c]ertificate file: string
329 use authenticated secure TLS connection
331 private key password (only with --enable-tls):
334 prompt user to type password on stdin (default)
336 +pw --use-passwd [p]assword: string
337 use specified password
340 use empty string as password
342 key and certificate file format:
345 read keys and certificates as PEM file (default)
348 read keys and certificates as DER file
350 certification authority:
352 +cf --add-cert-file [c]ertificate filename: string
353 add certificate file to list of certificates
355 +cd --add-cert-dir [c]ertificate directory: string
356 add certificates in d to list of certificates
360 +cs --cipher [c]iphersuite name: string
361 add ciphersuite to list of negotiated suites
363 +dp --dhparam [f]ilename: string
364 read DH parameters for DH/DSS ciphersuites
366 pseudo random generator:
368 +rs --seed [f]ilename: string
369 seed random generator with contents of f
372 write back modified seed (only with --seed)
374 +wf --write-seed-file [f]ilename: string (only with --seed)
375 write modified seed to file f
379 -rc --require-peer-cert
380 verify peer certificate, fail if absent (default)
382 -vc --verify-peer-cert
383 verify peer certificate if present
385 -ic --ignore-peer-cert
386 don't verify peer certificate
391 The semantic impacts of the above mentioned options is clear for the majority
392 of options. Some particular options, however, are so specific that they need
393 detailed descriptions which will be given in this passage.
395 Option \e --sort-conc-studies enables a user to sort all received DICOM objects
396 into different subdirectories. The sorting will be done with regard to the
397 studies the individual objects belong to, i.e. objects that belong to the same
398 study will be stored in the same subdirectory. In general, a DICOM object
399 d_n+1 is considered to belong to the same study as a DICOM object d_n if and
400 only if d_n and d_n+1 show the exact same values in attribute Study Instance
401 UID. The names of the resulting subdirectories always start with a prefix p
402 which was passed to this option as a parameter. In addition to this prefix,
403 the subdirectory names contain time stamp information with regard to the date
404 and time of reception of this particular study's first DICOM object. In
405 detail, the determination of the subdirectory names pertains to the pattern
408 [prefix]_[YYYYMMDD]_[HHMMSSPPP]
411 where YYYY refers to year (4 digits), MM to month (01-12), DD to day (01-31),
412 HH to hour (00-23), MM to minute (00-59), SS to second (00-59) and PPP to
413 milliseconds (000-999). If the prefix is an empty string, the first "_" is
416 The other \e --sort-xxx options work in a similar manner, only the subdirectory
417 names are created differently. For option \e --sort-on-study-uid the pattern
421 [prefix]_[StudyInstanceUID]
424 and for option \e --sort-on-patientname
427 [PatientName]_[YYYYMMDD]_[HHMMSSPPP]
430 where 'PatientName' is replaced by "ANONYMOUS" if the data element is empty or
431 absent in the data set. Please note, however, that for option
432 \e --sort-on-study-uid the same subdirectory will be used for all DICOM objects
433 that belong to the same study, i.e. in contrast to the other \e --sort-xxx
434 options there is no guarantee that a study directory is ever completed.
436 Option \e --timenames creates filenames from timestamps corresponding to the
437 time, \b storescp writes a file to disk. The format is
440 [YYYYMMDDHHMMSSPPP]_[SERIALNO].[MD]
443 where YYYY, MM, DD, HH, MM, SS, PPP are interpreted as described above. If
444 more files are created at the same time, SERIALNO is inserted. It consists of
445 a 4-digit, consecutive number (0000 to 9999). For the first file, that exists
446 for a specific time, no number (and no "_") is inserted at all. MD represents
447 an identification code (2 letters) for the kind of object stored in the file
448 (see notes on \e --rename-on-eostudy).
450 Option \e --filename-extension appends a specified suffix to each filename (a
451 dot "." is not added automatically). This suffix is not appended to the
452 filenames created by \e --rename-on-eostudy to maintain the length of 8
455 Option \e --exec-on-reception allows to execute a certain command line after
456 having received and processed one DICOM object (through a C-STORE-RQ message).
457 The command line to be executed is passed to this option as a parameter. The
458 specified command line may contain a number of placeholders which will be
459 replaced at run time:
461 \li \b \#p: complete path to the output directory into which the last DICOM
462 object was stored (not available with option \e --ignore though)
463 \li \b \#f: filename of the current output file (not available with option
465 \li \b \#a: calling application entity title of the peer Storage SCU
466 \li \b \#c: called application entity title used by the peer Storage SCU to
468 \li \b \#r: calling presentation address, i.e. hostname or IP address of the
471 The specified command line is executed as a separate process, so that the
472 execution of \b storescp will not be held back.
474 Option \e --exec-on-eostudy allows to execute a certain command line when all
475 DICOM objects that belong to one study have been received by \b storescp.
476 The same placeholders as with \e --exec-on-reception may be used, except for
477 '\#f', which is not supported. A study is considered complete by \b storescp
478 when an object belonging to a different study is received or the timeout
479 specified with \e --eostudy-timeout takes place. If option
480 \e --rename-on-eostudy is in force, the renaming takes place before the
481 external command is executed.
483 Option \e --rename-on-eostudy refers to the above mentioned \e --sort-xxx
484 options and can only be used in combination with one of these options.
485 If a user specifies option \e --rename-on-eostudy and \b storescp
486 determines that all DICOM objects that belong to a certain study have
487 been received, all DICOM files that belong to the last study will be
488 renamed in the corresponding output directory. The filenames into which
489 the files are being renamed will be calculated using the pattern
492 [prefix][consecutive numbering]
495 where [prefix] is a 2 character prefix that reveals the kind of DICOM object
496 stored in the file and [consecutive numbering] is a consecutively numbered,
497 6-digit number, starting at "000001". In general, the question if all DICOM
498 objects that belong to one study have been received by \b storescp will be
499 answered positively if and only if two consecutively received DICOM objects
500 d_n and d_n+1 do not show the same values in attribute Study Instance UID; in
501 such a case, d_n+1 is considered to belong to a new study.
503 Using option \e --eostudy-timeout a user can modify the determination process
504 to figure out if all DICOM objects that belong to one study have already been
505 received by \b storescp. With regard to this fact, it is clear that this
506 option can only be used in combination with at least one of the following
507 options: \e --sort-xxx, \e --exec-on-eostudy and \e --rename-on-eostudy.
508 If option \e --eostudy-timeout is specified, the end of a study is considered
509 to have occurred not only if two consecutively received DICOM objects d_n and
510 d_n+1 do not show the same values in attribute Study Instance UID, but also if
511 whithin a time span of x seconds after the reception of a DICOM object d_n, no
512 other DICOM object was received over the network. Note that the amount x of
513 seconds (which determines the length of this time span) has to be passed to
514 this option as a parameter.
516 \subsection dicom_conformance DICOM Conformance
518 The \b storescp application supports the following SOP Classes as an SCP:
521 VerificationSOPClass 1.2.840.10008.1.1
523 RETIRED_StoredPrintStorage 1.2.840.10008.5.1.1.27
524 RETIRED_HardcopyGrayscaleImageStorage 1.2.840.10008.5.1.1.29
525 RETIRED_HardcopyColorImageStorage 1.2.840.10008.5.1.1.30
526 ComputedRadiographyImageStorage 1.2.840.10008.5.1.4.1.1.1
527 DigitalXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.1
528 DigitalXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.1.1
529 DigitalMammographyXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.2
530 DigitalMammographyXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.2.1
531 DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3
532 DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1
533 CTImageStorage 1.2.840.10008.5.1.4.1.1.2
534 EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1
535 RETIRED_UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3
536 UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1
537 MRImageStorage 1.2.840.10008.5.1.4.1.1.4
538 EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1
539 MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2
540 EnhancedMRColorImageStorage 1.2.840.10008.5.1.4.1.1.4.3
541 RETIRED_NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.5
542 RETIRED_UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6
543 UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1
544 EnhancedUSVolumeStorage 1.2.840.10008.5.1.4.1.1.6.2
545 SecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7
546 MultiframeSingleBitSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.1
547 MultiframeGrayscaleByteSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.2
548 MultiframeGrayscaleWordSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.3
549 MultiframeTrueColorSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.4
550 RETIRED_StandaloneOverlayStorage 1.2.840.10008.5.1.4.1.1.8
551 RETIRED_StandaloneCurveStorage 1.2.840.10008.5.1.4.1.1.9
552 DRAFT_WaveformStorage 1.2.840.10008.5.1.4.1.1.9.1
553 TwelveLeadECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.1
554 GeneralECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.2
555 AmbulatoryECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.3
556 HemodynamicWaveformStorage 1.2.840.10008.5.1.4.1.1.9.2.1
557 CardiacElectrophysiologyWaveformStorage 1.2.840.10008.5.1.4.1.1.9.3.1
558 BasicVoiceAudioWaveformStorage 1.2.840.10008.5.1.4.1.1.9.4.1
559 GeneralAudioWaveformStorage 1.2.840.10008.5.1.4.1.1.9.4.2
560 ArterialPulseWaveformStorage 1.2.840.10008.5.1.4.1.1.9.5.1
561 RespiratoryWaveformStorage 1.2.840.10008.5.1.4.1.1.9.6.1
562 RETIRED_StandaloneModalityLUTStorage 1.2.840.10008.5.1.4.1.1.10
563 RETIRED_StandaloneVOILUTStorage 1.2.840.10008.5.1.4.1.1.11
564 GrayscaleSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.1
565 ColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.2
566 PseudoColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.3
567 BlendingSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.4
568 XAXRFGrayscaleSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.5
569 XRayAngiographicImageStorage 1.2.840.10008.5.1.4.1.1.12.1
570 EnhancedXAImageStorage 1.2.840.10008.5.1.4.1.1.12.1.1
571 XRayRadiofluoroscopicImageStorage 1.2.840.10008.5.1.4.1.1.12.2
572 EnhancedXRFImageStorage 1.2.840.10008.5.1.4.1.1.12.2.1
573 XRay3DAngiographicImageStorage 1.2.840.10008.5.1.4.1.1.13.1.1
574 XRay3DCraniofacialImageStorage 1.2.840.10008.5.1.4.1.1.13.1.2
575 BreastTomosynthesisImageStorage 1.2.840.10008.5.1.4.1.1.13.1.3
576 RETIRED_XRayAngiographicBiPlaneImageStorage 1.2.840.10008.5.1.4.1.1.12.3
577 NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.20
578 RawDataStorage 1.2.840.10008.5.1.4.1.1.66
579 SpatialRegistrationStorage 1.2.840.10008.5.1.4.1.1.66.1
580 SpatialFiducialsStorage 1.2.840.10008.5.1.4.1.1.66.2
581 DeformableSpatialRegistrationStorage 1.2.840.10008.5.1.4.1.1.66.3
582 SegmentationStorage 1.2.840.10008.5.1.4.1.1.66.4
583 SurfaceSegmentationStorage 1.2.840.10008.5.1.4.1.1.66.5
584 RealWorldValueMappingStorage 1.2.840.10008.5.1.4.1.1.67
585 RETIRED_VLImageStorage 1.2.840.10008.5.1.4.1.1.77.1
586 VLEndoscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.1
587 VideoEndoscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.1.1
588 VLMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.2
589 VideoMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.2.1
590 VLSlideCoordinatesMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.3
591 VLPhotographicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.4
592 VideoPhotographicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.4.1
593 OphthalmicPhotography8BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.1
594 OphthalmicPhotography16BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.2
595 StereometricRelationshipStorage 1.2.840.10008.5.1.4.1.1.77.1.5.3
596 OphthalmicTomographyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.4
597 VLWholeSlideMicroscopyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.6
598 RETIRED_VLMultiFrameImageStorage 1.2.840.10008.5.1.4.1.1.77.2
599 LensometryMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.1
600 AutorefractionMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.2
601 KeratometryMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.3
602 SubjectiveRefractionMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.4
603 VisualAcuityMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.5
604 SpectaclePrescriptionReportStorage 1.2.840.10008.5.1.4.1.1.78.6
605 OphthalmicAxialMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.7
606 IntraocularLensCalculationsStorage 1.2.840.10008.5.1.4.1.1.78.8
607 MacularGridThicknessAndVolumeReportStorage 1.2.840.10008.5.1.4.1.1.79.1
608 OphthalmicVisualFieldStaticPerimetryMeasurementsSt. 1.2.840.10008.5.1.4.1.1.80.1
609 DRAFT_SRTextStorage 1.2.840.10008.5.1.4.1.1.88.1
610 DRAFT_SRAudioStorage 1.2.840.10008.5.1.4.1.1.88.2
611 DRAFT_SRDetailStorage 1.2.840.10008.5.1.4.1.1.88.3
612 DRAFT_SRComprehensiveStorage 1.2.840.10008.5.1.4.1.1.88.4
613 BasicTextSRStorage 1.2.840.10008.5.1.4.1.1.88.11
614 EnhancedSRStorage 1.2.840.10008.5.1.4.1.1.88.22
615 ComprehensiveSRStorage 1.2.840.10008.5.1.4.1.1.88.33
616 ProcedureLogStorage 1.2.840.10008.5.1.4.1.1.88.40
617 MammographyCADSRStorage 1.2.840.10008.5.1.4.1.1.88.50
618 KeyObjectSelectionDocumentStorage 1.2.840.10008.5.1.4.1.1.88.59
619 ChestCADSRStorage 1.2.840.10008.5.1.4.1.1.88.65
620 XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67
621 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69
622 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70
623 EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1
624 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2
625 PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128
626 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129
627 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130
628 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131
629 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1
630 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2
631 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3
632 RTBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.4
633 RTPlanStorage 1.2.840.10008.5.1.4.1.1.481.5
634 RTBrachyTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.6
635 RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481.7
636 RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8
637 RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9
638 DRAFT_RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.1
639 GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1
640 ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1
641 ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1
644 The \b storescp application will accept presentation contexts for all of the
645 abovementioned supported SOP Classes using any of the following transfer
649 LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
650 LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
651 BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
654 The default behaviour of the \b storescp application is to prefer transfer
655 syntaxes having an explicit encoding over the default implicit transfer syntax.
656 If \b storescp is running on big-endian hardware it will prefer
657 BigEndianExplicit to LittleEndianExplicit transfer syntax (and vice versa).
658 This behaviour can be changed with the \e --prefer options (see above). Using
659 option \e --accept-all any of the following transfer syntaxes is supported:
662 LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
663 LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
664 DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99
665 BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
666 JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
667 JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
668 JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
669 JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
670 JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
671 JPEG2000LosslessOnlyTransferSyntax 1.2.840.10008.1.2.4.90
672 JPEG2000TransferSyntax 1.2.840.10008.1.2.4.91
673 MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100
674 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101
675 RLELosslessTransferSyntax 1.2.840.10008.1.2.5
678 Additional Storage SOP Classes and Transfer Syntaxes can be used with the
679 so-called "association negotiation profiles" (see below).
681 The \b storescp application does not support extended negotiation by default.
682 However, using an appropriate association negotiation profile (see below)
683 the optional support for extended negotiation can be added to particular SOP
686 \subsection access_control Access Control
688 When compiled on Unix platforms with TCP wrapper support, host-based access
689 control can be enabled with the \e --access-control command line option. In
690 this case the access control rules defined in the system's host access control
691 tables for \b storescp are enforced. The default locations of the host access
692 control tables are <em>/etc/hosts.allow</em> and <em>/etc/hosts.deny</em>.
693 Further details are described in <b>hosts_access</b>(5).
695 \subsection running_from_inetd Running storescp from inetd
697 On Posix platforms, \b storescp can be initiated through the inetd(8) super
698 server. This requires that \b storescp be configured in the
699 <em>/etc/inetd.conf</em> configuration file. A typical configuration line
700 could look like this:
703 acr-nema stream tcp nowait root /usr/sbin/storescp -id +ac -od /tmp/storescp
706 where \e -id (\e --inetd) activates the inetd mode in which the DICOM
707 association is actually accepted by inetd and passed to \b storescp, \e +ac
708 (\e --access-control) activates the TCP wrapper based access control
709 described above and \e -od (\e --output-directory) defines the directory in
710 which \b storescp stores incoming DICOM objects. Note that the service name
711 ("acr-nema" in this example) determines the port number on which DICOM
712 associations are accepted and must be defined in <em>/etc/services</em>.
713 When runnning from inetd, the stdout and stderr streams are redirected to
714 files in the <em>/tmp</em> filesystem which can be identified by the
715 filename starting with the prefix "storescp_".
717 Please note that when run through inetd, \b storescp is executed with root
718 privileges, which may be a security risk.
720 \subsection profiles Association Negotiation Profiles and Configuration Files
722 \b storescp supports a flexible mechanism for specifying the DICOM network
723 association negotiation behaviour, based on so-called "association negotiation
724 profiles" which may be read from a configuration file. The format and
725 semantics of this configuration file are documented in \e asconfig.txt.
727 \section logging LOGGING
729 The level of logging output of the various command line tools and underlying
730 libraries can be specified by the user. By default, only errors and warnings
731 are written to the standard error stream. Using option \e --verbose also
732 informational messages like processing details are reported. Option
733 \e --debug can be used to get more details on the internal activity, e.g. for
734 debugging purposes. Other logging levels can be selected using option
735 \e --log-level. In \e --quiet mode only fatal errors are reported. In such
736 very severe error events, the application will usually terminate. For more
737 details on the different logging levels, see documentation of module "oflog".
739 In case the logging output should be written to file (optionally with logfile
740 rotation), to syslog (Unix) or the event log (Windows) option \e --log-config
741 can be used. This configuration file also allows for directing only certain
742 messages to a particular output stream and for filtering certain messages
743 based on the module or application where they are generated. An example
744 configuration file is provided in <em><etcdir>/logger.cfg</em>).
746 \section command_line COMMAND LINE
748 All command line tools use the following notation for parameters: square
749 brackets enclose optional values (0-1), three trailing dots indicate that
750 multiple values are allowed (1-n), a combination of both means 0 to n values.
752 Command line options are distinguished from parameters by a leading '+' or '-'
753 sign, respectively. Usually, order and position of command line options are
754 arbitrary (i.e. they can appear anywhere). However, if options are mutually
755 exclusive the rightmost appearance is used. This behaviour conforms to the
756 standard evaluation rules of common Unix shells.
758 In addition, one or more command files can be specified using an '@' sign as a
759 prefix to the filename (e.g. <em>\@command.txt</em>). Such a command argument
760 is replaced by the content of the corresponding text file (multiple
761 whitespaces are treated as a single separator unless they appear between two
762 quotation marks) prior to any further evaluation. Please note that a command
763 file cannot contain another command file. This simple but effective approach
764 allows to summarize common combinations of options/parameters and avoids
765 longish and confusing command lines (an example is provided in file
766 <em><datadir>/dumppat.txt</em>).
768 \section environment ENVIRONMENT
770 The \b storescp utility will attempt to load DICOM data dictionaries specified
771 in the \e DCMDICTPATH environment variable. By default, i.e. if the
772 \e DCMDICTPATH environment variable is not set, the file
773 <em><datadir>/dicom.dic</em> will be loaded unless the dictionary is built
774 into the application (default for Windows).
776 The default behaviour should be preferred and the \e DCMDICTPATH environment
777 variable only used when alternative data dictionaries are required. The
778 \e DCMDICTPATH environment variable has the same format as the Unix shell
779 \e PATH variable in that a colon (":") separates entries. On Windows systems,
780 a semicolon (";") is used as a separator. The data dictionary code will
781 attempt to load each file specified in the \e DCMDICTPATH environment variable.
782 It is an error if no data dictionary can be loaded.
786 <em><docdir>/asconfig.txt</em> - configuration file documentation
787 \n<em><etcdir>/storescp.cfg</em> - example association negotiation profile
789 \section see_also SEE ALSO
793 \section copyright COPYRIGHT
795 Copyright (C) 1996-2010 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.