Error processing SSI file
Leadtools.Dicom.Common

Show in webframe

GetNewViewPerspective(DicomDataSet,RasterViewPerspective,OrientationConfiguration) Method






The DicomDataSet that contains the image orientation vectors
The input RasterViewPerspective to which the PlaneOrientation will be applied.
An OrientationConfiguration that will be applied to the current view perspective.
Gets a new RasterViewPerspective that results from applying a OrientationConfiguration to a given RasterViewPerspective.
Syntax
'Declaration
 
<ExtensionAttribute()>
Public Overloads Shared Function GetNewViewPerspective( _
   ByVal ds As DicomDataSet, _
   ByVal currentViewPerspective As RasterViewPerspective, _
   ByVal orientation As OrientationConfiguration _
) As RasterViewPerspective
'Usage
 
Dim ds As DicomDataSet
Dim currentViewPerspective As RasterViewPerspective
Dim orientation As OrientationConfiguration
Dim value As RasterViewPerspective
 
value = DicomExtensions.GetNewViewPerspective(ds, currentViewPerspective, orientation)

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:

Copy Code  
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

<TestMethod()> _
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
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;

[TestMethod]
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";
}
Requirements

Target Platforms

See Also

Reference

DicomExtensions Class
DicomExtensions Members
Overload List

Error processing SSI file
   Leadtools.Dicom.Common requires a Medical toolkit license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features