Retrieves the first item under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module".
Syntax
Visual Basic (Declaration) | |
---|
Public Function FindFirstGraphicAnnSQItem() As DicomElement |
Visual Basic (Usage) | Copy Code |
---|
Dim instance As DicomDataSet
Dim value As DicomElement
value = instance.FindFirstGraphicAnnSQItem()
|
Return Value
The first item under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module". null if No items were found.
Example
This example will initialize a new DICOM dataset, cerate a graphic annotation sequence and add a graphic object and text object under that sequence.
Visual Basic | Copy Code |
---|
Public Sub GraphicAnnSequenceSample()
DicomEngine.Startup()
Dim dicomDataset As DicomDataSet = New DicomDataSet()
Using (dicomDataset)
dicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian)
dicomDataset.CreateGraphicAnnSQItem(0, "Layer0")
Dim firstGraphicAnnSQItem As DicomElement = dicomDataset.FindFirstGraphicAnnSQItem()
Debug.Assert(Not firstGraphicAnnSQItem Is Nothing)
dicomDataset.SetLayerName(firstGraphicAnnSQItem, "Layer1")
Debug.Assert(dicomDataset.GetLayerName(firstGraphicAnnSQItem) = "Layer1")
dicomDataset.RemoveAllImageReferencesFromLayer(firstGraphicAnnSQItem)
dicomDataset.AddPresentationStateImageReference(LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE2.dic", Nothing, 0)
dicomDataset.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)
Dim graphicObject As DicomGraphicObject = New DicomGraphicObject()
Dim annotationPoints As DicomAnnotationPoint() = New DicomAnnotationPoint(4) {}
annotationPoints(0).X = 480.0F
annotationPoints(0).Y = 226.0F
annotationPoints(1).X = 480.0F
annotationPoints(1).Y = 418.0F
annotationPoints(2).X = 488.0F
annotationPoints(2).Y = 418.0F
annotationPoints(3).X = 488.0F
annotationPoints(3).Y = 226.0F
annotationPoints(4).X = 480.0F
annotationPoints(4).Y = 226.0F
graphicObject.SetAnnotationPoints(annotationPoints, 5)
graphicObject.Filled = False
graphicObject.Type = DicomAnnotationType.Polyline
graphicObject.LayerName = "Layer1"
graphicObject.Units = DicomAnnotationUnitsRelativityType.Pixel
Debug.Assert(graphicObject.AnnotationPointCount = 5)
dicomDataset.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 = True
dicomDataset.SetGraphicObjectInformation(firstGraphicAnnSQItem, 0, graphicObject1)
dicomDataset.RemoveAllTextObjects(firstGraphicAnnSQItem)
Dim textObject As DicomTextObject = 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(Not dicomDataset.GetTextObjElement(firstGraphicAnnSQItem, 0) Is Nothing)
Dim textObject1 As DicomTextObject = dicomDataset.GetTextObjectInformation(firstGraphicAnnSQItem, 0)
Debug.Assert(Not textObject1 Is Nothing)
textObject1.TextJustification = TextAnnotationJustificationType.Right
dicomDataset.SetTextObjectInformation(firstGraphicAnnSQItem, 0, textObject1)
dicomDataset.Save(LeadtoolsExamples.Common.ImagesPath.Path + "GraphicAnnSequence.dic", DicomDataSetSaveFlags.None)
End Using
DicomEngine.Shutdown()
End Sub |
C# | Copy Code |
---|
public void GraphicAnnSequenceSample() { //Make sure to initialize the DICOM engine, this needs to be done only once //In the whole application DicomEngine.Startup(); using (DicomDataSet dicomDataset = new DicomDataSet()) { // We can also initialize in here the "Grayscale Softcopy Presentation State" class dicomDataset.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 items dicomDataset.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(LeadtoolsExamples.Common.ImagesPath.Path + "IMAGE2.dic", null, 0); // We know that the SOP instance UID for the dataset IMAGE2.dic is // 1.2.840.114257.3.6.5.5.18900282 dicomDataset.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 objects dicomDataset.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 objects dicomDataset.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(LeadtoolsExamples.Common.ImagesPath.Path + "GraphicAnnSequence.dic", DicomDataSetSaveFlags.None); } DicomEngine.Shutdown(); } |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also