gdcmanon(1)

NAME
gdcmanon - Tool to anonymize a DICOM file.

SYNOPSIS

gdcmanon [options] file-in file-out
gdcmanon [options] dir-in  dir-out

DESCRIPTION

The gdcmanon tool is an implementation of PS 3.15 / E.1 / Basic Application Level Confidentiality Profile (Implementation of E.1.1 De-identify & E.1.2 Re-identify)

This tool is split into two very different operating mode:
•   An implementation of PS 3.15, see -e and -d flags
•   A dumb mode, see --dumb
Dumb mode and PS 3.15 do not work well together, you should really only use one type of anonymization. In case of doubt, avoid using --dumb. In order to use the PS 3.15 implementation (-d & -e flag), you'll need a certificate to do de-identification operations, and the associated private key to do the re-identification operation. If you are only doing a one-shot anonymization and do not need to properly re-identify the DICOM file, you can safely discard the private key and only keep the certificate. See OpenSSL section below for an example on how to generate the private key/certificate pair. gdcmanon will exit early if OpenSSL was not configured/build properly into the library (see GDCM_USE_SYSTEM_OPENSSL in cmake).

PARAMETERS
file-in   DICOM input filename
file-out  DICOM output filename
or
file-in   DICOM input directory
file-out  DICOM output directory

OPTIONS
You need to specify at least one operating mode, from the following list (and only one):

  Required parameters
  -e --de-identify            De-identify DICOM (default)
  -d --re-identify            Re-identify DICOM
     --dumb                   Dumb mode anonymizer
Warning when operating in dumb mode, you need to also specify an operation to do, such as 'remove' or 'empty' a tag, see below the dumb mode options.

  OPTIONS
  -i --input                  DICOM filename / directory
  -o --output                 DICOM filename / directory
     --root-uid               Root UID.
     --resources-path         Resources path.
  -k --key                    Path to RSA Private Key.
  -c --certificate            Path to Certificate.

  encryption options
     --des            DES.
     --des3           Triple DES.
     --aes128         AES 128.
     --aes192         AES 192.
     --aes256         AES 256.

  dumb mode options
     --empty   %d,%d           DICOM tag(s) to empty
     --remove  %d,%d           DICOM tag(s) to remove
     --replace %d,%d,%s        DICOM tag(s) to replace

  general options
  -h   --help
         print this help text and exit
  -v   --version
         print version information and exit
  -V   --verbose
         verbose mode (warning+error).
  -W   --warning
         warning mode, print warning information
  -E   --error
         error mode, print error information
  -D   --debug
         debug mode, print debug information

  environment variable
  GDCM_ROOT_UID Root UID
  GDCM_RESOURCES_PATH path pointing to resources files (Part3.xml, ...)

Typical usage

  De-identification (anonymization, encrypt)
The only thing required for this operation is a certificate file (in PEM format).
$ gdcmanon --certificate certificate.pem -e original.dcm original_anonymized.dcm

  Re-identification (de-anonymization,decrypt)
The only thing required for this operation is a private key (in PEM format). It is required that the private key used for the re-identification process, was the actual private key used to generate the certificate file (certificate.pem) used during the de-identification step.
$ gdcmanon --key privatekey.pem -d original_anonymized.dcm original_copy.dcm
You can then check that original.dcm and original_copy.dcm are identical.

  Multiple files caveat
When anonymizing multiple DICOM file, you are required to use the directory input. You cannot call multiple time the gdcmanon command line tool. Indeed the tool stores in memory during the process only a hash table of conversion so that each time a particular value is found it get always replaced by the same de-identified value (think: consistant Series Instance UID).

  Dumb mode
This functionality is not described in the DICOM standard. Users are advised that improper use of that mode is not recommended, meaning that important tag can be empty/remove/replace resulting in illegal/invalid DICOM file. Only use when you know what you are doing. If you delete a Type 1 attribute, chance is that your DICOM file will be not accepted in most DICOM third party viewer. Unfortunately this is often this mode that is implemented in popular DICOM Viewer, always prefer what the DICOM standard describes, and avoid the dumb mode.
The following example shows how to use dumb mode and achieve 5 operations at the same time:
•   Empty the tag (0010,0010) Patient's Name,
•   Empty the tag (0010,0020) Patient ID,
•   Remove the tag (0010,0040) Patient's Sex
•   Remove the tag (0010,1010) Patient's Age
•   Replace the tag (0010,1030) Patient's Weight with the value '10'
You are required to check which DICOM attribute is Type 1 and Type 1C, before trying to 'Empty' or 'Remove' a particular DICOM attribute. For the same reason, you are required to check what are valid value in a replace operation.
$ gdcmanon --dumb --empty 10,10 --empty 10,20 --remove 10,40 --remove 10,1010 --replace 10,1030,10 012345.002.050.dcm out.dcm
Multiple operation of --dumb mode can take place, just reuse the output of the previous operation. Always use gdcmdump on the input and output file to check what was actually achieved. You can use a diff program to check only what changed (see diff(1) for example).

OpenSSL
On most system you can have access to OpenSSL to generate the Private Key/Certificate pair.

  Generating a Private Key
Command line to generate a rsa key (512bit)
$ openssl genrsa -out CA_key.pem
Command line to generate a rsa key (2048bit)
$ openssl genrsa -out CA_key.pem 2048
Command line to generate a rsa key (2048bit) + passphrase
$ openssl genrsa -des3 -out CA_key.pem 2048

  Generating a Certificate
From your previously generated Private Key, you can now generate a certificate in PEM (DER format is currently not supported).
$ openssl req -new -key CA_key.pem -x509 -days 365 -out CA_cert.cer

DICOM Standard:
Page to the DICOM Standard:
http://dicom.nema.org/
The DICOM Standard at the time of releasing gdcmanon is:
ftp://medical.nema.org/medical/dicom/2008/

SEE ALSO
gdcmconv(1), gdcmdump(1), gdcminfo(1), openssl(1)

COPYRIGHT
Copyright (c) 2006-2009 Mathieu Malaterre