#include "Ltdic.h"
L_UINT16 LDicomDS::GetGraphicObjectInfo(pGraphicAnnSQItem, uGraphicObjectIndex, pGraphicObject, uStructSize)
pDICOMELEMENT pGraphicAnnSQItem; |
pointer to a DICOMELEMENTstructure |
L_UINT uGraphicObjectIndex; |
graphic annotation object index |
pDICOMGRAPHICOBJECT pGraphicObject; |
pointer to the graphic annotation object attributes structure to be updated |
L_UINT uStructSize; |
the size of the DICOMGRAPHICOBJECT structure |
Gets the attributes of the specified graphic annotation object.
Parameter |
Description |
pGraphicAnnSQItem |
Pointer to an item element under the "Graphic Annotation Sequence" (0070,0001) in the "Graphic Annotation Module". |
uGraphicObjectIndex |
The index of the graphic annotation object whose attributes we want to retrieve. |
pGraphicObject |
Pointer to a structure which will be filled with the graphic annotation object attributes. |
uStructSize |
Size of the DICOMGRAPHICOBJECT structure. Pass sizeof(DICOMGRAPHICOBJECT). |
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
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
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;
}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET