←Select platform

GetNewViewPerspective(DicomDataSet,RasterViewPerspective,OrientationConfiguration) Method

Summary

Gets a new RasterViewPerspective that results from applying a OrientationConfiguration to a given RasterViewPerspective.

Syntax

C#
VB
C++
<ExtensionAttribute()> 
Public Overloads Shared Function GetNewViewPerspective( _ 
   ByVal ds As Leadtools.Dicom.DicomDataSet, _ 
   ByVal currentViewPerspective As Leadtools.RasterViewPerspective, _ 
   ByVal orientation As Leadtools.Dicom.Common.Datatypes.OrientationConfiguration _ 
) As Leadtools.RasterViewPerspective 

Parameters

ds
The DicomDataSet that contains the image orientation vectors

currentViewPerspective
The input RasterViewPerspective to which the PlaneOrientation will be applied.

orientation
An OrientationConfiguration that will be applied to the current view perspective.

Remarks

This overload gets the image orientation vectors from the ds.

The input view perspective is defined by two values: the original RasterViewPerspective, and a row and column orientation vector (which are read from the ds by searching for the DicomElement that has a tag of ImageOrientationPatient which contains the orientation vectors.). This method returns the new RasterViewPerspective that results from applying a OrientationConfiguration to the input view perspective. Note that the orientation contains three lists of conditions (one for each 3D axis) that can be applied to the image contained in the ds if the condition is met.

Example

