public DicomElement FindLastKey(
DicomElement element,
string key,
bool tree
)
- (nullable LTDicomElement *)findLastKey:(nullable LTDicomElement *)element stringKey:(NSString *)key tree:(BOOL)tree;
public:
DicomElement^ FindLastKey(
DicomElement^ element,
String^ key,
bool tree
)
element
An item in the Data Set.
key
The type of key element to find.
tree
true to evaluate the Data Set as a tree; false to evaluate the Data Set as a list.
The last item in the Data Set with the specified key element type, or a null reference (Nothing in VB) if an item with the specified key element type was not found.
For the sake of the following illustrations, the order of siblings is top to bottom. Therefore last is the item closest to the bottom. If the Data Set is evaluated as a tree structure, this method returns the last item on the same level as element with the same parent as element, that has key element type key.
Please note that the numbering of the items of interest 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 | The last sibling (same level, same parent) of Item 1 that has key element type key, if such an item exists. If such an item does not exist, the method returns null. Searching begins at the bottom. |
Item 2 | The last sibling (same level, same parent) of Item 2 that has key element type key, if such an item exists. If such an item does not exist, the method returns null. Searching begins at the bottom. |
Item 3 | The last sibling (same level, same parent) of Item 3 that has key element type key, if such an item exists. If such an item does not exist, the method returns null. Searching begins at the bottom. |
If the Data Set is evaluated as a list, this method returns the last item in the entire list that has key element type key. Searching begins at the bottom of the list.
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: |
---|---|
Item 1 | The last item in the list that has key element type key, if such an item exists. If an item with key element type key is not found, null is returned. Searching begins at the bottom. |
Item 14 | The last item in the list that has key element type key, if such an item exists. If an item with key element type key is not found, null is returned. Searching begins at the bottom. |
Item 22 | The last item in the list that has key element type key, if such an item exists. If an item with key element type key is not found, null is returned. Searching begins at the bottom. |
The following methods will also help you find elements in the Data Set with a specific key element type:
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();
}
FindLastKey(DicomElement,DicomDirKeyType,Boolean) Method
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