/*========================================================================= 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. =========================================================================*/ /** * Usage: * $ LD_LIBRARY_PATH=. CLASSPATH=gdcm.jar:. java FileAnonymize input.dcm output.dcm */ import gdcm.*; public class FileAnonymize { public static class MyWatcher extends SimpleSubjectWatcher { public MyWatcher(Subject s) { super(s,"Override String"); } protected void ShowProgress(Subject caller, Event evt) { ProgressEvent pe = ProgressEvent.Cast(evt); System.out.println( "This is my progress: " + pe.GetProgress() ); } } public static void main(String[] args) throws Exception { String input = args[0]; String output = args[1]; FileAnonymizer fa = new FileAnonymizer(); fa.SetInputFileName( input ); fa.SetOutputFileName( output ); // Empty Operations // It will create elements, since those tags are non-registered public elements (2011): fa.Empty( new Tag(0x0008,0x1313) ); fa.Empty( new Tag(0x0008,0x1317) ); // Remove Operations // The following Tag are actually carefully chosen, since they refer to SQ: fa.Remove( new Tag(0x0008,0x2112) ); fa.Remove( new Tag(0x0008,0x9215) ); // Replace Operations // do not call replace operation on SQ attribute ! fa.Replace( new Tag(0x0018,0x5100), "MYVALUE " ); fa.Replace( new Tag(0x0008,0x1160), "MYOTHERVAL" ); if( !fa.Write() ) { System.out.println( "Could not write" ); return; } System.out.println( "success" ); } }