←Select platform

GetRootKey Method

Summary
Returns the root of the specified item.
Syntax
C#
Objective-C
C++/CLI
Java
public DicomElement GetRootKey( 
   DicomElement element 
) 
- (nullable LTDicomElement *)rootKey:(LTDicomElement *)element; 
public DicomElement getRootKey(DicomElement element) 
public: 
DicomElement^ GetRootKey(  
   DicomElement^ element 
)  

Parameters

element
An item in the Data Set.

Return Value

The item in the Data Set that is the root of the item specified by element, or a null reference (Nothing in VB) if the Data Set is empty or element is null.

Remarks

The root is the Level 0 ancestor of element. If element points to an item on Level 0, the returned object points to that same item. Please note that the numbering of the items in the following illustration is arbitrary and does not imply order.

getroot.gif
If the passed object points to: The method returns an object pointing to:
Item 1 Item 2
Item 3 Item 2
Item 4 Item 4
Item 5 Item 6

The following methods will also help you navigate the Data Set:

GetFirstKey

GetLastKey

GetNextKey

GetParentKey

GetChildKey

Example
C#
using Leadtools; 
using Leadtools.Dicom; 
 
 
public void DicomDIRSample() 
{ 
   //Make sure to initialize the DICOM engine, this needs to be done only once  
   DicomEngine.Startup(); 
   using (DicomDataSet dicomDIR = new DicomDataSet()) 
   { 
      dicomDIR.Reset(); 
      //Initialize the dataset as a DICOMDIR class 
      dicomDIR.Initialize(DicomClassType.BasicDirectory, DicomDataSetInitializeType.ExplicitVRLittleEndian); 
      Debug.Assert(dicomDIR.InformationClass == DicomClassType.BasicDirectory); 
      Debug.Assert(dicomDIR.InformationFlags == (DicomDataSetFlags.ExplicitVR | DicomDataSetFlags.LittleEndian | DicomDataSetFlags.MetaHeaderPresent)); 
      //Insert a patient level key 
      DicomElement patientKey = dicomDIR.InsertKey(null, DicomDirKeyType.Patient, true); 
      //Insert a study key under the patient key 
      DicomElement studyKey = dicomDIR.InsertKey(patientKey, DicomDirKeyType.Study, true); 
      //Now insert three series keys under the study key 
      DicomElement seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, true); 
      seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, true); 
      seriesKey = dicomDIR.InsertKey(studyKey, DicomDirKeyType.Series, true); 
      DicomElement key = dicomDIR.GetRootKey(seriesKey); 
      //Get the key value, You can also call GetKeyValuePtr 
      DicomDirKeyType keyValue = dicomDIR.GetKeyValue(key); 
      //The root key for the series key should be patient 
      Debug.Assert(keyValue == DicomDirKeyType.Patient, "The root key for the series key should be patient in this case"); 
      //Get the parent key for the series, it should be study 
      key = dicomDIR.GetParentKey(seriesKey); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Study, "The parent key for the series key should be study in this case"); 
      //The child for the study key should be series 
      key = dicomDIR.GetChildKey(studyKey); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Series, "The child for the study key should be series"); 
      //The first key should be patient, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetFirstKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Patient); 
      //The last key should be series, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetLastKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Series); 
      //The key before the study key should be patient, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetPreviousKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Patient); 
      //The key after the study key should be series, if we traverse the DICOMDIR as a list 
      key = dicomDIR.GetNextKey(studyKey, false); 
      keyValue = dicomDIR.GetKeyValue(key); 
      Debug.Assert(keyValue == DicomDirKeyType.Series); 
      //If we delete the study key, the series keys under it will get deleted too 
      dicomDIR.DeleteKey(studyKey); 
      key = dicomDIR.FindFirstKey(null, DicomDirKeyType.Series, false); 
      Debug.Assert(key == null); 
      key = dicomDIR.FindLastKey(null, DicomDirKeyType.Series, false); 
      Debug.Assert(key == null); 
      key = dicomDIR.FindPreviousKey(null, false); 
      Debug.Assert(key == null); 
      key = dicomDIR.FindNextKey(null, false); 
      Debug.Assert(key == null); 
   } 
   DicomEngine.Shutdown(); 
} 
Requirements

Target Platforms

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

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