Scroll to navigation



gdcmclean - Tool to clean a DICOM file.


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


The gdcmclean tool is an cleaning tool.


file-in   DICOM input filename
file-out  DICOM output filename


file-in   DICOM input directory
file-out  DICOM output directory


You need to :

specific options

-i --input DICOM filename / directory
-o --output DICOM filename / directory
-r --recursive recursively process (sub-)directories.
--continue Do not stop when file found is not DICOM.

Editing mode options

--empty %d,%d DICOM tag(s) to empty
%d,%d,%s DICOM private tag(s) to empty
%s DICOM keyword/path(s) to empty
--remove %d,%d DICOM tag(s) to remove
%d,%d,%s DICOM private tag(s) to remove
%s DICOM keyword/path(s) to remove
--scrub %d,%d DICOM tag(s) to scrub
%d,%d,%s DICOM private tag(s) to scrub
%s DICOM keyword/path(s) to scrub
--preserve %s DICOM path(s) to preserve
--preserve-missing-private-creator Whether or not preserve private attributes with missing private creator.
--preserve-group-length Whether or not preserve deprecated group length attributes (will not be re-computed).
--preserve-illegal Whether or not preserve illegal attributes (eg. group 0003...).

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


Editing mode

This functionality is not described in the DICOM standard.

The following example shows how to use editing mode and achieve multiple operations at the same time:

•Preserve illegal attributes (removed by default),

•Empty any 'PN' attributes anywhere in the hierarchy tree, but preserve the DICOM attribute value only at location "0010,0010",

•Empty the tag (0010,0020) Patient ID, (only if keyword is know internally),

•Empty the tag (0070,0084),

•Remove the private attributes: (0029,20, SIEMENS MEDCOM HEADER) / (0033,02,MITRA OBJECT UTF8 ATTRIBUTES 1.0) / (0043,2a,GEMS_PARM_01). Since (0033,02,MITRA OBJECT UTF8 ATTRIBUTES 1.0) is defined internally in the private dictionary with Value Representation = PN, this attribute will be skipped (since redundant).

•Scrub the private attributes: (0029,10,SIEMENS CSA HEADER) / (0029,20,SIEMENS CSA HEADER) / (700d,08,TOSHIBA_MEC_MR3) / (0029,90,PMTF INFORMATION DATA)

$ gdcmclean \

--recursive --continue \
--preserve-illegal \
--empty PN --preserve /0010,0010 \
--empty PatientID --empty "0070,0084" \
--remove "0029,20,SIEMENS MEDCOM HEADER" --remove "0033,02,MITRA OBJECT UTF8 ATTRIBUTES 1.0" --remove "0043,2a,GEMS_PARM_01" \ --scrub "0029,10,SIEMENS CSA HEADER" --scrub "0029,20,SIEMENS CSA HEADER" \ --scrub "700d,08,TOSHIBA_MEC_MR3" \ --scrub "0029,90,PMTF INFORMATION DATA" --scrub "0029,90,TOSHIBA_MEC_MR3" \
input_folder output_folder


For ease of use on shell cmmand the syntax allow for the '/' separator in the DICOM Path notation. So the following is valid


However Private Creator can use all of Value Representation LO definition. So in some case you will be required to use backslash as separator (since illegal in VR:LO):

"\\4109,2,Applicare/Centricity Radiology Web/Version 1.0"

Safe Private Attributes

It is currently not possible to empty/remove any private attribute listed in the Safe Private Attributes table at:


gdcmanon(1), gdcmdump(1), gdcmdiff(1)


Mathieu Malaterre

Main developer


Copyright © 2006, 2011 Mathieu Malaterre

01/21/2023 GDCM 3.0.17