Retrieves the first item under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module".
public DicomElement FindFirstGraphicAnnSQItem() Public Function FindFirstGraphicAnnSQItem() As Leadtools.Dicom.DicomElement public Leadtools.Dicom.DicomElement FindFirstGraphicAnnSQItem() function Leadtools.Dicom.DicomDataSet.FindFirstGraphicAnnSQItem() public:Leadtools.Dicom.DicomElement^ FindFirstGraphicAnnSQItem();
The first item under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module". null if No items were found.
This method returns the first item under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module". Call this method along with FindNextGraphicAnnSQItem in order to enumerate all the items under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module".
This example will initialize a new DICOM dataset, cerate a graphic annotation sequence and add a graphic object and text object under that sequence.
using Leadtools;using Leadtools.Dicom;public void GraphicAnnSequenceSample(){//Make sure to initialize the DICOM engine, this needs to be done only once//In the whole applicationDicomEngine.Startup();using (DicomDataSet dicomDataset = new DicomDataSet()){// We can also initialize in here the "Grayscale Softcopy Presentation State" classdicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian);dicomDataset.CreateGraphicAnnSQItem(0, "Layer0");DicomElement firstGraphicAnnSQItem = dicomDataset.FindFirstGraphicAnnSQItem();Debug.Assert(firstGraphicAnnSQItem != null);//If there was more than one item we can use//FindNextGraphicAnnSQItem to enumerate these itemsdicomDataset.SetLayerName(firstGraphicAnnSQItem, "Layer1");Debug.Assert(dicomDataset.GetLayerName(firstGraphicAnnSQItem) == "Layer1");// We can also call RemoveAllImageRefFromAllLayers or call// RemoveImageRefFromLayer to remove the referenced images one by one.// In any case this is for demonstration purposes only, since the dataset// doesn't have any referenced images right now.dicomDataset.RemoveAllImageReferencesFromLayer(firstGraphicAnnSQItem);dicomDataset.AddPresentationStateImageReference(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE2.dcm"), null, 0);// We know that the SOP instance UID for the dataset IMAGE2.dcm is// 1.2.840.114257.3.6.5.5.18900282dicomDataset.AddLayerImageReference(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282");Debug.Assert(dicomDataset.GetLayerImageReferenceCount(firstGraphicAnnSQItem) == 1);Debug.Assert(dicomDataset.GetLayerImageReferenceSOPInstance(firstGraphicAnnSQItem, 0) == "1.2.840.114257.3.6.5.5.18900282");Debug.Assert(dicomDataset.GetLayerImageReferenceElement(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282") != null);////////This section is for DICOM Graphic Object///////////////////DicomGraphicObject graphicObject = new DicomGraphicObject();DicomAnnotationPoint[] annotationPoints = new DicomAnnotationPoint[5];annotationPoints[0].X = 480.00F;annotationPoints[0].Y = 226.00F;annotationPoints[1].X = 480.00F;annotationPoints[1].Y = 418.00F;annotationPoints[2].X = 488.00F;annotationPoints[2].Y = 418.00F;annotationPoints[3].X = 488.00F;annotationPoints[3].Y = 226.00F;annotationPoints[4].X = 480.00F;annotationPoints[4].Y = 226.00F;graphicObject.SetAnnotationPoints(annotationPoints, 5);graphicObject.Filled = false;graphicObject.Type = DicomAnnotationType.Polyline;graphicObject.LayerName = "Layer1";graphicObject.Units = DicomAnnotationUnitsRelativityType.Pixel;Debug.Assert(graphicObject.AnnotationPointCount == 5);//Start Clean!//Can also call RemoveGraphicObject to remove individual objectsdicomDataset.RemoveAllGraphicObjects(firstGraphicAnnSQItem);dicomDataset.CreateGraphicObject(firstGraphicAnnSQItem, graphicObject, false);Debug.Assert(dicomDataset.GetGraphicObjectCount(firstGraphicAnnSQItem) == 1);Debug.Assert(dicomDataset.GetGraphicObjElement(firstGraphicAnnSQItem, 0) != null);Debug.Assert(dicomDataset.GetGraphicObjPointCount(firstGraphicAnnSQItem, 0) == 5);DicomGraphicObject graphicObject1 = dicomDataset.GetGraphicObjectInformation(firstGraphicAnnSQItem, 0);Debug.Assert(graphicObject1 != null);graphicObject1.Filled = true;dicomDataset.SetGraphicObjectInformation(firstGraphicAnnSQItem, 0, graphicObject1);////////This section is for DICOM Text Object/////////////////////Can also call RemoveTextObject to remove individual objectsdicomDataset.RemoveAllTextObjects(firstGraphicAnnSQItem);DicomTextObject textObject = new DicomTextObject();textObject.AnchorPointVisible = true;textObject.AnchorPoint = new DicomAnnotationPoint(1.1F, 1.1F);textObject.BRHCorner = new DicomAnnotationPoint(521.251343F, 328.190216F);textObject.TLHCorner = new DicomAnnotationPoint(466.642242F, 300.443268F);textObject.TextValue = "Text Value 1";textObject.AnchorPointUnits = DicomAnnotationUnitsRelativityType.Pixel;textObject.BoundingBoxUnits = DicomAnnotationUnitsRelativityType.Pixel;textObject.LayerName = "Layer1";textObject.TextJustification = TextAnnotationJustificationType.Left;dicomDataset.CreateTextObject(firstGraphicAnnSQItem, textObject, false);Debug.Assert(dicomDataset.GetTextObjectCount(firstGraphicAnnSQItem) == 1);Debug.Assert(dicomDataset.GetTextObjElement(firstGraphicAnnSQItem, 0) != null);DicomTextObject textObject1 = dicomDataset.GetTextObjectInformation(firstGraphicAnnSQItem, 0);Debug.Assert(textObject1 != null);textObject1.TextJustification = TextAnnotationJustificationType.Right;dicomDataset.SetTextObjectInformation(firstGraphicAnnSQItem, 0, textObject1);dicomDataset.Save(Path.Combine(LEAD_VARS.ImagesDir, "GraphicAnnSequence.dcm"), DicomDataSetSaveFlags.None);}DicomEngine.Shutdown();}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports LeadtoolsImports Leadtools.DicomPublic Sub GraphicAnnSequenceSample()'Make sure to initialize the DICOM engine, this needs to be done only once'In the whole applicationDicomEngine.Startup()Dim dicomDataset As DicomDataSet = New DicomDataSet()Using (dicomDataset)' We can also initialize in here the "Grayscale Softcopy Presentation State" classdicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian)dicomDataset.CreateGraphicAnnSQItem(0, "Layer0")Dim firstGraphicAnnSQItem As DicomElement = dicomDataset.FindFirstGraphicAnnSQItem()Debug.Assert(Not firstGraphicAnnSQItem Is Nothing)'If there was more than one item we can use'FindNextGraphicAnnSQItem to enumerate these itemsdicomDataset.SetLayerName(firstGraphicAnnSQItem, "Layer1")Debug.Assert(dicomDataset.GetLayerName(firstGraphicAnnSQItem) = "Layer1")' We can also call RemoveAllImageRefFromAllLayers or call' RemoveImageRefFromLayer to remove the referenced images one by one.' In any case this is for demonstration purposes only, since the dataset' doesn't have any referenced images right now.dicomDataset.RemoveAllImageReferencesFromLayer(firstGraphicAnnSQItem)dicomDataset.AddPresentationStateImageReference(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE2.dcm"), Nothing, 0)' We know that the SOP instance UID for the dataset IMAGE2.dcm is' 1.2.840.114257.3.6.5.5.18900282dicomDataset.AddLayerImageReference(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282")Debug.Assert(dicomDataset.GetLayerImageReferenceCount(firstGraphicAnnSQItem) = 1)Debug.Assert(dicomDataset.GetLayerImageReferenceSOPInstance(firstGraphicAnnSQItem, 0) = "1.2.840.114257.3.6.5.5.18900282")Debug.Assert(Not dicomDataset.GetLayerImageReferenceElement(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282") Is Nothing)'//////This section is for DICOM Graphic Object///////////////////Dim graphicObject As DicomGraphicObject = New DicomGraphicObject()Dim annotationPoints As DicomAnnotationPoint() = New DicomAnnotationPoint(4) {}annotationPoints(0).X = 480.0FannotationPoints(0).Y = 226.0FannotationPoints(1).X = 480.0FannotationPoints(1).Y = 418.0FannotationPoints(2).X = 488.0FannotationPoints(2).Y = 418.0FannotationPoints(3).X = 488.0FannotationPoints(3).Y = 226.0FannotationPoints(4).X = 480.0FannotationPoints(4).Y = 226.0FgraphicObject.SetAnnotationPoints(annotationPoints, 5)graphicObject.Filled = FalsegraphicObject.Type = DicomAnnotationType.PolylinegraphicObject.LayerName = "Layer1"graphicObject.Units = DicomAnnotationUnitsRelativityType.PixelDebug.Assert(graphicObject.AnnotationPointCount = 5)'Start Clean!'Can also call RemoveGraphicObject to remove individual objectsdicomDataset.RemoveAllGraphicObjects(firstGraphicAnnSQItem)dicomDataset.CreateGraphicObject(firstGraphicAnnSQItem, graphicObject, False)Debug.Assert(dicomDataset.GetGraphicObjectCount(firstGraphicAnnSQItem) = 1)Debug.Assert(Not dicomDataset.GetGraphicObjElement(firstGraphicAnnSQItem, 0) Is Nothing)Debug.Assert(dicomDataset.GetGraphicObjPointCount(firstGraphicAnnSQItem, 0) = 5)Dim graphicObject1 As DicomGraphicObject = dicomDataset.GetGraphicObjectInformation(firstGraphicAnnSQItem, 0)Debug.Assert(Not graphicObject1 Is Nothing)graphicObject1.Filled = TruedicomDataset.SetGraphicObjectInformation(firstGraphicAnnSQItem, 0, graphicObject1)'//////This section is for DICOM Text Object///////////////////'Can also call RemoveTextObject to remove individual objectsdicomDataset.RemoveAllTextObjects(firstGraphicAnnSQItem)Dim textObject As DicomTextObject = New DicomTextObject()textObject.AnchorPointVisible = TruetextObject.AnchorPoint = New DicomAnnotationPoint(1.1F, 1.1F)textObject.BRHCorner = New DicomAnnotationPoint(521.251343F, 328.190216F)textObject.TLHCorner = New DicomAnnotationPoint(466.642242F, 300.443268F)textObject.TextValue = "Text Value 1"textObject.AnchorPointUnits = DicomAnnotationUnitsRelativityType.PixeltextObject.BoundingBoxUnits = DicomAnnotationUnitsRelativityType.PixeltextObject.LayerName = "Layer1"textObject.TextJustification = TextAnnotationJustificationType.LeftdicomDataset.CreateTextObject(firstGraphicAnnSQItem, textObject, False)Debug.Assert(dicomDataset.GetTextObjectCount(firstGraphicAnnSQItem) = 1)Debug.Assert(Not dicomDataset.GetTextObjElement(firstGraphicAnnSQItem, 0) Is Nothing)Dim textObject1 As DicomTextObject = dicomDataset.GetTextObjectInformation(firstGraphicAnnSQItem, 0)Debug.Assert(Not textObject1 Is Nothing)textObject1.TextJustification = TextAnnotationJustificationType.RightdicomDataset.SetTextObjectInformation(firstGraphicAnnSQItem, 0, textObject1)dicomDataset.Save(Path.Combine(LEAD_VARS.ImagesDir, "GraphicAnnSequence.dcm"), DicomDataSetSaveFlags.None)End UsingDicomEngine.Shutdown()End SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
using Leadtools;using Leadtools.Dicom;using Leadtools.Examples;public void GraphicAnnSequenceSample(Stream outputStream){//Make sure to initialize the DICOM engine, this needs to be done only once//In the whole applicationDicomEngine.Startup();using (DicomDataSet dicomDataset = new DicomDataSet()){// We can also initialize in here the "Grayscale Softcopy Presentation State" classdicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian);dicomDataset.CreateGraphicAnnSQItem(0, "Layer0");DicomElement firstGraphicAnnSQItem = dicomDataset.FindFirstGraphicAnnSQItem();Debug.Assert(firstGraphicAnnSQItem != null);//If there was more than one item we can use//FindNextGraphicAnnSQItem to enumerate these itemsdicomDataset.SetLayerName(firstGraphicAnnSQItem, "Layer1");Debug.Assert(dicomDataset.GetLayerName(firstGraphicAnnSQItem) == "Layer1");// We can also call RemoveAllImageRefFromAllLayers or call// RemoveImageRefFromLayer to remove the referenced images one by one.// In any case this is for demonstration purposes only, since the dataset// doesn't have any referenced images right now.dicomDataset.RemoveAllImageReferencesFromLayer(firstGraphicAnnSQItem);dicomDataset.AddPresentationStateImageReference(SampleDicomFile.Get(SampleDicomFileNames.Image2_dcm), null, 0);// We know that the SOP instance UID for the dataset IMAGE2.dic is// 1.2.840.114257.3.6.5.5.18900282dicomDataset.AddLayerImageReference(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282");Debug.Assert(dicomDataset.GetLayerImageReferenceCount(firstGraphicAnnSQItem) == 1);Debug.Assert(dicomDataset.GetLayerImageReferenceSOPInstance(firstGraphicAnnSQItem, 0) == "1.2.840.114257.3.6.5.5.18900282");Debug.Assert(dicomDataset.GetLayerImageReferenceElement(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282") != null);////////This section is for DICOM Graphic Object///////////////////DicomGraphicObject graphicObject = new DicomGraphicObject();DicomAnnotationPoint[] annotationPoints = new DicomAnnotationPoint[5];annotationPoints[0].X = 480.00F;annotationPoints[0].Y = 226.00F;annotationPoints[1].X = 480.00F;annotationPoints[1].Y = 418.00F;annotationPoints[2].X = 488.00F;annotationPoints[2].Y = 418.00F;annotationPoints[3].X = 488.00F;annotationPoints[3].Y = 226.00F;annotationPoints[4].X = 480.00F;annotationPoints[4].Y = 226.00F;graphicObject.SetAnnotationPoints(annotationPoints, 5);graphicObject.Filled = false;graphicObject.Type = DicomAnnotationType.Polyline;graphicObject.LayerName = "Layer1";graphicObject.Units = DicomAnnotationUnitsRelativityType.Pixel;Debug.Assert(graphicObject.AnnotationPointCount == 5);//Start Clean!//Can also call RemoveGraphicObject to remove individual objectsdicomDataset.RemoveAllGraphicObjects(firstGraphicAnnSQItem);dicomDataset.CreateGraphicObject(firstGraphicAnnSQItem, graphicObject, false);Debug.Assert(dicomDataset.GetGraphicObjectCount(firstGraphicAnnSQItem) == 1);Debug.Assert(dicomDataset.GetGraphicObjElement(firstGraphicAnnSQItem, 0) != null);Debug.Assert(dicomDataset.GetGraphicObjPointCount(firstGraphicAnnSQItem, 0) == 5);DicomGraphicObject graphicObject1 = dicomDataset.GetGraphicObjectInformation(firstGraphicAnnSQItem, 0);Debug.Assert(graphicObject1 != null);graphicObject1.Filled = true;dicomDataset.SetGraphicObjectInformation(firstGraphicAnnSQItem, 0, graphicObject1);////////This section is for DICOM Text Object/////////////////////Can also call RemoveTextObject to remove individual objectsdicomDataset.RemoveAllTextObjects(firstGraphicAnnSQItem);DicomTextObject textObject = new DicomTextObject();textObject.AnchorPointVisible = true;textObject.AnchorPoint = new DicomAnnotationPoint(1.1F, 1.1F);textObject.BRHCorner = new DicomAnnotationPoint(521.251343F, 328.190216F);textObject.TLHCorner = new DicomAnnotationPoint(466.642242F, 300.443268F);textObject.TextValue = "Text Value 1";textObject.AnchorPointUnits = DicomAnnotationUnitsRelativityType.Pixel;textObject.BoundingBoxUnits = DicomAnnotationUnitsRelativityType.Pixel;textObject.LayerName = "Layer1";textObject.TextJustification = TextAnnotationJustificationType.Left;dicomDataset.CreateTextObject(firstGraphicAnnSQItem, textObject, false);Debug.Assert(dicomDataset.GetTextObjectCount(firstGraphicAnnSQItem) == 1);Debug.Assert(dicomDataset.GetTextObjElement(firstGraphicAnnSQItem, 0) != null);DicomTextObject textObject1 = dicomDataset.GetTextObjectInformation(firstGraphicAnnSQItem, 0);Debug.Assert(textObject1 != null);textObject1.TextJustification = TextAnnotationJustificationType.Right;dicomDataset.SetTextObjectInformation(firstGraphicAnnSQItem, 0, textObject1);dicomDataset.Save(outputStream, DicomDataSetSaveFlags.None);}DicomEngine.Shutdown();}
Imports LeadtoolsImports Leadtools.DicomPublic Sub GraphicAnnSequenceSample(ByVal outputStream As Stream)'Make sure to initialize the DICOM engine, this needs to be done only once'In the whole applicationDicomEngine.Startup()Using dicomDataset As DicomDataSet = New DicomDataSet()' We can also initialize in here the "Grayscale Softcopy Presentation State" classdicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian)dicomDataset.CreateGraphicAnnSQItem(0, "Layer0")Dim firstGraphicAnnSQItem As DicomElement = dicomDataset.FindFirstGraphicAnnSQItem()Debug.Assert(Not firstGraphicAnnSQItem Is Nothing)'If there was more than one item we can use'FindNextGraphicAnnSQItem to enumerate these itemsdicomDataset.SetLayerName(firstGraphicAnnSQItem, "Layer1")Debug.Assert(dicomDataset.GetLayerName(firstGraphicAnnSQItem) = "Layer1")' We can also call RemoveAllImageRefFromAllLayers or call' RemoveImageRefFromLayer to remove the referenced images one by one.' In any case this is for demonstration purposes only, since the dataset' doesn't have any referenced images right now.dicomDataset.RemoveAllImageReferencesFromLayer(firstGraphicAnnSQItem)dicomDataset.AddPresentationStateImageReference(SampleDicomFile.Get(SampleDicomFileNames.Image2_dcm), Nothing, 0)' We know that the SOP instance UID for the dataset IMAGE2.dic is' 1.2.840.114257.3.6.5.5.18900282dicomDataset.AddLayerImageReference(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282")Debug.Assert(dicomDataset.GetLayerImageReferenceCount(firstGraphicAnnSQItem) = 1)Debug.Assert(dicomDataset.GetLayerImageReferenceSOPInstance(firstGraphicAnnSQItem, 0) = "1.2.840.114257.3.6.5.5.18900282")Debug.Assert(Not dicomDataset.GetLayerImageReferenceElement(firstGraphicAnnSQItem, "1.2.840.114257.3.6.5.5.18900282") Is Nothing)'//////This section is for DICOM Graphic Object///////////////////Dim graphicObject As DicomGraphicObject = New DicomGraphicObject()Dim annotationPoints As DicomAnnotationPoint() = New DicomAnnotationPoint(4) {}annotationPoints(0).X = 480.0FannotationPoints(0).Y = 226.0FannotationPoints(1).X = 480.0FannotationPoints(1).Y = 418.0FannotationPoints(2).X = 488.0FannotationPoints(2).Y = 418.0FannotationPoints(3).X = 488.0FannotationPoints(3).Y = 226.0FannotationPoints(4).X = 480.0FannotationPoints(4).Y = 226.0FgraphicObject.SetAnnotationPoints(annotationPoints, 5)graphicObject.Filled = FalsegraphicObject.Type = DicomAnnotationType.PolylinegraphicObject.LayerName = "Layer1"graphicObject.Units = DicomAnnotationUnitsRelativityType.PixelDebug.Assert(graphicObject.AnnotationPointCount = 5)'Start Clean!'Can also call RemoveGraphicObject to remove individual objectsdicomDataset.RemoveAllGraphicObjects(firstGraphicAnnSQItem)dicomDataset.CreateGraphicObject(firstGraphicAnnSQItem, graphicObject, False)Debug.Assert(dicomDataset.GetGraphicObjectCount(firstGraphicAnnSQItem) = 1)Debug.Assert(Not dicomDataset.GetGraphicObjElement(firstGraphicAnnSQItem, 0) Is Nothing)Debug.Assert(dicomDataset.GetGraphicObjPointCount(firstGraphicAnnSQItem, 0) = 5)Dim graphicObject1 As DicomGraphicObject = dicomDataset.GetGraphicObjectInformation(firstGraphicAnnSQItem, 0)Debug.Assert(Not graphicObject1 Is Nothing)graphicObject1.Filled = TruedicomDataset.SetGraphicObjectInformation(firstGraphicAnnSQItem, 0, graphicObject1)'//////This section is for DICOM Text Object///////////////////'Can also call RemoveTextObject to remove individual objectsdicomDataset.RemoveAllTextObjects(firstGraphicAnnSQItem)Dim textObject As DicomTextObject = New DicomTextObject()textObject.AnchorPointVisible = TruetextObject.AnchorPoint = New DicomAnnotationPoint(1.1F, 1.1F)textObject.BRHCorner = New DicomAnnotationPoint(521.251343F, 328.190216F)textObject.TLHCorner = New DicomAnnotationPoint(466.642242F, 300.443268F)textObject.TextValue = "Text Value 1"textObject.AnchorPointUnits = DicomAnnotationUnitsRelativityType.PixeltextObject.BoundingBoxUnits = DicomAnnotationUnitsRelativityType.PixeltextObject.LayerName = "Layer1"textObject.TextJustification = TextAnnotationJustificationType.LeftdicomDataset.CreateTextObject(firstGraphicAnnSQItem, textObject, False)Debug.Assert(dicomDataset.GetTextObjectCount(firstGraphicAnnSQItem) = 1)Debug.Assert(Not dicomDataset.GetTextObjElement(firstGraphicAnnSQItem, 0) Is Nothing)Dim textObject1 As DicomTextObject = dicomDataset.GetTextObjectInformation(firstGraphicAnnSQItem, 0)Debug.Assert(Not textObject1 Is Nothing)textObject1.TextJustification = TextAnnotationJustificationType.RightdicomDataset.SetTextObjectInformation(firstGraphicAnnSQItem, 0, textObject1)dicomDataset.Save(outputStream, DicomDataSetSaveFlags.None)End UsingDicomEngine.Shutdown()End Sub
FindNextGraphicAnnSQItem Method
GetLayerImageReferenceCount Method
RemoveImageReferenceFromLayer Method
RemoveAllImageReferencesFromLayer Method
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
