public void DicomSetGetValueTest()  {     //Make sure to initialize the DICOM engine, this needs to be done only once      //In the whole application     DicomEngine.Startup();     using (DicomDataSet dicomDataset = new DicomDataSet())     {        dicomDataset.Reset();        dicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian);        DicomElement element = dicomDataset.InsertElement(null, false, DicomTagType.CineRate, DicomVRType.IS, false, 0);        if (element != null)        {           dicomDataset.SetIntValue(element, new int[] { 30 }, 1);           int[] value = dicomDataset.GetIntValue(element, 0, 1);// can also call GetLongValue           Debug.Assert(value[0] == 30);        }          element = dicomDataset.InsertElement(null, false, DicomTagType.ChannelMaximumValue, DicomVRType.OB, false, 0);        if (element != null)        {           dicomDataset.SetByteValue(element, new byte[] { 55 }, 1);           byte[] value = dicomDataset.GetByteValue(element, 0, 1);           Debug.Assert(value[0] == 55);        }          element = dicomDataset.InsertElement(null, false, DicomTagType.NumberOfRemainingSuboperations, DicomVRType.US, false, 0);        if (element != null)        {           dicomDataset.SetShortValue(element, new short[] { 2 }, 1);           short[] value = dicomDataset.GetShortValue(element, 0, 1);           Debug.Assert(value[0] == 2);        }          element = dicomDataset.InsertElement(null, false, DicomTagType.SliceLocation, DicomVRType.DS, false, 0);        if (element != null)        {           dicomDataset.SetDoubleValue(element, new double[] { 10.5 }, 1);           double[] value = dicomDataset.GetDoubleValue(element, 0, 1);           Debug.Assert(value[0] == 10.5);        }          element = dicomDataset.InsertElement(null, false, DicomTagType.PresentationPixelMagnificationRatio, DicomVRType.FL, false, 0);        if (element != null)        {           dicomDataset.SetFloatValue(element, new float[] { 3.2F }, 1);           float[] value = dicomDataset.GetFloatValue(element, 0, 1);           Debug.Assert(value[0] == 3.2F);        }          element = dicomDataset.InsertElement(null, false, DicomTagType.InstanceCreationDate, DicomVRType.DA, false, 0);        if (element != null)        {           DicomDateValue[] newvalue = new DicomDateValue[1];           newvalue[0].Year = 2004;           newvalue[0].Month = 1;           newvalue[0].Day = 8;           dicomDataset.SetDateValue(element, newvalue);           DicomDateValue[] value = dicomDataset.GetDateValue(element, 0, 1);           Debug.Assert((value[0].Year == 2004) && (value[0].Month == 1) && (value[0].Day == 8));        }          element = dicomDataset.InsertElement(null, false, DicomTagType.InstanceCreationTime, DicomVRType.TM, false, 0);        if (element != null)        {           DicomTimeValue[] newvalue = new DicomTimeValue[1];           newvalue[0].Hours = 2;           newvalue[0].Minutes = 3;           newvalue[0].Seconds = 5;           dicomDataset.SetTimeValue(element, newvalue);           DicomTimeValue[] value = dicomDataset.GetTimeValue(element, 0, 1);           Debug.Assert((value[0].Hours == 2) && (value[0].Minutes == 3) && (value[0].Seconds == 5));        }          element = dicomDataset.InsertElement(null, false, DicomTagType.AcquisitionDatetime, DicomVRType.DT, false, 0);        if (element != null)        {           DicomDateTimeValue[] newvalue = new DicomDateTimeValue[1];           newvalue[0].Year = 2004;           newvalue[0].Month = 1;           newvalue[0].Day = 8;           newvalue[0].Hours = 2;           newvalue[0].Minutes = 3;           newvalue[0].Seconds = 5;           dicomDataset.SetDateTimeValue(element, newvalue);           DicomDateTimeValue[] value = dicomDataset.GetDateTimeValue(element, 0, 1);           Debug.Assert((value[0].Hours == 2) && (value[0].Minutes == 3) && (value[0].Seconds == 5));        }          element = dicomDataset.InsertElement(null, false, DicomTagType.PatientAge, DicomVRType.AS, false, 0);        if (element != null)        {           DicomAgeValue[] newvalue = new DicomAgeValue[1];           newvalue[0].Number = 25;           newvalue[0].Reference = DicomAgeReferenceType.Days;           dicomDataset.SetAgeValue(element, newvalue);           DicomAgeValue[] value = dicomDataset.GetAgeValue(element, 0, 1);           Debug.Assert((value[0].Number == 25));        }          element = dicomDataset.InsertElement(null, false, DicomTagType.PatientName, DicomVRType.PN, false, 0);        if (element != null)        {           dicomDataset.FreeElementValue(element);           dicomDataset.SetStringValue(element, "John Doe", DicomCharacterSetType.Default);           Debug.Assert(dicomDataset.GetElementValueCount(element) == 1);           Debug.Assert(dicomDataset.GetStringValue(element, 0) == "John Doe");        }          byte[] inPreamble = new byte[128];        for (int i = 0; i < 128; i++)        {           inPreamble[i] = (byte)i;        }        dicomDataset.SetPreamble(inPreamble, 0, 128);        byte[] outPreamble = dicomDataset.GetPreamble(128);        Debug.Assert(inPreamble.Length == outPreamble.Length);          element = dicomDataset.FindFirstElement(element, DicomTagType.NumberOfRemainingSuboperations, true);        if (element != null)        {           //We don�t really need to do this           dicomDataset.FreeElementValue(element);           byte[] inBinaryValue = new byte[2];           inBinaryValue[0] = 0;           inBinaryValue[1] = 1;           dicomDataset.SetBinaryValue(element, inBinaryValue, 2);           byte[] outBinaryValue = dicomDataset.GetBinaryValue(element, 2);           Debug.Assert((outBinaryValue[0] == 0) && (outBinaryValue[1] == 1));        }          element = dicomDataset.InsertElement(null, false, DicomTagType.StudyDate, DicomVRType.DA, false, 0);        if (element != null)        {           DicomDateValue date1 = new DicomDateValue();           date1.Day = 1;           date1.Month = 2;           date1.Year = 2005;           DicomDateRangeValue[] newvalue = new DicomDateRangeValue[1];           newvalue[0].Date1 = date1;           newvalue[0].Type = DicomRangeType.Lower;           dicomDataset.SetDateRangeValue(element, newvalue);           DicomDateRangeValue value = dicomDataset.GetDateRangeValue(element, 0);           Debug.Assert((value.Type == DicomRangeType.Lower) && (value.Date1.Year == 2005));        }          element = dicomDataset.InsertElement(null, false, DicomTagType.StudyTime, DicomVRType.TM, false, 0);        if (element != null)        {           DicomTimeValue time1 = new DicomTimeValue();           time1.Hours = 2;           time1.Minutes = 1;           time1.Seconds = 3;           DicomTimeRangeValue[] newvalue = new DicomTimeRangeValue[1];           newvalue[0].Time1 = time1;           newvalue[0].Type = DicomRangeType.Lower;           dicomDataset.SetTimeRangeValue(element, newvalue);           DicomTimeRangeValue value = dicomDataset.GetTimeRangeValue(element, 0);           Debug.Assert((value.Type == DicomRangeType.Lower) && (value.Time1.Hours == 2));        }          element = dicomDataset.InsertElement(null, false, DicomTagType.PatientID, DicomVRType.LO, false, 0);        if (element != null)        {           dicomDataset.SetConvertValue(element, "154-4485", 1);           Debug.Assert(dicomDataset.GetConvertValue(element) == "154-4485");        }          dicomDataset.Save(@"C:\\Test.dic", DicomDataSetSaveFlags.None);     }     DicomEngine.Shutdown();  } |