L_DicomDeleteElement

#include "Ltdic.h"

L_LTDIC_API pDICOMELEMENT L_DicomDeleteElement(hDS, pElement)

HDICOMDS hDS;

/* a DICOM handle */

pDICOMELEMENT pElement;

/* pointer to a DICOMELEMENT structure */

Deletes the specified item from the Data Set.

Parameter

Description

hDS

A DICOM handle.

pElement

Pointer to a DICOMELEMENT 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 Data Set using L_DicomResetDS.

Since the Data Set 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_DicomResetDS, L_DicomGetFirstElement, L_DicomGetLastElement, L_DicomGetPrevElement, L_DicomGetNextElement, L_DicomGetRootElement, L_DicomGetParentElement, L_DicomGetChildElement, L_DicomFindFirstElement, L_DicomFindLastElement, L_DicomFindPrevElement, L_DicomFindNextElement, L_DicomFindModule, L_DicomFindIndexModule, L_DicomInsertElement, L_DicomInsertModule

Topics:

Working with Data Sets

Example

This example removes an element from the Data Set

L_INT DicomDeleteElementExample(L_VOID)
{
   HDICOMDS      hDS;
   pDICOMELEMENT pElement;

   hDS = L_DicomCreateDS(NULL);

   L_DicomInitDS(hDS, CLASS_CT_IMAGE_STORAGE, 0); 

   pElement = L_DicomFindFirstElement(hDS, NULL, TAG_PATIENT_NAME, FALSE);
   if (pElement != NULL)
      L_DicomDeleteElement(hDS, pElement);

   L_DicomFreeDS(hDS);
   return DICOM_SUCCESS;
}