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.
a DicomIod class that contains the first item in the IOD Structure.
If the IOD Structure is evaluated as a tree structure, this method returns the first item on the same level as iod with the same parent as iod. Please note that the numbering of the items in this first 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 | Item 5 |
Item 6 | Item 7 |
null | item 2 |
If the IOD Structure is evaluated as a list, the first 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: |
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 IOD Structure as either a tree or a list:
If you evaluate the IOD Structure as a tree, you can also use the following method 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