dcmqrscp(1)
πΎ dcmqrscp(1) β the OFFIS DCMTK era, but make it a group chat π«Ά
okay so bestie, you're looking at dcmqrscp from OFFIS DCMTK, and honestly? she's a whole central test node and she's about to be your new hyperfixation. let's get into it π
β¨ NAME β¨
dcmqrscp β the DICOM image archive, aka the central test node. no cap, that's literally her job π
β¨ SYNOPSIS β¨
dcmqrscp [options] [port]
β¨ DESCRIPTION β¨
so the Image Central Test Node (that's dcmqrscp, hi bestie π) implements a simple image archive. she manages a bunch of storage areas and lets images get stored in those storage areas via the DICOM Storage Service Class. iconic behavior honestly.
she also lets image attributes be queried and images be retrieved using the DICOM Query/Retrieve Service Class. and β plot twist β she implements access restriction rules to limit operations to specific peer application entities. gatekeeping, but make it networking π
dcmqrscp is intended for DICOM demonstrations and as a compatibility test tool. and here's the spicy part: she will delete images if her quota restrictions have been exceeded. not me being dramatic, that's just the spec π
β οΈ Caution, bestie, please read this one: the format of dcmqrdb's binaryindex.datfile changed on20130705due to a bug fix in the corresponding code. anindex.datfile created before that date will not work with dcmqrdb code compiled after that date β it must be re-created. usedcmqridxfor that task, or re-send all images to the server after deleting all old files (and creating a new emptyindex.datfile). fr fr, don't skip this π
β¨ PARAMETERS β¨
portβ the tcp/ip port number to listen on (default: in config file). she's gotta know where to sit and wait for her little connections π¦
β¨ OPTIONS β¨
πΈ general options πΈ
-h,--helpβ print this help text and exit. the classic "help me help you" move.--versionβ print version information and exit. vibe check on the version β¨--argumentsβ print expanded command line arguments. so you can see what you actually said.-q,--quietβ quiet mode, print no warnings and errors. she's giving silent treatment energy π-v,--verboseβ verbose mode, print processing details. now she's oversharing (affectionate) π-d,--debugβ debug mode, print debug information. for when you need to know everything.-ll,--log-level[l]evel: string constant β(fatal, error, warn, info, debug, trace), use level l for the logger. pick your level of drama, bestie.-lc,--log-config[f]ilename: string β use config file f for the logger. logger aesthetic acquired π-c,--config[f]ilename: string β use specific configuration file (default:/usr/local/etc/dcmtk-<VERSION>/dcmqrscp.cfg).
this option allows a specific configuration file to be specified. by default, the configuration file in the system configuration directory ("etc" on Unix systems and current working directory on Windows systems) with the namedcmqrscp.cfgwill be used. it is an error if a valid configuration file is not available. see the documentation on configuration for more information (dcmqrcnf.txtand the example configuration filedcmqrscp.cfg). no config? she's not showing up to the function π
π§ multi-process options π§
-s,--single-processβ single process mode.
this option instructsdcmqrscpto run in single process mode. normally,dcmqrscpwill spawn a new copy of itself to handle each association. this option will prevent such copies being spawned and is particularly useful when running within a debugger. one girl, doing everything herself π
--forkβ fork child process for each association (default). the clone army default π«Ά
please note that the multi-process options are only available on systems that support the fork() call, i.e. not on Windows. sorry windows besties π
π¦ database options π¦
π association negotiation:
--require-findβ reject all MOVE/GET presentation contexts for which no corresponding FIND context is proposed.
this option causes dcmqrscp to enforce a restriction about FIND and MOVE presentation contexts. the RSNA'93 demonstration required that a CTN refuse to accept a presentation context for a MOVE if a FIND presentation context is not also requested. this option enforces this restriction. no FIND? then no MOVE, periodt β
--no-parallel-storeβ reject multiple simultaneous STORE presentation contexts for one application entity title.
this option causes dcmqrscp to refuse storage presentations contexts for AE Titles if another association has already successfully negotiated storage presentation contexts for the AE Title. this option should only be needed for debugging since the dcmqrscp database back-end sequentialises access via file-locking. she already handles it, ok?? π
--disable-getβ disable C-GET support. not today, C-GET π«--allow-shutdownβ allow external shutdown via a private SOP class. she can be shut down remotely, main character energy π
π checking identifier validity:
-XF,--check-findβ check C-FIND identifier validity.
this option causes thedcmqrscpdatabase back-end to perform checks on the Query Identifiers for a C-FIND command. with this option,dcmqrscpwill reject any queries which do not conform to the very strict DICOM rules for Query Identifiers. she's a strict queen π
--no-check-findβ do not check C-FIND identifier validity (default). chill mode, the default bestie π-XM,--check-moveβ check C-MOVE identifier validity.
this option causes thedcmqrscpdatabase back-end to perform checks on the Query Identifiers for a C-MOVE command. with this option,dcmqrscpwill reject any queries which do not conform to the very strict DICOM rules for Query Identifiers. same energy, different command β¨
--no-check-moveβ do not check C-MOVE identifier validity (default). the default, once again, lowkey chill π§
π restriction of move targets:
--move-unrestrictedβ do not restrict move destination (default). go wherever, girl π«-ZA,--move-aetitleβ restrict move destination to requesting AE title. only her own AE title is allowed to be the destination π-ZH,--move-hostβ restrict move destination to requesting host. only the requesting host, babe π¦-ZV,--move-vendorβ restrict move destination to requesting vendor. vendor-locked, but in a move-destination way πΈ
π restriction of query/retrieve models:
-QP,--no-patient-rootβ do not support Patient Root Q/R models.-QS,--no-study-rootβ do not support Study Root Q/R models.-QO,--no-patient-studyβ do not support Patient/Study Only Q/R models.
three little switches, each one telling a whole Q/R model to stay home π
π network options π
π IP protocol version:
-i4,--ipv4β use IPv4 only (default). the classic, the default, the reliable π-i6,--ipv6β use IPv6 only. newer, shinier, more addresses π-i0,--ip-autoβ use IPv6/IPv4 dual stack. why choose? she does both π
π association negotiation profiles from configuration file:
-xf,--assoc-config-file[f]ilename, [i]n-profile, [o]ut-profile: string β use profile i from f for incoming associations, and profile o from f for outgoing associations. incoming gets i, outgoing gets o, both live in f π
π preferred network transfer syntaxes (incoming associations):
okay this is the long one, deep breaths, we're listing all of them because every single one matters π«Ά
+x=,--prefer-uncomprβ prefer explicit VR local byte order (default).+xe,--prefer-littleβ prefer explicit VR little endian TS.+xb,--prefer-bigβ prefer explicit VR big endian TS.+xs,--prefer-losslessβ prefer default JPEG lossless TS.+xy,--prefer-jpeg8β prefer default JPEG lossy TS for 8 bit data.+xx,--prefer-jpeg12β prefer default JPEG lossy TS for 12 bit data.+xv,--prefer-j2k-losslessβ prefer JPEG 2000 lossless TS.+xw,--prefer-j2k-lossyβ prefer JPEG 2000 lossy TS.+xt,--prefer-jls-losslessβ prefer JPEG-LS lossless TS.+xu,--prefer-jls-lossyβ prefer JPEG-LS lossy TS.+xm,--prefer-mpeg2β prefer MPEG2 Main Profile @ Main Level TS.+xh,--prefer-mpeg2-highβ prefer MPEG2 Main Profile @ High Level TS.+xn,--prefer-mpeg4β prefer MPEG4 AVC/H.264 High Profile / Level 4.1 TS.+xl,--prefer-mpeg4-bdβ prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS.+x2,--prefer-mpeg4-2-2dβ prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos.+x3,--prefer-mpeg4-2-3dβ prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos.+xo,--prefer-mpeg4-2-stβ prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS.+x4,--prefer-hevcβ prefer HEVC/H.265 Main Profile / Level 5.1 TS.+x5,--prefer-hevc10β prefer HEVC/H.265 Main 10 Profile / Level 5.1 TS.+xr,--prefer-rleβ prefer RLE lossless TS.+xd,--prefer-deflatedβ prefer deflated explicit VR little endian TS.+xi,--implicitβ accept implicit VR little endian TS only. only the one. picky queen π
π proposed transmission transfer syntaxes (outgoing associations):
and now the outgoing side, equally long, equally important, no skipping β¨
-x=,--propose-uncomprβ propose all uncompressed TS, explicit VR with local byte ordering first (default).-xe,--propose-littleβ propose all uncompressed TS, explicit VR little endian first.-xb,--propose-bigβ propose all uncompressed TS, explicit VR big endian first.-xi,--propose-implicitβ propose implicit VR little endian TS only.-xs,--propose-losslessβ propose default JPEG lossless TS and all uncompressed transfer syntaxes.-xy,--propose-jpeg8β propose default JPEG lossy TS for 8 bit data and all uncompressed transfer syntaxes.-xx,--propose-jpeg12β propose default JPEG lossy TS for 12 bit data and all uncompressed transfer syntaxes.-xv,--propose-j2k-losslessβ propose JPEG 2000 lossless TS and all uncompressed transfer syntaxes.-xw,--propose-j2k-lossyβ propose JPEG 2000 lossy TS and all uncompressed transfer syntaxes.-xt,--propose-jls-losslessβ propose JPEG-LS lossless TS and all uncompressed transfer syntaxes.-xu,--propose-jls-lossyβ propose JPEG-LS lossy TS and all uncompressed transfer syntaxes.-xm,--propose-mpeg2β propose MPEG2 Main Profile @ Main Level TS only.-xh,--propose-mpeg2-highβ propose MPEG2 Main Profile @ High Level TS only.-xn,--propose-mpeg4β propose MPEG4 AVC/H.264 High Profile / Level 4.1 TS only.-xl,--propose-mpeg4-bdβ propose MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS only.-x2,--propose-mpeg4-2-2dβ propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos only.-x3,--propose-mpeg4-2-3dβ propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos only.-xo,--propose-mpeg4-2-stβ propose MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS only.-x4,--propose-hevcβ propose HEVC/H.265 Main Profile / Level 5.1 TS only.-x5,--propose-hevc10β propose HEVC/H.265 Main 10 Profile / Level 5.1 TS only.-xr,--propose-rleβ propose RLE lossless TS and all uncompressed transfer syntaxes.-xd,--propose-deflatedβ propose deflated explicit VR little endian TS and all uncompressed transfer syntaxes.
π network host access control (tcp wrapper):
-ac,--access-fullβ accept connections from any host (default). everyone's welcome, come on in π«Ά
β¨ other network options β¨
+ac,--access-controlβ enforce host access control rules.-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: use value from configuration file).-dhl,--disable-host-lookupβ disable hostname lookup.--refuseβ refuse association.--rejectβ reject association if no implementation class UID.--ignoreβ ignore store data, receive but do not store.
π--ignorecauses thedcmqrscpdatabase back-end to ignore all images received by the Storage Service Class. All images will be received from the network but not stored to disk nor recorded in database.
-up,--uid-paddingβ silently correct space-padded UIDs.
πΈ processing options πΈ
specific character set:
π§ the following options require support from an underlying character encoding library (see output of --version on which one is available)
+Cr,--use-request-charsetβ try to convert all element values that are affected by Specific Character Set (0008,0005) to the one specified in the request data set, fall back to the one specified via--convert-to-xxxif that is not possible (default, unless overridden by config file).-Cr,--override-charsetβ convert affected element values to the character set specified via--convert-to-xxx, ignoring the one specified in the request.+A7,--convert-to-asciiβ convert affected element values to 7-bit ASCII (default, unless overridden by config file).+U8,--convert-to-utf8β convert affected element values to UTF-8.+L1,--convert-to-latin1β convert affected element values to ISO 8859-1.+C,--convert-to-charsetβ[c]harset: string: convert affected element values to the character set specified by the DICOM defined term c.-Ct,--transliterateβ try to approximate characters that cannot be represented through similar looking characters.-Cd,--discard-illegalβ discard characters that cannot be represented in destination character set.
π transport layer security (TLS) options π
transport protocol stack:
-tls,--disable-tlsβ use normal TCP/IP connection (default).+tls,--enable-tlsβ[p]rivate key file, [c]ertificate file: string: use authenticated secure TLS connection.
private key password (only with --enable-tls):
+ps,--std-passwdβ prompt user to type password on stdin (default).+pw,--use-passwdβ[p]assword: string: use specified password.-pw,--null-passwdβ use empty string as password.
key and certificate file format:
-pem,--pem-keysβ read keys and certificates as PEM file (default).-der,--der-keysβ read keys and certificates as DER file.
certification authority:
+cf,--add-cert-fileβ[f]ilename: string: add certificate file to list of certificates.+cd,--add-cert-dirβ[d]irectory: string: add certificates in d to list of certificates.+crl,--add-crl-fileβ[f]ilename: string: add certificate revocation list file (implies--enable-crl-vfy).+crv,--enable-crl-vfyβ enable leaf CRL verification.+cra,--enable-crl-allβ enable full chain CRL verification.
security profile:
+ph,--list-profilesβ list supported TLS profiles and exit.+pg,--profile-8996β BCP 195 RFC 8996 TLS Profile (default).+pm,--profile-8996-modβ Modified BCP 195 RFC 8996 TLS Profile. Only available if underlying TLS library supports all TLS features required for this profile.+py,--profile-bcp195-ndβ Non-downgrading BCP 195 TLS Profile (retired).+px,--profile-bcp195β BCP 195 TLS Profile (retired).+pz,--profile-bcp195-exβ Extended BCP 195 TLS Profile (retired).+pb,--profile-basicβ Basic TLS Secure Transport Connection Profile (retired). Only available if underlying TLS library supports 3DES.+pa,--profile-aesβ AES TLS Secure Transport Connection Profile (retired).+pn,--profile-nullβ Authenticated unencrypted communication (retired, was used in IHE ATNA).
ciphersuite:
+cc,--list-ciphersβ list supported TLS ciphersuites and exit.+cs,--cipherβ[c]iphersuite name: string: add ciphersuite to list of negotiated suites.+dp,--dhparamβ[f]ilename: string: read DH parameters for DH/DSS ciphersuites.
server name indication:
--no-sniβ do not use SNI (default).--expect-sniβ[s]erver name: string: expect requests for server name s.
pseudo random generator:
+rs,--seedβ[f]ilename: string: seed random generator with contents of f.+ws,--write-seedβ write back modified seed (only with--seed).+wf,--write-seed-fileβ[f]ilename: string(only with--seed): write modified seed to file f.
peer authentication:
-rc,--require-peer-certβ verify peer certificate, fail if absent (default).-vc,--verify-peer-certβ verify peer certificate if present.-ic,--ignore-peer-certβ don't verify peer certificate.
πΎ output options πΎ
bit preserving mode:
-B,--normalβ allow implicit format conversions (default).+B,--bit-preservingβ write data exactly as read.
output file format:
+F,--write-fileβ write file format (default).-F,--write-datasetβ write data set without file meta information.
output transfer syntax: (not with --bit-preserving or compressed transmission)
+t=,--write-xfer-sameβ write with same TS as input (default).+te,--write-xfer-littleβ write with explicit VR little endian TS.+tb,--write-xfer-bigβ write with explicit VR big endian TS.+ti,--write-xfer-implicitβ write with implicit VR little endian TS.+td,--write-xfer-deflatedβ write with deflated explicit VR little endian TS.
post-1993 value representations:
+u,--enable-new-vrβ enable support for new VRs (UN/UT) (default).-u,--disable-new-vrβ disable support for new VRs, convert to OB.
group length encoding (not with --bit-preserving):
+g=,--group-length-recalcβ recalculate group lengths if present (default).+g,--group-length-createβ always write with group length elements.-g,--group-length-removeβ always write without group length elements.
length encoding in sequences and items (not with --bit-preserving):
+e,--length-explicitβ write with explicit lengths (default).-e,--length-undefinedβ write with undefined lengths.
data set trailing padding (not with --write-dataset or --bit-preserving):
-p,--padding-offβ no padding (default).+p,--padding-createβ[f]ile-pad [i]tem-pad: integer: align file on multiple of f bytes and items on multiple of i bytes.
deflate compression level (only with --propose-deflated or --write-xfer-deflated/same):
+cl,--compression-levelβ[l]evel: integer(default: 6): 0=uncompressed, 1=fastest, 9=best compression.
π NOTES π
π οΈ Operation π οΈ
Okay so picture this: dcmqrscp is just sitting there waiting for another application to connect at the presentation address (port number) specified in its configuration file β or overridden by a command line option. π
When another application connects, dcmqrscp expects it to be a DICOM application and to use the calling and called AE Titles specified in dcmqrscp's configuration file. It will accept associations with Presentation Contexts for SOP Classes of the Verification Service Class, Storage Service Class and Query/Retrieve Service Class. But heads up: associations will be rejected or Presentation Contexts will be refused if the peer application does not have appropriate access rights as specified by the dcmqrscp configuration file. π«Ά
dcmqrscp will receive images on Presentation Contexts of the Storage Service Class, write them to a configurable storage area associated with the class AE title, extract attributes from these images and store them in a database. It will receive query requests and generate query responses on Presentation Contexts of the Query/Retrieve Service class. It will receive retrieve requests and generate retrieve responses on Presentation Contexts of the Query/Retrieve Service class. It will also process C-CANCEL messages to interrupt query/retrieve operations. β¨
Under normal operations dcmqrscp will never exit β it keeps on waiting for new associations until killed. Like, main character energy: it does not leave. π
π©Ί DICOM Conformance π©Ί
π SCU Conformance π
The dcmqrscp application supports the following SOP Classes as an SCU:
VerificationSOPClass 1.2.840.10008.1.1
β¦okay so picking right back up on the list, no interruptions, here's the rest of it, all of it, every single one π
(yes the RETIRED_ prefixes stay, they're doing their own thing):
RETIRED_StoredPrintStorage 1.2.840.10008.5.1.1.27
RETIRED_HardcopyGrayscaleImageStorage 1.2.840.10008.5.1.1.29
RETIRED_HardcopyColorImageStorage 1.2.840.10008.5.1.1.30
ComputedRadiographyImageStorage 1.2.840.10008.5.1.4.1.1.1
DigitalXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.1
DigitalXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.1.1
DigitalMammographyXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.2
DigitalMammographyXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.2.1
DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3
DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1
CTImageStorage 1.2.840.10008.5.1.4.1.1.2
EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1
LegacyConvertedEnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.2
RETIRED_UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3
UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1
MRImageStorage 1.2.840.10008.5.1.4.1.1.4
EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1
MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2
EnhancedMRColorImageStorage 1.2.840.10008.5.1.4.1.1.4.3
LegacyConvertedEnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.4
RETIRED_NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.5
RETIRED_UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6
UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1
EnhancedUSVolumeStorage 1.2.840.10008.5.1.4.1.1.6.2
SecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7
MultiframeSingleBitSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.1
MultiframeGrayscaleByteSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.2
MultiframeGrayscaleWordSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.3
MultiframeTrueColorSecondaryCaptureImageStorage 1.2.840.10008.5.1.4.1.1.7.4
RETIRED_StandaloneOverlayStorage 1.2.840.10008.5.1.4.1.1.8
RETIRED_StandaloneCurveStorage 1.2.840.10008.5.1.4.1.1.9
TwelveLeadECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.1
GeneralECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.2
AmbulatoryECGWaveformStorage 1.2.840.10008.5.1.4.1.1.9.1.3
HemodynamicWaveformStorage 1.2.840.10008.5.1.4.1.1.9.2.1
CardiacElectrophysiologyWaveformStorage 1.2.840.10008.5.1.4.1.1.9.3.1
BasicVoiceAudioWaveformStorage 1.2.840.10008.5.1.4.1.1.9.4.1
GeneralAudioWaveformStorage 1.2.840.10008.5.1.4.1.1.9.4.2
ArterialPulseWaveformStorage 1.2.840.10008.5.1.4.1.1.9.5.1
RespiratoryWaveformStorage 1.2.840.10008.5.1.4.1.1.9.6.1
RETIRED_StandaloneModalityLUTStorage 1.2.840.10008.5.1.4.1.1.10
RETIRED_StandaloneVOILUTStorage 1.2.840.10008.5.1.4.1.1.11
GrayscaleSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.1
ColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.2
PseudoColorSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.3
BlendingSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.4
XAXRFGrayscaleSoftcopyPresentationStateStorage 1.2.840.10008.5.1.4.1.1.11.5
XRayAngiographicImageStorage 1.2.840.10008.5.1.4.1.1.12.1
EnhancedXAImageStorage 1.2.840.10008.5.1.4.1.1.12.1.1
XRayRadiofluoroscopicImageStorage 1.2.840.10008.5.1.4.1.1.12.2
EnhancedXRFImageStorage 1.2.840.10008.5.1.4.1.1.12.2.1
RETIRED_XRayAngiographicBiPlaneImageStorage 1.2.840.10008.5.1.4.1.1.12.3
XRay3DAngiographicImageStorage 1.2.840.10008.5.1.4.1.1.13.1.1
XRay3DCraniofacialImageStorage 1.2.840.10008.5.1.4.1.1.13.1.2
BreastTomosynthesisImageStorage 1.2.840.10008.5.1.4.1.1.13.1.3
IntravascularOpt.Coh.Tom.ImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.14.1
IntravascularOpt.Coh.Tom.ImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.14.2
NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.20
RawDataStorage 1.2.840.10008.5.1.4.1.1.66
SpatialRegistrationStorage 1.2.840.10008.5.1.4.1.1.66.1
SpatialFiducialsStorage 1.2.840.10008.5.1.4.1.1.66.2
DeformableSpatialRegistrationStorage 1.2.840.10008.5.1.4.1.1.66.3
SegmentationStorage 1.2.840.10008.5.1.4.1.1.66.4
SurfaceSegmentationStorage 1.2.840.10008.5.1.4.1.1.66.5
RealWorldValueMappingStorage 1.2.840.10008.5.1.4.1.1.67
SurfaceScanMeshStorage 1.2.840.10008.5.1.4.1.1.68.1
SurfaceScanPointCloudStorage 1.2.840.10008.5.1.4.1.1.68.2
RETIRED_VLImageStorage 1.2.840.10008.5.1.4.1.1.77.1
VLEndoscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.1
VideoEndoscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.1.1
VLMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.2
VideoMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.2.1
VLSlideCoordinatesMicroscopicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.3
VLPhotographicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.4
VideoPhotographicImageStorage 1.2.840.10008.5.1.4.1.1.77.1.4.1
OphthalmicPhotography8BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.1
OphthalmicPhotography16BitImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.2
StereometricRelationshipStorage 1.2.840.10008.5.1.4.1.1.77.1.5.3
OphthalmicTomographyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.5.4
VLWholeSlideMicroscopyImageStorage 1.2.840.10008.5.1.4.1.1.77.1.6
RETIRED_VLMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.77.2
LensometryMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.1
AutorefractionMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.2
KeratometryMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.3
SubjectiveRefractionMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.4
VisualAcuityMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.5
SpectaclePrescriptionReportStorage 1.2.840.10008.5.1.4.1.1.78.6
OphthalmicAxialMeasurementsStorage 1.2.840.10008.5.1.4.1.1.78.7
IntraocularLensCalculationsStorage 1.2.840.10008.5.1.4.1.1.78.8
MacularGridThicknessAndVolumeReportStorage 1.2.840.10008.5.1.4.1.1.79.1
OphthalmicVisualFieldStaticPerimetryMeasurementsSt. 1.2.840.10008.5.1.4.1.1.80.1
OphthalmicThicknessMapStorage 1.2.840.10008.5.1.4.1.1.81.1
BasicTextSRStorage 1.2.840.10008.5.1.4.1.1.88.11
EnhancedSRStorage 1.2.840.10008.5.1.4.1.1.88.22
ComprehensiveSRStorage 1.2.840.10008.5.1.4.1.1.88.33
Comprehensive3DSRStorage 1.2.840.10008.5.1.4.1.1.88.34
ProcedureLogStorage 1.2.840.10008.5.1.4.1.1.88.40
MammographyCADSRStorage 1.2.840.10008.5.1.4.1.1.88.50
KeyObjectSelectionDocumentStorage 1.2.840.10008.5.1.4.1.1.88.59
ChestCADSRStorage 1.2.840.10008.5.1.4.1.1.88.65
XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67
ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69
ImplantationPlanSRStorage 1.2.840.10008.5.1.4.1.1.88.70
EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1
EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2
PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128
LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128.1
RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129
EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130
BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131
RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1
RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2
RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3
RTBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.4
RTPlanStorage 1.2.840.10008.5.1.4.1.1.481.5
RTBrachyTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.6
RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481.7
RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8
RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9
RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7
Okay bestie, quick vibe check on that list π«Ά β the ones with RETIRED_ up front are literally the elders of the group chat, and a couple of the long names got clipped with a . at the end (IntravascularOpt.Coh.Tom.ImageStorageForPresentation, I'm looking at you π, and OphthalmicVisualFieldStaticPerimetryMeasurementsSt. too). That's their actual names in here, don't come for me, I typed them exactly like the page says β¨
Now the important part π₯
dcmqrscp will propose presentation contexts for all of the abovementioned supported SOP Classes using these transfer syntaxes:
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
That's the default behavior, bestie β the out-of-the-box, no-thoughts-just-vibes setup π But you can change it, and the way you change it is with the --propose options (they're up there in the options section, go scroll, I'll wait π
). Depending on which of those you pick, here's the transfer syntaxes that are supported:
β¦and here's the rest of the default presentation-context list, bestie β full UIDs, no skips, no shortcuts π
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99 (*)
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
JPEG2000LosslessOnlyTransferSyntax 1.2.840.10008.1.2.4.90
JPEG2000TransferSyntax 1.2.840.10008.1.2.4.91
MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100
MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101
MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102
MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103
MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104
MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105
MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106
HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107
HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108
RLELosslessTransferSyntax 1.2.840.10008.1.2.5
(*) that lil asterisk on the deflated one means it's only there if compiled with zlib support enabled (peep the --version output to check, iykyk π§).
Okay and now a genuine vibe check moment π β the dcmqrscp application does not support extended negotiation. That's it, that's the whole sentence, no cap.
But like, if you do want presentation contexts for other SOP Classes and/or transfer syntaxes, you can set them up through the --assoc-config-file option β just pick an appropriate profile for outgoing associations β¨. Heads up though: the selected profile will completely override the default configuration listed above. Like, whole thing, gone, replaced. Not a merge, bestie, a takeover π
π SCP Conformance π
So dcmqrscp supports these SOP Classes as an SCP β the full roster, slay π
VerificationSOPClass 1.2.840.10008.1.1
FINDPatientRootQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.1.1
FINDPatientStudyOnlyQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.3.1
FINDStudyRootQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.2.1
GETPatientRootQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.1.3
GETPatientStudyOnlyQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.3.3
GETStudyRootQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.2.3
MOVEPatientRootQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.1.2
MOVEPatientStudyOnlyQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.3.2
MOVEStudyRootQueryRetrieveInformationModel 1.2.840.10008.5.1.4.1.2.2.2
Like, that's the verification one plus the whole FIND / GET / MOVE trio across Patient Root, Patient/Study Only and Study Root β main character energy for real π«Ά
okay so we're still in the SOP class list, bestie, and it is long π but every single UID here is a real one that dcmqrscp knows about, so we're listing them all, no cap π
Names with RETIRED_ in front and names with DRAFT_ in front are literally spelled that way β that's the actual string, not me being dramatic π
RETIRED_StoredPrintStorageβ1.2.840.10008.5.1.1.27RETIRED_HardcopyGrayscaleImageStorageβ1.2.840.10008.5.1.1.29RETIRED_HardcopyColorImageStorageβ1.2.840.10008.5.1.1.30ComputedRadiographyImageStorageβ1.2.840.10008.5.1.4.1.1.1DigitalXRayImageStorageForPresentationβ1.2.840.10008.5.1.4.1.1.1.1DigitalXRayImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.1.1.1DigitalMammographyXRayImageStorageForPresentationβ1.2.840.10008.5.1.4.1.1.1.2DigitalMammographyXRayImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.1.2.1DigitalIntraOralXRayImageStorageForPresentationβ1.2.840.10008.5.1.4.1.1.1.3DigitalIntraOralXRayImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.1.3.1
that's the radiography girlies β and notice how every ...ForPresentation has a matching ...ForProcessing twin? siblings, your honor π«Ά
CTImageStorageβ1.2.840.10008.5.1.4.1.1.2EnhancedCTImageStorageβ1.2.840.10008.5.1.4.1.1.2.1LegacyConvertedEnhancedCTImageStorageβ1.2.840.10008.5.1.4.1.1.2.2CTImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.2.3EnhancedCTImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.2.4LegacyConvertedEnhancedCTImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.2.5
RETIRED_UltrasoundMultiframeImageStorageβ1.2.840.10008.5.1.4.1.1.3UltrasoundMultiframeImageStorageβ1.2.840.10008.5.1.4.1.1.3.1MRImageStorageβ1.2.840.10008.5.1.4.1.1.4EnhancedMRImageStorageβ1.2.840.10008.5.1.4.1.1.4.1MRSpectroscopyStorageβ1.2.840.10008.5.1.4.1.1.4.2EnhancedMRColorImageStorageβ1.2.840.10008.5.1.4.1.1.4.3LegacyConvertedEnhancedMRImageStorageβ1.2.840.10008.5.1.4.1.1.4.4RETIRED_NuclearMedicineImageStorageβ1.2.840.10008.5.1.4.1.1.5RETIRED_UltrasoundImageStorageβ1.2.840.10008.5.1.4.1.1.6UltrasoundImageStorageβ1.2.840.10008.5.1.4.1.1.6.1EnhancedUSVolumeStorageβ1.2.840.10008.5.1.4.1.1.6.2PhotoacousticImageStorageβ1.2.840.10008.5.1.4.1.1.6.3
the retired US one and the un-retired one sit right next to each other with nearly the same UID and honestly? it's giving "we don't talk about her anymore" π
SecondaryCaptureImageStorageβ1.2.840.10008.5.1.4.1.1.7MultiframeSingleBitSecondaryCaptureImageStorageβ1.2.840.10008.5.1.4.1.1.7.1MultiframeGrayscaleByteSecondaryCaptureImageStorageβ1.2.840.10008.5.1.4.1.1.7.2MultiframeGrayscaleWordSecondaryCaptureImageStorageβ1.2.840.10008.5.1.4.1.1.7.3MultiframeTrueColorSecondaryCaptureImageStorageβ1.2.840.10008.5.1.4.1.1.7.4RETIRED_StandaloneOverlayStorageβ1.2.840.10008.5.1.4.1.1.8RETIRED_StandaloneCurveStorageβ1.2.840.10008.5.1.4.1.1.9
waveform era β‘ this whole chunk is the body-monitor cinematic universe:
DRAFT_WaveformStorageβ1.2.840.10008.5.1.4.1.1.9.1TwelveLeadECGWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.1.1GeneralECGWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.1.2AmbulatoryECGWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.1.3General32BitECGWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.1.4HemodynamicWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.2.1CardiacElectrophysiologyWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.3.1BasicVoiceAudioWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.4.1GeneralAudioWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.4.2ArterialPulseWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.5.1RespiratoryWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.6.1MultichannelRespiratoryWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.6.2RoutineScalpElectroencephalogramWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.7.1ElectromyogramWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.7.2ElectrooculogramWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.7.3SleepElectroencephalogramWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.7.4BodyPositionWaveformStorageβ1.2.840.10008.5.1.4.1.1.9.8.1WaveformPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.9.100.1WaveformAcquisitionPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.9.100.2
presentation state o'clock π¨ (these are the "here's how you should look at it" ones):
RETIRED_StandaloneModalityLUTStorageβ1.2.840.10008.5.1.4.1.1.10RETIRED_StandaloneVOILUTStorageβ1.2.840.10008.5.1.4.1.1.11GrayscaleSoftcopyPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.1ColorSoftcopyPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.2PseudoColorSoftcopyPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.3BlendingSoftcopyPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.4XAXRFGrayscaleSoftcopyPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.5GrayscalePlanarMPRVolumetricPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.6CompositingPlanarMPRVolumetricPresent.StateStorageβ1.2.840.10008.5.1.4.1.1.11.7AdvancedBlendingPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.8VolumeRenderingVolumetricPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.9SegmentedVolumeRenderingVolumetricPres.StateStorageβ1.2.840.10008.5.1.4.1.1.11.10MultipleVolumeRenderingVolumetricPres.StateStorageβ1.2.840.10008.5.1.4.1.1.11.11VariableModalityLUTSoftcopyPresentationStateStorageβ1.2.840.10008.5.1.4.1.1.11.12
yes bestie,CompositingPlanarMPRVolumetricPresent.StateStorage,SegmentedVolumeRenderingVolumetricPres.StateStorageandMultipleVolumeRenderingVolumetricPres.StateStoragereally do have a.shoved in the middle of the word β that's how they're written here, so type them exactly like that or the lookup will not know her π
XRayAngiographicImageStorageβ1.2.840.10008.5.1.4.1.1.12.1EnhancedXAImageStorageβ1.2.840.10008.5.1.4.1.1.12.1.1XRayRadiofluoroscopicImageStorageβ1.2.840.10008.5.1.4.1.1.12.2EnhancedXRFImageStorageβ1.2.840.10008.5.1.4.1.1.12.2.1RETIRED_XRayAngiographicBiPlaneImageStorageβ1.2.840.10008.5.1.4.1.1.12.3XRay3DAngiographicImageStorageβ1.2.840.10008.5.1.4.1.1.13.1.1XRay3DCraniofacialImageStorageβ1.2.840.10008.5.1.4.1.1.13.1.2BreastTomosynthesisImageStorageβ1.2.840.10008.5.1.4.1.1.13.1.3BreastProjectionXRayImageStorageForPresentationβ1.2.840.10008.5.1.4.1.1.13.1.4BreastProjectionXRayImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.13.1.5IntravascularOpt.Coh.Tom.ImageStorageForPresentationβ1.2.840.10008.5.1.4.1.1.14.1IntravascularOpt.Coh.Tom.ImageStorageForProcessingβ1.2.840.10008.5.1.4.1.1.14.2NuclearMedicineImageStorageβ1.2.840.10008.5.1.4.1.1.20ParametricMapStorageβ1.2.840.10008.5.1.4.1.1.30
object-y section, these aren't even pictures half the time, they're structures π¦:
RawDataStorageβ1.2.840.10008.5.1.4.1.1.66SpatialRegistrationStorageβ1.2.840.10008.5.1.4.1.1.66.1SpatialFiducialsStorageβ1.2.840.10008.5.1.4.1.1.66.2DeformableSpatialRegistrationStorageβ1.2.840.10008.5.1.4.1.1.66.3SegmentationStorageβ1.2.840.10008.5.1.4.1.1.66.4SurfaceSegmentationStorageβ1.2.840.10008.5.1.4.1.1.66.5TractographyResultsStorageβ1.2.840.10008.5.1.4.1.1.66.6LabelMapSegmentationStorageβ1.2.840.10008.5.1.4.1.1.66.7HeightMapSegmentationStorageβ1.2.840.10008.5.1.4.1.1.66.8RealWorldValueMappingStorageβ1.2.840.10008.5.1.4.1.1.67SurfaceScanMeshStorageβ1.2.840.10008.5.1.4.1.1.68.1SurfaceScanPointCloudStorageβ1.2.840.10008.5.1.4.1.1.68.2
visible light + eyeballs + microscopes, aka the part where the names get ambitious π:
RETIRED_VLImageStorageβ1.2.840.10008.5.1.4.1.1.77.1VLEndoscopicImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.1VideoEndoscopicImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.1.1VLMicroscopicImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.2VideoMicroscopicImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.2.1VLSlideCoordinatesMicroscopicImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.3VLPhotographicImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.4VideoPhotographicImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.4.1OphthalmicPhotography8BitImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.5.1OphthalmicPhotography16BitImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.5.2StereometricRelationshipStorageβ1.2.840.10008.5.1.4.1.1.77.1.5.3OphthalmicTomographyImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.5.4WideFieldOphthalmicPhoto.Stereogr.Proj.ImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.5.5WideFieldOphthalmicPhotogr.3DCoordinatesImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.5.6OphthalmicOpticalCoherenceTomogr.EnFaceImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.5.7OphthalmicOpticalCoh.Tomogr.BscanVolumeAnalysisStor.β1.2.840.10008.5.1.4.1.1.77.1.5.8VLWholeSlideMicroscopyImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.6DermoscopicPhotographyImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.7ConfocalMicroscopyImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.8ConfocalMicroscopyTiledPyramidalImageStorageβ1.2.840.10008.5.1.4.1.1.77.1.9RETIRED_VLMultiframeImageStorageβ1.2.840.10008.5.1.4.1.1.77.2
the abbreviations with dots in them (Photo.Stereogr.Proj., Photogr.3DCoordinates, Tomogr.EnFace, Coh.Tomogr.BscanVolumeAnalysisStor.) are literally the names as listed here β and yes OphthalmicOpticalCoh.Tomogr.BscanVolumeAnalysisStor. even ends in a . π copy it exactly, trailing dot and all π
optometry measurements, aka the "your prescription is data now" chapter πΆοΈ:
LensometryMeasurementsStorageβ1.2.840.10008.5.1.4.1.1.78.1AutorefractionMeasurementsStorageβ1.2.840.10008.5.1.4.1.1.78.2KeratometryMeasurementsStorageβ1.2.840.10008.5.1.4.1.1.78.3SubjectiveRefractionMeasurementsStorageβ1.2.840.10008.5.1.4.1.1.78.4VisualAcuityMeasurementsStorageβ1.2.840.10008.5.1.4.1.1.78.5SpectaclePrescriptionReportStorageβ1.2.840.10008.5.1.4.1.1.78.6OphthalmicAxialMeasurementsStorageβ1.2.840.10008.5.1.4.1.1.78.7IntraocularLensCalculationsStorageβ1.2.840.10008.5.1.4.1.1.78.8MacularGridThicknessAndVolumeReportStorageβ1.2.840.10008.5.1.4.1.1.79.1OphthalmicVisualFieldStaticPerimetryMeasurementsSt.β1.2.840.10008.5.1.4.1.1.80.1OphthalmicThicknessMapStorageβ1.2.840.10008.5.1.4.1.1.81.1CornealTopographyMapStorageβ1.2.840.10008.5.1.4.1.1.82.1
OphthalmicVisualFieldStaticPerimetryMeasurementsSt.got cut off atSt.β that's the name in the list, so keep it, don't "finish" it β¨
last stretch of this chunk, the structured report girlies π:
DRAFT_SRTextStorageβ1.2.840.10008.5.1.4.1.1.88.1DRAFT_SRAudioStorageβ1.2.840.10008.5.1.4.1.1.88.2DRAFT_SRDetailStorageβ1.2.840.10008.5.1.4.1.1.88.3DRAFT_SRComprehensiveStorageβ1.2.840.10008.5.1.4.1.1.88.4BasicTextSRStorageβ1.2.840.10008.5.1.4.1.1.88.11EnhancedSRStorageβ1.2.840.10008.5.1.4.1.1.88.22ComprehensiveSRStorageβ1.2.840.10008.5.1.4.1.1.88.33
okay that's this whole stretch of the SOP class list β the next part keeps rolling right along from here π
β¦aaand the list literally does not stop, bestie, here's the rest of the storage SOP class roster:
Comprehensive3DSRStorage 1.2.840.10008.5.1.4.1.1.88.34
ExtensibleSRStorage 1.2.840.10008.5.1.4.1.1.88.35
ProcedureLogStorage 1.2.840.10008.5.1.4.1.1.88.40
MammographyCADSRStorage 1.2.840.10008.5.1.4.1.1.88.50
KeyObjectSelectionDocumentStorage 1.2.840.10008.5.1.4.1.1.88.59
ChestCADSRStorage 1.2.840.10008.5.1.4.1.1.88.65
XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67
RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68
ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69
ImplantationPlanSRStorage 1.2.840.10008.5.1.4.1.1.88.70
AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71
SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72
PatientRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.73
PlannedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.74
PerformedImagingAgentAdministrationSRStorage 1.2.840.10008.5.1.4.1.1.88.75
EnhancedXRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.76
WaveformAnnotationSRStorage 1.2.840.10008.5.1.4.1.1.88.77
ContentAssessmentResultsStorage 1.2.840.10008.5.1.4.1.1.90.1
MicroscopyBulkSimpleAnnotationsStorage 1.2.840.10008.5.1.4.1.1.91.1
EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1
EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2
EncapsulatedSTLStorage 1.2.840.10008.5.1.4.1.1.104.3
EncapsulatedOBJStorage 1.2.840.10008.5.1.4.1.1.104.4
EncapsulatedMTLStorage 1.2.840.10008.5.1.4.1.1.104.5
PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128
LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128.1
RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129
EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130
BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131
CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2
XAPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.8
RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1
RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2
RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3
RTBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.4
RTPlanStorage 1.2.840.10008.5.1.4.1.1.481.5
RTBrachyTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.6
RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481.7
RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8
RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9
RTPhysicianIntentStorage 1.2.840.10008.5.1.4.1.1.481.10
RTSegmentAnnotationStorage 1.2.840.10008.5.1.4.1.1.481.11
RTRadiationSetStorage 1.2.840.10008.5.1.4.1.1.481.12
CArmPhotonElectronRadiationStorage 1.2.840.10008.5.1.4.1.1.481.13
TomotherapeuticRadiationStorage 1.2.840.10008.5.1.4.1.1.481.14
RoboticArmRadiationStorage 1.2.840.10008.5.1.4.1.1.481.15
RTRadiationRecordSetStorage 1.2.840.10008.5.1.4.1.1.481.16
RTRadiationSalvageRecordStorage 1.2.840.10008.5.1.4.1.1.481.17
TomotherapeuticRadiationRecordStorage 1.2.840.10008.5.1.4.1.1.481.18
CArmPhotonElectronRadiationRecordStorage 1.2.840.10008.5.1.4.1.1.481.19
RoboticRadiationRecordStorage 1.2.840.10008.5.1.4.1.1.481.20
RTRadiationSetDeliveryInstructionStorage 1.2.840.10008.5.1.4.1.1.481.21
RTTreatmentPreparationStorage 1.2.840.10008.5.1.4.1.1.481.22
EnhancedRTImageStorage 1.2.840.10008.5.1.4.1.1.481.23
EnhancedContinuousRTImageStorage 1.2.840.10008.5.1.4.1.1.481.24
RTPatientPositionAcquisitionInstructionStorage 1.2.840.10008.5.1.4.1.1.481.25
DICOS_CTImageStorage 1.2.840.10008.5.1.4.1.1.501.1
DICOS_DigitalXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.501.2.1
DICOS_DigitalXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.501.2.2
DICOS_ThreatDetectionReportStorage 1.2.840.10008.5.1.4.1.1.501.3
DICOS_2DAITStorage 1.2.840.10008.5.1.4.1.1.501.4
DICOS_3DAITStorage 1.2.840.10008.5.1.4.1.1.501.5
DICOS_QuadrupoleResonanceStorage 1.2.840.10008.5.1.4.1.1.501.6
DICONDE_EddyCurrentImageStorage 1.2.840.10008.5.1.4.1.1.601.1
DICONDE_EddyCurrentMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.601.2
DICONDE_ThermographyImageStorage 1.2.840.10008.5.1.4.1.1.601.3
DICONDE_ThermographyMultiFrameImageStorage 1.2.840.10008.5.1.4.1.1.601.4
DICONDE_UltrasoundWaveformStorage 1.2.840.10008.5.1.4.1.1.601.5
DRAFT_RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.1
RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7
RTBrachyApplicationSetupDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.10
PrivateShutdownSOPClass 1.2.276.0.7230010.3.4.1915765545.18030.917282194.0
Okay so dcmqrscp will accept presentation contexts for all of those supported SOP Classes using any of these transfer syntaxes:
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
Vibe check on the preference thing: dcmqrscp will prefer transfer syntaxes having an explicit encoding over the default implicit transfer syntax. And if dcmqrscp is running on big-endian hardware it will prefer BigEndianExplicit to LittleEndianExplicit transfer syntax (and vice versa) β lowkey it just wants to match the hardware's energy. You can change this behavior with the --prefer options (see above β¨). Depending on these options, the following transfer syntaxes are supported:
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
JPEG2000LosslessOnlyTransferSyntax 1.2.840.10008.1.2.4.90
JPEG2000TransferSyntax 1.2.840.10008.1.2.4.91
MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100
MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101
MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102
MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103
MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104
MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105
MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106
HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107
HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108
RLELosslessTransferSyntax 1.2.840.10008.1.2.5
Heads up bestie π
β the dcmqrscp application does not support extended negotiation. Not its thing. It said no.
Presentation contexts for other SOP Classes and Transfer Syntax may be configured via the --assoc-config-file option by selecting an appropriate profile for incoming associations. The selected profile will override only the above mentioned storage SOP classes, and dcmqrscp will accept contexts with the above mentioned FIND, GET, MOVE and private shutdown SOP Classes additionally to the ones defined in the selected profile. Slight but important note: an appropriate profile for role negotiation must be defined and used for enabling GET support. No profile, no GET. iykyk π«Ά
πΈ Query Keys πΈ
The dcmqrscp application supports the following attributes as query keys. Basically the search filters it will actually fw, organized by Q/R level:
Query/Retrieve Level: PATIENT (or STUDY for the Study Root Q/R model)
(0010,0010)PatientNameβ who they are π(0010,0020)PatientIDβ their ID(0010,0021)IssuerOfPatientIDβ who issued that ID(0010,0030)PatientBirthDateβ birthday(0010,0032)PatientBirthTimeβ birthday, but with the time β¨(0010,0040)PatientSex(0010,1000)OtherPatientIDs(retired)(0010,1001)OtherPatientNames(0010,2160)EthnicGroup(retired)(0010,4000)PatientComments
Query/Retrieve Level: STUDY
(0008,0020)StudyDate(0008,0030)StudyTime(0008,0050)AccessionNumber(0008,0090)ReferringPhysicianName(0008,1030)StudyDescription(0008,1060)NameOfPhysiciansReadingStudy(0008,1080)AdmittingDiagnosesDescription(0010,1010)PatientAge(0010,1020)PatientSize(0010,1030)PatientWeight(0010,2180)Occupation(0010,21B0)AdditionalPatientHistory(0020,000D)StudyInstanceUID(0020,0010)StudyID(0020,1070)OtherStudyNumbers(retired)
Query/Retrieve Level: SERIES
(0008,0060)Modality(0020,000E)SeriesInstanceUID(0020,0011)SeriesNumber
Query/Retrieve Level: IMAGE
(0008,0018)SOPInstanceUID(0020,0013)InstanceNumber
π Configuration π
The dcmqrscp program uses the same configuration file as the dcmqrti program β yes, they share, it's giving sibling energy π. See the documentation on configuration for more information.
π₯ Access Control π₯
When compiled on Unix platforms with TCP wrapper support, host-based access control can be enabled with the --access-control command line option. In this case the access control rules defined in the system's host access control tables for dcmqrscp are enforced β the bouncer is checking the list, fr fr. The default locations of the host access control tables are /etc/hosts.allow and /etc/hosts.deny. Further details are described in hosts_access(5).
β¨ LOGGING β¨
okay so the level of logging output from all the command line tools and the underlying libraries is something you can control, bestie. By default, only errors and warnings get written to the standard error stream. Using option --verbose also reports informational messages like processing details. Option --debug gets you more details on the internal activity, e.g. for debugging purposes. Other logging levels can be picked using option --log-level. In --quiet mode, only fatal errors are reported β and in those very severe error events, the application will usually terminate. For more details on the different logging levels, see the documentation of module "oflog".
If the logging output should go to a file (optionally with logfile rotation), to syslog (Unix) or to the event log (Windows), option --log-config is your girl. This configuration file also lets you direct only certain messages to a particular output stream and filter certain messages based on the module or application where they are generated. An example configuration file is provided in <etcdir>/logger.cfg. π
π» COMMAND LINE π»
All command line tools use this notation for parameters, no cap: square brackets enclose optional values (0-1), three trailing dots indicate that multiple values are allowed (1-n), and 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 shells. π
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: a command file cannot contain another command file. iykyk
This simple but effective approach allows you to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file <datadir>/dumppat.txt). β¨
πΈ ENVIRONMENT πΈ
The dcmqrscp 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 should only be used when alternative data dictionaries are required, bestie. 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.
Depending on the command line options specified, the dcmqrscp utility will attempt to load character set mapping tables. This happens when DCMTK was compiled with the oficonv library (which is the default) and the mapping tables are not built into the library (default when DCMTK uses shared libraries).
The mapping table files are expected in DCMTK's <datadir>. The DCMICONVPATH environment variable can be used to specify a different location. If a different location is specified, those mapping tables also replace any built-in tables. π¦
π FILES π
<docdir>/dcmqrcnf.txtβ configuration information<docdir>/dcmqrset.txtβ setup information<etcdir>/dcmqrscp.cfgβ example configuration file<etcdir>/dcmqrprf.cfgβ example configuration file for association profiles
π₯ SEE ALSO π₯
π COPYRIGHT π
Copyright (C) 1993-2026 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.
Thatβs the whole vibe, bestie. The page footer says Version 3.7.1, dated Sat Oct 17 2026 09:34:01 β iconic, periodt. πβ¨
π¦ where this page comes from
- arch rolling: dcmtk 3.7.1-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms