LDicomDS::GetFirstElement

Summary

Returns a pointer to the first item in the Data Set.

Syntax

#include "Ltdic.h"

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

Parameters

pDICOMELEMENT pElement

Pointer to a DICOMELEMENT structure within the Data Set. A pointer to the DICOMELEMENT structure that contains the first item in the Data Set will be returned.

L_BOOL 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.

L_BOOL bVolatile

Flag that indicates the type of element to retrieve. Possible values are:

Value Meaning
TRUE Retrieve the first element, volatile or non-volatile.
FALSE Retrieve the first non-volatile element.

Returns

Value Meaning
!NULL A pointer to a DICOMELEMENT structure that contains the first item in the Data Set.
NULL The Data Set is empty.

Comments

If the Data Set is evaluated as a tree structure, this function returns the first item on the same level as pElement with the same parent as pElement.

NOTE: The numbering of the items in this first illustration is arbitrary and does not imply order.

image\GetFstTr.gif
If the passed pointer points to: The function returns a pointer to:
Item 1 Item 2
Item 3 Item 4
Item 5 Item 5
Item 6 Item 7
NULL Item 2

If the Data Set is evaluated as a list, the first item in the list is returned.

NOTE: 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\GetFtLst.gif
If the passed pointer points to: The function returns a pointer to:
NULL Item 1
Item 12 Item 1
Item 14 Item 1
Item 22 Item 1
Item 25 Item 1

The following functions will also help you navigate the Data Set as either a tree or a list:

LDicomDS::GetLastElement

LDicomDS::GetPrevElement

LDicomDS::GetNextElement

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 first element that must be changed manually, i.e. is not volatile, set bVolatile to FALSE. To retrieve the first element, either volatile or non-volatile, set bVolatile to TRUE.

Required DLLs and Libraries

Platforms

Win32, x64

See Also

Functions

Topics

Example

This example displays the list of elements in the Data Set.

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

Help Version 22.0.2022.12.7
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS DICOM C++ Class Library Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.