LEADTOOLS Medical (Leadtools.Dicom assembly)
LEAD Technologies, Inc

SetValue Method

Example 







An item in the Data Set.
>An System.Object that can be any supported type, or an array of any supported type.
Sets the value(s) of a Data Element. The value can be any supported type. .NET support WinRT support Silverlight support
Syntax
public bool SetValue( 
   DicomElement element,
   object value
)
'Declaration
 
Public Function SetValue( _
   ByVal element As DicomElement, _
   ByVal value As Object _
) As Boolean
'Usage
 
Dim instance As DicomDataSet
Dim element As DicomElement
Dim value As Object
Dim value As Boolean
 
value = instance.SetValue(element, value)
public bool SetValue( 
   DicomElement element,
   object value
)
ObjectiveC Syntax
 function Leadtools.Dicom.DicomDataSet.SetValue( 
   element ,
   value 
)
public:
bool SetValue( 
   DicomElement^ element,
   Object^ value
) 

Parameters

element
An item in the Data Set.
value
>An System.Object that can be any supported type, or an array of any supported type.

Return Value

true if the object value was set successfully. false if could not set the object value of the Data Element.
Remarks
Note: The user is responsible to allocate the memory for value.

This is very flexible function that can be used to set the value of almost any DICOM data element, regardless of the DicomVRType The System.Object can be any of the following:

