movescu¶
Added in version 1.5.
$ python -m pynetdicom movescu [options] addr port (-k keyword and/or -f file-in)
Description¶
The movescu
application implements a Service Class User (SCU) for
the Query/Retrieve service class and optionally
a Service Class Provider (SCP) for the Storage
service class. It requests an association with a peer Application Entity and
once established, sends a C-MOVE query to be matched against
the Query/Retrieve SCP’s managed SOP Instances. The QR SCP then responds by
sending a copy of the matching SOP Instances to the Storage SCP specified
using the C-MOVE query’s Move Destination AE title.
The source code for the application can be found here
Usage¶
The following example shows what happens when it is successfully run on
an SCP at IP 127.0.0.1
and listen port 11112
that supports the
Query/Retrieve service with the default Move Destination AE title
STORESCP
:
$ python -m pynetdicom movescu 127.0.0.1 11112 -k QueryRetrieveLevel=PATIENT -k PatientName=
I: Requesting Association
I: Association Accepted
I: Sending Move Request: MsgID 1
I:
I: # Request Identifier
I: (0008,0052) CS [PATIENT] # 1 QueryRetrieveLevel
I: (0010,0010) PN (no value available) # 0 PatientName
I:
I: Move SCP Response: 1 - 0xFF00 (Pending)
I: Sub-Operations Remaining: 0, Completed: 1, Failed: 0, Warning: 0
I: Move SCP Result: 0x0000 (Success)
I: Sub-Operations Remaining: 0, Completed: 1, Failed: 0, Warning: 0
I: Releasing Association
The Move Destination AE title can be specified using the -aem aetitle
flag.
You can also use the --store
option to start a Storage SCP on port
11113
that can be used as the move destination. The AE title and port of
the Storage SCP can be configured using the --store-aet
and
--store-port
flags:
$ python -m pynetdicom movescu 127.0.0.1 11112 -k QueryRetrieveLevel=PATIENT -k PatientName= --store
I: Requesting Association
I: Association Accepted
I: Sending Move Request: MsgID 1
I:
I: # Request Identifier
I: (0008,0052) CS [PATIENT] # 1 QueryRetrieveLevel
I: (0010,0010) PN (no value available) # 0 PatientName
I:
I: Accepting Association
I: Received Store Request
I: Storing DICOM file: CT.1.3.6.1.4.1.5962.1.1.1.1.1.20040119072730.12322
I: Association Released
I: Move SCP Response: 1 - 0xFF00 (Pending)
I: Sub-Operations Remaining: 0, Completed: 1, Failed: 0, Warning: 0
I: Move SCP Result: 0x0000 (Success)
I: Sub-Operations Remaining: 0, Completed: 1, Failed: 0, Warning: 0
I: Releasing Association
Parameters¶
addr
TCP/IP address or hostname of DICOM peer
port
TCP/IP port number of peer
Options¶
General Options¶
-q --quiet
quiet mode, prints no warnings or errors
-v --verbose
verbose mode, prints processing details
-d --debug
debug mode, prints debugging information
-ll --log-level [l]evel (str)
One of [
'critical'
,'error'
,'warning'
,'info'
,'debug'
], prints logging messages with corresponding level or higher
Network Options¶
-aet --calling-aet [a]etitle (str)
set the local AE title (default: MOVESCU)
-aec --called-aet [a]etitle (str)
set the called AE title for the peer AE (default: ANY-SCP)
-aem --move-aet [a]etitle (str)
set the move destination AE title (default: STORESCP)
-ta --acse-timeout [s]econds (float)
timeout for ACSE messages (default: 30)
-td --dimse-timeout [s]econds (float)
timeout for DIMSE messages (default: 30)
-tn --network-timeout [s]econds (float)
timeout for the network (default: 30)
-pdu --max-pdu [n]umber of bytes (int)
set maximum receive PDU bytes to n bytes (default: 16382)
Storage SCP Options¶
--store
start a Storage SCP that can be used as the move destination
--store-port [p]ort (int)
the listen port number to use for the Storage SCP (default: 11113)
--store-aet [a]etitle (str)
the AE title to use for the Storage SCP (default: STORESCP)
Query Information Model Options¶
-P --patient
use patient root information model (default)
-S --study
use study root information model
-O --psonly
use patient/study only information model
Query Options¶
-k [k]eyword: (gggg,eeee)=str, keyword=str
add or override a query element using either an element tag as (group,element) or the element’s keyword (such as PatientName). See the keyword pathing section for more information.
-f path to [f]ile (str)
use a DICOM file as the query dataset, if used with
-k
then the elements will be added to or overwrite those present in the file
Extended Negotiation Options¶
--relational-retrieval
request the use of relational retrieval
--enhanced-conversion
request the use of enhanced multi-frame image conversion
Output Options¶
-od [d]irectory, --output-directory [d]irectory (str)
write received objects to directory
d
(with--store
)--ignore
receive data but don’t store it (with
--store
)
Keyword pathing¶
When using the -k keyword option it becomes possible to specify the query dataset (the Identifier) without needing to create a DICOM file. Multiple instances of -k can be used to build up the Identifier. For example, this will produce an Identifier with (0008,0052) Query Retrieve Level and (0010,0010) Patient Name elements:
-k QueryRetrieveLevel=PATIENT -k PatientName=
The value after the =
is interpreted as the element’s value, so including
any single or double quotation marks will result in
an incorrect element value. PatientName=Citizen^Jan
is correct,
PatientName="Citizen^Jan"
is not.
Alternatively the element tags can be used instead:
-k (0008,0052)=PATIENT -k (0010,0010)=
Sequences can be specified using the same Python indexing syntax as used by pydicom:
-k OtherPatientIDsSequence[2].PatientID=12345678
When both the -f file and -k keyword options are used then the keywords will be used to update the elements in the file.
Examples¶
Empty (0010,0010) Patient Name element:
-k PatientName=
-k (0010,0010)=
(0010, 0010) Patient's Name PN: ''
Patient Name set to Citizen^Jan
:
-k PatientName=Citizen^Jan
-k (0010,0010)=Citizen^Jan
(0010, 0010) Patient's Name PN: 'Citizen^Jan'
Numeric VRs like US and FL are converted to either int
or float
depending on the VR:
-k Columns=1024
(0028, 0011) Columns US: 1024
Byte VRs like OB and OW are converted to bytes
:
-k PixelData=00FFEA08
(7fe0, 0010) Pixel Data OW: b'\x00\xff\xea\x08'
Elements with VM > 1 can be set by using \\
(where appropriate):
-k AcquisitionIndex=1\\2\\3\\4
(0020, 9518) Acquisition Index US: [1, 2, 3, 4]
Empty (300A,00B0) Beam Sequence:
-k BeamSequence=
-k (300a,00b0)=
(300a, 00b0) Beam Sequence 0 item(s) ----
Beam Sequence with one empty item:
-k BeamSequence[0]=
(300a, 00b0) Beam Sequence 1 item(s) ----
---------
Beam Sequence with four empty items:
-k BeamSequence[3]=
(300a, 00b0) Beam Sequence 4 item(s) ----
---------
---------
---------
---------
Beam Sequence with one non-empty item:
-k BeamSequence[0].PatientName=CITIZEN^Jan
(300a, 00b0) Beam Sequence 1 item(s) ----
(0010, 0010) Patient's Name PN: 'Citizen^Jan'
---------
Nested sequence items:
-k BeamSequence[0].BeamLimitingDeviceSequence[0].NumberOfLeafJawPairs=1
(300a, 00b0) Beam Sequence 1 item(s) ----
(300a, 00b6) Beam Limiting Device Sequence 1 item(s) ----
(300a, 00bc) Number of Leaf/Jaw Pairs IS: "1"
---------
---------
DICOM Conformance¶
The movescu
application supports the Query/Retrieve service classes as an
SCU and the Storage service as an SCP (with the --store
option). The
following SOP classes are supported:
Query/Retrieve Service¶
SOP Classes¶
UID |
Transfer Syntax |
---|---|
1.2.840.10008.5.1.4.1.2.1.2 |
Patient Root Query/Retrieve Information Model - MOVE |
1.2.840.10008.5.1.4.1.2.2.2 |
Study Root Query/Retrieve Information Model - MOVE |
1.2.840.10008.5.1.4.1.2.3.2 |
Patient Study Only Query/Retrieve Information - MOVE |
Transfer Syntaxes¶
UID |
Transfer Syntax |
---|---|
1.2.840.10008.1.2 |
Implicit VR Little Endian |
1.2.840.10008.1.2.1 |
Explicit VR Little Endian |
1.2.840.10008.1.2.1.99 |
Deflated Explicit VR Little Endian |
1.2.840.10008.1.2.2 |
Explicit VR Big Endian |
Storage Service¶
SOP Classes¶
UID |
SOP Class |
---|---|
1.2.840.10008.5.1.4.1.1.1 |
Computed Radiography Image Storage |
1.2.840.10008.5.1.4.1.1.1.1 |
Digital X-Ray Image Storage - For Presentation |
1.2.840.10008.5.1.4.1.1.1.1.1.1 |
Digital X-Ray Image Storage - For Processing |
1.2.840.10008.5.1.4.1.1.1.2 |
Digital Mammography X-Ray Image Storage - For Presentation |
1.2.840.10008.5.1.4.1.1.1.2.1 |
Digital Mammography X-Ray Image Storage - For Processing |
1.2.840.10008.5.1.4.1.1.1.3 |
Digital Intra-Oral X-Ray Image Storage - For Presentation |
1.2.840.10008.5.1.1.4.1.1.3.1 |
Digital Intra-Oral X-Ray Image Storage - For Processing |
1.2.840.10008.5.1.4.1.1.2 |
CT Image Storage |
1.2.840.10008.5.1.4.1.1.2.1 |
Enhanced CT Image Storage |
1.2.840.10008.5.1.4.1.1.2.2 |
Legacy Converted Enhanced CT Image Storage |
1.2.840.10008.5.1.4.1.1.3.1 |
Ultrasound Multi-frame Image Storage |
1.2.840.10008.5.1.4.1.1.4 |
MR Image Storage |
1.2.840.10008.5.1.4.1.1.4.1 |
Enhanced MR Image Storage |
1.2.840.10008.5.1.4.1.1.4.2 |
MR Spectroscopy Storage |
1.2.840.10008.5.1.4.1.1.4.3 |
Enhanced MR Color Image Storage |
1.2.840.10008.5.1.4.1.1.4.4 |
Legacy Converted Enhanced MR Image Storage |
1.2.840.10008.5.1.4.1.1.6.1 |
Ultrasound Image Storage |
1.2.840.10008.5.1.4.1.1.6.2 |
Enhanced US Volume Storage |
1.2.840.10008.5.1.4.1.1.7 |
Secondary Capture Image Storage |
1.2.840.10008.5.1.4.1.1.7.1 |
Multi-frame Single Bit Secondary Capture Image Storage |
1.2.840.10008.5.1.4.1.1.7.2 |
Multi-frame Grayscale Byte Secondary Capture Image Storage |
1.2.840.10008.5.1.4.1.1.7.3 |
Multi-frame Grayscale Word Secondary Capture Image Storage |
1.2.840.10008.5.1.4.1.1.7.4 |
Multi-frame True Color Secondary Capture Image Storage |
1.2.840.10008.5.1.4.1.1.9.1.1 |
12-lead ECG Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.1.2 |
General ECG Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.1.3 |
Ambulatory ECG Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.2.1 |
Hemodynamic Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.3.1 |
Cardiac Electrophysiology Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.4.1 |
Basic Voice Audio Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.4.2 |
General Audio Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.5.1 |
Arterial Pulse Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.6.1 |
Respiratory Waveform Storage |
1.2.840.10008.5.1.4.1.1.11.1 |
Grayscale Softcopy Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.2 |
Color Softcopy Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.3 |
Pseudo-Color Softcopy Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.4 |
Blending Softcopy Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.5 |
XA/XRF Grayscale Softcopy Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.6 |
Grayscale Planar MPR Volumetric Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.7 |
Compositing Planar MPR Volumetric Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.8 |
Advanced Blending Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.9 |
Volume Rendering Volumetric Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.10 |
Segmented Volume Rendering Volumetric Presentation State Storage |
1.2.840.10008.5.1.4.1.1.11.11 |
Multiple Volume Rendering Volumetric Presentation State Storage |
1.2.840.10008.5.1.4.1.1.12.1 |
X-Ray Angiographic Image Storage |
1.2.840.10008.5.1.4.1.1.12.1.1 |
Enhanced XA Image Storage |
1.2.840.10008.5.1.4.1.1.12.2 |
X-Ray Radiofluoroscopic Image Storage |
1.2.840.10008.5.1.4.1.1.12.2.1 |
Enhanced XRF Image Storage |
1.2.840.10008.5.1.4.1.1.13.1.1 |
X-Ray 3D Angiographic Image Storage |
1.2.840.10008.5.1.4.1.1.13.1.2 |
X-Ray 3D Craniofacial Image Storage |
1.2.840.10008.5.1.4.1.1.13.1.3 |
Breast Tomosynthesis Image Storage |
1.2.840.10008.5.1.4.1.1.13.1.4 |
Breast Projection X-Ray Image Storage - For Presentation |
1.2.840.10008.5.1.4.1.1.13.1.5 |
Breast Projection X-Ray Image Storage - For Processing |
1.2.840.10008.5.1.4.1.1.14.1 |
Intravascular Optical Coherence Tomography Image Storage - For Presentation |
1.2.840.10008.5.1.4.1.1.14.2 |
Intravascular Optical Coherence Tomography Image Storage - For Processing |
1.2.840.10008.5.1.4.1.1.20 |
Nuclear Medicine Image Storage |
1.2.840.10008.5.1.4.1.1.30 |
Parametric Map Storage |
1.2.840.10008.5.1.4.1.1.66 |
Raw Data Storage |
1.2.840.10008.5.1.4.1.1.66.1 |
Spatial Registration Storage |
1.2.840.10008.5.1.4.1.1.66.2 |
Spatial Fiducials Storage |
1.2.840.10008.5.1.4.1.1.66.3 |
Deformable Spatial Registration Storage |
1.2.840.10008.5.1.4.1.1.66.4 |
Segmentation Storage |
1.2.840.10008.5.1.4.1.1.66.5 |
Surface Segmentation Storage |
1.2.840.10008.5.1.4.1.1.66.6 |
Tractography Results Storage |
1.2.840.10008.5.1.4.1.1.67 |
Real World Value Mapping Storage |
1.2.840.10008.5.1.4.1.1.68.1 |
Surface Scan Mesh Storage |
1.2.840.10008.5.1.4.1.1.68.2 |
Surface Scan Point Cloud Storage |
1.2.840.10008.5.1.4.1.1.77.1.1 |
VL Endoscopic Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.1.1 |
Video Endoscopic Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.2 |
VL Microscopic Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.2.1 |
Video Microscopic Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.3 |
VL Slide-Coordinates Microscopic Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.4 |
VL Photographic Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.4.1 |
Video Photographic Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.1 |
Ophthalmic Photography 8 Bit Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.2 |
Ophthalmic Photography 16 Bit Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.3 |
Stereometric Relationship Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.4 |
Ophthalmic Tomography Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.5 |
Wide Field Ophthalmic Photography Stereographic Projection Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.6 |
Wide Field Ophthalmic Photography 3D Coordinates Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.7 |
Ophthalmic Optical Coherence Tomography En Face Image Storage |
1.2.840.10008.5.1.4.1.1.77.1.5.8 |
Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage |
1.2.840.10008.5.1.4.1.1.77.1.6 |
VL Whole Slide Microscopy Image Storage |
1.2.840.10008.5.1.4.1.1.78.1 |
Lensometry Measurements Storage |
1.2.840.10008.5.1.4.1.1.78.2 |
Autorefraction Measurements Storage |
1.2.840.10008.5.1.4.1.1.78.3 |
Keratometry Measurements Storage |
1.2.840.10008.5.1.4.1.1.78.4 |
Subjective Refraction Measurements Storage |
1.2.840.10008.5.1.4.1.1.78.5 |
Visual Acuity Measurements Storage |
1.2.840.10008.5.1.4.1.1.78.6 |
Spectacle Prescription Report Storage |
1.2.840.10008.5.1.4.1.1.78.7 |
Ophthalmic Axial Measurements Storage |
1.2.840.10008.5.1.4.1.1.78.8 |
Intraocular Lens Calculations Storage |
1.2.840.10008.5.1.4.1.1.79.1 |
Macular Grid Thickness and Volume Report Storage |
1.2.840.10008.5.1.4.1.1.80.1 |
Ophthalmic Visual Field Static Perimetry Measurements Storage |
1.2.840.10008.5.1.4.1.1.81.1 |
Ophthalmic Thickness Map Storage |
1.2.840.10008.5.1.4.1.1.82.1 |
Corneal Topography Map Storage |
1.2.840.10008.5.1.4.1.1.88.11 |
Basic Text SR Storage |
1.2.840.10008.5.1.4.1.1.88.22 |
Enhanced SR Storage |
1.2.840.10008.5.1.4.1.1.88.33 |
Comprehensive SR Storage |
1.2.840.10008.5.1.4.1.1.88.34 |
Comprehensive 3D SR Storage |
1.2.840.10008.5.1.4.1.1.88.35 |
Extensible SR Storage |
1.2.840.10008.5.1.4.1.1.88.40 |
Procedure Log Storage |
1.2.840.10008.5.1.4.1.1.88.50 |
Mammography CAD SR Storage |
1.2.840.10008.5.1.4.1.1.88.59 |
Key Object Selection Document Storage |
1.2.840.10008.5.1.4.1.1.88.65 |
Chest CAD SR Storage |
1.2.840.10008.5.1.4.1.1.88.67 |
X-Ray Radiation Dose SR Storage |
1.2.840.10008.5.1.4.1.1.88.68 |
Radiopharmaceutical Radiation Dose SR Storage |
1.2.840.10008.5.1.4.1.1.88.69 |
Colon CAD SR Storage |
1.2.840.10008.5.1.4.1.1.88.70 |
Implantation Plan SR Storage |
1.2.840.10008.5.1.4.1.1.88.71 |
Acquisition Context SR Storage |
1.2.840.10008.5.1.4.1.1.88.72 |
Simplified Adult Echo SR Storage |
1.2.840.10008.5.1.4.1.1.88.73 |
Patient Radiation Dose SR Storage |
1.2.840.10008.5.1.4.1.1.88.74 |
Planned Imaging Agent Administration SR Storage |
1.2.840.10008.5.1.4.1.1.88.75 |
Performed Imaging Agent Administration SR Storage |
1.2.840.10008.5.1.4.1.1.90.1 |
Content Assessment Results Storage |
1.2.840.10008.5.1.4.1.1.104.1 |
Encapsulated PDF Storage |
1.2.840.10008.5.1.4.1.1.104.2 |
Encapsulated CDA Storage |
1.2.840.10008.5.1.4.1.1.104.3 |
Encapsulated STL Storage |
1.2.840.10008.5.1.4.1.1.128 |
Positron Emission Tomography Image Storage |
1.2.840.10008.5.1.4.1.1.128.1 |
Legacy Converted Enhanced PET Image Storage |
1.2.840.10008.5.1.4.1.1.130 |
Enhanced PET Image Storage |
1.2.840.10008.5.1.4.1.1.131 |
Basic Structured Display Storage |
1.2.840.10008.5.1.4.1.1.200.2 |
CT Performed Procedure Protocol Storage |
1.2.840.10008.5.1.4.1.1.481.1 |
RT Image Storage |
1.2.840.10008.5.1.4.1.1.481.2 |
RT Dose Storage |
1.2.840.10008.5.1.4.1.1.481.3 |
RT Structure Set Storage |
1.2.840.10008.5.1.4.1.1.481.4 |
RT Beams Treatment Record Storage |
1.2.840.10008.5.1.4.1.1.481.5 |
RT Plan Storage |
1.2.840.10008.5.1.4.1.1.481.6 |
RT Brachy Treatment Record Storage |
1.2.840.10008.5.1.4.1.1.481.7 |
RT Treatment Summary Record Storage |
1.2.840.10008.5.1.4.1.1.481.8 |
RT Ion Plan Storage |
1.2.840.10008.5.1.4.1.1.481.9 |
RT Ion Beams Treatment Record Storage |
1.2.840.10008.5.1.4.1.1.481.10 |
RT Physician Intent Storage |
1.2.840.10008.5.1.4.1.1.481.11 |
RT Segmentation Annotation Storage |
1.2.840.10008.5.1.4.1.1.481.12 |
RT Radiation Set Storage |
1.2.840.10008.5.1.4.1.1.481.13 |
C-Arm Photon-Electron Radiation Storage |
1.2.840.10008.5.1.4.34.7 |
RT Beams Delivery Instruction Storage |
1.2.840.10008.5.1.4.34.10 |
RT Brachy Application Setup Delivery Instructions Storage |
Transfer Syntaxes¶
UID |
Transfer Syntax |
---|---|
1.2.840.10008.1.2 |
Implicit VR Little Endian |
1.2.840.10008.1.2.1 |
Explicit VR Little Endian |
1.2.840.10008.1.2.1.99 |
Deflated Explicit VR Little Endian |
1.2.840.10008.1.2.2 |
Explicit VR Big Endian |
1.2.840.10008.1.2.4.50 |
JPEG Baseline (Process 1) |
1.2.840.10008.1.2.4.51 |
JPEG Extended (Process 2 and 4) |
1.2.840.10008.1.2.4.57 |
JPEG Lossless, Non-Hierarchical (Process 14) |
1.2.840.10008.1.2.4.70 |
JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]) |
1.2.840.10008.1.2.4.80 |
JPEG-LS Lossless Image Compression |
1.2.840.10008.1.2.4.81 |
JPEG-LS Lossy (Near-Lossless) Image Compression |
1.2.840.10008.1.2.4.90 |
JPEG 2000 Image Compression (Lossless Only) |
1.2.840.10008.1.2.4.91 |
JPEG 2000 Image Compression |
1.2.840.10008.1.2.4.92 |
JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only) |
1.2.840.10008.1.2.4.93 |
JPEG 2000 Part 2 Multi-component Image Compression |
1.2.840.10008.1.2.5 |
RLE Lossless |