OnWorks favicon

gdcmscu - Online in the Cloud

Run gdcmscu in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command gdcmscu that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



gdcmscu - Tool to execute a DICOM Query/Retrieve operation



Execute a DICOM Q/R operation to HOSTNAME, using port PORT (104 when not specified)


The gdcmscu command line program is the tool to execute DICOM Query/Retrieve operation. It




· C-MOVE (SCU/SCP) C-MOVE operation are executed using two different ports (one for the
SCU and one for the SCP).



specific options
-H --hostname %s Hostname.
-p --port %d Port number.
--aetitle %s Set calling AE Title.
--call %s Set called AE Title.

mode options
--echo C-ECHO (default when none).
--store C-STORE.
--find C-FIND.
--move C-MOVE.

C-STORE options
-i --input %s DICOM filename
-r --recursive recursively process (sub-)directories
--store-query %s Store constructed query in file

C-FIND/C-MOVE options
--patientroot C-FIND Patient Root Model.
--studyroot C-FIND Study Root Model.

--patient C-FIND Query on Patient Info (cannot be used with --studyroot).
--study C-FIND Query on Study Info.
--series C-FIND Query on Series Info.
--image C-FIND Query on Image Info.
--key %d,%d[=%s] 0123,4567=VALUE for specifying search criteria (wildcard allowed)
With --key, leave blank (ie, --key 10,20="" or --key 10,20) to retrieve values

