Returns a pointer to the item in the Data Set that contains the first child of the specified item.
#include "Ltdic.h"
L_LTDIC_API pDICOMELEMENT L_DicomGetChildElement(hDS, pElement, bVolatile)
A DICOM handle.
Pointer to a DICOMELEMENT structure that contains an item in the Data Set.
Flag that indicates the type of child element to retrieve. Possible values are:
| Value | Meaning |
|---|---|
| TRUE | Retrieve any child element, volatile or non-volatile. |
| FALSE | Retrieve a non-volatile child element. |
| Value | Meaning |
|---|---|
| !NULL | A pointer to a DICOMELEMENT structure that contains the item in the Data Set that is the first child of the item specified in pElement. |
| NULL | pElement has no child items. |
The child is the offspring one level lower than the specified item. If the specified item has no child items, this function will return NULL. For example:

| If the passed pointer points to | The function returns a pointer to |
|---|---|
| Item 1 | NULL |
| Item 2 | Item 3 |
| Item 4 | Item 5 |
| Item 6 | NULL |
The following functions will also help you navigate the Data Set:
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 a child element that must be changed manually, i.e. is not volatile, set bVolatile to FALSE. To retrieve a child element that may be either volatile or non-volatile, set bVolatile to TRUE.
Win32, x64, Linux.
This example displays in a tree control the tree of the elements in the Data Set
#include <windowsx.h>#include <commctrl.h>L_VOID ShowTree(HWND hDlg, HDICOMDS hDS, HTREEITEM hParentItem, pDICOMELEMENT pParentElement){TV_INSERTSTRUCT tvInsert;TV_ITEM tvItem;HTREEITEM hItem;pDICOMELEMENT pElement;pDICOMTAG pTag;L_TCHAR szUnknown[]=TEXT("Unknown");L_TCHAR *p;if (pParentElement == NULL)pElement = L_DicomGetFirstElement(hDS, pParentElement, TRUE, FALSE);elsepElement = L_DicomGetChildElement(hDS, pParentElement, FALSE);while (pElement != NULL){pTag = L_DicomFindTag(pElement->nTag);if (pTag != NULL){p = pTag->pszName;}else{p = szUnknown;}tvItem.mask = TVIF_TEXT;tvItem.pszText = p;tvInsert.hParent = hParentItem;tvInsert.hInsertAfter = TVI_LAST;tvInsert.item = tvItem;hItem = (HTREEITEM)SendMessage(hDlg, TVM_INSERTITEM, (WPARAM)0,(LPARAM)(LPTV_INSERTSTRUCT)&tvInsert);if (L_DicomGetChildElement(hDS, pElement, FALSE) != NULL){ShowTree(hDlg, hDS, hItem, pElement);}pElement = L_DicomGetNextElement(hDS, pElement, TRUE, FALSE);}}L_INT DicomGetChildElementExample(HWND hDlg){HDICOMDS hDS;hDS = L_DicomCreateDS(NULL);L_DicomInitDS(hDS, CLASS_XA_BIPLANE_IMAGE_STORAGE_RETIRED, 0);ShowTree(hDlg, hDS, TVI_ROOT, NULL);L_DicomFreeDS(hDS);return DICOM_SUCCESS;}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
