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