Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
dcmsend(1)			  OFFIS	DCMTK			    dcmsend(1)

       dcmsend - Simple	DICOM storage SCU (sender)

       dcmsend [options] peer port dcmfile-in...

       The  dcmsend  application implements a Service Class User (SCU) for the
       Storage Service Class. In contrast to the well-known storescu  utility,
       dcmsend	has  less options and is, therefore, easier to use - this also
       explains	the term 'simple' in the  title.  The  main  purpose  of  this
       application  is	to  send  a  whole  bunch  of DICOM files to a Storage
       Service	Class  Provider	 (SCP).	  dcmsend   supports   both   multiple
       associations  (one  after  the  other)  and  decompression of DICOM SOP
       instances if needed to transfer them.

       peer	   hostname of DICOM peer

       port	   tcp/ip port number of peer

       dcmfile-in  DICOM file or directory to be transmitted

   general options
	 -h    --help
		 print this help text and exit

		 print version information and exit

		 list transfer syntaxes	of decoders and	exit

		 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

   input options
       input file format:

	 +f    --read-file
		 read file format or data set

	 +fo   --read-file-only
		 read file format only (default)

	 -f    --read-dataset
		 read data set without file meta information

       input files:

	 +rd   --read-from-dicomdir
		 read information on input files from DICOMDIR

	 +sd   --scan-directories
		 scan directories for input files (dcmfile-in)

	 +sp   --scan-pattern  [p]attern: string (only with --scan-directories)
		 pattern for filename matching (wildcards)

		 # possibly not	available on all systems

	 -r    --no-recurse
		 do not	recurse	within directories (default)

	 +r    --recurse
		 recurse within	specified directories

   processing options
       transfer	syntax conversion:

	 -dn   --decompress-never
		 never decompress compressed data sets

	 +dls  --decompress-lossless
		 only decompress lossless compression (default)

	 +dly  --decompress-lossy
		 decompress both lossy and lossless compression

       deflate compression level:

	 +cl   --compression-level  [l]evel: integer (default: 6)
		 0=uncompressed, 1=fastest, 9=best compression

       other processing	options:

	 -nh   --no-halt
		 do not	halt on	first invalid input file
		 or if unsuccessful store encountered

	 -nip  --no-illegal-proposal
		 do not	propose	any presentation context that does
		 not contain the default transfer syntax (if needed)

	 -nuc  --no-uid-checks
		 do not	check UID values of input files

   network options
       application entity titles:

	 -aet  --aetitle  [a]etitle: string
		 set my	calling	AE title (default: DCMSEND)

	 -aec  --call  [a]etitle: string
		 set called AE title of	peer (default: ANY-SCP)

       association handling:

	 +ma   --multi-associations
		 use multiple associations (one	after the other)
		 if needed to transfer the instances (default)

	 -ma   --single-association
		 always	use a single association

       other network options:

	 -to   --timeout  [s]econds: integer (default: unlimited)
		 timeout for connection	requests

	 -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)

	       --max-send-pdu  [n]umber	of bytes: integer (4096..131072)
		 restrict max send pdu to n bytes

   output options

	 +crf  --create-report-file  [f]ilename: string
		 create	a detailed report on the transfer
		 (if successful) and write it to text file f

   Typical Usage
       A typical use case of dcmsend is	to send	arbitrary SOP  instances  that
       are  stored as DICOM files to a storage SCP. The	following command does
       exactly this:

       dcmsend --verbose <peer>	<port> *.dcm

       If the DICOM files are stored in	a hierarchy of directories  below  the
       directory 'IMAGES', the following command can be	used:

       dcmsend -v <peer> <port>	--scan-directories --recurse IMAGES

       It  is also possible to specify multiple	directories and	to combine the
       aforementioned approaches (using	both file and directory	names):

       dcmsend -v +sd +r <peer>	<port> IMAGES_1	IMAGES_2 test.img *.dcm

       If the SOP instances  are  referenced  from  a  DICOMDIR	 file,	option
       --read-from-dicomdir  (or +rd) can be used to send all referenced DICOM
       files without loading them already for the association negotiation:

       dcmsend -v <peer> <port>	--read-from-dicomdir DICOMDIR

       And again, all of the above approaches can be combined like this:

       dcmsend -v +sd +r +rd <peer> <port> IMAGES_1 IMAGES_2 test.img DICOMDIR *.dcm

       The default option --read-file-only makes sure that  only  DICOM	 files
       (i.e.  the  ones	 with  meta-header  and	 magic	word  'DICM' after the
       preamble) are processed.	Usually, if processing a whole bunch of	files,
       it  is  also a good idea	not to halt on the first invalid input file or
       if an unsuccessful store	was encountered. This can be  accomplished  by
       using option --no-halt. Please note, however, that 'unsuccessful	store'
       does not	mean that the DIMSE status of the C-STORE  response  indicates
       an  error.  It  means that the C-STORE request could not	be sent	to the
       storage SCP.

       If more than 128	presentation contexts are needed, which	is the maximum
       number  allowed	according  to the DICOM	standard, a new	association is
       started after the previous one has been completed. In cases where  this
       behavior	 is  unwanted,	it  can	 be  disabled  using  option --single-
       association. In addition, whether only lossless	compressed  data  sets
       are  decompressed  (if  needed),	 which	is  the	default, or also lossy
       compressed data	sets  can  be  specified  using	 the  --decompress-xxx

       In  order  to  get  both	 an  overview  and detailed information	on the
       transfer	of the DICOM SOP instances, option --create-report-file	can be
       used  to	 create	 a corresponding text file. However, this file is only
       created as a final step if the application  did	not  terminate	before
       (with an	error).

   Scanning Directories
       Adding  directories as a	parameter to the command line only makes sense
       if option --scan-directories  is	 also  given.  If  the	files  in  the
       provided	 directories  should  be selected according to a specific name
       pattern (e.g. using wildcard matching), option --scan-pattern has to be
       used.  Please  note  that  this	file pattern only applies to the files
       within  the  scanned  directories,  and,	 if  any  other	 patterns  are
       specified  on  the command line outside the --scan-pattern option (e.g.
       in order	to select further files), these	do not apply to	the  specified

       Thus,  the  third  of  the above	examples will recurse over directories
       IMAGES_1	and IMAGES_2 and transmit files	that are  contained  in	 these
       two  folders and	all their subfolders (due to option +r). Additionally,
       dcmsend will transfer 'test.img'	and all	 files	with  extension	 'dcm'
       from  the  current  working folder. Note	that providing directory names
       without enabling	option +sd does	not make sense.

   DICOM Conformance
       Basically, the dcmsend application supports all Storage SOP Classes  as
       an  SCU,	including private ones.	By default, the	application checks the
       SOP Class UID of	the DICOM file in order	to make	sure that  only	 valid
       SOP  instances  are sent. With option --no-uid-checks this check	can be

       The dcmsend application also supports all Transfer  Syntaxes  that  are
       defined	in  the	 DICOM standard. Private transfer syntaxes can only be
       used if the UID check is	disabled with option  --no-uid-checks.	Please
       note,  however,	that  only  a  limited number of transfer syntaxes are
       supported for converting	them to	the default transfer syntax  (Implicit
       VR  Little  Endian).  With option --list-decoders the transfer syntaxes
       supported natively or by	decoders  are  listed.	The  output  typically
       looks like the following:

       Transfer	syntaxes supported natively:
       - Little	Endian Implicit
       - Little	Endian Explicit
       - Big Endian Explicit

       Transfer	syntaxes supported by decoders:
       - Deflated Explicit VR Little Endian
       - JPEG Baseline
       - JPEG Extended,	Process	2+4
       - JPEG Spectral Selection, Non-hierarchical, Process 6+8
       - JPEG Full Progression,	Non-hierarchical, Process 10+12
       - JPEG Lossless,	Non-hierarchical, Process 14
       - JPEG Lossless,	Non-hierarchical, 1st Order Prediction
       - JPEG-LS Lossless
       - JPEG-LS Lossy (Near-lossless)
       - RLE Lossless

       Since  dcmsend  tries  to  be  as  simple  as possible for the user, by
       default presentation contexts might be proposed to  the	SCP  that  are
       strictly	 speaking  'illegal'.  This is because,	according to the DICOM
       standard, the SCU always	has to propose the default transfer syntax  in
       at  least one presentation context associated with each abstract	syntax
       (i.e. SOP class). This requirement is waived if the SCU only has	access
       to  the	SOP  instance  in lossy	compressed form	or if the decompressed
       pixel data would	be too large to	be encoded. With option	 --no-illegal-
       proposal	 the strict DICOM-conformant behavior can be enforced, i.e. no
       possibly	 illegal  presentation	context	 will  be  proposed  but   the
       corresponding  SOP  instance will be rejected (if needed). Please note,
       however,	that the size of the decompressed pixel	data is	not checked.

       Please note, however, that the default transfer	syntax	for  'Lossless
       JPEG  Compression',  'Lossy  JPEG Compression' and so on	are not	always
       proposed	as also	required by the	DICOM standard.	 The  same  limitation
       applies	to  other compression schemes. See DICOM PS 3.5	section	10 for

       The level of logging output of  the  various  command  line  tools  and
       underlying  libraries  can  be  specified by the	user. By default, only
       errors and warnings are written to the  standard	 error	stream.	 Using
       option  --verbose  also	informational messages like processing details
       are reported. Option --debug can	be used	to get	more  details  on  the
       internal	 activity,  e.g.  for debugging	purposes. Other	logging	levels
       can be selected using option --log-level. In --quiet  mode  only	 fatal
       errors  are reported. In	such very severe error events, the application
       will usually terminate. For  more  details  on  the  different  logging
       levels, see documentation of module 'oflog'.

       In  case	 the logging output should be written to file (optionally with
       logfile rotation), to syslog (Unix) or the event	log  (Windows)	option
       --log-config  can  be  used.  This  configuration  file also allows for
       directing only certain messages to a particular output stream  and  for
       filtering  certain  messages  based  on the module or application where
       they are	generated.  An	example	 configuration	file  is  provided  in

       All  command  line  tools  use  the  following notation for parameters:
       square brackets enclose optional	 values	 (0-1),	 three	trailing  dots
       indicate	 that multiple values are allowed (1-n), a combination of both
       means 0 to n values.

       Command line options are	distinguished from parameters by a leading '+'
       or  '-' sign, respectively. Usually, order and position of command line
       options are arbitrary (i.e. they	 can  appear  anywhere).  However,  if
       options	are  mutually exclusive	the rightmost appearance is used. This
       behavior	conforms to the	 standard  evaluation  rules  of  common  Unix

       In  addition,  one  or more command files can be	specified using	an '@'
       sign as a prefix	to the filename	(e.g. @command.txt).  Such  a  command
       argument	 is  replaced  by  the	content	of the corresponding text file
       (multiple whitespaces are treated as a  single  separator  unless  they
       appear  between	two  quotation marks) prior to any further evaluation.
       Please note that	a command file cannot contain  another	command	 file.
       This  simple  but  effective  approach  allows  one to summarize	common
       combinations of options/parameters and  avoids  longish	and  confusing
       command lines (an example is provided in	file _datadir_/dumppat.txt).

       The  dcmsend  utility  uses  the	following exit codes when terminating.
       This enables the	user to	check  for  the	 reason	 why  the  application


   input file errors

   output file errors

   network errors

       (*)  Actually,  these codes are currently not used by dcmsend but serve
       as a placeholder	for the	corresponding group of exit codes.

       The dcmsend utility  will  attempt  to  load  DICOM  data  dictionaries
       specified  in the DCMDICTPATH environment variable. By default, i.e. if
       the  DCMDICTPATH	 environment   variable	  is   not   set,   the	  file
       _datadir_/dicom.dic  will be loaded unless the dictionary is built into
       the application (default	for Windows).

       The  default  behavior  should  be  preferred   and   the   DCMDICTPATH
       environment  variable  only used	when alternative data dictionaries are
       required. The DCMDICTPATH environment variable has the same  format  as
       the  Unix  shell	PATH variable in that a	colon (':') separates entries.
       On Windows systems, a semicolon (';') is	used as	a separator. The  data
       dictionary  code	 will  attempt	to  load  each	file  specified	in the
       DCMDICTPATH environment variable. It is an error	if no data  dictionary
       can be loaded.

       dcmrecv(1), storescu(1),	storescp(1)

       Copyright  (C)  2011-2018  by OFFIS e.V., Escherweg 2, 26121 Oldenburg,

Version	3.6.6			Thu Jan	14 2021			    dcmsend(1)


Want to link to this manual page? Use this URL:

home | help