public DicomElement GetFirstKey(DicomElement element,bool tree)
public:DicomElement^ GetFirstKey(DicomElement^ element,bool tree)
element
An item in the Data Set.
tree
true to evaluate the Data Set as a tree; false to evaluate the Data Set as a list.
The first item in the Data Set, or a null reference (Nothing in VB) if the Data Set is empty.
If the Data Set is evaluated as a tree structure, this method returns the first item on the same level as element with the same parent as element. Please note that the numbering of the items in this first illustration is arbitrary and does not imply order.

| If the passed object points to: | The method returns an object pointing to: |
|---|---|
| Item 1 | Item 2 |
| Item 3 | Item 4 |
| Item 5 | Item 5 |
| Item 6 | Item 7 |
| null | Item 2 |
If the Data Set is evaluated as a list, the first item in the list is returned. Please note that the numbering of the items in the following illustration does indicate the order of the items when the Data Set is evaluated as a list.

| If the passed object points to: | The method returns an object pointing to: |
|---|---|
| null | Item 1 |
| Item 12 | Item 1 |
| Item 14 | Item 1 |
| Item 22 | Item 1 |
| Item 25 | Item 1 |
The following methods will also help you navigate the Data Set as either a tree or a list:
If you evaluate the Data Set as a tree, you can also use the following methods to navigate the tree:
using Leadtools;using Leadtools.Dicom;public void DicomDIRSample(){//Make sure to initialize the DICOM engine, this needs to be done only onceDicomEngine.Startup();using (DicomDataSet dicomDIR = new DicomDataSet()){dicomDIR.Reset();//Initialize the dataset as a DICOMDIR classdicomDIR.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 keyDicomElement patientKey = dicomDIR.InsertKey(null, DicomDirKeyType.Patient, true);//Insert a study key under the patient keyDicomElement studyKey = dicomDIR.InsertKey(patientKey, DicomDirKeyType.Study, true);//Now insert three series keys under the study keyDicomElement 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 GetKeyValuePtrDicomDirKeyType keyValue = dicomDIR.GetKeyValue(key);//The root key for the series key should be patientDebug.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 studykey = 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 serieskey = 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 listkey = 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 listkey = 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 listkey = 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 listkey = 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 toodicomDIR.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();}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