C-MOVE options
-o --output %s DICOM filename / directory
--port-scp %d Port for incoming associations
--key %d,%d[=%s 0123,4567=VALUE for specifying search criteria (wildcard not allowed)
Note that C-MOVE supports the same queries as C-FIND, but no wildcards are allowed

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

-v --version
print version information and exit

-V --verbose
verbose mode (warning+error).

-W --warning
warning mode, print warning information

-E --error
error mode, print error information

-D --debug
debug mode, print debug information

-L --log-file
specify a filename where to write logs

print query help

environment variable


gdcmscu is a great tool to test if a DICOM server is up. For example to send a C-ECHO to
server dicom.example.com using port 104, use:

$ gdcmscu dicom.example.com

or if you prefer being explicit:

$ gdcmscu --echo dicom.example.com 104

Using basic security your DICOM server might require that you set the appropriate called

$ gdcmscu --echo dicom.example.com 11112 --call SERVSCP

If you want to specifiy your own AE-TITLE (default is GDCMSCU), simply use:

$ gdcmscu --echo dicom.example.com 11112 --call SERVSCP --aetitle MYSCU

For example you could test on the DICOM server provided by DICOMObject team:

$ gdcmscu www.dicomserver.co.uk 11112


C-STORE is the operation that allow sending a DICOM file to a remote DICOM server. For
instance to send a file called myfile.dcm

$ gdcmscu --store dicom.example.com 104 myfile.dcm

or if you prefer being explicit:

$ gdcmscu --store dicom.example.com 104 -i myfile.dcm

You can even send multiple files using the same association:

$ gdcmscu --store dicom.example.com 104 myfile1.dcm myfile2.dcm myfile3.dcm ...


gdcmscu also allow querying a DICOM server. This is the C-FIND operation, for example to
find all DICOM Instance where PatientsName match a particular pattern, usage is simply:

$ gdcmscu --find --patient dicom.example.com 11112 --patientroot --key 10,10,"A*"

We also support a DCMTK compatible convention:

$ gdcmscu --find --patient dicom.example.com 11112 --patientroot --key 10,10="A*"

When an attribute is set without a value it will be part of the output result:

$ gdcmscu --find --patient dicom.example.com 11112 --call MI2B2 --patientroot -k 10,10="A*" -k 10,20


C-MOVE is the operation to retrieve a DICOM instance from a remote DICOM server. Most of
the time, it is a subsequent operation after a C-FIND query. To retrieve a DICOM instance
where PatientID is ABCD1234, simply execute:

$ gdcmscu --move --patient --aetitle ACME1 --call ACME_STORE dicom.example.com 5678 --patientroot -k 10,20="ABCD1234" --port-scp 1234

WARNING For this operation to work you need information from the DICOM server you are
communicating with. Only the DICOM server you are sending a C-MOVE query will be
responsible for sending back incoming associations (the actual C-STORE SCP). Therefore you
need to make sure that you mapping of (AE-TITLE,PortNumber) is properly set on the DICOM
server side as well as the port for incoming association (–port-scp).

gdcmscu does not currently support external C-STORE association (C-STORE request sent to
an external SCP application).


The flag –patientroot is just simply a wrapper around the syntax –key 8,52=PATIENT For
instance one would write using DCMTK syntax:

$ findscu --patient dicom.example.com 11112 --key 8,52=PATIENT --key 10,10="F*"

This would become using GDCM syntax:

$ gdcmscu --find --patient dicom.example.com 11112 --patientroot --key 10,10="F*"


This is sometime difficult to investigate why a connection to a remote DICOM server cannot
be done. Some recommendations follows:

Always try to do a simple C-ECHO at first. If you cannot get the C-ECHO to work none of
the other operations will work

Before trying to a C-MOVE operation, make sure you can execute the C-FIND equivalent query

When doing a C-MOVE operation you really need to communicate with the PACS admin as the
C-MOVE operation is different from the other lower level operation such as HTTP/GET. When
doing a C-MOVE, the server will communicate back using another channel (could be different
port) using it's internal database to map an AE-TITLE back to the destination IP.

Indeed the C-MOVE operation by design does not always use your incoming IP address to send
back the resulting dataset. Instead it uses a mapping of AE-TITLE to IP address to send
back any results. So pay particular attention to the spelling of your AE-TITLE and your
incoming port (which may be different from the port to connect to the server).


Watch out that port ranging [1-1024] are reserved for admin and not easily accessible
unless granted special privileges. Therefore the default 104 DICOM port might not be
accessible to all your users.


When constructing a C-STORE operation, gdcmscu will always use the Media Storage SOP Class
UID as found in the file to be sent. For encapsulated DICOM file (eg. RLE Lossless) the
receiving SCP server might not support this compression and will legitimately refuse the
C-STORE operation. In this case users have to manually convert to a non-compressed form
this particular file:

$ gdcmconv --raw compressed.dcm non_compressed.dcm


At the moment gdcmscu only supports non-compressed transfer syntax. It will always request
DataSet using Implicit VR Little Endian Transfer Syntax during a C-MOVE operation (both
incoming and outgoing associations). This make gdcmscu –move equivalent to DCMTK movescu

$ movescu -xi +xi ...


One should pay attention that gdcmscu –find and findscu are not completely equivalent.
Using gdcmscu –find, all Unique Keys will be added automatically. One can therefore
execute something like this:

$ gdcmscu --find --patientroot --image --key 8,18= dicom.example.com 11112

instead of the more explicit form

$ gdcmscu --find --patientroot --image --key 8,18= dicom.example.com 11112 --key 10,20 --key 20,d --key 20,e

This would also be equivalent to:

$ findscu --patient --key 8,52=IMAGE --key 8,18= dicom.example.com 11112 --key 10,20 --key 20,d --key 20,e


It is also possible to store the query:

gdcmscu --find --patient --patientroot dicom.example.com 11112 --key 10,20="*" --key 10,10 --store-query query.dcm

One can then check the DataSet values send for the query:

$ gdcmdump query.dcm
# Dicom-File-Format

# Dicom-Meta-Information-Header
# Used TransferSyntax:

# Dicom-Data-Set
# Used TransferSyntax: 1.2.840.10008.1.2
(0008,0005) ?? (CS) [ISO_IR 192] # 10,1-n Specific Character Set
(0008,0052) ?? (CS) [PATIENT ] # 8,1 Query/Retrieve Level
(0010,0010) ?? (PN) (no value) # 0,1 Patient's Name
(0010,0020) ?? (LO) [* ] # 2,1 Patient ID

The Specific Character Set was set to "ISO_IR 192" as the locale encoding of the system
was found automatically by gdcmscu to be UTF-8.

This means that the following command line will properly setup the Query with the
appropriate Charset to be executed correctly:

$ gdcmscu --find --patient --patientroot dicom.example.com 11112 --key 10,10="*Jérôme*"

The query is always executed on the server side (SCP), some implementations does not
support string matching with different Character Set.


An up to date list of DICOM Public Servers can be found at:


Use gdcmscu online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    rEFInd is a fork of the rEFIt boot
    manager. Like rEFIt, rEFInd can
    auto-detect your installed EFI boot
    loaders and it presents a pretty GUI
    menu of boot option...
    Download rEFInd
  • 2
    ExpressLuke GSI
    ExpressLuke GSI
    This SourceForge download page was to
    grant users to download my source built
    GSIs, based upon phhusson's great
    work. I build both Android Pie and
    Android 1...
    Download ExpressLuke GSI
  • 3
    Music Caster
    Music Caster
    Music Caster is a tray music player
    that lets you cast your local music to a
    Google Cast device. On the first run,
    you will need to click the arrow in your
    Download Music Caster
  • 4
    PyQt is the Python bindings for
    Digia's Qt cross-platform
    application development framework. It
    supports Python v2 and v3 and Qt v4 and
    Qt v5. PyQt is avail...
    Download PyQt
  • 5
    Sardi is a complete restyling and
    optimisation of svg code. 6 choices for
    your applications and 10 kind of folders
    to use in your file manager. The sardi
    Download Sardi
  • 6
    LMMS Digital Audio Workstation
    LMMS Digital Audio Workstation
    LMMS is a free cross-platform software
    which allows you to produce music with
    your computer. If you like this project
    consider getting involved in the project
    Download LMMS Digital Audio Workstation
  • More »

Linux commands