LDicomDS::GetNextElement

#include "Ltdic.h"

pDICOMELEMENT LDicomDS::GetNextElement(pElement, bTree, bVolatile)

pDICOMELEMENT pElement;

pointer to a DICOMELEMENT structure

L_BOOL bTree;

flag that indicates how to evaluate the Data Set

L_BOOL bVolatile;

flag that indicates the type of element to retrieve

Returns a pointer to the item in the Data Set that immediately follows the specified item.

Parameter Description
pElement Pointer to a DICOMELEMENT structure that contains an item in the Data Set. A pointer to the item in the Data Set that immediately follows this item will be returned.
bTree Flag that indicates how the Data Set will be evaluated. Possible values are:
  Value Meaning
  TRUE Evaluate the Data Set as a tree.
  FALSE Evaluate the Data Set as a list.
bVolatile Flag that indicates the type of element to retrieve. Possible values are:
  Value Meaning
  TRUE Retrieve the next element, volatile or non-volatile.
  FALSE Retrieve the next non-volatile element.

Returns

!NULL

A pointer to a DICOMELEMENT structure that contains the item in the Data Set that immediately follows the item specified in pElement.

NULL

There is not an item following pElement. (pElement is the last item in the Data Set.)

Comments

If the Data Set is evaluated as a tree structure, this function returns the next item on the same level as pElement with the same parent as pElement. Please note that the numbering of the items in this illustration is arbitrary and does not imply order.

image\GetNxtTr.gif

If the passed pointer points to :

The function returns a pointer to :

Item 1

Item 2

Item 3

Item 4

Item 5

NULL

Item 6

Item 7

If the Data Set is evaluated as a list, the next 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 Data Set is evaluated as a list.

image\GetNtLst.gif

If the passed pointer points to :

The function returns a pointer to :

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 functions will also help you navigate the Data Set as either a tree or a list:

LDicomDS::GetFirstElement

LDicomDS::GetPrevElement

LDicomDS::GetLastElement

If you evaluate the Data Set as a tree, you can also use the following functions to navigate the tree:

LDicomDS::GetRootElement

LDicomDS::GetParentElement

LDicomDS::GetChildElement

A volatile element is an element that can be changed or destroyed in the process of inserting or setting an image. A non-volatile element is an element that must be changed manually. It is not changed or destroyed by inserting or setting an image.

For example, a grayscale image has elements TAG_SMALLEST_IMAGE_PIXEL_VALUE, TAG_LARGEST_IMAGE_PIXEL_VALUE, etc. If the image is changed to a color image, these elements disappear and the following elements appear: TAG_RED_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR, etc. These are volatile elements since they are changed or destroyed when an image is changed or set.

To retrieve the next element that must be changed manually, i.e. is not volatile, set bVolatile to FALSE. To retrieve the next element, either volatile or non-volatile, set bVolatile to TRUE.

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:

LDicomDS::GetFirstElement, LDicomDS::GetPrevElement, LDicomDS::GetLastElement, LDicomDS::GetCountModule, LDicomDS::GetRootElement, LDicomDS::GetParentElement, LDicomDS::GetChildElement, LDicomDS::IsVolatileElement

Topics:

Working with Data Sets

 

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

Example

This example displays in a list-box control all elements (level 0) from the Data Set.

L_INT LDicomDS_GetNextElementExample(CListBox *pDlg) 
{ 
   LDicomDS*      pDS; 
   pDICOMELEMENT  pElement; 
   pDICOMTAG      pTag; 
   L_TCHAR        szUnknown[]=TEXT("Unknown"); 
   L_TCHAR*       p; 
   pDS = new LDicomDS(NULL); 
   pDS->InitDS( CLASS_XA_BIPLANE_IMAGE_STORAGE_RETIRED, 0); 
   pElement = pDS->GetFirstElement(NULL, TRUE, FALSE); 
   while (pElement != NULL) 
   { 
      pTag = LDicomTag::Find(pElement->nTag); 
      if (pTag != NULL) 
      { 
         p = pTag->pszName; 
      } 
      else 
      { 
         p = szUnknown; 
      } 
      pDlg->AddString(p); 
      pElement = pDS->GetNextElement(pElement, TRUE, FALSE); 
   } 
   delete pDS; 
   return DICOM_SUCCESS; 
} 

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
LEADTOOLS DICOM C++ Class Library Help