getscu¶
Added in version 1.5.
$ python -m pynetdicom getscu [options] addr port (-k keyword and/or -f file-in)
Description¶
The getscu
application implements a Service Class User (SCU) for
the Query/Retrieve service class. It requests an
association with a peer Application Entity and once established, sends a C-GET
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 (i.e.
the peer acts as a Storage SCU with getscu
the Storage SCP).
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 (Get) service:
$ python -m pynetdicom getscu 127.0.0.1 11112 -k QueryRetrieveLevel=PATIENT -k PatientName=
I: Requesting Association
I: Association Accepted
I: Sending Get 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: Received Store Request
I: Storing DICOM file: CT.1.3.6.1.4.1.5962.1.1.1.1.1.20040119072730.12322
I: Get SCP Response: 1 - 0xFF00 (Pending)
I: Sub-Operations Remaining: 0, Completed: 1, Failed: 0, Warning: 0
I: Get 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: GETSCU)
-aec --called-aet [a]etitle (str)
set the called AE title for the peer AE (default: ANY-SCP)
-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)
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
--ignore
receive data but don’t store it
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 getscu
application supports the Query/Retrieve service classes as an
SCU. The following SOP classes are supported:
Query/Retrieve Service¶
SOP Classes¶
UID |
Transfer Syntax |
---|---|
1.2.840.10008.5.1.4.1.2.1.3 |
Patient Root Query/Retrieve Information Model - GET |
1.2.840.10008.5.1.4.1.2.2.3 |
Study Root Query/Retrieve Information Model - GET |
1.2.840.10008.5.1.4.1.2.3.3 |
Patient Study Only/Query Retrieve Information - GET |
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 |
When receiving datasets sent from the peer the getscu
application
supports the following SOP classes as an SCP:
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.9.6.2 |
Multichannel Respiratory Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.7.1 |
Routine Scalp SleepElectroencephalogram Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.7.2 |
Electromyogram Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.7.3 |
Electrooculogram Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.7.4 |
Sleep Electroencephalogram Waveform Storage |
1.2.840.10008.5.1.4.1.1.9.8.1 |
Body Position 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.77.1.7 |
Dermoscopic Photography 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.88.76 |
Enhanced X-Ray Radiation Dose 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.91.1 |
Microscopy Bulk Simple Annotations 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.128 |
Positron Emission Tomography Image 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 |