LDicomIOD::Delete

#include "Ltdic.h"

static pDICOMIOD LDicomIOD::Delete(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 LDicomIOD::Reset.

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

See Also

Functions:

LDicomIOD::Reset, LDicomIOD::GetFirst, LDicomIOD::GetLast, LDicomIOD::GetPrev, LDicomIOD::GetNext, LDicomIOD::GetRoot, LDicomIOD::GetParent, LDicomIOD::GetChild, LDicomIOD::Find, LDicomIOD::FindClass, LDicomIOD::FindModule, LDicomIOD::FindIndexModule, LDicomIOD::Insert

Topics:

Working with Information Object Definitions

Example

/* This example removes a class from the IOD table */

L_VOID Test()
{
   pDICOMIOD pClass;

   pClass = LDicomIOD::FindClass( CLASS_CT_IMAGE_STORAGE);
   if (pClass != NULL)
   {
      LDicomIOD::Delete(pClass);
   }
}

/* This example removes a module from the IOD table */

L_VOID Test()
{
   pDICOMIOD pModule;

   pModule = LDicomIOD::FindModule( CLASS_US_IMAGE_STORAGE, MODULE_GENERAL_STUDY);
   if (pModule != NULL)
   {
      LDicomIOD::Delete(pModule);
   }
}


/* This example removes an element from the IOD table */

L_VOID Test()
{
   pDICOMIOD pModule;
   pDICOMIOD pElement;

   pModule = LDicomIOD::FindModule( CLASS_NM_IMAGE_STORAGE, MODULE_PATIENT_STUDY);
   if (pModule != NULL)
   {
      pElement = LDicomIOD::GetChild(pModule);
      if (pElement != NULL)
      {
         LDicomIOD::Delete(pElement);
      }
   }
}