public DicomElement GetRootKey(
DicomElement element
)
- (nullable LTDicomElement *)rootKey:(LTDicomElement *)element;
public DicomElement getRootKey(DicomElement element)
public:
DicomElement^ GetRootKey(
DicomElement^ element
)
element
An item in the Data Set.
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.
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.
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:
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();
}
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