LEADTOOLS Medical (Leadtools.Dicom assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
SetPresentationStateInformation Method
See Also 
Leadtools.Dicom Namespace > DicomDataSet Class : SetPresentationStateInformation Method



presentationStateInformation
"Presentation State Module" attributes
presentationStateInformation
"Presentation State Module" attributes
Sets the attributes of the "Presentation State Module". Supported in Silverlight, Windows Phone 7.

Syntax

Visual Basic (Declaration) 
Public Sub SetPresentationStateInformation( _
   ByVal presentationStateInformation As DicomPresentationStateInformation _
) 
Visual Basic (Usage)Copy Code
Dim instance As DicomDataSet
Dim presentationStateInformation As DicomPresentationStateInformation
 
instance.SetPresentationStateInformation(presentationStateInformation)
C# 
public void SetPresentationStateInformation( 
   DicomPresentationStateInformation presentationStateInformation
)
C++/CLI 
public:
void SetPresentationStateInformation( 
   DicomPresentationStateInformation^ presentationStateInformation
) 

Parameters

presentationStateInformation
"Presentation State Module" attributes

Example

This example will initialize a new DICOM dataset and update its presentation state information.

Visual BasicCopy Code
Public Sub DicomPresStateSample()
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()

   Dim dicomDataset As DicomDataSet = New DicomDataSet()
   Using (dicomDataset)
      dicomDataset.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeType.ExplicitVRLittleEndian)
      Dim presentationStateInfo As DicomPresentationStateInformation = New DicomPresentationStateInformation()
      presentationStateInfo.InstanceNumber = 1
      presentationStateInfo.PresentationLabel = "Label"
      presentationStateInfo.PresentationDescription = "Description"
      presentationStateInfo.PresentationCreator = "Creator"
      Dim presentationCreationDate As DicomDateValue = New DicomDateValue()
      presentationCreationDate.Year = 2004
      presentationCreationDate.Month = 1
      presentationCreationDate.Day = 8
      Dim presentationCreationTime As DicomTimeValue = New DicomTimeValue()
      presentationCreationTime.Hours = 2
      presentationCreationTime.Minutes = 3
      presentationCreationTime.Seconds = 5
      presentationStateInfo.PresentationCreationDate = presentationCreationDate
      presentationStateInfo.PresentationCreationTime = presentationCreationTime
      dicomDataset.SetPresentationStateInformation(presentationStateInfo)

      Dim presentationStateInfo1 As DicomPresentationStateInformation = dicomDataset.GetPresentationStateInformation()
      Debug.Assert(Not presentationStateInfo1 Is Nothing)
      Debug.Assert(presentationStateInfo1.InstanceNumber = 1)

      'RemovePresStateImageRefBySOPInstance can be used to remove indivual referened images
      dicomDataset.RemoveAllPresentationStateImageReferences()
      Debug.Assert(dicomDataset.GetPresentationStateImageReferenceCount(Nothing) = 0)
      ' We can also load the dataset first and then call AddPresStateImageRefByDS
      dicomDataset.AddPresentationStateImageReference(LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm", Nothing, 0)

      ' We can also add the presentation state using a stream
      Using stream As New FileStream(LeadtoolsExamples.Common.ImagesPath.Path & "IMAGE3.dcm", FileMode.Open)
          dicomDataset.AddPresentationStateImageReference(stream, Nothing, 0)
      End Using

      'We can also use FindNextPresStateRefSeriesItem to iteratate through all items
      Dim item As DicomElement = dicomDataset.FindFirstPresentationStateReferencedSeriesItem()

      Dim imageRefSOPInstanceUID As String = dicomDataset.GetPresentationStateImageReferenceSOPInstance(item, 0)
      Debug.Assert(Not imageRefSOPInstanceUID Is Nothing)
      Dim item1 As DicomElement = dicomDataset.GetPresentationStateImageReference(imageRefSOPInstanceUID)
      Debug.Assert(Not item1 Is Nothing)

      dicomDataset.Save(LeadtoolsExamples.Common.ImagesPath.Path + "PresentationState.dcm", DicomDataSetSaveFlags.None)
   End Using

   DicomEngine.Shutdown()
End Sub
C#Copy Code
public void DicomPresStateSample()
{
   //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.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeType.ExplicitVRLittleEndian);
      DicomPresentationStateInformation presentationStateInfo = new DicomPresentationStateInformation();
      presentationStateInfo.InstanceNumber = 1;
      presentationStateInfo.PresentationLabel = "Label";
      presentationStateInfo.PresentationDescription = "Description";
      presentationStateInfo.PresentationCreator = "Creator";
      DicomDateValue presentationCreationDate = new DicomDateValue();
      presentationCreationDate.Year = 2004;
      presentationCreationDate.Month = 1;
      presentationCreationDate.Day = 8;
      DicomTimeValue presentationCreationTime = new DicomTimeValue();
      presentationCreationTime.Hours = 2;
      presentationCreationTime.Minutes = 3;
      presentationCreationTime.Seconds = 5;
      presentationStateInfo.PresentationCreationDate = presentationCreationDate;
      presentationStateInfo.PresentationCreationTime = presentationCreationTime;
      dicomDataset.SetPresentationStateInformation(presentationStateInfo);

      DicomPresentationStateInformation presentationStateInfo1 = dicomDataset.GetPresentationStateInformation();
      Debug.Assert(presentationStateInfo1 != null);
      Debug.Assert(presentationStateInfo1.InstanceNumber == 1);

      //RemovePresStateImageRefBySOPInstance can be used to remove indivual referened images
      dicomDataset.RemoveAllPresentationStateImageReferences();
      Debug.Assert(dicomDataset.GetPresentationStateImageReferenceCount(null) == 0);
      // We can also load the dataset first and then call AddPresStateImageRefByDS
      dicomDataset.AddPresentationStateImageReference(LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm", null, 0);

      // We can also add the presentation state using a stream
      using (FileStream stream = new FileStream(LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE3.dcm", FileMode.Open))
      {
         dicomDataset.AddPresentationStateImageReference(stream, null, 0);
      }

      //We can also use FindNextPresStateRefSeriesItem to iterate through all items
      DicomElement item = dicomDataset.FindFirstPresentationStateReferencedSeriesItem();

      string imageRefSOPInstanceUID = dicomDataset.GetPresentationStateImageReferenceSOPInstance(item, 0);
      Debug.Assert(imageRefSOPInstanceUID != null);
      DicomElement item1 = dicomDataset.GetPresentationStateImageReference(imageRefSOPInstanceUID);
      Debug.Assert(item1 != null);

      dicomDataset.Save(LeadtoolsExamples.Common.ImagesPath.Path + "PresentationState.dcm", DicomDataSetSaveFlags.None);
   }
   DicomEngine.Shutdown();
}
SilverlightCSharpCopy Code
public void DicomPresStateSample(Stream dicomStream, Stream outputStream)
{
   //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.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeType.ExplicitVRLittleEndian);
      DicomPresentationStateInformation presentationStateInfo = new DicomPresentationStateInformation();
      presentationStateInfo.InstanceNumber = 1;
      presentationStateInfo.PresentationLabel = "Label";
      presentationStateInfo.PresentationDescription = "Description";
      presentationStateInfo.PresentationCreator = "Creator";
      DicomDateValue presentationCreationDate = new DicomDateValue();
      presentationCreationDate.Year = 2004;
      presentationCreationDate.Month = 1;
      presentationCreationDate.Day = 8;
      DicomTimeValue presentationCreationTime = new DicomTimeValue();
      presentationCreationTime.Hours = 2;
      presentationCreationTime.Minutes = 3;
      presentationCreationTime.Seconds = 5;
      presentationStateInfo.PresentationCreationDate = presentationCreationDate;
      presentationStateInfo.PresentationCreationTime = presentationCreationTime;
      dicomDataset.SetPresentationStateInformation(presentationStateInfo);
      DicomPresentationStateInformation presentationStateInfo1 = dicomDataset.GetPresentationStateInformation();
      Debug.Assert(presentationStateInfo1 != null);
      Debug.Assert(presentationStateInfo1.InstanceNumber == 1);

      //RemovePresStateImageRefBySOPInstance can be used to remove indivual referened images
      dicomDataset.RemoveAllPresentationStateImageReferences();
      Debug.Assert(dicomDataset.GetPresentationStateImageReferenceCount(null) == 0);
      // We can also load the dataset first and then call AddPresStateImageRefByDS
      dicomDataset.AddPresentationStateImageReference(dicomStream, null, 0);

      //We can also use FindNextPresStateRefSeriesItem to itertate throgh all items
      DicomElement item = dicomDataset.FindFirstPresentationStateReferencedSeriesItem();

      string imageRefSOPInstanceUID = dicomDataset.GetPresentationStateImageReferenceSOPInstance(item, 0);
      Debug.Assert(imageRefSOPInstanceUID != null);
      DicomElement item1 = dicomDataset.GetPresentationStateImageReference(imageRefSOPInstanceUID);
      Debug.Assert(item1 != null);

      dicomDataset.Save(outputStream, DicomDataSetSaveFlags.None);
   }
   DicomEngine.Shutdown();
}
SilverlightVBCopy Code
Public Sub DicomPresStateSample(ByVal dicomStream As Stream, ByVal outputStream As Stream)
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()
   Using dicomDataset As DicomDataSet = New DicomDataSet()
      dicomDataset.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeType.ExplicitVRLittleEndian)
      Dim presentationStateInfo As DicomPresentationStateInformation = New DicomPresentationStateInformation()
      presentationStateInfo.InstanceNumber = 1
      presentationStateInfo.PresentationLabel = "Label"
      presentationStateInfo.PresentationDescription = "Description"
      presentationStateInfo.PresentationCreator = "Creator"
      Dim presentationCreationDate As DicomDateValue = New DicomDateValue()
      presentationCreationDate.Year = 2004
      presentationCreationDate.Month = 1
      presentationCreationDate.Day = 8
      Dim presentationCreationTime As DicomTimeValue = New DicomTimeValue()
      presentationCreationTime.Hours = 2
      presentationCreationTime.Minutes = 3
      presentationCreationTime.Seconds = 5
      presentationStateInfo.PresentationCreationDate = presentationCreationDate
      presentationStateInfo.PresentationCreationTime = presentationCreationTime
      dicomDataset.SetPresentationStateInformation(presentationStateInfo)
      Dim presentationStateInfo1 As DicomPresentationStateInformation = dicomDataset.GetPresentationStateInformation()
      Debug.Assert(Not presentationStateInfo1 Is Nothing)
      Debug.Assert(presentationStateInfo1.InstanceNumber = 1)

      'RemovePresStateImageRefBySOPInstance can be used to remove indivual referened images
      dicomDataset.RemoveAllPresentationStateImageReferences()
      Debug.Assert(dicomDataset.GetPresentationStateImageReferenceCount(Nothing) = 0)
      ' We can also load the dataset first and then call AddPresStateImageRefByDS
      dicomDataset.AddPresentationStateImageReference(dicomStream, Nothing, 0)

      'We can also use FindNextPresStateRefSeriesItem to itertate throgh all items
      Dim item As DicomElement = dicomDataset.FindFirstPresentationStateReferencedSeriesItem()

      Dim imageRefSOPInstanceUID As String = dicomDataset.GetPresentationStateImageReferenceSOPInstance(item, 0)
      Debug.Assert(Not imageRefSOPInstanceUID Is Nothing)
      Dim item1 As DicomElement = dicomDataset.GetPresentationStateImageReference(imageRefSOPInstanceUID)
      Debug.Assert(Not item1 Is Nothing)

      dicomDataset.Save(outputStream, DicomDataSetSaveFlags.None)
   End Using
   DicomEngine.Shutdown()
End Sub

Remarks

This method will set the attributes of the "Presentation State Module".

Requirements

Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also

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