Imports Leadtools
Imports Leadtools.Drawing
Imports Leadtools.Codecs
Imports Leadtools.MedicalViewer
Imports Leadtools.ImageProcessing
Imports Leadtools.Annotations.Core
Imports Leadtools.Annotations.Designers
Imports Leadtools.Annotations.Rendering
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.
<TestMethod()> _
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.Core;
using Leadtools.Annotations.Designers;
using Leadtools.Annotations.Rendering;
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.
[TestMethod]
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";
}