Available in LEADTOOLS Medical Imaging toolkits. |
#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
DICOM_SUCCESS |
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 |
Win32, x64
See Also
Functions: |
L_DicomGetWaveformGroupCount, L_DicomDeleteWaveformGroup, L_DicomAddWaveformGroup |
Topics: |
|
|
|
Example
#define MAKE_IMAGE_PATH(pFileName) TEXT("C:\\Users\\Public\\Documents\\LEADTOOLS Images\\")pFileName #define WAVEFORM_FILE MAKE_IMAGE_PATH(TEXT("Waveform.dcm")) 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); }