The MedicalViewer Class is available as an add-on to the LEADTOOLS Medical Imaging toolkits.
Represents a LEADTOOLS MedicalViewer control for displaying medical images.Visual Basic (Declaration) | |
---|---|
Public Class MedicalViewer Inherits System.Windows.Forms.Control Implements IComponent, ISynchronizeInvoke, IDisposable, IBindableComponent, IDropTarget, IWin32Window |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As MedicalViewer |
C# | |
---|---|
public class MedicalViewer : System.Windows.Forms.Control, IComponent, ISynchronizeInvoke, IDisposable, IBindableComponent, IDropTarget, IWin32Window |
C++/CLI | |
---|---|
public ref class MedicalViewer : public System.Windows.Forms.Control, IComponent, ISynchronizeInvoke, IDisposable, IBindableComponent, IDropTarget, IWin32Window |
For an example, refer to MedicalViewer Create the control and add some image
Visual Basic | Copy Code |
---|---|
Public Sub MedicalViewerExample() Dim form As MainForm1 = New MainForm1() form.ShowDialog() End Sub ' MainForm1 will be the owner of the medical viewer control. Private Class MainForm1 : 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 ' 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, "ImageProcessingDemo\Image3.cmp")) Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 1, 1) ' add some action that will be used to change the properties of the images inside the control. cell.AddAction(MedicalViewerActionType.WindowLevel) cell.AddAction(MedicalViewerActionType.Scale) cell.AddAction(MedicalViewerActionType.Offset) cell.AddAction(MedicalViewerActionType.Stack) ' assign the added actions to a mouse button, meaning that when the user click and drag the mouse button, the associated action will be activated. cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) cell.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) ' assign the added actions to a keyboard keys that will work like the mouse. Dim medicalKeys As MedicalViewerKeys = New MedicalViewerKeys(Keys.Down, Keys.Up, Keys.Left, Keys.Right, MedicalViewerModifiers.None) cell.SetActionKeys(MedicalViewerActionType.Offset, medicalKeys) medicalKeys.Modifiers = MedicalViewerModifiers.Ctrl cell.SetActionKeys(MedicalViewerActionType.WindowLevel, medicalKeys) medicalKeys.MouseDown = Keys.PageDown medicalKeys.MouseUp = Keys.PageUp cell.SetActionKeys(MedicalViewerActionType.Stack, medicalKeys) medicalKeys.MouseDown = Keys.Subtract medicalKeys.MouseUp = Keys.Add cell.SetActionKeys(MedicalViewerActionType.Scale, medicalKeys) _medicalViewer.Cells.Add(cell) ' adjust some properties to the cell and add some tags. cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448") cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame) cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale) cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData) cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView) cell.SetTag(1, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "Good, Guy") cell.SetTag(2, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "PID 125-98-445") cell.SetTag(3, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "DOB 08/02/1929") cell.SetTag(5, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "03/16/1999") cell.SetTag(0, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.RulerUnit) cell.Rows = 1 cell.Columns = 1 cell.Frozen = False cell.DisplayRulers = MedicalViewerRulers.Both cell.ApplyOnIndividualSubCell = False cell.ApplyActionOnMove = True cell.FitImageToCell = True cell.Selected = True cell.ShowTags = True ' Load an image and then add it to the control. _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "image2.cmp")) Dim cell1 As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image) _medicalViewer.Cells.Add(cell1) ' add some action that will be used to change the properties of the images inside the control. cell1.AddAction(MedicalViewerActionType.WindowLevel) cell1.AddAction(MedicalViewerActionType.Scale) cell1.AddAction(MedicalViewerActionType.Offset) cell1.AddAction(MedicalViewerActionType.Stack) ' assign the added actions to a mouse button, meaning that when the user click and drag the mouse button, the associated action will be activated. cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) cell1.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) ' assign the added actions to a keyboard keys that will work like the mouse. medicalKeys = New MedicalViewerKeys(Keys.Down, Keys.Up, Keys.Left, Keys.Right, MedicalViewerModifiers.None) cell1.SetActionKeys(MedicalViewerActionType.Offset, medicalKeys) medicalKeys.Modifiers = MedicalViewerModifiers.Ctrl cell1.SetActionKeys(MedicalViewerActionType.WindowLevel, medicalKeys) medicalKeys.MouseDown = Keys.PageDown medicalKeys.MouseUp = Keys.PageUp cell1.SetActionKeys(MedicalViewerActionType.Stack, medicalKeys) medicalKeys.MouseDown = Keys.Subtract medicalKeys.MouseUp = Keys.Add cell1.SetActionKeys(MedicalViewerActionType.Scale, medicalKeys) ' adjust some properties to the cell and add some tags. cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448") cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame) cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale) cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData) cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView) cell1.SetTag(1, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "Good, Guy") cell1.SetTag(2, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "PID 125-98-445") cell1.SetTag(3, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "DOB 08/02/1929") cell1.SetTag(5, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "03/16/1999") cell1.SetTag(0, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.RulerUnit) cell1.Rows = 2 cell1.Columns = 2 cell1.Frozen = False cell1.DisplayRulers = MedicalViewerRulers.Both cell1.ApplyOnIndividualSubCell = False cell1.ApplyActionOnMove = True cell1.FitImageToCell = True cell1.Selected = True cell1.ShowTags = True Controls.Add(_medicalViewer) _medicalViewer.Dock = DockStyle.Fill End Sub End Class Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class |
C# | Copy Code |
---|---|
public void MedicalViewerExample() { MainForm1 form = new MainForm1(); form.ShowDialog(); } // MainForm1 will be the owner of the medical viewer control. class MainForm1 : Form { private MedicalViewer _medicalViewer; void MedicalViewerForm_SizeChanged(object sender, EventArgs e) { _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom); } public MainForm1() { RasterCodecs _codecs = new RasterCodecs(); RasterImage _image; // 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, @"ImageProcessingDemo\Image3.cmp")); MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1); // add some action that will be used to change the properties of the images inside the control. cell.AddAction(MedicalViewerActionType.WindowLevel); cell.AddAction(MedicalViewerActionType.Scale); cell.AddAction(MedicalViewerActionType.Offset); cell.AddAction(MedicalViewerActionType.Stack); // assign the added actions to a mouse button, meaning that when the user click and drag the mouse button, the associated action will be activated. cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); cell.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); // assign the added actions to a keyboard keys that will work like the mouse. MedicalViewerKeys medicalKeys = new MedicalViewerKeys(Keys.Down, Keys.Up, Keys.Left, Keys.Right, MedicalViewerModifiers.None); cell.SetActionKeys(MedicalViewerActionType.Offset, medicalKeys); medicalKeys.Modifiers = MedicalViewerModifiers.Ctrl; cell.SetActionKeys(MedicalViewerActionType.WindowLevel, medicalKeys); medicalKeys.MouseDown = Keys.PageDown; medicalKeys.MouseUp = Keys.PageUp; cell.SetActionKeys(MedicalViewerActionType.Stack, medicalKeys); medicalKeys.MouseDown = Keys.Subtract; medicalKeys.MouseUp = Keys.Add; cell.SetActionKeys(MedicalViewerActionType.Scale, medicalKeys); _medicalViewer.Cells.Add(cell); // adjust some properties to the cell and add some tags. cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448"); cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame); cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale); cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData); cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView); cell.SetTag(1, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "Good, Guy"); cell.SetTag(2, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "PID 125-98-445"); cell.SetTag(3, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "DOB 08/02/1929"); cell.SetTag(5, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "03/16/1999"); cell.SetTag(0, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.RulerUnit); cell.Rows = 1; cell.Columns = 1; cell.Frozen = false; cell.DisplayRulers = MedicalViewerRulers.Both; cell.ApplyOnIndividualSubCell = false; cell.ApplyActionOnMove = true; cell.FitImageToCell = true; cell.Selected = true; cell.ShowTags = true; // Load an image and then add it to the control. _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"image2.cmp")); MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell(_image); _medicalViewer.Cells.Add(cell1); // add some action that will be used to change the properties of the images inside the control. cell1.AddAction(MedicalViewerActionType.WindowLevel); cell1.AddAction(MedicalViewerActionType.Scale); cell1.AddAction(MedicalViewerActionType.Offset); cell1.AddAction(MedicalViewerActionType.Stack); // assign the added actions to a mouse button, meaning that when the user click and drag the mouse button, the associated action will be activated. cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); cell1.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active | MedicalViewerActionFlags.RealTime); // assign the added actions to a keyboard keys that will work like the mouse. medicalKeys = new MedicalViewerKeys(Keys.Down, Keys.Up, Keys.Left, Keys.Right, MedicalViewerModifiers.None); cell1.SetActionKeys(MedicalViewerActionType.Offset, medicalKeys); medicalKeys.Modifiers = MedicalViewerModifiers.Ctrl; cell1.SetActionKeys(MedicalViewerActionType.WindowLevel, medicalKeys); medicalKeys.MouseDown = Keys.PageDown; medicalKeys.MouseUp = Keys.PageUp; cell1.SetActionKeys(MedicalViewerActionType.Stack, medicalKeys); medicalKeys.MouseDown = Keys.Subtract; medicalKeys.MouseUp = Keys.Add; cell1.SetActionKeys(MedicalViewerActionType.Scale, medicalKeys); // adjust some properties to the cell and add some tags. cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448"); cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame); cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale); cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData); cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView); cell1.SetTag(1, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "Good, Guy"); cell1.SetTag(2, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "PID 125-98-445"); cell1.SetTag(3, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "DOB 08/02/1929"); cell1.SetTag(5, MedicalViewerTagAlignment.TopRight, MedicalViewerTagType.UserData, "03/16/1999"); cell1.SetTag(0, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.RulerUnit); cell1.Rows = 2; cell1.Columns = 2; cell1.Frozen = false; cell1.DisplayRulers = MedicalViewerRulers.Both; cell1.ApplyOnIndividualSubCell = false; cell1.ApplyActionOnMove = true; cell1.FitImageToCell = true; cell1.Selected = true; cell1.ShowTags = true; Controls.Add(_medicalViewer); _medicalViewer.Dock = DockStyle.Fill; } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; } |
The MedicalViewer is used to display graphics from a bitmap, metafile, icon, JPEG, GIF or PNG (or any other image file format supported by Leadtools) file. It provides support for displaying one or more images and for the real-time manipulation of one or more images. This control is available only in the Medical toolkits. For more information, refer to Document/Medical Edition Support and Licensing Requirements
This control is a high-level component for building medical display applications such as DICOM viewers, view stations, Teleradiology solutions, and high-end diagnostic workstations found in radiology and other medical specialty departments. When building a PACS for radiology, cardiology, mammography, ophthalmology, pathology, dermatology, dentistry or any other specialty, this control will eliminate project complexity and provide a solid, reliable foundation.
Typical applications that can be built using this control include:- High-end medical diagnostic workstations.
- Medical review and quality assurance stations.
- DICOM viewers.
- Light-weight viewers that are typically distributed on a CD with patient images.
- Web-based medical viewers.
- Display medical grayscale and colored images, including MRI, CT, Digital X-Ray, and Ultrasound.
- Adjust screen layout both manually and programmatically.
- Display overlay information on images, with full control over display text and its positioning inside each window. Includes built-in overlays such as window center, window width values, and field of view.
- Built-in image manipulation tools, including:
- Window level (brightness and contrast).
- Zooming or scaling an image.
- Panning or moving an image.
- Image magnification.
- Single-key or single-click stacking or moving from one image to another in a series.
- Different annotation objects, with the ability to convert them into a region of interest, or calibrate the annotation ruler.
- Different ways of defining the region of interest.
- Drawing cut lines (single or double)
- Adjustable settings for each tool, such as:
- Mouse button controls
- Keyboard (hotkey) controls
- Cursor display icon
- Apply effects to a single image, or to all images in a series
- Apply effects to a single series or to all series managed by the control
- Apply effects programmatically or through user interaction.
- Full control over display container properties, such as colors, cursors, and rulers.
- Built-in adjustable ruler that scales to image DPI and zoom or scale factor.
- Interpolated image display for higher quality.
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
Leadtools.MedicalViewer.MedicalViewer
Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7