/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include "gdcmFileAnonymizer.h" #include "gdcmReader.h" #include "gdcmWriter.h" int main(int argc, char *argv[]) { if( argc < 3 ) return 1; const char* filename = argv[1]; const char* outfilename = argv[2]; //gdcm::Trace::DebugOn(); // Remove Pixel Data element: gdcm::FileAnonymizer fa; fa.SetInputFileName( filename ); fa.SetOutputFileName( outfilename ); fa.Empty( gdcm::Tag(0x7fe0,0x10) ); // cannot replace in-place DICOM header: //fa.Replace( gdcm::Tag(0x2,0x2), "1.2.840.10008.5.1.4.1.1.7" ); if( !fa.Write() ) { std::cerr << "impossible to remove Pixel Data attribute" << std::endl; return 1; } // Update the DICOM Header: gdcm::Reader reader; reader.SetFileName( outfilename ); if( !reader.Read() ) { std::cerr << "could not read back" << std::endl; return 1; } gdcm::File & file = reader.GetFile(); gdcm::FileMetaInformation &fmi = file.GetHeader(); gdcm::TransferSyntax ts = gdcm::TransferSyntax::ImplicitVRLittleEndian; ts = gdcm::TransferSyntax::ExplicitVRLittleEndian; fmi.SetDataSetTransferSyntax(ts); gdcm::Writer writer; writer.SetFile( file ); writer.SetFileName( outfilename ); // warning overwrite file ! if( !writer.Write() ) { std::cerr << "could not write back" << std::endl; return 1; } return 0; }