See the DCMTK project pageopen in new window. To use DCMTK, you’ll use the module tool.

You can see what versions are available by using:

[me@login01 ~]$ module avail dcmtk

------------------------------ /opt/modulefiles -------------------------------
   dcmtk/3.6.7

Use "module spider" to find all possible modules and extensions.
Use "module keyword key1 key2 ..." to search for all possible modules matching
any of the "keys".

To load a specific version, you would use:

[me@login01 ~]$ module load dcmtk/3.6.7

while the "dcmtk" wildcard will load the default version, dcmtk-3.6.7 in this case.

You should now be able to run DCMTK commands:

[me@login01 ~]$ dcmdump
$dcmtk: dcmdump v3.6.7 2022-04-22 $

dcmdump: Dump DICOM file and data set
usage: dcmdump [options] dcmfile-in...

parameters:
  dcmfile-in                    DICOM input file or directory to be dumped

general options:
  -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
                                (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
input options:
  input file format:
    +f   --read-file            read file format or data set (default)
    +fo  --read-file-only       read file format only
    -f   --read-dataset         read data set without file meta information
  input transfer syntax:
    -t=  --read-xfer-auto       use TS recognition (default)
    -td  --read-xfer-detect     ignore TS specified in the file meta header
    -te  --read-xfer-little     read with explicit VR little endian TS
    -tb  --read-xfer-big        read with explicit VR big endian TS
    -ti  --read-xfer-implicit   read with implicit VR little endian TS
  input files:
    +sd  --scan-directories     scan directories for input files (dcmfile-in)
    +sp  --scan-pattern         [p]attern: string (only with --scan-directories)
                                pattern for filename matching (wildcards)
    -r   --no-recurse           do not recurse within directories (default)
    +r   --recurse              recurse within specified directories
  long tag values:
    +M   --load-all             load very long tag values (default)
    -M   --load-short           do not load very long values (e.g. pixel data)
    +R   --max-read-length      [k]bytes: integer (4..4194302, default: 4)
                                set threshold for long values to k kbytes
  parsing of file meta information:
    +ml  --use-meta-length      use file meta information group length (default)
    -ml  --ignore-meta-length   ignore file meta information group length
  parsing of odd-length attributes:
    +ao  --accept-odd-length    accept odd length attributes (default)
    +ae  --assume-even-length   assume real length is one byte larger
  handling of explicit VR:
    +ev  --use-explicit-vr      use explicit VR from dataset (default)
    -ev  --ignore-explicit-vr   ignore explicit VR (prefer data dictionary)
  handling of non-standard VR:
    +vr  --treat-as-unknown     treat non-standard VR as unknown (default)
    -vr  --assume-implicit      try to read with implicit VR little endian TS
  handling of undefined length UN elements:
    +ui  --enable-cp246         read undefined len UN as implicit VR (default)
    -ui  --disable-cp246        read undefined len UN as explicit VR
  handling of defined length UN elements:
    -uc  --retain-un            retain elements as UN (default)
    +uc  --convert-un           convert to real VR if known
  handling of private max-length elements (implicit VR):
    -sq  --maxlength-dict       read as defined in dictionary (default)
    +sq  --maxlength-seq        read as sequence with undefined length
  handling of wrong delimitation items:
    -rd  --use-delim-items      use delimitation items from dataset (default)
    +rd  --replace-wrong-delim  replace wrong sequence/item delimitation items
  handling of illegal undefined length OB/OW elements:
    -oi  --illegal-obow-rej     reject dataset with illegal element (default)
    +oi  --illegal-obow-conv    convert undefined length OB/OW element to SQ
  handling of VOI LUT Sequence with OW VR and explicit length:
    -vi  --illegal-voi-rej      reject dataset with illegal VOI LUT (default)
    +vi  --illegal-voi-conv     convert illegal VOI LUT to SQ
  handling of explicit length pixel data for encaps. transfer syntaxes:
    -pe  --abort-expl-pixdata   abort on explicit length pixel data (default)
    +pe  --use-expl-pixdata     use explicit length pixel data
  general handling of parser errors: 
    +Ep  --ignore-parse-errors  try to recover from parse errors
    -Ep  --handle-parse-errors  handle parse errors and stop parsing (default)
  other parsing options:
    +st  --stop-after-elem      [t]ag: "gggg,eeee" or dictionary name
                                stop parsing after element specified by t
    +sb  --stop-before-elem     [t]ag: "gggg,eeee" or dictionary name
                                stop parsing before element specified by t
  automatic data correction:
    +dc  --enable-correction    enable automatic data correction (default)
    -dc  --disable-correction   disable automatic data correction
  bitstream format of deflated input:
    +bd  --bitstream-deflated   expect deflated bitstream (default)
    +bz  --bitstream-zlib       expect deflated zlib bitstream
processing options:
  specific character set:
    +U8  --convert-to-utf8      convert all element values that are affected
                                by Specific Character Set (0008,0005) to UTF-8
output options:
  printing:
    +L   --print-all            print long tag values completely
    -L   --print-short          print long tag values shortened (default)
    +T   --print-tree           print hierarchical structure as a simple tree
    -T   --print-indented       print hierarchical structure indented (default)
    +F   --print-filename       print header with filename for each input file
    +Fs  --print-file-search    print header with filename only for those input
                                files that contain one of the searched tags
  mapping:
    +Un  --map-uid-names        map well-known UID numbers to names (default)
    -Un  --no-uid-names         do not map well-known UID numbers to names
  quoting:
    +Qn  --quote-nonascii       quote non-ASCII and control chars as XML markup
    +Qo  --quote-as-octal       quote non-ASCII and control ch. as octal numbers
    -Qn  --print-nonascii       print non-ASCII and control chars (default)
  color:
    +C   --print-color          use ANSI escape codes for colored output
    -C   --no-color             do not use any ANSI escape codes (default)
  error handling:
    -E   --stop-on-error        do not print if file is damaged (default)
    +E   --ignore-errors        attempt to print even if file is damaged
  searching:
    +P   --search               [t]ag: "gggg,eeee" or dictionary name
                                print the textual dump of tag t
                                this option can be specified multiple times
                                (default: the complete file is printed)
    +s   --search-all           print all instances of searched tags (default)
    -s   --search-first         only print first instance of searched tags
    +p   --prepend              prepend sequence hierarchy to printed tag,
                                denoted by: (gggg,eeee).(gggg,eeee).*
                                (only when used with --search)
    -p   --no-prepend           do not prepend hierarchy to tag (default)
  writing:
    +W   --write-pixel          [d]irectory: string
                                write pixel data to a .raw file stored in d
                                (little endian, filename created automatically)