LEADTOOLS Medical
LEAD Technologies, Inc

FromAnnObjectToDataSet Method

Example 





The Leadtools.Dicom.DicomDataSet where the annotation objects will be added.
The LEAD annotation object that is being converted.
Pointer to an item element under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module". The resulting DICOM annotation objects will be added to the dataset under the item this parameter points to.
Converts a LEAD Annotation object into one or more DICOM annotation objects, and adds the new DICOM annotation objects into the dataset.
Syntax
public void FromAnnObjectToDataSet( 
   DicomDataSet ds,
   AnnObject annObject,
   DicomElement graphicAnnSqItem
)
'Declaration
 
Public Sub FromAnnObjectToDataSet( _
   ByVal ds As DicomDataSet, _
   ByVal annObject As AnnObject, _
   ByVal graphicAnnSqItem As DicomElement _
) 
'Usage
 
Dim instance As DicomAnnotationsUtilities
Dim ds As DicomDataSet
Dim annObject As AnnObject
Dim graphicAnnSqItem As DicomElement
 
instance.FromAnnObjectToDataSet(ds, annObject, graphicAnnSqItem)
public void FromAnnObjectToDataSet( 
   DicomDataSet ds,
   AnnObject annObject,
   DicomElement graphicAnnSqItem
)
 function Leadtools.Dicom.Annotations.Core.DicomAnnotationsUtilities.FromAnnObjectToDataSet( 
   ds ,
   annObject ,
   graphicAnnSqItem 
)
public:
void FromAnnObjectToDataSet( 
   DicomDataSet^ ds,
   AnnObject^ annObject,
   DicomElement^ graphicAnnSqItem
) 

Parameters

ds
The Leadtools.Dicom.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". The resulting DICOM annotation objects will be added to the dataset under the item this parameter points to.
Remarks
This function will automatically add the resulting DICOM annotation objects into the ds. If the resulting DICOM annotation object is a "Compound Graphic " then it will be added under the "Compound Graphic Sequence" under the item the graphicAnnSqItem points to, and for backward compatibility (as per the DICOM Specification) it will also be added under the "Graphic Object Sequence". If the resulting DICOM annotation object is a "Text Object" then it will be added under the "Text Object Sequence" under the item pointed to by graphicAnnSqItem. If the resulting DICOM annotation object is a "Graphic Object" then it will be added under the "Graphic Object Sequence" under the item pointed to by graphicAnnSqItem.
Example
 
Private Sub DicomAnnotationsUtilities_FromAnnObjectToDataSet(ByVal fileOut As String)
   ' 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
   ' Create a protractor object
   Dim protractor As New AnnProtractorObject()
   protractor.Points.Clear()
   protractor.AngularUnit = AnnAngularUnit.Degree
   protractor.Stroke.Stroke = AnnSolidColorBrush.Create("green")
   protractor.Points.Add(CreateLeadPointD(100, 300))
   protractor.Points.Add(CreateLeadPointD(200, 400))
   protractor.Points.Add(CreateLeadPointD(300, 300))

   ' Create a DicomDataSet
   Dim dsPS As New DicomDataSet()
   dsPS.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeFlags.AddMandatoryModulesOnly Or DicomDataSetInitializeFlags.AddMandatoryElementsOnly)
   ' DicomElement graphicAnnSequenceItem = dsPS.FindFirstGraphicAnnSQItem();
   Dim graphicAnnotationSequenceElement As DicomElement = dsPS.InsertElement(Nothing, False, DicomTag.GraphicAnnotationSequence, DicomVRType.SQ, True, 0)
   Dim item As DicomElement = dsPS.InsertElement(graphicAnnotationSequenceElement, True, DicomTag.Item, DicomVRType.OB, True, -1)
   dsPS.InsertElement(item, True, DicomTag.GraphicLayer, DicomVRType.CS, False, 0)

   du.FromAnnObjectToDataSet(dsPS, protractor, item)
   dsPS.Save(fileOut, DicomDataSetSaveFlags.None)
   MessageBox.Show("Presentation State Saved: " & fileOut)
End Sub

Private Function CreateLeadPointD(ByVal x As Double, ByVal y As Double) As LeadPointD
   Dim imageDpi As Double = 96.0
   Return New LeadPointD(x * 720.0 / imageDpi, y * 720.0 / imageDpi)
End Function
private void DicomAnnotationsUtilities_FromAnnObjectToDataSet(string fileOut)
{
   // 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;
   // Create a protractor object
   AnnProtractorObject protractor = new AnnProtractorObject();
   protractor.Points.Clear();
   protractor.AngularUnit = AnnAngularUnit.Degree;
   protractor.Stroke.Stroke = AnnSolidColorBrush.Create("green");
   protractor.Points.Add(CreateLeadPointD(100, 300));
   protractor.Points.Add(CreateLeadPointD(200, 400));
   protractor.Points.Add(CreateLeadPointD(300, 300));

   // Create a DicomDataSet
   DicomDataSet dsPS = new DicomDataSet();
   dsPS.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeFlags.AddMandatoryModulesOnly | DicomDataSetInitializeFlags.AddMandatoryElementsOnly);
   // DicomElement graphicAnnSequenceItem = dsPS.FindFirstGraphicAnnSQItem();
   DicomElement graphicAnnotationSequenceElement = dsPS.InsertElement(null, false, DicomTag.GraphicAnnotationSequence, DicomVRType.SQ, true, 0);
   DicomElement item = dsPS.InsertElement(graphicAnnotationSequenceElement, true, DicomTag.Item, DicomVRType.OB, true, -1);
   dsPS.InsertElement(item, true, DicomTag.GraphicLayer, DicomVRType.CS, false, 0);

   du.FromAnnObjectToDataSet(dsPS, protractor, item);
   dsPS.Save(fileOut, DicomDataSetSaveFlags.None);
   MessageBox.Show("Presentation State Saved: " + fileOut);
}

LeadPointD CreateLeadPointD(double x, double y)
{
   double imageDpi = 96.0;
   return new LeadPointD(x * 720.0 / imageDpi , y * 720.0 / imageDpi );
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

DicomAnnotationsUtilities Class
DicomAnnotationsUtilities Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Dicom.Annotations.Core requires a Document or Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features