dcmprscu(1)

πŸ’… dcmprscu β€” the print spooler bestie (from the OFFIS DCMTK fam, section 1 of the manual, iykyk)

okay so real talk, this whole page is about dcmprscu, and she is the Print spooler for presentation state viewer β€” that's the NAME section, periodt. she lives in the OFFIS DCMTK household and she's here to get your print jobs from point A to the printer, no cap.

✨ SYNOPSIS ✨

dcmprscu [options] [dcmfile-in...]

πŸŽ€ DESCRIPTION πŸŽ€

So dcmprscu is that girl who implements the DICOM Basic Grayscale Print Management Service Class as an SCU. highkey iconic. she also supports the optional Basic Annotation Box and Presentation LUT SOP Classes, because she's generous like that. she's literally built to be used inside the DICOMscope viewer, that's her whole main character era.

She takes complete print jobs β€” meaning a Stored Print object plus one or more Hardcopy Grayscale objects β€” and spools them to the printer. and like… she does not check whether the attributes in the Stored Print object are actually supported by the Print SCP. she just vibes and sends. πŸ™ˆ However (and this is important bestie), the print spooler will not try to use the optional Annotation or Presentation LUT services if they weren't successfully negotiated with the Print SCP. she's not messy, she's careful.

She reads the characteristics of the printer she's talking to from the configuration file. Depending on whether the printer supports Presentation LUT: any Presentation LUT present in the print job gets rendered into the hardcopy images before they're spooled to the printer, if necessary. And if the printer doesn't support image transmission with 12 bits/pixel (per the config file, bestie, check the config), the grayscale hardcopy images get down-sampled to 8 bits/pixel before transmission to the printer. slay, adaptive queen. ✨

Also she runs in two whole modes:

  • "printer mode" β€” you gotta pass the file name of a Stored Print object
  • "spool mode" β€” commands are read periodically from a spool directory

two modes, one icon. πŸ¦‹

🌸 PARAMETERS 🌸

  • dcmfile-in β€” stored print file(s) to be spooled (- for stdin) πŸ’–

πŸ’… OPTIONS πŸ’…

general options (the basics babes)

  • -h, --help β€” print this help text and exit
  • --version β€” print version information and exit
  • --arguments β€” print expanded command line arguments
  • -q, --quiet β€” quiet mode, print no warnings and errors
  • -v, --verbose β€” verbose mode, print processing details
  • -d, --debug β€” debug mode, print debug information
  • -ll, --log-level [l]evel: string constant β€” the levels are fatal, error, warn, info, debug, trace. use level l for the logger
  • -lc, --log-config [f]ilename: string β€” use config file f for the logger
  • --noprint β€” do not create print-out (no n-action-rq)
  • --session-print β€” send film session n-action-rq (instead of film box)
  • --monochrome1 β€” transmit basic grayscale images in MONOCHROME1

mode options πŸ‘‘

  • +p, --print β€” printer mode, print file(s) and terminate (default)
  • +s, --spool [n]ame: string β€” spooler mode, use job prefix n

processing options 🧚

  • -c, --config [f]ilename: string β€” process using settings from configuration file
  • -p, --printer [n]ame: string (default: 1st printer in cfg file) β€” select printer with identifier n from cfg file
  • +d, --dump β€” dump all DIMSE messages

spooler options (only with --spool) πŸ’€

  • --sleep [d]elay: integer (default: 1) β€” sleep d seconds between spooler checks

basic film session options (not with --spool) ⭐

  • --copies [v]alue: integer (1..100, default: 1) β€” set number of copies to v
  • --medium-type [v]alue: string β€” set medium type to v
  • --destination [v]alue: string β€” set film destination to v
  • --label [v]alue: string β€” set film session label to v
  • --priority [v]alue: string β€” set print priority to v
  • --owner [v]alue: string β€” set film session owner ID to v

🌈 LOGGING 🌈

okay this part is for all the command line tools and their underlying libraries β€” you get to pick how much logging output you want, bestie. by default only errors and warnings go to the standard error stream. using --verbose also reports informational messages like processing details (she gets chatty πŸ’¬). --debug gives you way more detail on the internal activity, e.g. for debugging purposes. other logging levels? that's what --log-level is for. in --quiet mode only fatal errors are reported β€” and ngl, 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 you want the logging output written to a file (optionally with logfile rotation), to syslog (Unix) or to the event log (Windows) β€” use --log-config. that config 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're generated. an example config file is provided in <etcdir>/logger.cfg. 🫢

πŸ’œ COMMAND LINE πŸ’œ

all command line tools use this notation for parameters: square brackets enclose optional values (0-1), three trailing dots mean multiple values are allowed (1-n), and a combo of both means 0 to n values.

Command line options are told apart from parameters by a leading + or - sign, respectively. usually order and position of command line options are arbitrary (they can appear anywhere, she's flexible). However β€” if options are mutually exclusive, the rightmost appearance is used. this behavior conforms to the standard evaluation rules of common Unix shells, so it's not a vibe, it's a rule.

Plus! 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, sorry πŸŽ€). this simple but effective approach lets you summarize common combinations of options/parameters and avoids longish and confusing command lines. an example is provided in file <datadir>/dumppat.txt. πŸ¦‹

πŸ“ ENVIRONMENT πŸ“

dcmprscu will attempt to load DICOM data dictionaries specified in the DCMDICTPATH environment variable. by default, i.e. if DCMDICTPATH is not set, the file <datadir>/dicom.dic will be loaded β€” unless the dictionary is built into the application (which is the default for Windows).

the default behavior should be preferred, and DCMDICTPATH should only be used when you actually need alternative data dictionaries. 🫢

DCMDICTPATH has the same format as the Unix shell PATH variable β€” 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 DCMDICTPATH. and bestie… it is an error if no data dictionary can be loaded. πŸ’€

🧚 FILES 🧚

  • <etcdir>/dcmpstat.cfg, <etcdir>/printers.cfg β€” sample configuration files

πŸ‘‘ SEE ALSO πŸ‘‘

Copyright (C) 1999-2026 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.


and that's the whole page, bestie!! πŸŽ€βœ¨ you're gonna do amazing with her. mwah. πŸ’…

Version 3.7.1 β€” Sat Oct 17 2026 09:34:01 πŸ¦‹ that's the vibe check, and she passed it, no cap. 🫢

πŸ“¦ where this page comes from