public static int Main(string[] argv) { string file1 = argv[0]; string file2 = argv[1]; gdcm.Reader r = new gdcm.Reader(); r.SetFileName(file1); if (!r.Read()) { return(1); } gdcm.File f = r.GetFile(); gdcm.DataSet ds = f.GetDataSet(); // tsis = gdcm.Tag(0x0008,0x2112) # SourceImageSequence // Create a dataelement gdcm.DataElement de = new gdcm.DataElement(new gdcm.Tag(0x0010, 0x2180)); string occ = "Occupation"; de.SetByteValue(StrToByteArray(occ), new gdcm.VL((uint)occ.Length)); de.SetVR(new gdcm.VR(gdcm.VR.VRType.SH)); // Create an item gdcm.Item it = new gdcm.Item(); it.SetVLToUndefined(); // Needed to not popup error message //it.InsertDataElement(de) gdcm.DataSet nds = it.GetNestedDataSet(); nds.Insert(de); // Create a Sequence gdcm.SmartPtrSQ sq = gdcm.SequenceOfItems.New(); sq.SetLengthToUndefined(); sq.AddItem(it); // Insert sequence into data set gdcm.DataElement des = new gdcm.DataElement(new gdcm.Tag(0x0400, 0x0550)); des.SetVR(new gdcm.VR(gdcm.VR.VRType.SQ)); des.SetValue(sq.__ref__()); des.SetVLToUndefined(); ds.Insert(des); gdcm.Writer w = new gdcm.Writer(); w.SetFile(f); w.SetFileName(file2); if (!w.Write()) { return(1); } return(0); }
public static int Main(string[] argv) { string file1 = argv[0]; string file2 = argv[1]; gdcm.Reader r = new gdcm.Reader(); r.SetFileName( file1 ); if ( ! r.Read() ) { return 1; } gdcm.File f = r.GetFile(); gdcm.DataSet ds = f.GetDataSet(); // tsis = gdcm.Tag(0x0008,0x2112) # SourceImageSequence // Create a dataelement gdcm.DataElement de = new gdcm.DataElement(new gdcm.Tag(0x0010, 0x2180)); string occ = "Occupation"; de.SetByteValue( StrToByteArray(occ), new gdcm.VL((uint)occ.Length)); de.SetVR(new gdcm.VR(gdcm.VR.VRType.SH)); // Create an item gdcm.Item it = new gdcm.Item(); it.SetVLToUndefined(); // Needed to not popup error message //it.InsertDataElement(de) gdcm.DataSet nds = it.GetNestedDataSet(); nds.Insert(de); // Create a Sequence gdcm.SmartPtrSQ sq = gdcm.SequenceOfItems.New(); sq.SetLengthToUndefined(); sq.AddItem(it); // Insert sequence into data set gdcm.DataElement des = new gdcm.DataElement(new gdcm.Tag(0x0400,0x0550)); des.SetVR(new gdcm.VR(gdcm.VR.VRType.SQ)); des.SetValue(sq.__ref__()); des.SetVLToUndefined(); ds.Insert(des); gdcm.Writer w = new gdcm.Writer(); w.SetFile( f ); w.SetFileName( file2 ); if ( !w.Write() ) return 1; return 0; }