dcmprscp(1)
π
dcmprscp β like, the DICOM basic grayscale print management SCP (yes that's the whole name, and yes it's from the OFFIS DCMTK manual, bestie)
Okay so sit down, grab a lil snack π, because I'm about to make dcmprscp make sense.
β¨ NAME β¨
dcmprscp β the DICOM basic grayscale print management SCP. That's it, that's the whole vibe. It's a service class provider, which lowkey means it's the one receiving the print jobs, not the one sending them. Main character energy, but on the receiving end π
β¨ SYNOPSIS β¨
dcmprscp [options]
That's the whole thing. Just the command plus options. Iconic, honestly.
β¨ DESCRIPTION β¨
So the dcmprscp utility implements the DICOM Basic Grayscale Print Management Service Class as an SCP. It also supports the optional Presentation LUT SOP Class β like a little bonus feature, we love an overachiever β¨. This utility is intended for use within the DICOMscope viewer, so like, it's built for that specific bestie.
Here's the tea β: dcmprscp accepts print jobs from a remote Print SCU. But β and this is important β it does not create real hardcopies. Not even a little bit. Instead, it stores print jobs in the local DICOMscope database as a set of Stored Print objects (one per page) and Hardcopy Grayscale images (one per film box N-SET). So it's like a print emulator, a printer that lives in your computer, a vibe-only printer π¦.
Then the DICOMscope application lets you load a Stored Print object created by dcmprscp and render a screen preview of the hardcopy. Cute, right?? And dcmprscp reads the characteristics of the printer it's pretending to be from the configuration file. So the printer's whole personality comes from a config file. Same, honestly π
β¨ OPTIONS β¨
πΈ general options πΈ
-h,--helpβ prints this help text and then exits. The classic "wait what does this do again" move π«Ά--versionβ prints version information and exits.--argumentsβ prints the expanded command line arguments. Like a lil receipt of what you actually typed.-q,--quietβ quiet mode: prints no warnings and no errors. She's silent, she's mysterious π€«-v,--verboseβ verbose mode: prints processing details. She's chatty, she's telling you everything π¬-d,--debugβ debug mode: prints debug information. For when you really need to know.-ll,--log-level[l]evel: string constant β the levels arefatal,error,warn,info,debug,trace. Use level l for the logger.-lc,--log-config[f]ilename: string β use config file f for the logger.-l,--logfileβ write a log file (but not with--log-config).
ngl this option is available for reasons of backward compatibility only. So like, it's giving legacy. It's still here, it still works, but bestieβ¦ it's a nostalgia pick π
π processing options π
-c,--config[f]ilename: string β process using settings from configuration file.-p,--printer[n]ame: string (default: 1st printer in config file) β select printer with identifier n from the config file. If you don't pick one, you just get the first printer in the config file. Default behavior, no thoughts head empty β¨+d,--dumpβ dump all DIMSE messages. Every single one. On main. π₯
β¨ LOGGING β¨
Okay so, the level of logging output of the various command line tools and underlying libraries can be specified by you, the user. By default, only errors and warnings are written to the standard error stream. Humble. Understated.
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 selected using option --log-level. And in --quiet mode only fatal errors are reported β and in such very severe error events, the application will usually terminate. So like, quiet mode is real quiet, bestie π
For more details on the different logging levels, see documentation of module "oflog".
If the logging output should be written to file (optionally with logfile rotation), to syslog (Unix) or the event log (Windows), option --log-config can be used. That configuration file also allows for directing only certain messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in <etcdir>/logger.cfg. So thoughtful of them π
β¨ COMMAND LINE β¨
All command line tools use the following notation for parameters: 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. So [thing...] = zero to many things. Slay, notation.
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. Rightmost wins. Periodt. 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 that a command file cannot contain another command file. No inception, no command-file-ception, we don't do that here π
This simple but effective approach allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file <datadir>/dumppat.txt). Lowkey a genius move, iykyk.
β¨ ENVIRONMENT β¨
The dcmprscp 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 only used when alternative data dictionaries are required. DCMDICTPATH 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. Like, actual error. Not a vibe. Don't let it happen.
β¨ FILES β¨
<etcdir>/dcmpstat.cfg,<etcdir>/printers.cfgβ sample configuration files. Your starting point, your blueprint, your lil templates π§
β¨ SEE ALSO β¨
dcmprscu(1)β the other one, go say hi π
β¨ COPYRIGHT β¨
Copyright (C) 1999-2026 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.
Okay that's the whole page!! π«Ά It's Version 3.7.1, dated Sat Oct 17 2026 09:34:01, and it's dcmprscp(1) in the OFFIS DCMTK manual β anyway bestie go forth and emulate some printers, you're gonna ate ππ₯
π¦ 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