L_DicomGetWaveformGroup

#include "Ltdic.h"

L_LTDIC_API L_UINT16 L_DicomGetWaveformGroup(hDS, uIndex, hDICOMWaveFormGroup)

HDICOMDS hDS;

/* a DICOM handle */

L_UINT32 uIndex;

/* index*/

HDICOMWAVEFORMGROUP hDICOMWaveFormGroup;

/* a DICOM waveform group handle*/

Gets a waveform group.

Parameter

Description

hDS

A DICOM handle.

uIndex

Zero-based index of the group to be retrieved. As an example, if there are three waveform groups, use an index of 2 to retrieve the third group.

hDICOMWaveFormGroup

A DICOM waveform group handle

Returns

0

The function was successful.

> 0

An error occurred. Refer to Return Codes.

Comments

In DICOM, a waveform consists of one or more multiplex groups, each encoded into an item in the "Waveform Sequence" (5400,0100). Use this function to extract the specified multiplex group.

This function populates the waveform group referenced by hDICOMWaveFormGroup with the multiplex group attributes and for each channel in the group, adds a new channel by calling L_DicomWaveGrpAddChannel.

This function fails and returns DICOM_ERROR_NULL_PTR if hDICOMWaveFormGroup is NULL.

This is the main function for extracting waveforms from a DICOM dataset. Once this function returns and hDICOMWaveFormGroup is initialized, you can call the L_DicomWaveGrpxxx and the L_DicomChannelxxx functions, providing you comprehensive DICOM waveform support.

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_DicomGetWaveformGroupCount, L_DicomDeleteWaveformGroup, L_DicomAddWaveformGroup

Topics:

Working with DICOM Waveforms

 

 

Example

#define WAVEFORM_FILE TEXT("D:\\images\\Dicom\\Waveform.dic")
L_VOID DicomGetWaveFormGroupExample(L_VOID)
{
   L_UINT uRet = DICOM_SUCCESS;
   HDICOMDS hDS = NULL;
   HDICOMWAVEFORMGROUP hDICOMWaveFormGroup = L_DicomWaveGrpCreate();
   hDS = L_DicomCreateDS(NULL);

   uRet = L_DicomLoadDS(hDS, WAVEFORM_FILE, 0);
   if(uRet != DICOM_SUCCESS)
   {
      MessageBox(NULL, TEXT("Load Failed"), TEXT(""), MB_ICONSTOP);
      return ;
   }

   // Do we have any waveform groups at all
   L_UINT32 uCount = L_DicomGetWaveformGroupCount(hDS);
   if (uCount == 0)
   {
      MessageBox(NULL, TEXT("The DICOM file you are trying to load doesn't include any waveforms. "), TEXT(""), MB_ICONSTOP );
      return;
   }
   // There is at least one waveform group in this DS, the first waveform group will be loaded
   uRet = L_DicomGetWaveformGroup(hDS, 0, hDICOMWaveFormGroup);
   if (uRet != DICOM_SUCCESS)
   {
      MessageBox(NULL, TEXT("Failed to load the first waveform group from the dataset."),TEXT(""),MB_ICONSTOP );
   }
   // Do something with the waveform
   // ...
   // ...
   // ...

   // Cleanup
   L_DicomWaveGrpFree(hDICOMWaveFormGroup);
   L_DicomFreeDS(hDS);
}