←Select platform

GetValue<T>(DicomElement,T,out T) Method

Summary
Returns the value of a DICOM element.
Syntax
C#
C++
public DicomDataSet GetValue<T>( 
   DicomElement element, 
   T defaultValue, 
   out T value 
) 
public: 
DicomDataSet^ GetValuegeneric<typename T> 
(  
   DicomElement^ element, 
   T^ defaultValue, 
   [Out] T^ value 
)  

Parameters

element
an item in the data set

defaultValue
a value of type T that is returned if the actual value cannot be retrieved.

value
reference to an object that will be updated with the value.

Type Parameters

T
specifies the type of the value to return

Return Value

a reference to the DicomDataSet

Remarks

For information on this method, see GetValue.

Example

This example will create a DICOM sequence, and then read back values from the sequence

C#
using Leadtools; 
using Leadtools.Dicom; 
 
 
///  
private void DicomDataSet_BeginEditSequenceExample() 
{ 
   // The methods below all return a 'this' pointer so that they can be chained together (a 'fluent' interface) 
   // BeginEditItem has an index item to allow you to specify which item to edit (defaults to 0). 
   // BeginReadItem should also have this overload. 
   // 
 
   // Create a DicomDataSet  
   DicomDataSet ds = new DicomDataSet(); 
 
   // *************************************************** 
   // *** Example 1  
   // *************************************************** 
 
   // Create a sequence with two items 
   ds.BeginEditSequence(DicomTag.RequestAttributesSequence) 
        .BeginEditItem() 
           .InsertElementAndSetValue(DicomTag.RequestedProcedureID, "RequestedProcedureID -- first item") 
           .InsertElementAndSetValue(DicomTag.ScheduledProcedureStepID, "ScheduledProcedureStepID -- first item") 
        .EndEditItem() 
        .BeginEditItem() 
           .InsertElementAndSetValue(DicomTag.RequestedProcedureID, "RequestedProcedureID -- second item") 
           .InsertElementAndSetValue(DicomTag.ScheduledProcedureStepID, "ScheduledProcedureStepID -- second item") 
        .EndEditItem() 
     .EndEditSequence(); 
 
   // Now add a third item to the sequence 
   ds.BeginEditSequence(DicomTag.RequestAttributesSequence) 
        .BeginEditItem(2) 
           .InsertElementAndSetValue(DicomTag.RequestedProcedureID, "RequestedProcedureID -- third item") 
           .InsertElementAndSetValue(DicomTag.ScheduledProcedureStepID, "ScheduledProcedureStepID -- third item") 
        .EndEditItem() 
     .EndEditSequence(); 
 
   // Now update the second item in the sequence 
   ds.BeginEditSequence(DicomTag.RequestAttributesSequence) 
        .BeginEditItem(1) 
           .InsertElementAndSetValue(DicomTag.RequestedProcedureID, "RequestedProcedureID -- second item updated") 
           .InsertElementAndSetValue(DicomTag.ScheduledProcedureStepID, "ScheduledProcedureStepID -- second item updated") 
        .EndEditItem() 
     .EndEditSequence(); 
 
   // Read the first item in the sequence 
   string sRequestedProcedureID; 
   string sScheduledProcedureStepID; 
   ds.BeginReadSequence(DicomTag.RequestAttributesSequence) 
      .BeginReadItem() 
         .GetValue<string>(DicomTag.RequestedProcedureID, null, out sRequestedProcedureID) 
         .GetValue<string>(DicomTag.ScheduledProcedureStepID, null, out sScheduledProcedureStepID) 
      .EndReadItem() 
     .EndReadSequence(); 
 
   // Read the third item in the sequence 
   sRequestedProcedureID = string.Empty; 
   sScheduledProcedureStepID = string.Empty; 
   ds.BeginReadSequence(DicomTag.RequestAttributesSequence) 
      .BeginReadItem(2) 
         .GetValue<string>(DicomTag.RequestedProcedureID, null, out sRequestedProcedureID) 
         .GetValue<string>(DicomTag.ScheduledProcedureStepID, null, out sScheduledProcedureStepID) 
      .EndReadItem() 
     .EndReadSequence(); 
 
   // *************************************************** 
   // *** Example 2  
   // *************************************************** 
 
   // This example creates a sequence inside another sequence 
   // Add a per-frame functional gropus sequence with two items 
   ds.BeginEditSequence(DicomTag.PerFrameFunctionalGroupsSequence) 
        .BeginEditItem() 
               .BeginEditSequence(DicomTag.FrameVOILUTSequence) 
                     .BeginEditItem() 
                        .InsertElementAndSetValue(DicomTag.WindowCenter, 32000) 
                        .InsertElementAndSetValue(DicomTag.WindowWidth, 64000) 
                     .EndEditItem() 
                     .BeginEditItem() 
                        .InsertElementAndSetValue(DicomTag.WindowCenter, 100) 
                        .InsertElementAndSetValue(DicomTag.WindowWidth, 200) 
                     .EndEditItem() 
               .EndEditSequence() 
        .EndEditItem() 
     .EndEditSequence(); 
 
   // Now read the per-frame functional groups sequence with two items 
   string sWindowCenter1; 
   string sWindowWidth1; 
   string sWindowCenter2; 
   string sWindowWidth2; 
   ds.BeginReadSequence(DicomTag.PerFrameFunctionalGroupsSequence) 
      .BeginReadItem() 
         .BeginReadSequence(DicomTag.FrameVOILUTSequence) 
            .BeginReadItem() 
                .GetValue<string>(DicomTag.WindowCenter, null, out sWindowCenter1) 
                .GetValue<string>(DicomTag.WindowWidth, null, out sWindowWidth1) 
            .EndReadItem() 
            .BeginReadItem() 
                .GetValue<string>(DicomTag.WindowCenter, null, out sWindowCenter2) 
                .GetValue<string>(DicomTag.WindowWidth, null, out sWindowWidth2) 
            .EndReadItem() 
         .EndReadSequence() 
      .EndReadItem() 
   .EndReadSequence(); 
 
   ds.Save(Path.Combine(LEAD_VARS.ImagesDir, "test.dcm"), DicomDataSetSaveFlags.None); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2022.4.4
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2022 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom Assembly