Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.3.28
|
Leadtools.Dicom.Common.Extensions Namespace > DicomExtensions Class > GetNewViewPerspective Method : GetNewViewPerspective(DicomDataSet,RasterViewPerspective,OrientationConfiguration) Method |
[ExtensionAttribute()] public static RasterViewPerspective GetNewViewPerspective( DicomDataSet ds, RasterViewPerspective currentViewPerspective, OrientationConfiguration orientation )
'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)
[ExtensionAttribute()] public: static RasterViewPerspective GetNewViewPerspective( DicomDataSet^ ds, RasterViewPerspective currentViewPerspective, OrientationConfiguration^ orientation )
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.This example does the following:
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"; }