public bool SetIntValue(DicomElement element,IntPtr value,int count)
Public Overloads Function SetIntValue( _ByVal element As DicomElement, _ByVal value As IntPtr, _ByVal count As Integer _) As Boolean
public:bool SetIntValue(DicomElement^ element,IntPtr value,int count)
element
An item in the Data Set.
value
Pointer to an integer that contains the integer value(s) to set. If you want to set multiple values in the Value Field, put all long values in value and set count to the appropriate number of values.
count
Value that represents the number of values to set in the Value Field. If you want to set multiple values in the Value Field, put all the integer values in value and set count to the appropriate number.
true if the integer value(s) were set successfully. false if could not set the integer value(s) of the Data Element.
Note: The user is responsible to allocate the memory for value. If you want to set more than one value in the Value Field of the Data Element, put all the integer values in an array of integer values, set value to the address of the array, and set count to the corresponding number of entries. For example, if you wish to set three integer values in the Value Field of the Data Element, create an array of integer values containing the three integer values, set value to the address of the array, and set count to three.
If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time.
This method can be called only if the Value Representation of the Data Element is:
For more information about Value Representations, refer to Default Value Representation Table.
This example will initialize a DICOM Dataset and then insert different types of elements, update their values and finally verify those values by reading them back from the Dataset.
using Leadtools;using Leadtools.Dicom;public void DicomSetGetValueTest(){//Make sure to initialize the DICOM engine, this needs to be done only once//In the whole applicationDicomEngine.Startup();using (DicomDataSet dicomDataset = new DicomDataSet()){dicomDataset.Reset();dicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian);DicomElement element = dicomDataset.InsertElement(null, false, DicomTag.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 GetLongValueDebug.Assert(value[0] == 30);}element = dicomDataset.InsertElement(null, false, DicomTag.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, DicomTag.PregnancyStatus, 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, DicomTag.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, DicomTag.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);// Or you can use this overloaddicomDataset.SetFloatValue(element, 4.0F);value = dicomDataset.GetFloatValue(element, 0, 1);Debug.Assert(value[0] == 4.0F);}element = dicomDataset.InsertElement(null, false, DicomTag.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));// Or you can use the SetDateValue overload that takes a single DicomDateValuedicomDataset.SetDateValue(element, new DicomDateValue(1961, 6, 5));value = dicomDataset.GetDateValue(element, 0, 1);Debug.Assert((value[0].Year == 1961) && (value[0].Month == 6) && (value[0].Day == 5));}element = dicomDataset.InsertElement(null, false, DicomTag.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, DicomTag.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, DicomTag.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, DicomTag.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);// Or you can use this overload which takes an offsetdicomDataset.GetPreamble(out outPreamble, 0, 128);Debug.Assert(inPreamble.Length == outPreamble.Length);element = dicomDataset.FindFirstElement(element, DicomTag.NumberOfRemainingSubOperations, true);if (element != null){//We don't really need to do thisdicomDataset.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, DicomTag.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, DicomTag.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, DicomTag.PatientID, DicomVRType.LO, false, 0);if (element != null){dicomDataset.SetConvertValue(element, "154-4485", 1);Debug.Assert(dicomDataset.GetConvertValue(element) == "154-4485");}element = dicomDataset.InsertElement(null, false, DicomTag.SelectorULValue, DicomVRType.UL, false, 0);if (element != null){// Set two unsigned integer values (minimum and maximum unsigned 32-bit values)long[] values = new long[] { 0, 4294967295 };dicomDataset.SetLongValue(element, values, 2);string s = dicomDataset.GetConvertValue(element);Debug.Assert(dicomDataset.GetConvertValue(element) == "0\\4294967295");}dicomDataset.Save(Path.Combine(LEAD_VARS.ImagesDir, "Test.dcm"), DicomDataSetSaveFlags.None);}DicomEngine.Shutdown();}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";}
Imports LeadtoolsImports Leadtools.DicomPublic Sub DicomSetGetValueTest()'Make sure to initialize the DICOM engine, this needs to be done only once'In the whole applicationDicomEngine.Startup()Dim dicomDataset As DicomDataSet = New DicomDataSet()Using (dicomDataset)dicomDataset.Reset()dicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian)Dim element As DicomElement = dicomDataset.InsertElement(Nothing, False, DicomTag.CineRate, DicomVRType.IS, False, 0)If Not element Is Nothing ThendicomDataset.SetIntValue(element, New Integer() {30}, 1)Dim value As Integer() = dicomDataset.GetIntValue(element, 0, 1) ' can also call GetLongValueDebug.Assert(value(0) = 30)End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.ChannelMaximumValue, DicomVRType.OB, False, 0)If Not element Is Nothing ThendicomDataset.SetByteValue(element, New Byte() {55}, 1)Dim value As Byte() = dicomDataset.GetByteValue(element, 0, 1)Debug.Assert(value(0) = 55)End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.PregnancyStatus, DicomVRType.US, False, 0)If Not element Is Nothing ThendicomDataset.SetShortValue(element, New Short() {2}, 1)Dim value As Short() = dicomDataset.GetShortValue(element, 0, 1)Debug.Assert(value(0) = 2)End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.SliceLocation, DicomVRType.DS, False, 0)If Not element Is Nothing ThendicomDataset.SetDoubleValue(element, New Double() {10.5}, 1)Dim value As Double() = dicomDataset.GetDoubleValue(element, 0, 1)Debug.Assert(value(0) = 10.5)End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.PresentationPixelMagnificationRatio, DicomVRType.FL, False, 0)If Not element Is Nothing ThendicomDataset.SetFloatValue(element, New Single() {3.2F}, 1)Dim value As Single() = dicomDataset.GetFloatValue(element, 0, 1)Debug.Assert(value(0) = 3.2F)' Or you can use this overloaddicomDataset.SetFloatValue(element, 4.0F)value = dicomDataset.GetFloatValue(element, 0, 1)Debug.Assert(value(0) = 4.0F)End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.InstanceCreationDate, DicomVRType.DA, False, 0)If Not element Is Nothing ThenDim newvalue As DicomDateValue() = New DicomDateValue(0) {}newvalue(0).Year = 2004newvalue(0).Month = 1newvalue(0).Day = 8dicomDataset.SetDateValue(element, newvalue)Dim value As DicomDateValue() = dicomDataset.GetDateValue(element, 0, 1)Debug.Assert((value(0).Year = 2004) AndAlso (value(0).Month = 1) AndAlso (value(0).Day = 8))' Or you can use the SetDateValue overload that takes a single DicomDateValuedicomDataset.SetDateValue(element, New DicomDateValue(1961, 6, 5))value = dicomDataset.GetDateValue(element, 0, 1)Debug.Assert((value(0).Year = 1961) AndAlso (value(0).Month = 6) AndAlso (value(0).Day = 5))End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.InstanceCreationTime, DicomVRType.TM, False, 0)If Not element Is Nothing ThenDim newvalue As DicomTimeValue() = New DicomTimeValue(0) {}newvalue(0).Hours = 2newvalue(0).Minutes = 3newvalue(0).Seconds = 5dicomDataset.SetTimeValue(element, newvalue)Dim value As DicomTimeValue() = dicomDataset.GetTimeValue(element, 0, 1)Debug.Assert((value(0).Hours = 2) AndAlso (value(0).Minutes = 3) AndAlso (value(0).Seconds = 5))End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.AcquisitionDateTime, DicomVRType.DT, False, 0)If Not element Is Nothing ThenDim newvalue As DicomDateTimeValue() = New DicomDateTimeValue(0) {}newvalue(0).Year = 2004newvalue(0).Month = 1newvalue(0).Day = 8newvalue(0).Hours = 2newvalue(0).Minutes = 3newvalue(0).Seconds = 5dicomDataset.SetDateTimeValue(element, newvalue)Dim value As DicomDateTimeValue() = dicomDataset.GetDateTimeValue(element, 0, 1)Debug.Assert((value(0).Hours = 2) AndAlso (value(0).Minutes = 3) AndAlso (value(0).Seconds = 5))End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.PatientAge, DicomVRType.AS, False, 0)If Not element Is Nothing ThenDim newvalue As DicomAgeValue() = New DicomAgeValue(0) {}newvalue(0).Number = 25newvalue(0).Reference = DicomAgeReferenceType.DaysdicomDataset.SetAgeValue(element, newvalue)Dim value As DicomAgeValue() = dicomDataset.GetAgeValue(element, 0, 1)Debug.Assert((value(0).Number = 25))End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.PatientName, DicomVRType.PN, False, 0)If Not element Is Nothing ThendicomDataset.FreeElementValue(element)dicomDataset.SetStringValue(element, "John Doe", DicomCharacterSetType.Default)Debug.Assert(dicomDataset.GetElementValueCount(element) = 1)Debug.Assert(dicomDataset.GetStringValue(element, 0) = "John Doe")End IfDim inPreamble As Byte() = New Byte(127) {}For i As Integer = 0 To 127inPreamble(i) = CByte(i)Next idicomDataset.SetPreamble(inPreamble, 0, 128)Dim outPreamble As Byte() = dicomDataset.GetPreamble(128)' Or you can use this overload which takes an offsetdicomDataset.GetPreamble(outPreamble, 0, 128)Debug.Assert(inPreamble.Length = outPreamble.Length)element = dicomDataset.FindFirstElement(element, DicomTag.NumberOfRemainingSubOperations, True)If Not element Is Nothing Then'We don't really need to do thisdicomDataset.FreeElementValue(element)Dim inBinaryValue As Byte() = New Byte(1) {}inBinaryValue(0) = 0inBinaryValue(1) = 1dicomDataset.SetBinaryValue(element, inBinaryValue, 2)Dim outBinaryValue As Byte() = dicomDataset.GetBinaryValue(element, 2)Debug.Assert((outBinaryValue(0) = 0) AndAlso (outBinaryValue(1) = 1))End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.StudyDate, DicomVRType.DA, False, 0)If Not element Is Nothing ThenDim date1 As DicomDateValue = New DicomDateValue()date1.Day = 1date1.Month = 2date1.Year = 2005Dim newvalue As DicomDateRangeValue() = New DicomDateRangeValue(0) {}newvalue(0).Date1 = date1newvalue(0).Type = DicomRangeType.LowerdicomDataset.SetDateRangeValue(element, newvalue)Dim value As DicomDateRangeValue = dicomDataset.GetDateRangeValue(element, 0)Debug.Assert((value.Type = DicomRangeType.Lower) AndAlso (value.Date1.Year = 2005))End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.StudyTime, DicomVRType.TM, False, 0)If Not element Is Nothing ThenDim time1 As DicomTimeValue = New DicomTimeValue()time1.Hours = 2time1.Minutes = 1time1.Seconds = 3Dim newvalue As DicomTimeRangeValue() = New DicomTimeRangeValue(0) {}newvalue(0).Time1 = time1newvalue(0).Type = DicomRangeType.LowerdicomDataset.SetTimeRangeValue(element, newvalue)Dim value As DicomTimeRangeValue = dicomDataset.GetTimeRangeValue(element, 0)Debug.Assert((value.Type = DicomRangeType.Lower) AndAlso (value.Time1.Hours = 2))End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.PatientID, DicomVRType.LO, False, 0)If Not element Is Nothing ThendicomDataset.SetConvertValue(element, "154-4485", 1)Debug.Assert(dicomDataset.GetConvertValue(element) = "154-4485")End Ifelement = dicomDataset.InsertElement(Nothing, False, DicomTag.SelectorULValue, DicomVRType.UL, False, 0)If Not element Is Nothing Then' Set two unsigned integer values (minimum and maximum unsigned 32-bit values)Dim values() As Long = {0, 4294967295}dicomDataset.SetLongValue(element, values, 2)Dim s As String = dicomDataset.GetConvertValue(element)Debug.Assert(dicomDataset.GetConvertValue(element) = "0\4294967295")End IfdicomDataset.Save(Path.Combine(LEAD_VARS.ImagesDir, "Test.dcm"), DicomDataSetSaveFlags.None)End UsingDicomEngine.Shutdown()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"End Class
SetIntValue(DicomElement,Int32[],Int32) Method
SetShortValue(DicomElement,Int16[],Int32) Method
SetByteValue(DicomElement,Byte[],Int32) Method
SetBinaryValue(DicomElement,Byte[],Int32) Method
SetStringValue(DicomElement,string) Method
SetStringValue(DicomElement,string,DicomCharacterSetType) Method
SetStringValue(DicomElement,string[]) Method
SetStringValue(DicomElement,string[],DicomCharacterSetType) Method
SetStringValuePtr(DicomElement,IntPtr,int) Method
SetStringValuePtr(DicomElement,IntPtr,int,DicomCharacterSetType) Method
SetFloatValue(DicomElement,Single[],Int32) Method
SetDoubleValue(DicomElement,Double[],Int32) Method
SetDateValue(DicomElement,DicomDateValue[]) Method
SetTimeValue(DicomElement,DicomTimeValue[]) Method
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
