iod
An item in the IOD Structure.
tree
true to evaluate the IOD Structure as a tree, false to evaluate the IOD Structure as a list.
DicomIod class that contains the item in the IOD Structure that immediately follows the item specified in iod.
If the IOD Structure is evaluated as a tree structure, this method returns the next item on the same level as iod with the same parent as iod. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.
If the passed class is : | The method returns: |
Item 1 | Item 2 |
Item 3 | Item 4 |
Item 5 | null |
Item 6 | Item 7 |
If the IOD Structure is evaluated as a list, the previous item in the list is returned. Please note that the numbering of the items in this illustration does indicate the order of the items when the IOD Structure is evaluated as a list.
If the passed class is : | The method returns: |
Item 14 | Item 15 |
Item 4 | Item 5 |
Item 8 | Item 9 |
Item 19 | Item 20 |
Item 27 | item 28 |
Item 30 | null |
The following methods will also help you navigate the IOD Structure as either a tree or a list:
If you evaluate the IOD Structure as a tree, you can also use the following methods to navigate the tree:
using Leadtools;
using Leadtools.Dicom;
public void RecursiveReadIOD(DicomIod parentIOD)
{
DicomIod iod;
if (parentIOD == null)
{
iod = DicomIodTable.Instance.GetFirst(null, true);
}
else
{
iod = DicomIodTable.Instance.GetChild(parentIOD);
}
while (iod != null)
{
// Over here we can show the information about this IOD such as
// DicomIod.Name, DicomIod.Type, DicomIod.Usage and DicomIod.Description
if (DicomIodTable.Instance.GetChild(iod) != null)
{
RecursiveReadIOD(iod);
}
iod = DicomIodTable.Instance.GetNext(iod, true);
}
}
void TestIODTable()
{
//Make sure to initialize the DICOM engine, this needs to be done only once.
DicomEngine.Startup();
//We don't need to call this since the DicomEngine.Startup already does that for us
//These calls are for demonstration purposes only
DicomIodTable.Instance.Reset();
DicomIodTable.Instance.Default();
// We can find the number of modules in any class
int moduleCount = DicomIodTable.Instance.GetModuleCount(DicomClassType.SCImageStorage);
// We can in here call any of the Find methods including FindModule and FindModuleByIndex,
// in this sample we are searching for a DICOM class, this is why we are using FindClass
DicomIod iod = DicomIodTable.Instance.FindClass(DicomClassType.SCImageStorage);
// We can get the name of the IOD
string name = iod.ToString();
DicomIodTable.Instance.Delete(iod);
DicomIod iod1 = DicomIodTable.Instance.Insert(null, false, DicomClassType.SCImageStorage, "Secondary Capture Image Storage", DicomIodType.Class, DicomIodUsageType.MandatoryModule, "Description of the class goes in here");
Debug.Assert(DicomIodTable.Instance.Exists(iod1) == true);
DicomIodTable.Instance.SetName(iod1, "Secondary Capture Image Storage 1");
//Go through all the IODs in the IOD table
RecursiveReadIOD(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