Converts a LEAD Annotation object into one or more DICOM annotation objects, and (optionally) adds the new DICOM annotation objects into the dataset.
#include "ltdic.h"
L_LTDIC_API L_UINT16 L_DicomConvertLEADAnnObjToDicomAnnObjs(hDS, hAnnObject, pGraphicAnnSQItem, pConversionProc, pUserData, uFlags)
A DICOM handle.
Handle to the LEAD annotation object to be converted, cannot be NULL.
Pointer to an item element under the "Graphic Annotation Sequence" (0008,1115) in the "Graphic Annotation Module". If this parameter is not NULL then the resulting DICOM annotation objects will be added to the dataset under the item pointed to by this parameter. Pass NULL, if you do not want the resulting objects to be added to the dataset.
Pointer to the callback function that will be called for each DICOM annotation object generated by this function. The callback function must adhere to the function prototype described in CONVERTLEADANNOBJTODICOMANNPROC.
Void pointer that you can use to pass one or more additional parameters that the callback function needs. To use this feature, assign a value to a variable or create a structure that contains as many fields as you need. Then, in this parameter, pass the address of the variable or structure, casting it to L_VOID *. The callback function, which receives the address in its own pUserData parameter, can cast it to a pointer of the appropriate data type to access your variable or structure. If the additional parameters are not needed, you can pass NULL in this parameter.
Reserved for future use. Pass 0.
Value | Meaning |
---|---|
DICOM_SUCCESS | The function was successful. |
>0 | An error occurred. Refer to Return Codes. |
This function will convert a LEAD Annotation object into one or more DICOM annotation objects (text and graphic). For each resulting DICOM annotation object the callback function pConversionProc will be called.
If the parameter pGraphicAnnSQItem is not NULL, then the function will automatically add the resulting DICOM annotation objects into the dataset. If the resulting DICOM annotation object is a "Text Object" then it will be added under the "Text Object Sequence" under the item pointed to by pGraphicAnnSQItem. If the resulting DICOM annotation object is a "Graphic Object" then it will be added under the "Graphic Object Sequence" under the item pointed to by pGraphicAnnSQItem.
Currently, a subset of the LEADTOOLS annotation objects can be converted (mapped) into DICOM objects, this includes:
L_UINT16 EXT_CALLBACK fnCallback(
const pDICOMGRAPHICOBJECT pGraphicObject,
const pDICOMTEXTOBJECT pTextObject,
L_VOID *pUserData)
{
UNREFERENCED_PARAMETER(pUserData);
if (pGraphicObject)
{
MessageBox( NULL,
TEXT("A Graphical object has been created."),
TEXT("Note"),
MB_OK);
}
else if (pTextObject)
{
MessageBox( NULL,
TEXT("A Textual object has been created."),
TEXT("Note"),
MB_OK);
}
return DICOM_SUCCESS;
}
L_INT DicomConvertLEADAnnObjToDicomAnnObjsExample(
HDICOMDS hPresStateDS,
HANNOBJECT hAnnObject)
{
pDICOMELEMENT pGraphicAnnSQItem = L_DicomFindFirstGraphicAnnSQItem(hPresStateDS);
L_UINT16 nRet = L_DicomConvertLEADAnnObjToDicomAnnObjs( hPresStateDS,
hAnnObject,
pGraphicAnnSQItem,
fnCallback,
NULL ,
0);
if (nRet == DICOM_SUCCESS)
{
MessageBox( NULL,
TEXT("LEAD annotation object has been successfully converted."),
TEXT("Note"),
MB_OK);
}
return nRet;
}