This example does the following:

  • Loads a DICOM dataset that contains orientation vectors that orient it as a coronal slice
  • Creates an OrientationConfiguration that contains a coronal PlaneOrientation that corresponds to a horizontal flip
  • Applies the above to a view perspective, and returns the resulting view perspective
    C#
    VB
    using Leadtools.Dicom; 
    using Leadtools.Dicom.Common; 
    using Leadtools.Dicom.Common.Extensions; 
    using Leadtools; 
    using Leadtools.Dicom.Common.Linq.BasicDirectory; 
    using Leadtools.Dicom.Common.DataTypes; 
     
    public void GetNewViewPerspectiveExample2() 
    { 
       DicomEngine.Startup(); 
       string dicomFileCoronal = Path.Combine(LEAD_VARS.ImagesDir, "image1.dcm"); 
       DicomDataSet ds = new DicomDataSet(); 
       ds.Load(dicomFileCoronal, DicomDataSetLoadFlags.None); 
     
       // Create a new coronal PlaneOrientation that corresponds to a horizontal flip 
       PlaneOrientation poCoronal = new PlaneOrientation(); 
       poCoronal.Name = "Coronal or Frontal"; 
       poCoronal.Top = OrientationAxis.Inferior; 
       poCoronal.Right = OrientationAxis.Right; 
       poCoronal.Condition = new TagValueOrientationCondition(DicomTag.ImageOrientationPatient, null); 
       if (!poCoronal.IsValid(Plane.Coronal)) 
       { 
          MessageBox.Show("Invalid PlaneOrientation for Coronal"); 
          return; 
       } 
     
       // Create a new sagittal PlaneOrientation that corresponds to a Rotate90 
       PlaneOrientation poSaggital = new PlaneOrientation(); 
       poSaggital.Name = "Saggital"; 
       poSaggital.Top = OrientationAxis.Anterior; 
       poSaggital.Right = OrientationAxis.Inferior; 
       poSaggital.Condition = new TagValueOrientationCondition(0, null); 
       if (!poSaggital.IsValid(Plane.Sagittal)) 
       { 
          MessageBox.Show("Invalid PlaneOrientation for Sagittal"); 
          return; 
       } 
     
       // Create a new Axial that corresponds to a Rotate180 
       PlaneOrientation poAxial = new PlaneOrientation(); 
       poAxial.Name = "Axial"; 
       poAxial.Top = OrientationAxis.Posterior; 
       poAxial.Right = OrientationAxis.Left; 
       poAxial.Condition = new TagValueOrientationCondition(0, null); 
       if (!poAxial.IsValid(Plane.Axial)) 
       { 
          MessageBox.Show("Invalid PlaneOrientation for Axial"); 
          return; 
       } 
     
       // Setup the OrientationConfiguration 
       OrientationConfiguration oc = new OrientationConfiguration(); 
       oc.Coronal.Add(poCoronal); 
       oc.Sagittal.Add(poSaggital); 
       oc.Axial.Add(poAxial); 
       if (!oc.IsValid()) 
       { 
          MessageBox.Show("Invalid OrientationConfiguration"); 
          return; 
       } 
     
       // Find the new view perspective 
       RasterViewPerspective newViewPerspective = ds.GetNewViewPerspective(RasterViewPerspective.TopLeft, oc); 
     
       // New view perspective should be BottomLeft 
       MessageBox.Show("newViewPerspective should be BottomLeft\nActual newViewPerspective is " + newViewPerspective.ToString()); 
     
       DicomEngine.Shutdown(); 
    } 
     
    static class LEAD_VARS 
    { 
       public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
    } 
    Imports Leadtools.Dicom 
    Imports Leadtools.Dicom.Common 
    Imports Leadtools.Dicom.Common.Extensions 
    Imports Leadtools.Dicom.Common.Linq 
    Imports Leadtools.Dicom.Common.Linq.BasicDirectory 
    Imports Leadtools 
    Imports Leadtools.Dicom.Common.DataTypes 
     
    Public Sub GetNewViewPerspectiveExample2() 
       Dim dicomFileCoronal As String = Path.Combine(LEAD_VARS.ImagesDir, "image3.dcm") 
       Dim ds As New DicomDataSet() 
       ds.Load(dicomFileCoronal, DicomDataSetLoadFlags.None) 
     
       ' Create a new coronal PlaneOrientation that corresponds to a horizontal flip 
       Dim poCoronal As New PlaneOrientation() 
       poCoronal.Name = "Coronal or Frontal" 
       poCoronal.Top = OrientationAxis.Inferior 
       poCoronal.Right = OrientationAxis.Right 
       poCoronal.Condition = New TagValueOrientationCondition(DicomTag.ImageOrientationPatient, Nothing) 
       If (Not poCoronal.IsValid(Plane.Coronal)) Then 
          MessageBox.Show("Invalid PlaneOrientation for Coronal") 
          Return 
       End If 
     
       ' Create a new sagittal PlaneOrientation that corresponds to a Rotate90 
       Dim poSaggital As New PlaneOrientation() 
       poSaggital.Name = "Saggital" 
       poSaggital.Top = OrientationAxis.Anterior 
       poSaggital.Right = OrientationAxis.Inferior 
       poSaggital.Condition = New TagValueOrientationCondition(0, Nothing) 
       If (Not poSaggital.IsValid(Plane.Sagittal)) Then 
          MessageBox.Show("Invalid PlaneOrientation for Sagittal") 
          Return 
       End If 
     
       ' Create a new Axial that corresponds to a Rotate180 
       Dim poAxial As New PlaneOrientation() 
       poAxial.Name = "Axial" 
       poAxial.Top = OrientationAxis.Posterior 
       poAxial.Right = OrientationAxis.Left 
       poAxial.Condition = New TagValueOrientationCondition(0, Nothing) 
       If (Not poAxial.IsValid(Plane.Axial)) Then 
          MessageBox.Show("Invalid PlaneOrientation for Axial") 
          Return 
       End If 
     
       ' Set up the OrientationConfiguration 
       Dim oc As New OrientationConfiguration() 
       oc.Coronal.Add(poCoronal) 
       oc.Sagittal.Add(poSaggital) 
       oc.Axial.Add(poAxial) 
       If (Not oc.IsValid()) Then 
          MessageBox.Show("Invalid OrientationConfiguration") 
          Return 
       End If 
     
       ' Find the new view perspective 
       Dim newViewPerspective As RasterViewPerspective = ds.GetNewViewPerspective(RasterViewPerspective.TopLeft, oc) 
     
       ' New view perspective should be BottomLeft 
       MessageBox.Show("newViewPerspective should be BottomLeft" & Constants.vbLf & "Actual newViewPerspective is " & newViewPerspective.ToString()) 
    End Sub 
     
    Public NotInheritable Class LEAD_VARS 
       Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
    End Class 
Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom.Common Assembly