MedicalViewerImageInformation Class

Summary
Represents the class that is used to set or get image information.
Syntax
C#
C++/CLI
public class MedicalViewerImageInformation 
            public ref class MedicalViewerImageInformation  
Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.MedicalViewer; 
 
class MedicalViewerForm : Form 
{ 
   private MedicalViewer _medicalViewer; 
   public Label label; 
 
   void MedicalViewerForm_SizeChanged(object sender, EventArgs e) 
   { 
      _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom); 
   } 
 
   public MedicalViewerForm() 
   { 
      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 - 10); 
 
      // Load an image and then add it to the control. 
      //_image = _codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "xa.dcm"); 
      MedicalViewerMultiCell cell = new MedicalViewerMultiCell(null, 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.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); 
 
      cell.Rows = 1; 
      cell.Columns = 1; 
      cell.FitImageToCell = true; 
 
      // 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); 
      _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.RectangleRegion); 
 
      // 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.RectangleRegion, 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); 
 
      label = new Label(); 
      label.Location = new Point(0, this.ClientRectangle.Bottom - 10); 
      label.Size = new Size(this.ClientRectangle.Right, 10); 
      label.Text = "Here the statistical information will appear"; 
 
      Controls.Add(_medicalViewer); 
      _medicalViewer.Dock = DockStyle.Fill; 
   } 
   public MedicalViewer Viewer 
   { 
      get { return _medicalViewer; } 
   } 
} 
 
MedicalViewerForm GetMedicalControl() 
{ 
   return new MedicalViewerForm(); 
} 
 
// This example shows how to use the low memory usage feature to display a medical image with multiple pages. it will also invert all the bitmap to show the invert function works even if the bitmap is not loaded yet. 
public void MedicalViewerLowMemoryUsageExample() 
{ 
   MedicalViewerForm myForm = GetMedicalControl(); 
   MedicalViewer medicalViewer = myForm.Viewer; 
   MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]); 
 
 
   RasterCodecs codecs = new RasterCodecs(); 
   int i = 0; 
   int count; 
 
 
   CodecsImageInfo info; 
   string fileName = Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"); 
   info = codecs.GetInformation(fileName, true); 
   count = info.TotalPages; 
   MedicalViewerImageInformation[] a = new MedicalViewerImageInformation[count]; 
 
   for (i = 0; i < count; i++) 
   { 
      info = codecs.GetInformation(fileName, true, i + 1); 
      a[i] = new MedicalViewerImageInformation(); 
      a[i].ImageHeight = info.Height; 
      a[i].ImageWidth = info.Width; 
      a[i].XResolution = info.XResolution; 
      a[i].YResolution = info.YResolution; 
   } 
 
   cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged1); 
   cell.FramesRequested += new EventHandler<MedicalViewerRequestedFramesInformationEventArgs>(medicalViewer_FramesRequested); 
   cell.EnableLowMemoryUsage(2, count, a); 
   myForm.ShowDialog(); 
} 
 
void medicalViewer_ActiveSubCellChanged1(object sender, MedicalViewerActiveSubCellChangedEventArgs e) 
{ 
   string imageInformation = ""; 
   MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender; 
 
   if (cell.VirtualImage[e.SubCellIndex].ImageExist) 
   { 
      imageInformation = "Image bit per pixel = " + cell.VirtualImage[e.SubCellIndex].Image.BitsPerPixel.ToString(); 
   } 
 
   ((MedicalViewerForm)(cell.ParentViewer.Parent)).label.Text = imageInformation + " HasRegion = " + cell.VirtualImage[e.SubCellIndex].HasRegion; 
} 
 
void medicalViewer_FramesRequested(object sender, MedicalViewerRequestedFramesInformationEventArgs e) 
{ 
   MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(sender); 
   string fileName =Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"); 
   RasterCodecs _codecs = new RasterCodecs(); 
   int i; 
   RasterImage b; 
 
   if (e.RequestedFramesIndexes.Length > 0) 
   { 
      b = _codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes[0] + 1, e.RequestedFramesIndexes[0] + 1); 
   } 
   else 
      return; 
 
   for (i = 1; i < e.RequestedFramesIndexes.Length; i++) 
   { 
      b.AddPage(_codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes[i] + 1, e.RequestedFramesIndexes[i] + 1)); 
   } 
 
   cell.SetRequestedImage(b, e.RequestedFramesIndexes, MedicalViewerSetImageOptions.Insert); 
} 
 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.2.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MedicalViewer Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.