←Select platform

CreateLayer Method

Summary
Adds a new item under the "Graphic Layer Sequence" (0070,0060) in the "Graphic Layer Module".
Syntax
C#
VB
C++
public int CreateLayer( 
   DicomGraphicLayer graphicLayer 
) 
Public Function CreateLayer( _ 
   ByVal graphicLayer As DicomGraphicLayer _ 
) As Integer 
public: 
int CreateLayer(  
   DicomGraphicLayer^ graphicLayer 
)  

Parameters

graphicLayer
A Graphic Layer attributes , which holds the attributes of the layer to be created.

Return Value

The index of the newly created layer.

Remarks

If for example there are already 2 items under the "Graphic Layer Sequence" (0070,0060) and we call this method, then the index of the new layer will be 2. This method will fail and throw a DicomExceptionCode.Parameter exception if a layer with the same name as the new layer already exists in the Data Set.

Example

This example will initialize a new DICOM dataset, insert a new layer with one graphic object and one text object.

C#
VB
using Leadtools; 
using Leadtools.Dicom; 
 
 
public void DicomLayerSample() 
{ 
   //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); 
 
      //We can remove individual layers by calling RemoveLayerByIndex and RemoveLayerByName 
      dicomDataset.RemoveAllLayers(true); 
 
      DicomGraphicLayer graphicLayer = new DicomGraphicLayer(); 
 
      graphicLayer.LayerOrder = 1; 
      graphicLayer.LayerDescription = "First Layer"; 
      graphicLayer.LayerName = "LAYER0"; 
      graphicLayer.Grayscale = 0; 
      graphicLayer.RgbLayerColor[0] = 255; 
 
      dicomDataset.CreateLayer(graphicLayer); 
 
      Debug.Assert(dicomDataset.GetLayerIndex("LAYER0") == 0); 
 
      DicomGraphicLayer graphicLayer1 = dicomDataset.GetLayerInformation(0); 
      Debug.Assert(graphicLayer1 != null); 
      Debug.Assert(graphicLayer1.LayerOrder == 1); 
 
      graphicLayer.LayerName = "LAYER1"; 
      dicomDataset.SetLayerInformation(0, graphicLayer); 
 
      Debug.Assert(dicomDataset.LayerCount == 1); 
 
      //  We can also call GetLayerElementByName to get the layer element 
      DicomElement layer = dicomDataset.GetLayerElementByIndex(0); 
      Debug.Assert(layer != null); 
 
      dicomDataset.RemoveLayerGraphicObjects(layer); 
      Debug.Assert(dicomDataset.GetLayerGraphicObjectCount(layer) == 0); 
 
      dicomDataset.RemoveLayerTextObjects(layer); 
      Debug.Assert(dicomDataset.GetLayerTextObjectCount(layer) == 0); 
 
      dicomDataset.Save(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "PresentationState.dcm"), DicomDataSetSaveFlags.None); 
   } 
   DicomEngine.Shutdown(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Dicom 
 
Public Sub DicomLayerSample() 
   'Make sure to initialize the DICOM engine, this needs to be done only once  
   'In the whole application 
   DicomEngine.Startup() 
 
   Dim dicomDataset As DicomDataSet = New DicomDataSet() 
   Using (dicomDataset) 
      ' We can also initialize in here the "Grayscale Softcopy Presentation State" class 
      dicomDataset.Initialize(DicomClassType.Undefined, DicomDataSetInitializeType.ExplicitVRLittleEndian) 
 
      'We can remove individual layers by calling RemoveLayerByIndex and RemoveLayerByName 
      dicomDataset.RemoveAllLayers(True) 
 
      Dim graphicLayer As DicomGraphicLayer = New DicomGraphicLayer() 
 
      graphicLayer.LayerOrder = 1 
      graphicLayer.LayerDescription = "First Layer" 
      graphicLayer.LayerName = "LAYER0" 
      graphicLayer.Grayscale = 0 
      graphicLayer.RgbLayerColor(0) = 255 
 
      dicomDataset.CreateLayer(graphicLayer) 
 
      Debug.Assert(dicomDataset.GetLayerIndex("LAYER0") = 0) 
 
      Dim graphicLayer1 As DicomGraphicLayer = dicomDataset.GetLayerInformation(0) 
      Debug.Assert(Not graphicLayer1 Is Nothing) 
      Debug.Assert(graphicLayer1.LayerOrder = 1) 
 
      graphicLayer.LayerName = "LAYER1" 
      dicomDataset.SetLayerInformation(0, graphicLayer) 
 
      Debug.Assert(dicomDataset.LayerCount = 1) 
 
      '  We can also call GetLayerElementByName to get the layer elemnt 
      Dim layer As DicomElement = dicomDataset.GetLayerElementByIndex(0) 
      Debug.Assert(Not layer Is Nothing) 
 
      dicomDataset.RemoveLayerGraphicObjects(layer) 
      Debug.Assert(dicomDataset.GetLayerGraphicObjectCount(layer) = 0) 
 
      dicomDataset.RemoveLayerTextObjects(layer) 
      Debug.Assert(dicomDataset.GetLayerTextObjectCount(layer) = 0) 
 
      dicomDataset.Save(Path.Combine(LEAD_VARS.ImagesDir, "PresentationState.dcm"), DicomDataSetSaveFlags.None) 
   End Using 
 
   DicomEngine.Shutdown() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

Help Version 21.0.2021.6.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.