Visual Basic (Declaration) | |
---|---|
Public Property ShowSlabBoundaries As Boolean |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As MedicalViewerMPRCell Dim value As Boolean instance.ShowSlabBoundaries = value value = instance.ShowSlabBoundaries |
C# | |
---|---|
public bool ShowSlabBoundaries {get; set;} |
Property Value
true to show the slab boundaries, false to hide the slab boundaries.Visual Basic | Copy Code |
---|---|
Private Class MedicalViewerSlabForm : Inherits Form Private _medicalViewer As MedicalViewer Private _seriesManager As MedicalViewerSeriesManager Private Sub MedicalViewerSlabForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs) _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom) End Sub Public Sub New(ByVal output As MedicalViewerSeriesManager) Dim _codecs As RasterCodecs = New RasterCodecs() AddHandler SizeChanged, AddressOf MedicalViewerSlabForm_SizeChanged ' Create the medical viewer and adjust the size and the location. _medicalViewer = New MedicalViewer(2, 2) _medicalViewer.Location = New Point(0, 0) _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom) _seriesManager = output Dim index As Integer Dim image As RasterImage Dim count As Integer = output.Stacks(0).Items.Count Dim codecsInformation As CodecsImageInfo Dim AxialFrame As MedicalViewerMPRCell = New MedicalViewerMPRCell() Dim SagittalFrame As MedicalViewerMPRCell = New MedicalViewerMPRCell() Dim CoronalFrame As MedicalViewerMPRCell = New MedicalViewerMPRCell() codecsInformation = _codecs.GetInformation(CStr(output.Stacks(0).Items(0).Data), True) Dim width As Integer = codecsInformation.Width Dim height As Integer = codecsInformation.Height Dim depth As Integer = 50 ' A create on a 3D control Dim _medical3DControl As Medical3DControl = New Medical3DControl() _medical3DControl.ObjectsContainer.Objects.Add(New Medical3DObject()) _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientInit(depth) index = 0 Do While index < depth image = _codecs.Load(CStr(output.Stacks(0).Items(index).Data), 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1) _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientSetFrame(image, index, True) index += 1 Loop Dim spearator As String = ("\") Dim test As String() = output.Stacks(0).Items(0).ImageOrientation.Split(spearator.ToCharArray()) Dim orientation As Single() = New Single(5) {} Dim i As Integer For i = 0 To 5 orientation(i) = CSng(Convert.ToDouble(test(i))) Next i _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientEnd(orientation, output.Stacks(0).PixelSpacing) ' create axial frame. AxialFrame.ShowMPRCrossHair = True AxialFrame.DistinguishMPRByColor = True AxialFrame.ShowSlabBoundaries = True AxialFrame.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame) AxialFrame.AddAction(MedicalViewerActionType.Stack) AxialFrame.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active) ' create Sagittal frame. SagittalFrame.ShowMPRCrossHair = True SagittalFrame.DistinguishMPRByColor = True SagittalFrame.ShowSlabBoundaries = True SagittalFrame.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame) SagittalFrame.AddAction(MedicalViewerActionType.Stack) SagittalFrame.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active) ' create coronal frame. CoronalFrame.ShowMPRCrossHair = True CoronalFrame.DistinguishMPRByColor = True CoronalFrame.ShowSlabBoundaries = True CoronalFrame.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame) CoronalFrame.AddAction(MedicalViewerActionType.Stack) CoronalFrame.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active) ' attach the MPR cells to the 3D control. _medical3DControl.AxialFrame = AxialFrame _medical3DControl.SagittalFrame = SagittalFrame _medical3DControl.CoronalFrame = CoronalFrame _medicalViewer.AllowMultipleSelection = False _medicalViewer.Cells.Add(_medical3DControl) _medicalViewer.Cells.Add(AxialFrame) _medicalViewer.Cells.Add(SagittalFrame) _medicalViewer.Cells.Add(CoronalFrame) _medical3DControl.ObjectsContainer.Objects(0).Slab.Enabled = True _medical3DControl.ObjectsContainer.Objects(0).Slab.SetValues(-1, 0.5F, -1, 0.5F, -0.5F, 0.5F) Controls.Add(_medicalViewer) _medicalViewer.Dock = DockStyle.Fill End Sub Private Sub cell_Data3DRequested(ByVal sender As Object, ByVal e As MedicalViewerData3DRequestedEventArgs) e.Succeed = Medical3DEngine.Provide3DInformation(e) End Sub Private Sub cell_FramesRequested(ByVal sender As Object, ByVal e As MedicalViewerRequestedFramesInformationEventArgs) Dim cell As MedicalViewerMultiCell = CType(sender, MedicalViewerMultiCell) Dim _codecs As RasterCodecs = New RasterCodecs() Dim i As Integer Dim image As RasterImage Dim fileName As String If e.RequestedFramesIndexes.Length > 0 Then fileName = CStr(_seriesManager.Stacks(0).Items(e.RequestedFramesIndexes(0)).Data) image = _codecs.Load(fileName) Else Return End If i = 1 Do While i < e.RequestedFramesIndexes.Length fileName = CStr(_seriesManager.Stacks(0).Items(e.RequestedFramesIndexes(i)).Data) image.AddPage(_codecs.Load(fileName)) i += 1 Loop cell.SetRequestedImage(image, e.RequestedFramesIndexes, MedicalViewerSetImageOptions.Insert) End Sub Public ReadOnly Property Viewer() As MedicalViewer Get Return _medicalViewer End Get End Property End Class Private Function GetMedicalViewerSlabForm() As MedicalViewerSlabForm Dim form As MedicalViewerSeriesManagerFrom = New MedicalViewerSeriesManagerFrom() Dim output As MedicalViewerSeriesManager = form.LoadJamesHead() Return New MedicalViewerSlabForm(output) End Function ' This examples changes the default window level value by decrease the width by 100. Then resets the images based on the new value. Public Sub MedicalViewerSlabExample() Dim myForm As MedicalViewerSlabForm = GetMedicalViewerSlabForm() Dim medicalViewer As MedicalViewer = myForm.Viewer myForm.ShowDialog() End Sub |
C# | Copy Code |
---|---|
class MedicalViewerSlabForm : Form { private MedicalViewer _medicalViewer; private MedicalViewerSeriesManager _seriesManager; void MedicalViewerSlabForm_SizeChanged(object sender, EventArgs e) { _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom); } public MedicalViewerSlabForm(MedicalViewerSeriesManager output) { RasterCodecs _codecs = new RasterCodecs(); this.SizeChanged += new EventHandler(MedicalViewerSlabForm_SizeChanged); // Create the medical viewer and adjust the size and the location. _medicalViewer = new MedicalViewer(2, 2); _medicalViewer.Location = new Point(0, 0); _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom); _seriesManager = output; int index; RasterImage image; int count = output.Stacks[0].Items.Count; CodecsImageInfo codecsInformation; MedicalViewerMPRCell AxialFrame = new MedicalViewerMPRCell(); MedicalViewerMPRCell SagittalFrame = new MedicalViewerMPRCell(); MedicalViewerMPRCell CoronalFrame = new MedicalViewerMPRCell(); codecsInformation = _codecs.GetInformation((string)output.Stacks[0].Items[0].Data, true); int width = codecsInformation.Width; int height = codecsInformation.Height; int depth = 50; // A create on a 3D control Medical3DControl _medical3DControl = new Medical3DControl(); _medical3DControl.ObjectsContainer.Objects.Add(new Medical3DObject()); _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientInit(depth); for (index = 0; index < depth; index++) { image = _codecs.Load((string)output.Stacks[0].Items[index].Data, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1); _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientSetFrame(image, index, true); } string spearator = ("\\"); string[] test = output.Stacks[0].Items[0].ImageOrientation.Split(spearator.ToCharArray()); float[] orientation = new float[6]; int i; for (i = 0; i < 6; i++) { orientation[i] = (float)Convert.ToDouble(test[i]); } _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientEnd(orientation, output.Stacks[0].PixelSpacing); // create axial frame. AxialFrame.ShowMPRCrossHair = true; AxialFrame.DistinguishMPRByColor = true; AxialFrame.ShowSlabBoundaries = true; AxialFrame.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame); AxialFrame.AddAction(MedicalViewerActionType.Stack); AxialFrame.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active); // create Sagittal frame. SagittalFrame.ShowMPRCrossHair = true; SagittalFrame.DistinguishMPRByColor = true; SagittalFrame.ShowSlabBoundaries = true; SagittalFrame.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame); SagittalFrame.AddAction(MedicalViewerActionType.Stack); SagittalFrame.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active); // create coronal frame. CoronalFrame.ShowMPRCrossHair = true; CoronalFrame.DistinguishMPRByColor = true; CoronalFrame.ShowSlabBoundaries = true; CoronalFrame.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame); CoronalFrame.AddAction(MedicalViewerActionType.Stack); CoronalFrame.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active); // attach the MPR cells to the 3D control. _medical3DControl.AxialFrame = AxialFrame; _medical3DControl.SagittalFrame = SagittalFrame; _medical3DControl.CoronalFrame = CoronalFrame; _medicalViewer.AllowMultipleSelection = false; _medicalViewer.Cells.Add(_medical3DControl); _medicalViewer.Cells.Add(AxialFrame); _medicalViewer.Cells.Add(SagittalFrame); _medicalViewer.Cells.Add(CoronalFrame); _medical3DControl.ObjectsContainer.Objects[0].Slab.Enabled = true; _medical3DControl.ObjectsContainer.Objects[0].Slab.SetValues(-1, 0.5f, -1, 0.5f, -0.5f, 0.5f); Controls.Add(_medicalViewer); _medicalViewer.Dock = DockStyle.Fill; } void cell_Data3DRequested(object sender, MedicalViewerData3DRequestedEventArgs e) { e.Succeed = Medical3DEngine.Provide3DInformation(e); } void cell_FramesRequested(object sender, MedicalViewerRequestedFramesInformationEventArgs e) { MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(sender); RasterCodecs _codecs = new RasterCodecs(); int i; RasterImage image; string fileName; if (e.RequestedFramesIndexes.Length > 0) { fileName = (string)(_seriesManager.Stacks[0].Items[e.RequestedFramesIndexes[0]].Data); image = _codecs.Load(fileName); } else return; for (i = 1; i < e.RequestedFramesIndexes.Length; i++) { fileName = (string)(_seriesManager.Stacks[0].Items[e.RequestedFramesIndexes[i]].Data); image.AddPage(_codecs.Load(fileName)); } cell.SetRequestedImage(image, e.RequestedFramesIndexes, MedicalViewerSetImageOptions.Insert); } public MedicalViewer Viewer { get { return _medicalViewer; } } } MedicalViewerSlabForm GetMedicalViewerSlabForm() { MedicalViewerSeriesManagerFrom form = new MedicalViewerSeriesManagerFrom(); MedicalViewerSeriesManager output = form.LoadJamesHead(); return new MedicalViewerSlabForm(output); } // This examples changes the default window level value by decrease the width by 100. Then resets the images based on the new value. public void MedicalViewerSlabExample() { MedicalViewerSlabForm myForm = GetMedicalViewerSlabForm(); MedicalViewer medicalViewer = myForm.Viewer; myForm.ShowDialog(); } |
To update the slab values manually, the user will have to update the Leadtools.Medical3D.Medical3DObject.Slab property using the source Leadtools.Medical3D.Medical3DContainer.
Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7