GetRootKey Method (original) (raw)

Summary

Returns the root of the specified item.

Syntax

C#

Objective-C

C++/CLI

Java

- (nullable LTDicomElement *)rootKey:(LTDicomElement *)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.

Example

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(); }