public List<AnnObject> ToAnnObject(
DicomDataSet ds,
List<IDicomAnnotationObject> dicomAnnotationObjectList
)
Public Overloads Function ToAnnObject( _
ByVal ds As DicomDataSet, _
ByVal dicomAnnotationObjectList As List(Of IDicomAnnotationObject) _
) As List(Of AnnObject)
public:
List<AnnObject^>^ ToAnnObject(
DicomDataSet^ ds,
List<IDicomAnnotationObject^>^ dicomAnnotationObjectList
)
ds
A Leadtools.Dicom.DicomDataSet that contains the Graphic Group Sequence (0070,0234).
dicomAnnotationObjectList
The a list of Leadtools.IDicomAnnotationObject to be converted.
A list of Leadtools.Annotations.Engine.AnnObject
This function converts a list of DICOM Annotation Objects (text, graphic, and compound graphic) Leadtools.IDicomAnnotationObject into a list of LEAD annotation objects (Leadtools.Annotations.Engine.AnnObject). Note that dicomAnnotationObjectList can contain Leadtools.IDicomAnnotationObject that are grouped together, to return a single Leadtools.Annotations.Engine.AnnObject. For example, the Leadtools.Annotations.Engine.AnnPolyRulerObject, Leadtools.Annotations.Engine.AnnProtractorObject, and the Leadtools.Annotations.Engine.AnnCrossProductObject are all stored as one or more 'grouped' Leadtools.Dicom.DicomCompoundGraphic objects.
This example does the following:
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Dicom.Annotations;
using Leadtools.Annotations;
using Leadtools.Annotations.Engine;
private List<AnnObject> DicomAnnotationsUtilities_ToAnnObject2()
{
// Set up the DicomAnnotationsUtilities converter
DicomAnnotationsUtilities du = new DicomAnnotationsUtilities();
du.ImageDpiX = 96.0;
du.ImageDpiY = 96.0;
du.DisplayWidth = 200;
du.DisplayHeight = 200;
du.LayerName = "Layer 0";
du.CompoundGraphicInstanceId = 100;
du.GraphicGroupId = 123;
// LineStyle -- user for both rulers
DicomLineStyle lineStyle = new DicomLineStyle();
lineStyle = new DicomLineStyle();
lineStyle.LineOptions = DicomAnnotationLineOptions.None;
lineStyle.Shadow.ShadowStyle = DicomAnnotationShadowStyleType.Off;
lineStyle.Shadow.ShadowOpacity = 0.0f;
lineStyle.Shadow.ShadowOffsetX = 0.0f;
lineStyle.Shadow.ShadowOffsetY = 0.0f;
lineStyle.Shadow.ShadowColorCieLabValue = new ushort[3] { 1, 2, 3 };
lineStyle.PatternOnColorCieLabValue = new ushort[3] { 24886, 53484, 50171 }; // red
lineStyle.PatternOffColorCieLabValue = new ushort[3] { 0, 0, 0 };
lineStyle.LineThickness = 2.0f;
lineStyle.LineDashingStyle = DicomAnnotationDashStyleType.Solid;
lineStyle.LinePattern = 0xFFFF;
lineStyle.PatternOnOpacity = 1.0f;
lineStyle.PatternOffOpacity = 0.0f;
// Create a compound graphic -- ruler0
DicomCompoundGraphic ruler0 = new DicomCompoundGraphic();
ruler0.LayerName = "Layer 0";
ruler0.Units = DicomAnnotationUnitsRelativityType.Pixel;
ruler0.Type = DicomAnnotationCompoundGraphicType.Ruler;
DicomAnnotationPoint[] pts = new DicomAnnotationPoint[2];
pts[0] = new DicomAnnotationPoint(100, 100);
pts[1] = new DicomAnnotationPoint(200, 200);
ruler0.SetAnnotationPoints(pts, pts.Length);
ruler0.CompoundGraphicInstanceId = du.IncrementCompoundGraphicInstanceId();
ruler0.GraphicGroupId = du.GraphicGroupId;
ruler0.Options = DicomAnnotationOptions.CompoundGraphicInstanceId | DicomAnnotationOptions.GraphicGroupId;
ruler0.LineStyle = lineStyle.Clone();
// Create a compound graphic -- ruler0
DicomCompoundGraphic ruler1 = new DicomCompoundGraphic();
ruler1.LayerName = "Layer 0";
ruler1.Units = DicomAnnotationUnitsRelativityType.Pixel;
ruler1.Type = DicomAnnotationCompoundGraphicType.Ruler;
pts = new DicomAnnotationPoint[2];
pts[0] = new DicomAnnotationPoint(200, 200);
pts[1] = new DicomAnnotationPoint(300, 100);
ruler1.SetAnnotationPoints(pts, pts.Length);
ruler1.CompoundGraphicInstanceId = du.IncrementCompoundGraphicInstanceId();
ruler1.GraphicGroupId = du.GraphicGroupId;
ruler1.Options = DicomAnnotationOptions.CompoundGraphicInstanceId | DicomAnnotationOptions.GraphicGroupId;
ruler1.LineStyle = lineStyle.Clone();
// Convert the DICOM Annotation to a LEAD annotation
List<DicomAnnotationObject> listDicomObjects = new List<DicomAnnotationObject>();
listDicomObjects.Add(ruler0);
listDicomObjects.Add(ruler1);
// Create the DicomDataSet that has the GraphicGroupSequence
DicomDataSet dsPre = new DicomDataSet();
DicomElement graphicGroupSequenceElement = dsPre.InsertElement(null, false, DicomTag.GraphicGroupSequence, DicomVRType.SQ, true, 0);
DicomElement item = dsPre.InsertElement(graphicGroupSequenceElement, true, DicomTag.Item, DicomVRType.SQ, true, 0);
dsPre.InsertElementAndSetValue(item, true, DicomTag.GraphicGroupLabel, "PolyRulerObject");
dsPre.InsertElementAndSetValue(item, true, DicomTag.GraphicLayerDescription, "LEAD Annotation");
dsPre.InsertElementAndSetValue(item, true, DicomTag.GraphicGroupID, du.GraphicGroupId);
List<AnnObject> annObjectList = du.ToAnnObject(dsPre, listDicomObjects);
return annObjectList;
}
Imports Leadtools
Imports Leadtools.Dicom
Imports Leadtools.Dicom.Annotations
Imports Leadtools.Annotations.Core
Private Function DicomAnnotationsUtilities_ToAnnObject2() As List(Of AnnObject)
' Set up the DicomAnnotationsUtilities converter
Dim du As New DicomAnnotationsUtilities()
du.ImageDpiX = 96.0
du.ImageDpiY = 96.0
du.DisplayWidth = 200
du.DisplayHeight = 200
du.LayerName = "Layer 0"
du.CompoundGraphicInstanceId = 100
du.GraphicGroupId = 123
' LineStyle -- user for both rulers
Dim lineStyle As New DicomLineStyle()
lineStyle = New DicomLineStyle()
lineStyle.LineOptions = DicomAnnotationLineOptions.None
lineStyle.Shadow.ShadowStyle = DicomAnnotationShadowStyleType.Off
lineStyle.Shadow.ShadowOpacity = 0.0F
lineStyle.Shadow.ShadowOffsetX = 0.0F
lineStyle.Shadow.ShadowOffsetY = 0.0F
lineStyle.Shadow.ShadowColorCieLabValue = New UShort(2) {1, 2, 3}
lineStyle.PatternOnColorCieLabValue = New UShort(2) {24886, 53484, 50171} ' red
lineStyle.PatternOffColorCieLabValue = New UShort(2) {0, 0, 0}
lineStyle.LineThickness = 2.0F
lineStyle.LineDashingStyle = DicomAnnotationDashStyleType.Solid
lineStyle.LinePattern = &HFFFF
lineStyle.PatternOnOpacity = 1.0F
lineStyle.PatternOffOpacity = 0.0F
' Create a compound graphic -- ruler0
Dim ruler0 As New DicomCompoundGraphic()
ruler0.LayerName = "Layer 0"
ruler0.Units = DicomAnnotationUnitsRelativityType.Pixel
ruler0.Type = DicomAnnotationCompoundGraphicType.Ruler
Dim pts(1) As DicomAnnotationPoint
pts(0) = New DicomAnnotationPoint(100, 100)
pts(1) = New DicomAnnotationPoint(200, 200)
ruler0.SetAnnotationPoints(pts, pts.Length)
ruler0.CompoundGraphicInstanceId = du.IncrementCompoundGraphicInstanceId()
ruler0.GraphicGroupId = du.GraphicGroupId
ruler0.Options = DicomAnnotationOptions.CompoundGraphicInstanceId Or DicomAnnotationOptions.GraphicGroupId
ruler0.LineStyle = lineStyle.Clone()
' Create a compound graphic -- ruler0
Dim ruler1 As New DicomCompoundGraphic()
ruler1.LayerName = "Layer 0"
ruler1.Units = DicomAnnotationUnitsRelativityType.Pixel
ruler1.Type = DicomAnnotationCompoundGraphicType.Ruler
pts = New DicomAnnotationPoint(1) {}
pts(0) = New DicomAnnotationPoint(200, 200)
pts(1) = New DicomAnnotationPoint(300, 100)
ruler1.SetAnnotationPoints(pts, pts.Length)
ruler1.CompoundGraphicInstanceId = du.IncrementCompoundGraphicInstanceId()
ruler1.GraphicGroupId = du.GraphicGroupId
ruler1.Options = DicomAnnotationOptions.CompoundGraphicInstanceId Or DicomAnnotationOptions.GraphicGroupId
ruler1.LineStyle = lineStyle.Clone()
' Convert the DICOM Annotation to a LEAD annotation
Dim listDicomObjects As New List(Of DicomAnnotationObject)()
listDicomObjects.Add(ruler0)
listDicomObjects.Add(ruler1)
' Create the DicomDataSet that has the GraphicGroupSequence
Dim dsPre As New DicomDataSet()
Dim graphicGroupSequenceElement As DicomElement = dsPre.InsertElement(Nothing, False, DicomTag.GraphicGroupSequence, DicomVRType.SQ, True, 0)
Dim item As DicomElement = dsPre.InsertElement(graphicGroupSequenceElement, True, DicomTag.Item, DicomVRType.SQ, True, 0)
dsPre.InsertElementAndSetValue(item, True, DicomTag.GraphicGroupLabel, "PolyRulerObject")
dsPre.InsertElementAndSetValue(item, True, DicomTag.GraphicLayerDescription, "LEAD Annotation")
dsPre.InsertElementAndSetValue(item, True, DicomTag.GraphicGroupID, du.GraphicGroupId)
Dim annObjectList As List(Of AnnObject) = du.ToAnnObject(dsPre, listDicomObjects)
Return annObjectList
End Function
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm EST.
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.