using System;
public class NewSequence
{
public static byte[] StrToByteArray(string str)
{
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
return encoding.GetBytes(str);
}
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();
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));
gdcm.Item it = new gdcm.Item();
it.SetVLToUndefined();
gdcm.DataSet nds = it.GetNestedDataSet();
nds.Insert(de);
gdcm.SmartPtrSQ sq = gdcm.SequenceOfItems.New();
sq.SetLengthToUndefined();
sq.AddItem(it);
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;
}
}