#include "Ltdic.h"
L_UINT16 LDicomDS::GetGraphicObjectInfo(pGraphicAnnSQItem, uGraphicObjectIndex, pGraphicObject, uStructSize)
Gets the attributes of the specified graphic annotation object.
Pointer to an item element under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module".
The index of the graphic annotation object whose attributes we want to retrieve.
Pointer to a structure which will be filled with the graphic annotation object attributes.
Size of the DICOMGRAPHICOBJECT structure. Pass sizeof(DICOMGRAPHICOBJECT).
Value | Meaning |
---|---|
0 | SUCCESS |
>0 | An error occurred. Refer to Return Codes. |
This function will retrieve the attributes of the specified graphic object and store their values in the structure pointed to by pGraphicObject.
pGraphicObject->uStructSize will be set to the value of the parameter uStructSize.
Before calling this function you can call LDicomDS::GetGraphicObjPointsCount in order to get the "Number of Graphic Points" (0070,0021) in this object and allocate pGraphicObject->pAnnPoints accordingly.
Required DLLs and Libraries
Win32, x64
L_INT LDicomDS_GetGraphicObjectInfoExample(LDicomDS& PresStateDS)
{
L_INT nRet;
L_TCHAR szText[256] = TEXT("");
L_TCHAR* pszType = NULL;
DICOMGRAPHICOBJECT AnnGraphic;
L_UINT uPointsCount;
L_UINT uObjCount;
pDICOMANNPOINT pPoints = NULL;
pDICOMELEMENT pGraphicAnnSQItem = PresStateDS.FindFirstGraphicAnnSQItem();
nRet = PresStateDS.GetLayerGraphicObjectCount(pGraphicAnnSQItem, &uObjCount);
if (nRet != DICOM_SUCCESS)
return nRet;
if (uObjCount > 0)
{
for (L_UINT i = 0; i < uObjCount; i++)
{
memset(&AnnGraphic, 0, sizeof(DICOMGRAPHICOBJECT));
nRet = PresStateDS.GetGraphicObjPointCount(pGraphicAnnSQItem,i, & uPointsCount);
if (nRet != DICOM_SUCCESS)
return nRet;
if (uPointsCount > 0)
{
pPoints = new DICOMANNPOINT[uPointsCount];
if (!pPoints)
{
return -1;
}
AnnGraphic.pAnnPoints = pPoints;
AnnGraphic.nPointCount = (L_UINT16)uPointsCount;
nRet = PresStateDS.GetGraphicObjectInfo(pGraphicAnnSQItem,i, &AnnGraphic, sizeof(DICOMGRAPHICOBJECT));
if (nRet == DICOM_SUCCESS)
{
switch (AnnGraphic.uType)
{
case DICANN_TYPE_POINT:
pszType = TEXT("Point Annotation");
break;
case DICANN_TYPE_POLYLINE:
pszType = TEXT("Polyline Annotation");
break;
case DICANN_TYPE_INTERPOLATED:
pszType = TEXT("Interpolated Line Annotation");
break;
case DICANN_TYPE_CIRCLE:
pszType = TEXT("Circle Annotation");
break;
case DICANN_TYPE_ELLIPSE:
pszType = TEXT("Ellipse Annotation");
break;
}
if (pszType)
{
wsprintf(szText, TEXT("Annotation type is: %s"), pszType);
MessageBox( NULL,
szText,
TEXT("Note"),
MB_OK);
}
// Do something with the points
if (pPoints)
{
delete [] pPoints;
}
}
else
return nRet;
}
}
}
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
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.