Example
Copy CodeCopy Code  
''' 
   Private Function MyInsertElement(ByVal ds As DicomDataSet, ByVal tag As Long) As DicomElement
      Dim myTag As DicomTag = DicomTagTable.Instance.Find(tag)
      Dim element As DicomElement = ds.InsertElement(Nothing, False, tag, myTag.VR, False, 0)
      Return element
   End Function
   Private Sub DicomDataSet_SetValueExample()
      Dim element As DicomElement = Nothing
      Dim ds As DicomDataSet = New DicomDataSet()

      ' Set a string
      element = MyInsertElement(ds, DicomTag.PatientName)
      ds.SetValue(element, "Joe^Patient")

      ' Set an array of strings
      element = MyInsertElement(ds, DicomTag.OtherPatientNames)
      Dim names As String() = {"One", "Two", "Three"}
      ds.SetValue(element, names)

      ' Another way to do an array of strings
      Dim it As List(Of String) = New List(Of String)()
      it.Add("ORIGINAL")
      it.Add("PRIMARY")
      element = MyInsertElement(ds, DicomTag.ImageType)
      ds.SetValue(element, it.ToArray())

      ' Set an array of integers, that will be converted to strings
      element = MyInsertElement(ds, DicomTag.PhysicianOfRecord)
      Dim namesInt As Integer() = {1, 2, 3}
      ds.SetValue(element, namesInt)

      ' Set a DicomDateValue
      element = MyInsertElement(ds, DicomTag.PatientBirthDate)
      Dim dicomDate As DicomDateValue = New DicomDateValue(1961, 6, 5)
      ds.SetValue(element, dicomDate)

      ' Set a DateTime
      element = MyInsertElement(ds, DicomTag.InstanceCreationDate)
      Dim dateTime As DateTime = New DateTime(2003, 5, 16)
      ds.SetValue(element, dateTime)

      ' Set an array of DateTime
      element = MyInsertElement(ds, DicomTag.DateOfLastCalibration)
      Dim dateTimeArray As DateTime() = {New DateTime(2000, 3, 8), New DateTime(2003, 5, 16)}
      ds.SetValue(element, dateTimeArray)

      ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "test.dcm"), DicomDataSetSaveFlags.None)
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
/// 
   private DicomElement MyInsertElement(DicomDataSet ds, long tag)
   {
      DicomTag myTag = DicomTagTable.Instance.Find(tag);
      DicomElement element = ds.InsertElement(null, false, tag, myTag.VR, false, 0);
      return element;
   }
   private void DicomDataSet_SetValueExample()
   {
      DicomElement element = null;
      DicomDataSet ds = new DicomDataSet();

      // Set a string
      element = MyInsertElement(ds, DicomTag.PatientName);
      ds.SetValue(element, "Joe^Patient");

      // Set an array of strings
      element = MyInsertElement(ds, DicomTag.OtherPatientNames);
      string[] names = { "One", "Two", "Three" };
      ds.SetValue(element, names);

      // Another way to do an array of strings
      List<string> it = new List<string>();
      it.Add("ORIGINAL");
      it.Add("PRIMARY");
      element = MyInsertElement(ds, DicomTag.ImageType);
      ds.SetValue(element, it.ToArray());

      // Set an array of integers, that will be converted to strings
      element = MyInsertElement(ds, DicomTag.PhysicianOfRecord);
      int[] namesInt = { 1, 2, 3 };
      ds.SetValue(element, namesInt);

      // Set a DicomDateValue
      element = MyInsertElement(ds, DicomTag.PatientBirthDate);
      DicomDateValue dicomDate = new DicomDateValue(1961, 6, 5);
      ds.SetValue(element, dicomDate);

      // Set a DateTime
      element = MyInsertElement(ds, DicomTag.InstanceCreationDate);
      DateTime dateTime = new DateTime(2003, 5, 16);
      ds.SetValue(element, dateTime);

      // Set an array of DateTime
      element = MyInsertElement(ds, DicomTag.DateOfLastCalibration);
      DateTime[] dateTimeArray = { new DateTime(2000, 3, 8), new DateTime(2003, 5, 16) };
      ds.SetValue(element, dateTimeArray);

      ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "test.dcm"), DicomDataSetSaveFlags.None);
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
///// 
private DicomElement MyInsertElement(DicomDataSet ds, long tag)
{
   DicomTag myTag = DicomTagTable.Instance.Find(tag);
   DicomElement element = ds.InsertElement(null, false, tag, myTag.VR, false, 0);
   return element;
}
private async Task DicomDataSet_SetValueExample()
{
   DicomElement element = null;
   DicomDataSet ds = new DicomDataSet();

   // Set a string
   element = MyInsertElement(ds, DicomTagConstants.PatientName);
   ds.SetValue(element, "Joe^Patient");

   // Set an array of strings
   element = MyInsertElement(ds, DicomTagConstants.OtherPatientNames);
   string[] names = { "One", "Two", "Three" };
   ds.SetValue(element, names);

   // Another way to do an array of strings
   List<string> it = new List<string>();
   it.Add("ORIGINAL");
   it.Add("PRIMARY");
   element = MyInsertElement(ds, DicomTagConstants.ImageType);
   ds.SetValue(element, it.ToArray());

   // Set an array of integers, that will be converted to strings
   element = MyInsertElement(ds, DicomTagConstants.PhysicianOfRecord);
   int[] namesInt = { 1, 2, 3 };
   ds.SetValue(element, namesInt);

   // Set a DicomDateValue
   element = MyInsertElement(ds, DicomTagConstants.PatientBirthDate);
   DicomDateValue dicomDate = DicomDateValueHelper.Create(1961, 6, 5);
   ds.SetValue(element, dicomDate);

   // Set a DateTime
   element = MyInsertElement(ds, DicomTagConstants.InstanceCreationDate);
   DateTime dateTime = new DateTime(2003, 5, 16);
   ds.SetValue(element, dateTime);

   // Set an array of DateTime
   element = MyInsertElement(ds, DicomTagConstants.DateOfLastCalibration);
   DateTime[] dateTimeArray = { new DateTime(2000, 3, 8), new DateTime(2003, 5, 16) };
   ds.SetValue(element, dateTimeArray);

   string dicomFileNameOutput = "test.dcm";
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(dicomFileNameOutput);
   ILeadStream streamOutput = LeadStreamFactory.Create(saveFile);
   using (IDisposable disposableOUT = streamOutput as IDisposable)
   {
      await ds.SaveAsync(streamOutput, DicomDataSetSaveFlags.None);
   }
}
private DicomElement MyInsertElement(DicomDataSet ds, long tag)
{
   DicomTag myTag = DicomTagTable.Instance.Find(tag);
   DicomElement element = ds.InsertElement(null, false, tag, myTag.VR, false, 0);
   return element;
}
private void DicomDataSet_SetValueExample(Stream outputStream)
{
   DicomElement element = null;
   DicomDataSet ds = new DicomDataSet();

   // Set a string
   element = MyInsertElement(ds, DicomTag.PatientName);
   ds.SetValue(element, "Joe^Patient");

   // Set an array of strings
   element = MyInsertElement(ds, DicomTag.OtherPatientNames);
   string[] names = { "One", "Two", "Three" };
   ds.SetValue(element, names);

   // Another way to do an array of strings
   List<string> it = new List<string>();
   it.Add("ORIGINAL");
   it.Add("PRIMARY");
   element = MyInsertElement(ds, DicomTag.ImageType);
   ds.SetValue(element, it.ToArray());

   // Set an array of integers, that will be converted to strings
   element = MyInsertElement(ds, DicomTag.PhysicianOfRecord);
   int[] namesInt = { 1, 2, 3 };
   ds.SetValue(element, namesInt);

   // Set a DicomDateValue
   element = MyInsertElement(ds, DicomTag.PatientBirthDate);
   DicomDateValue dicomDate = new DicomDateValue(1961, 6, 5);
   ds.SetValue(element, dicomDate);

   // Set a DateTime
   element = MyInsertElement(ds, DicomTag.InstanceCreationDate);
   DateTime dateTime = new DateTime(2003, 5, 16);
   ds.SetValue(element, dateTime);

   // Set an array of DateTime
   element = MyInsertElement(ds, DicomTag.DateOfLastCalibration);
   DateTime[] dateTimeArray = { new DateTime(2000, 3, 8), new DateTime(2003, 5, 16) };
   ds.SetValue(element, dateTimeArray);

   ds.Save(outputStream, DicomDataSetSaveFlags.None);
}
Private Function MyInsertElement(ByVal ds As DicomDataSet, ByVal tag As Long) As DicomElement
   Dim myTag As DicomTag = DicomTagTable.Instance.Find(tag)
   Dim element As DicomElement = ds.InsertElement(Nothing, False, tag, myTag.VR, False, 0)
   Return element
End Function
Private Sub DicomDataSet_SetValueExample(ByVal outputStream As Stream)
   Dim element As DicomElement = Nothing
   Dim ds As DicomDataSet = New DicomDataSet()

   ' Set a string
   element = MyInsertElement(ds, DicomTag.PatientName)
   ds.SetValue(element, "Joe^Patient")

   ' Set an array of strings
   element = MyInsertElement(ds, DicomTag.OtherPatientNames)
   Dim names As String() = {"One", "Two", "Three"}
   ds.SetValue(element, names)

   ' Another way to do an array of strings
   Dim it As List(Of String) = New List(Of String)()
   it.Add("ORIGINAL")
   it.Add("PRIMARY")
   element = MyInsertElement(ds, DicomTag.ImageType)
   ds.SetValue(element, it.ToArray())

   ' Set an array of integers, that will be converted to strings
   element = MyInsertElement(ds, DicomTag.PhysicianOfRecord)
   Dim namesInt As Integer() = {1, 2, 3}
   ds.SetValue(element, namesInt)

   ' Set a DicomDateValue
   element = MyInsertElement(ds, DicomTag.PatientBirthDate)
   Dim dicomDate As DicomDateValue = New DicomDateValue(1961, 6, 5)
   ds.SetValue(element, dicomDate)

   ' Set a DateTime
   element = MyInsertElement(ds, DicomTag.InstanceCreationDate)
   Dim dateTime As DateTime = New DateTime(2003, 5, 16)
   ds.SetValue(element, dateTime)

   ' Set an array of DateTime
   element = MyInsertElement(ds, DicomTag.DateOfLastCalibration)
   Dim dateTimeArray As DateTime() = {New DateTime(2000, 3, 8), New DateTime(2003, 5, 16)}
   ds.SetValue(element, dateTimeArray)

   ds.Save(outputStream, DicomDataSetSaveFlags.None)
End Sub
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

DicomDataSet Class
DicomDataSet Members
DicomDataSet.SetValue(DicomElement, object)
DicomDataSet.SetIntValue(DicomElement, int[], int)
DicomDataSet.SetShortValue(DicomElement, short[], int)
DicomDataSet.SetByteValue(DicomElement, Byte[], int)
DicomDataSet.SetBinaryValue(DicomElement, Byte[], int)
DicomDataSet.SetStringValue(DicomElement, string[], DicomCharacterSetType)
DicomDataSet.SetFloatValue(DicomElement, float[], int)
DicomDataSet.SetDoubleValue(DicomElement, double[], int)
SetAgeValue Method
SetDateValue(DicomElement,DicomDateValue[]) Method
SetTimeValue(DicomElement,DicomTimeValue[]) Method
SetDateTimeValue(DicomElement,DicomDateTimeValue[]) Method
SetConvertValue(DicomElement,String,Int32) Method

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Dicom requires a Medical toolkit server license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features