public static int Main(string[] args) { gdcm.FileMetaInformation.SetSourceApplicationEntityTitle( "My Reformat App" ); // http://www.oid-info.com/get/1.3.6.1.4.17434 string THERALYS_ORG_ROOT = "1.3.6.1.4.17434"; gdcm.UIDGenerator.SetRoot( THERALYS_ORG_ROOT ); System.Console.WriteLine( "Root dir is now: " + gdcm.UIDGenerator.GetRoot() ); string filename = args[0]; string outfilename = args[1]; Reader reader = new Reader(); reader.SetFileName( filename ); if( !reader.Read() ) { System.Console.WriteLine( "Could not read: " + filename ); return 1; } UIDGenerator uid = new UIDGenerator(); // helper for uid generation FileDerivation fd = new FileDerivation(); // For the pupose of this execise we will pretend that this image is referencing // two source image (we need to generate fake UID for that). string ReferencedSOPClassUID = "1.2.840.10008.5.1.4.1.1.7"; // Secondary Capture fd.AddReference( ReferencedSOPClassUID, uid.Generate() ); fd.AddReference( ReferencedSOPClassUID, uid.Generate() ); // Again for the purpose of the exercise we will pretend that the image is a // multiplanar reformat (MPR): // CID 7202 Source Image Purposes of Reference // {"DCM",121322,"Source image for image processing operation"}, fd.SetPurposeOfReferenceCodeSequenceCodeValue( 121322 ); // CID 7203 Image Derivation // { "DCM",113072,"Multiplanar reformatting" }, fd.SetDerivationCodeSequenceCodeValue( 113072 ); fd.SetFile( reader.GetFile() ); // If all Code Value are ok the filter will execute properly if( !fd.Derive() ) { return 1; } gdcm.FileMetaInformation fmi = reader.GetFile().GetHeader(); // The following three lines make sure to regenerate any value: fmi.Remove( new gdcm.Tag(0x0002,0x0012) ); fmi.Remove( new gdcm.Tag(0x0002,0x0013) ); fmi.Remove( new gdcm.Tag(0x0002,0x0016) ); Writer writer = new Writer(); writer.SetFileName( outfilename ); writer.SetFile( fd.GetFile() ); if( !writer.Write() ) { System.Console.WriteLine( "Could not write: " + outfilename ); return 1; } return 0; }
public static int Main(string[] args) { string file1 = args[0]; string file2 = args[1]; Reader reader = new Reader(); reader.SetFileName(file1); bool ret = reader.Read(); if (!ret) { return(1); } Anonymizer ano = new Anonymizer(); ano.SetFile(reader.GetFile()); ano.RemovePrivateTags(); ano.RemoveGroupLength(); Tag t = new Tag(0x10, 0x10); ano.Replace(t, "GDCM^Csharp^Test^Hello^World"); UIDGenerator g = new UIDGenerator(); ano.Replace(new Tag(0x0008, 0x0018), g.Generate()); ano.Replace(new Tag(0x0020, 0x000d), g.Generate()); ano.Replace(new Tag(0x0020, 0x000e), g.Generate()); ano.Replace(new Tag(0x0020, 0x0052), g.Generate()); Writer writer = new Writer(); writer.SetFileName(file2); writer.SetFile(ano.GetFile()); ret = writer.Write(); if (!ret) { return(1); } return(0); }
public static int Main(string[] args) { string file1 = args[0]; string file2 = args[1]; Reader reader = new Reader(); reader.SetFileName( file1 ); bool ret = reader.Read(); if( !ret ) { return 1; } Anonymizer ano = new Anonymizer(); ano.SetFile( reader.GetFile() ); ano.RemovePrivateTags(); ano.RemoveGroupLength(); Tag t = new Tag(0x10,0x10); ano.Replace( t, "GDCM^Csharp^Test^Hello^World" ); UIDGenerator g = new UIDGenerator(); ano.Replace( new Tag(0x0008,0x0018), g.Generate() ); ano.Replace( new Tag(0x0020,0x000d), g.Generate() ); ano.Replace( new Tag(0x0020,0x000e), g.Generate() ); ano.Replace( new Tag(0x0020,0x0052), g.Generate() ); Writer writer = new Writer(); writer.SetFileName( file2 ); writer.SetFile( ano.GetFile() ); ret = writer.Write(); if( !ret ) { return 1; } return 0; }
public static int Main(string[] args) { gdcm.FileMetaInformation.SetSourceApplicationEntityTitle("My Reformat App"); // http://www.oid-info.com/get/1.3.6.1.4.17434 string THERALYS_ORG_ROOT = "1.3.6.1.4.17434"; gdcm.UIDGenerator.SetRoot(THERALYS_ORG_ROOT); System.Console.WriteLine("Root dir is now: " + gdcm.UIDGenerator.GetRoot()); string filename = args[0]; string outfilename = args[1]; Reader reader = new Reader(); reader.SetFileName(filename); if (!reader.Read()) { System.Console.WriteLine("Could not read: " + filename); return(1); } UIDGenerator uid = new UIDGenerator(); // helper for uid generation FileDerivation fd = new FileDerivation(); // For the pupose of this execise we will pretend that this image is referencing // two source image (we need to generate fake UID for that). string ReferencedSOPClassUID = "1.2.840.10008.5.1.4.1.1.7"; // Secondary Capture fd.AddReference(ReferencedSOPClassUID, uid.Generate()); fd.AddReference(ReferencedSOPClassUID, uid.Generate()); // Again for the purpose of the exercise we will pretend that the image is a // multiplanar reformat (MPR): // CID 7202 Source Image Purposes of Reference // {"DCM",121322,"Source image for image processing operation"}, fd.SetPurposeOfReferenceCodeSequenceCodeValue(121322); // CID 7203 Image Derivation // { "DCM",113072,"Multiplanar reformatting" }, fd.SetDerivationCodeSequenceCodeValue(113072); fd.SetFile(reader.GetFile()); // If all Code Value are ok the filter will execute properly if (!fd.Derive()) { return(1); } gdcm.FileMetaInformation fmi = reader.GetFile().GetHeader(); // The following three lines make sure to regenerate any value: fmi.Remove(new gdcm.Tag(0x0002, 0x0012)); fmi.Remove(new gdcm.Tag(0x0002, 0x0013)); fmi.Remove(new gdcm.Tag(0x0002, 0x0016)); Writer writer = new Writer(); writer.SetFileName(outfilename); writer.SetFile(fd.GetFile()); if (!writer.Write()) { System.Console.WriteLine("Could not write: " + outfilename); return(1); } return(0); }