L_DicomDeleteIOD

#include "Ltdic.h"

L_LTDIC_API pDICOMIOD L_DicomDeleteIOD(pIOD)

pDICOMIOD pIOD;

/* pointer to a DICOMIOD structure */

Deletes the specified item from the IOD Structure.

Parameter

Description

pIOD

Pointer to a DICOMIOD structure that contains the item to be deleted.

Returns

!NULL

A pointer to an adjacent item. If the item being deleted has a sibling (same level, same parent), following it, the returned pointer will point to this sibling. If the item being deleted does not have a sibling following it, but has a sibling preceding it, the returned pointer points to the preceding sibling. If the item being deleted is an only child, the returned pointer points to the parent.

NULL

The item being deleted has no siblings and no parent.

Comments

You can remove all items from the IOD Structure using L_DicomResetIOD.

Since the IOD Structure is stored internally as a tree, the deletion must be carried out as a tree.

When deleting an item from the tree, if the item being deleted has a sibling (same level, same parent), following it, this function returns a pointer to this sibling. If the item being deleted does not have a sibling following it, but has a sibling preceding it, this function returns a pointer to the preceding sibling. If the item being deleted is an only child, this function returns a pointer to the parent. If there is no parent this function returns NULL.

Below are illustrations of these situations:

For the sake of these illustrations, the order of siblings is top to bottom. A preceding sibling is drawn above the sibling it precedes, a following sibling is drawn below the sibling it follows.

Please note that the numbering of the items of interest is arbitrary, and does not imply order.

In this illustration item 2 will be deleted. Since it has a following sibling, the returned pointer will point to item 3.

image\IODDlAft.gif

In this illustration item 3 will be deleted. Since it does not have a following sibling, but does have a preceding sibling, the returned pointer will point to item 2.

image\IODDlBef.gif

In this illustration item 2 will be deleted. Since it is an only child, the returned pointer will point to the parent, item 1.

image\IODDlPar.gif

In this illustration item 1 will be deleted. Since it has no siblings and no parent, this function will return NULL.

image\IODDlNul.gif

Required DLLs and Libraries

LTDIC

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application

Platforms

Win32, x64

See Also

Functions:

L_DicomResetIOD, L_DicomGetFirstIOD, L_DicomGetLastIOD, L_DicomGetPrevIOD, L_DicomGetNextIOD, L_DicomGetRootIOD, L_DicomGetParentIOD, L_DicomGetChildIOD, L_DicomFindIOD, L_DicomFindClassIOD, L_DicomFindModuleIOD, L_DicomFindIndexModuleIOD, L_DicomInsertIOD, L_DicomLoadXmlIOD

Topics:

Working with Information Object Definitions

 

How to Disable the Automatic Loading of the default DICOM IOD Table

Example

The first example removes a class from the IOD table The second example removes a module from the IOD table. The third example removes an element from the IOD table.

L_INT DicomDeleteIODExample1(L_VOID)
{
   pDICOMIOD pClass;

   pClass = L_DicomFindClassIOD(CLASS_CT_IMAGE_STORAGE);
   if (pClass != NULL)
      L_DicomDeleteIOD(pClass);
   return DICOM_SUCCESS;
}

L_INT DicomDeleteIODExample2(L_VOID)
{
   pDICOMIOD pModule;

   pModule = L_DicomFindModuleIOD(CLASS_US_IMAGE_STORAGE, MODULE_GENERAL_STUDY);
   if (pModule != NULL)
      L_DicomDeleteIOD(pModule);

   return DICOM_SUCCESS;
}

L_INT DicomDeleteIODExample3(L_VOID)
{
   pDICOMIOD pModule;
   pDICOMIOD pElement;

   pModule = L_DicomFindModuleIOD(CLASS_NM_IMAGE_STORAGE, MODULE_PATIENT_STUDY);
   if (pModule != NULL)
   {
      pElement = L_DicomGetChildIOD(pModule);
      if (pElement != NULL)
         L_DicomDeleteIOD(pElement);
   }

   return DICOM_SUCCESS;
}