CreateTextObject Method (original) (raw)

Summary

Creates a new text annotation object.

Syntax

Parameters

graphicAnnSQItem
An item element under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module".

textObject
The text object attributes.

checkLayer
true to verify the existence of the layer to which the new object will be added (the method will fail if the layer does not exist); false to add the new object without verifying the existence of the layer.

Example

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 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(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "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.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(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "GraphicAnnSequence.dcm"), DicomDataSetSaveFlags.None); } DicomEngine.Shutdown(); } static class LEAD_VARS { public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; }