MedicalViewerSubCell Class

Summary

Represents the sub-cell that contains the annotation container and the properties and methods that control the annotation.

Syntax
C#
VB
C++
public class MedicalViewerSubCell : IDisposable 
  
Public Class MedicalViewerSubCell  
   Implements System.IDisposable  
            public ref class MedicalViewerSubCell : public System.IDisposable   

Remarks

For each sub-cell there is an annotation container.

To change the sub-cell annotation container, use the MedicalViewerBaseCell.SubCells property which is a collection of annotation objects; it allows the user to add annotation, delete annotation or modify annotation. For example:

  • To add a new annotation to the annotation container, call this SubCell[index].AnnotationContainer.Objects.Add(newAnnotation).
  • To remove an annotation from the annotation container, call SubCell[index].AnnotationContainer.Objects.RemoveAt(index).
  • To modify an annotation in the annotation container, use the following code: SubCell[index].AnnotationContainer.Objects[objectIndex].Color = new Color(255, 0, 0).

Example
C#
VB
using Leadtools; 
using Leadtools.Drawing; 
using Leadtools.Codecs; 
using Leadtools.MedicalViewer; 
using Leadtools.ImageProcessing; 
using Leadtools.Annotations.Engine; 
using Leadtools.Annotations.Designers; 
using Leadtools.Annotations.Rendering; 
 
class MedicalViewerSubCellForm : Form 
{ 
   private MedicalViewer _medicalViewer; 
 
   void MedicalViewerForm_SizeChanged(object sender, EventArgs e) 
   { 
      _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom); 
   } 
 
   public MedicalViewerSubCellForm() 
   { 
      RasterCodecs _codecs = new RasterCodecs(); 
      RasterImage _image; 
 
      this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged); 
 
      // Create the medical viewer and adjust the size and the location. 
      _medicalViewer = new MedicalViewer(1, 2); 
      _medicalViewer.Location = new Point(0, 0); 
      _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom); 
 
      // Load an image and then add it to the control. 
      _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm")); 
      MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1); 
 
      // add some actions that will be used to change the properties of the images inside the control. 
      cell.AddAction(MedicalViewerActionType.WindowLevel); 
      cell.AddAction(MedicalViewerActionType.Alpha); 
      cell.AddAction(MedicalViewerActionType.Offset); 
 
      // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated. 
      cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); 
      cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); 
      cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); 
 
      _medicalViewer.Cells.Add(cell); 
 
      // adjust some properties of the cell and add some tags. 
      _medicalViewer.Cells[0].SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448"); 
      _medicalViewer.Cells[0].SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame); 
      _medicalViewer.Cells[0].SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale); 
      _medicalViewer.Cells[0].SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData); 
      _medicalViewer.Cells[0].SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView); 
 
 
      // Load another image and then add it to the control. 
      _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "mr.dcm")); 
      _medicalViewer.Cells.Add(new MedicalViewerMultiCell(_image, true, 2, 2)); 
 
      // add some actions that will be used to change the properties of the images inside the control. 
      _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.WindowLevel); 
      _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.Alpha); 
      _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.Offset); 
 
      // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated. 
      _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); 
      _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); 
      _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); 
 
      // adjust some properties of the cell and add some tags. 
      _medicalViewer.Cells[1].SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448"); 
      _medicalViewer.Cells[1].SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame); 
      _medicalViewer.Cells[1].SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale); 
      _medicalViewer.Cells[1].SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData); 
      _medicalViewer.Cells[1].SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView); 
 
 
      Controls.Add(_medicalViewer); 
      _medicalViewer.Dock = DockStyle.Fill; 
   } 
   public MedicalViewer Viewer 
   { 
      get { return _medicalViewer; } 
   } 
} 
MedicalViewerForm13 GetMedicalControlForSubCellExample() 
{ 
   return new MedicalViewerForm13(); 
} 
 
