FromAnnObjectToDataSet Method
Summary
Converts a LEAD Annotation object into one or more DICOM annotation objects, and (optionally) adds the new DICOM annotation objects into the dataset.
Syntax
Parameters
ds
The DicomDataSet where the annotation objects will be added
annObject
The LEAD annotation object that is being converted
graphicAnnSqItem
Pointer to an item element under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module". If this parameter is not null then the resulting DICOM annotation objects will be added to the dataset under the item pointed to by this parameter. Pass null if you dont want the resulting objects to be added to the dataset.
Example
This sample does the following:
- Creates a LEAD Leadtools.Annotations.AnnRectangleObject annotation
- Creates a converter
- Converts to a Leadtools.Dicom.DicomAnnotationObject annotation
- Converts back to a LEAD AnnObject
C#
VB
Silverlight C#
Silverlight VB
using Leadtools;
using Leadtools.Annotations;
using Leadtools.Dicom;
using Leadtools.Dicom.Annotations;
public void DicomAnnotationsUtilities_FromAnnObject()
{
// Create an AnnRectangleObject
AnnRectangleObject annObject = new AnnRectangleObject();
annObject.Pen = new AnnPen(Color.Purple, new AnnLength(5, AnnUnit.Pixel));
annObject.Brush = new AnnSolidBrush(Color.White);
annObject.Bounds = new AnnRectangle(400, 100, 500, 200);
// Create an instance of the converter, and set some properties
DicomAnnotationsUtilities du = new DicomAnnotationsUtilities();
du.LayerName = "Test Layer Name";
AnnTextObject defaultAnnObject = new AnnTextObject();
defaultAnnObject.Pen = annObject.Pen;
defaultAnnObject.Brush = annObject.Brush;
du.DefaultObject = defaultAnnObject;
// Convert to a DicomAnnotationObject
// Note that there is no DicomAnnotationObject rectangle type, so it is converted to a polyline
DicomAnnotationObject dicomAnnotationObject = du.FromAnnObject(annObject);
// Convert back to a LEAD AnnObject
// Now the LEAD object will be a polyline, even though the original object was a rectangle
AnnObject annObjectNew = du.ToAnnObject(dicomAnnotationObject) as AnnObject;
if (annObjectNew != null)
{
string msg = string.Format("Original type [{0}] New type [{1}]", annObject.GetType(), annObjectNew.GetType());
MessageBox.Show(msg);
}
}
Imports Leadtools
Imports Leadtools.Annotations
Imports Leadtools.Dicom
Imports Leadtools.Dicom.Annotations
Public Sub DicomAnnotationsUtilities_FromAnnObject()
' Create an AnnRectangleObject
Dim annObject As New AnnRectangleObject()
annObject.Pen = New AnnPen(Color.Purple, New AnnLength(5, AnnUnit.Pixel))
annObject.Brush = New AnnSolidBrush(Color.White)
annObject.Bounds = New AnnRectangle(400, 100, 500, 200)
' Create an instance of the converter, and set some properties
Dim du As New DicomAnnotationsUtilities()
du.LayerName = "Test Layer Name"
Dim defaultAnnObject As New AnnTextObject()
defaultAnnObject.Pen = annObject.Pen
defaultAnnObject.Brush = annObject.Brush
du.DefaultObject = defaultAnnObject
' Convert to a DicomAnnotationObject
' Note that there is no DicomAnnotationObject rectangle type, so it is converted to a polyline
Dim dicomAnnotationObject As DicomAnnotationObject = du.FromAnnObject(annObject)
' Convert back to a LEAD AnnObject
' Now the LEAD object will be a polyline, even though the original object was a rectangle
Dim annObjectNew As AnnObject = TryCast(du.ToAnnObject(dicomAnnotationObject), AnnObject)
If annObjectNew IsNot Nothing Then
Dim msg As String = String.Format("Original type [{0}] New type [{1}]", annObject.GetType(), annObjectNew.GetType())
MessageBox.Show(msg)
End If
End Sub
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Dicom.Annotations;
using Leadtools.Windows.Annotations;
using Leadtools.Examples;
public void DicomAnnotationsUtilities_FromAnnObject()
{
// Create an AnnRectangleObject
AnnRectangleObject annObject = new AnnRectangleObject();
annObject.Stroke = Color.FromArgb(0xFF, 0x80, 0x00, 0x80); // purple
annObject.StrokeThickness = 5;
annObject.Fill = Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF); // white
annObject.Rect = new Rect(400, 100, 500, 200);
// Create an instance of the converter, and set some properties
DicomAnnotationsUtilities du = new DicomAnnotationsUtilities();
AnnTextObject defaultAnnObject = new AnnTextObject();
defaultAnnObject.Stroke = annObject.Stroke;
defaultAnnObject.StrokeThickness = annObject.StrokeThickness;
defaultAnnObject.Fill = annObject.Fill;
du.DefaultObject = defaultAnnObject;
du.LayerName = "Test Layer Name";
// Convert to a DicomAnnotationObject
DicomAnnotationObject dicomAnnotationObject = du.FromAnnObject(annObject);
// Convert back to a LEAD AnnObject
AnnObject annObjectNew = du.ToAnnObject(dicomAnnotationObject) as AnnObject;
string msg = string.Format("Original type [{0}] New type [{1}]", annObject.GetType(), annObjectNew.GetType());
Console.WriteLine(msg);
}
Imports Leadtools
Imports Leadtools.Dicom
Imports Leadtools.Dicom.Annotations
Imports Leadtools.Windows.Annotations
Public Sub DicomAnnotationsUtilities_FromAnnObject()
' Create an AnnRectangleObject
Dim annObject As AnnRectangleObject = New AnnRectangleObject()
annObject.Stroke = Color.FromArgb(&HFF, &H80, &H0, &H80) ' purple
annObject.StrokeThickness = 5
annObject.Fill = Color.FromArgb(&HFF, &HFF, &HFF, &HFF) ' white
annObject.Rect = New Rect(400, 100, 500, 200)
' Create an instance of the converter, and set some properties
Dim du As DicomAnnotationsUtilities = New DicomAnnotationsUtilities()
Dim defaultAnnObject As AnnTextObject = New AnnTextObject()
defaultAnnObject.Stroke = annObject.Stroke
defaultAnnObject.StrokeThickness = annObject.StrokeThickness
defaultAnnObject.Fill = annObject.Fill
du.DefaultObject = defaultAnnObject
du.LayerName = "Test Layer Name"
' Convert to a DicomAnnotationObject
Dim dicomAnnotationObject As DicomAnnotationObject = du.FromAnnObject(annObject)
' Convert back to a LEAD AnnObject
Dim annObjectNew As AnnObject = TryCast(du.ToAnnObject(dicomAnnotationObject), AnnObject)
Dim msg As String = String.Format("Original type [{0}] New type [{1}]", annObject.GetType(), annObjectNew.GetType())
Console.WriteLine(msg)
End Sub