Leadtools.MedicalViewer Namespace > MedicalViewerBaseCell Class > LoadAnnotations Method : LoadAnnotations(Stream) Method |
For more information, refer to Working With Annotations.
Imports Leadtools Imports Leadtools.Drawing Imports Leadtools.Codecs Imports Leadtools.MedicalViewer Imports Leadtools.ImageProcessing Imports Leadtools.Annotations Private Class MedicalViewerForm16 : Inherits Form Private _medicalViewer As MedicalViewer Private LoadAnnotation As Button Private SaveAnnotation As Button Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs) _medicalViewer.Bounds = New Rectangle(0, 100, Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 100) 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, 100) _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 100) ' 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) _medicalViewer.Cells.Add(cell) ' add some actions that will be used to change the properties of the images inside the control. cell.AddAction(MedicalViewerActionType.AnnotationRectangle) cell.AddAction(MedicalViewerActionType.AnnotationEllipse) cell.AddAction(MedicalViewerActionType.AnnotationHilite) ' 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) cell.SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) cell.SetAction(MedicalViewerActionType.AnnotationHilite, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active) ' 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.AnnotationRectangle) _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.AnnotationEllipse) _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.AnnotationHilite) ' 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.AnnotationHilite, 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) LoadAnnotation = New Button() LoadAnnotation.Bounds = New Rectangle(10, 10, 100, 30) LoadAnnotation.Text = "Load Annotation" AddHandler LoadAnnotation.Click, AddressOf LoadAnnotation_Click SaveAnnotation = New Button() SaveAnnotation.Bounds = New Rectangle(110, 10, 100, 30) SaveAnnotation.Text = "Save Annotation" AddHandler SaveAnnotation.Click, AddressOf SaveAnnotation_Click Controls.AddRange(New Control() {_medicalViewer, LoadAnnotation, SaveAnnotation}) End Sub Public ReadOnly Property Viewer() As MedicalViewer Get Return _medicalViewer End Get End Property Private Function GetFileStream() As FileStream Dim fs As FileStream If File.Exists(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann")) Then fs = New FileStream(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann"), FileMode.Open) Else fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann")) End If Return fs End Function Private Sub SaveAnnotation_Click(ByVal sender As Object, ByVal e As EventArgs) Dim fs As FileStream = GetFileStream() Dim cell As MedicalViewerMultiCell = CType(_medicalViewer.Cells(0), MedicalViewerMultiCell) cell.SaveAnnotations(fs, 0) fs.Close() End Sub Private Sub LoadAnnotation_Click(ByVal sender As Object, ByVal e As EventArgs) Dim fs As FileStream = GetFileStream() Dim cell As MedicalViewerMultiCell = CType(_medicalViewer.Cells(0), MedicalViewerMultiCell) cell.LoadAnnotations(fs, 0) fs.Close() End Sub End Class Private Function GetMedicalControl16() As MedicalViewerForm16 Return New MedicalViewerForm16() End Function ' This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button. Public Sub MedicalViewerSaveAnnotationStreamExample() Dim myForm As MedicalViewerForm16 = GetMedicalControl16() Dim medicalViewer As MedicalViewer = myForm.Viewer myForm.ShowDialog() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Drawing; using Leadtools.Codecs; using Leadtools.MedicalViewer; using Leadtools.ImageProcessing; using Leadtools.Annotations; class MedicalViewerForm16 : Form { private MedicalViewer _medicalViewer; Button LoadAnnotation; Button SaveAnnotation; void MedicalViewerForm_SizeChanged(object sender, EventArgs e) { _medicalViewer.Bounds = new Rectangle(0, 100, this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100); } public MedicalViewerForm16() { 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, 100); _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100); // 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); _medicalViewer.Cells.Add(cell); // add some actions that will be used to change the properties of the images inside the control. cell.AddAction(MedicalViewerActionType.AnnotationRectangle); cell.AddAction(MedicalViewerActionType.AnnotationEllipse); cell.AddAction(MedicalViewerActionType.AnnotationHilite); // 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); cell.SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); cell.SetAction(MedicalViewerActionType.AnnotationHilite, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); // 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.AnnotationRectangle); _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationEllipse); _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationHilite); // 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationHilite, 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); LoadAnnotation = new Button(); LoadAnnotation.Bounds = new Rectangle(10, 10, 100, 30); LoadAnnotation.Text = "Load Annotation"; LoadAnnotation.Click += new EventHandler(LoadAnnotation_Click); SaveAnnotation = new Button(); SaveAnnotation.Bounds = new Rectangle(110, 10, 100, 30); SaveAnnotation.Text = "Save Annotation"; SaveAnnotation.Click += new EventHandler(SaveAnnotation_Click); Controls.AddRange(new Control[] { _medicalViewer, LoadAnnotation, SaveAnnotation }); } public MedicalViewer Viewer { get { return _medicalViewer; } } FileStream GetFileStream() { FileStream fs; if (File.Exists(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"))) fs = new FileStream(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"), FileMode.Open); else fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann")); return fs; } void SaveAnnotation_Click(object sender, EventArgs e) { FileStream fs = GetFileStream(); MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]); cell.SaveAnnotations(fs, 0); fs.Close(); } void LoadAnnotation_Click(object sender, EventArgs e) { FileStream fs = GetFileStream(); MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]); cell.LoadAnnotations(fs, 0); fs.Close(); } } MedicalViewerForm16 GetMedicalControl16() { return new MedicalViewerForm16(); } // This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button. public void MedicalViewerSaveAnnotationStreamExample() { MedicalViewerForm16 myForm = GetMedicalControl16(); MedicalViewer medicalViewer = myForm.Viewer; 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 Private Class MedicalViewerForm16 : Inherits Form Private _medicalViewer As MedicalViewer Private LoadAnnotation As Button Private SaveAnnotation As Button Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs) _medicalViewer.Bounds = New Rectangle(0, 100, Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 100) 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, 100) _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 100) ' 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) _medicalViewer.Cells.Add(cell) ' add some actions that will be used to change the properties of the images inside the control. cell.AddAction(MedicalViewerActionType.AnnotationRectangle) cell.AddAction(MedicalViewerActionType.AnnotationEllipse) cell.AddAction(MedicalViewerActionType.AnnotationHilite) ' 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) cell.SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) cell.SetAction(MedicalViewerActionType.AnnotationHilite, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active) ' 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.AnnotationRectangle) _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.AnnotationEllipse) _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.AnnotationHilite) ' 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.AnnotationHilite, 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) LoadAnnotation = New Button() LoadAnnotation.Bounds = New Rectangle(10, 10, 100, 30) LoadAnnotation.Text = "Load Annotation" AddHandler LoadAnnotation.Click, AddressOf LoadAnnotation_Click SaveAnnotation = New Button() SaveAnnotation.Bounds = New Rectangle(110, 10, 100, 30) SaveAnnotation.Text = "Save Annotation" AddHandler SaveAnnotation.Click, AddressOf SaveAnnotation_Click Controls.AddRange(New Control() {_medicalViewer, LoadAnnotation, SaveAnnotation}) End Sub Public ReadOnly Property Viewer() As MedicalViewer Get Return _medicalViewer End Get End Property Private Function GetFileStream() As FileStream Dim fs As FileStream If File.Exists(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann")) Then fs = New FileStream(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann"), FileMode.Open) Else fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann")) End If Return fs End Function Private Sub SaveAnnotation_Click(ByVal sender As Object, ByVal e As EventArgs) Dim fs As FileStream = GetFileStream() Dim cell As MedicalViewerMultiCell = CType(_medicalViewer.Cells(0), MedicalViewerMultiCell) cell.SaveAnnotations(fs, 0) fs.Close() End Sub Private Sub LoadAnnotation_Click(ByVal sender As Object, ByVal e As EventArgs) Dim fs As FileStream = GetFileStream() Dim cell As MedicalViewerMultiCell = CType(_medicalViewer.Cells(0), MedicalViewerMultiCell) cell.LoadAnnotations(fs, 0) fs.Close() End Sub End Class Private Function GetMedicalControl16() As MedicalViewerForm16 Return New MedicalViewerForm16() End Function ' This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button. Public Sub MedicalViewerSaveAnnotationStreamExample() Dim myForm As MedicalViewerForm16 = GetMedicalControl16() Dim medicalViewer As MedicalViewer = myForm.Viewer myForm.ShowDialog() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Drawing; using Leadtools.Codecs; using Leadtools.MedicalViewer; using Leadtools.ImageProcessing; using Leadtools.Annotations; class MedicalViewerForm16 : Form { private MedicalViewer _medicalViewer; Button LoadAnnotation; Button SaveAnnotation; void MedicalViewerForm_SizeChanged(object sender, EventArgs e) { _medicalViewer.Bounds = new Rectangle(0, 100, this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100); } public MedicalViewerForm16() { 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, 100); _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100); // 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); _medicalViewer.Cells.Add(cell); // add some actions that will be used to change the properties of the images inside the control. cell.AddAction(MedicalViewerActionType.AnnotationRectangle); cell.AddAction(MedicalViewerActionType.AnnotationEllipse); cell.AddAction(MedicalViewerActionType.AnnotationHilite); // 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); cell.SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); cell.SetAction(MedicalViewerActionType.AnnotationHilite, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); // 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.AnnotationRectangle); _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationEllipse); _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationHilite); // 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationHilite, 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); LoadAnnotation = new Button(); LoadAnnotation.Bounds = new Rectangle(10, 10, 100, 30); LoadAnnotation.Text = "Load Annotation"; LoadAnnotation.Click += new EventHandler(LoadAnnotation_Click); SaveAnnotation = new Button(); SaveAnnotation.Bounds = new Rectangle(110, 10, 100, 30); SaveAnnotation.Text = "Save Annotation"; SaveAnnotation.Click += new EventHandler(SaveAnnotation_Click); Controls.AddRange(new Control[] { _medicalViewer, LoadAnnotation, SaveAnnotation }); } public MedicalViewer Viewer { get { return _medicalViewer; } } FileStream GetFileStream() { FileStream fs; if (File.Exists(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"))) fs = new FileStream(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"), FileMode.Open); else fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann")); return fs; } void SaveAnnotation_Click(object sender, EventArgs e) { FileStream fs = GetFileStream(); MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]); cell.SaveAnnotations(fs, 0); fs.Close(); } void LoadAnnotation_Click(object sender, EventArgs e) { FileStream fs = GetFileStream(); MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]); cell.LoadAnnotations(fs, 0); fs.Close(); } } MedicalViewerForm16 GetMedicalControl16() { return new MedicalViewerForm16(); } // This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button. public void MedicalViewerSaveAnnotationStreamExample() { MedicalViewerForm16 myForm = GetMedicalControl16(); MedicalViewer medicalViewer = myForm.Viewer; myForm.ShowDialog(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
using Leadtools;
using Leadtools.Drawing;
using Leadtools.Codecs;
using Leadtools.MedicalViewer;
using Leadtools.ImageProcessing;
using Leadtools.Annotations;
class MedicalViewerForm16 : Form
{
private MedicalViewer _medicalViewer;
Button LoadAnnotation;
Button SaveAnnotation;
void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
{
_medicalViewer.Bounds = new Rectangle(0, 100, this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100);
}
public MedicalViewerForm16()
{
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, 100);
_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100);
// 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);
_medicalViewer.Cells.Add(cell);
// add some actions that will be used to change the properties of the images inside the control.
cell.AddAction(MedicalViewerActionType.AnnotationRectangle);
cell.AddAction(MedicalViewerActionType.AnnotationEllipse);
cell.AddAction(MedicalViewerActionType.AnnotationHilite);
// 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
cell.SetAction(MedicalViewerActionType.AnnotationHilite, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);
// 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.AnnotationRectangle);
_medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationEllipse);
_medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationHilite);
// 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
_medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
_medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationHilite, 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);
LoadAnnotation = new Button();
LoadAnnotation.Bounds = new Rectangle(10, 10, 100, 30);
LoadAnnotation.Text = "Load Annotation";
LoadAnnotation.Click += new EventHandler(LoadAnnotation_Click);
SaveAnnotation = new Button();
SaveAnnotation.Bounds = new Rectangle(110, 10, 100, 30);
SaveAnnotation.Text = "Save Annotation";
SaveAnnotation.Click += new EventHandler(SaveAnnotation_Click);
Controls.AddRange(new Control[] { _medicalViewer, LoadAnnotation, SaveAnnotation });
}
public MedicalViewer Viewer
{
get { return _medicalViewer; }
}
FileStream GetFileStream()
{
FileStream fs;
if (File.Exists(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann")))
fs = new FileStream(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"), FileMode.Open);
else
fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"));
return fs;
}
void SaveAnnotation_Click(object sender, EventArgs e)
{
FileStream fs = GetFileStream();
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]);
cell.SaveAnnotations(fs, 0);
fs.Close();
}
void LoadAnnotation_Click(object sender, EventArgs e)
{
FileStream fs = GetFileStream();
MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]);
cell.LoadAnnotations(fs, 0);
fs.Close();
}
}
MedicalViewerForm16 GetMedicalControl16()
{
return new MedicalViewerForm16();
}
// This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button.
public void MedicalViewerSaveAnnotationStreamExample()
{
MedicalViewerForm16 myForm = GetMedicalControl16();
MedicalViewer medicalViewer = myForm.Viewer;
myForm.ShowDialog();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}