public void MedicalViewerSubCellExample() 
{ 
   MedicalViewerForm13 myForm = GetMedicalControlForSubCellExample(); 
   MedicalViewer medicalViewer = myForm.Viewer; 
   MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]); 
 
 
   // This shows the rotation handle of the annotation objects. 
   cell.ShowRotationHandle = true; 
 
   cell.MaintainAnnotationObjectAspectRatio = true; 
 
   cell.MaintainAnnotationThickness = true; 
 
   AnnRectangleObject rectangleObject = new AnnRectangleObject(); 
   rectangleObject.Rect = LeadRectD.Create(100, 100, 100, 100); 
   rectangleObject.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create(Color.Red.Name), LeadLengthD.Create(5)); 
   cell.SubCells[0].AnnotationContainer.Children.Add(rectangleObject); 
 
   // repaint the annotation of the first sub-cell (index = 0). 
   cell.RefreshAnnotation(0); 
 
   myForm.ShowDialog(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Drawing 
Imports Leadtools.Codecs 
Imports Leadtools.MedicalViewer 
Imports Leadtools.ImageProcessing 
Imports Leadtools.Annotations.Engine 
Imports Leadtools.Annotations.Designers 
Imports Leadtools.Annotations.Rendering 
 
Private Class MedicalViewerSubCellForm : Inherits Form 
   Private _medicalViewer As MedicalViewer 
 
   Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs) 
      _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom) 
   End Sub 
 
   Public Sub New() 
      Dim _codecs As RasterCodecs = New RasterCodecs() 
      Dim _image As RasterImage 
 
      AddHandler SizeChanged, AddressOf MedicalViewerForm_SizeChanged 
 
      ' Create the medical viewer and adjust the size and the location. 
      _medicalViewer = New MedicalViewer(1, 2) 
      _medicalViewer.Location = New Point(0, 0) 
      _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom) 
 
      ' Load an image and then add it to the control. 
      _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm")) 
      Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 1, 1) 
 
      ' add some actions that will be used to change the properties of the images inside the control. 
      cell.AddAction(MedicalViewerActionType.WindowLevel) 
      cell.AddAction(MedicalViewerActionType.Alpha) 
      cell.AddAction(MedicalViewerActionType.Offset) 
 
      ' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated. 
      cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) 
      cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) 
      cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active) 
 
      _medicalViewer.Cells.Add(cell) 
 
      ' adjust some properties of the cell and add some tags. 
      _medicalViewer.Cells(0).SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448") 
      _medicalViewer.Cells(0).SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame) 
      _medicalViewer.Cells(0).SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale) 
      _medicalViewer.Cells(0).SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData) 
      _medicalViewer.Cells(0).SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView) 
 
 
      ' Load another image and then add it to the control. 
      _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "mr.dcm")) 
      _medicalViewer.Cells.Add(New MedicalViewerMultiCell(_image, True, 2, 2)) 
 
      ' add some actions that will be used to change the properties of the images inside the control. 
      _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.WindowLevel) 
      _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.Alpha) 
      _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.Offset) 
 
      ' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated. 
      _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) 
      _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) 
      _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active) 
 
      ' adjust some properties of the cell and add some tags. 
      _medicalViewer.Cells(1).SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448") 
      _medicalViewer.Cells(1).SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame) 
      _medicalViewer.Cells(1).SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale) 
      _medicalViewer.Cells(1).SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData) 
      _medicalViewer.Cells(1).SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView) 
 
 
      Controls.Add(_medicalViewer) 
      _medicalViewer.Dock = DockStyle.Fill 
   End Sub 
   Public ReadOnly Property Viewer() As MedicalViewer 
      Get 
         Return _medicalViewer 
      End Get 
   End Property 
End Class 
Private Function GetMedicalControlForSubCellExample() As MedicalViewerForm13 
   Return New MedicalViewerForm13() 
End Function 
 
Public Sub MedicalViewerSubCellExample() 
   Dim myForm As MedicalViewerForm13 = GetMedicalControlForSubCellExample() 
   Dim medicalViewer As MedicalViewer = myForm.Viewer 
   Dim cell As MedicalViewerMultiCell = CType(medicalViewer.Cells(0), MedicalViewerMultiCell) 
 
 
   ' This shows the rotation handle of the annotation objects. 
   cell.ShowRotationHandle = True 
 
   cell.MaintainAnnotationObjectAspectRatio = True 
 
   cell.MaintainAnnotationThickness = True 
 
   Dim rectangleObject As AnnRectangleObject = New AnnRectangleObject() 
   rectangleObject.Rect = LeadRectD.Create(100, 100, 100, 100) 
   rectangleObject.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create(Color.Red.Name), LeadLengthD.Create(5)) 
   cell.SubCells(0).AnnotationContainer.Children.Add(rectangleObject) 
 
   ' repaint the annotation of the first sub-cell (index = 0). 
   cell.RefreshAnnotation(0) 
 
   myForm.ShowDialog() 
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 20.0.2020.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MedicalViewer Assembly