To create and load a Data Set from an existing DICOM file, you must begin by allocating the memory required for the Data Set. This is accomplished by calling LDicomDS::LDicomDS. This function returns a DICOM handle to the Data Set, which is required for most of the functions included in this toolkit.
With the memory allocated, you can now load a Data Set of a DICOM file by calling LDicomDS::LoadDS. For example code showing these first two calls, refer to the example under LDicomDS::LoadDS.
At this point, you are ready to get information about the Data Set, traverse the Data Set, search for specific modules or elements, get/set data values, add modules or elements or delete modules or elements.
Once you have finished with the Data Set, you must free the memory that was allocated for the Data Set. This can be done by calling the delete function.
As a short example, the code shown below does the following:
Creates a Data Set.
Loads a Data Set from a DICOM file.
Finds the first module on Level 0 of the Data Set tree structure.
Finds the first element of the module.
Prints information about the number of modules present, the number of the first module, and information about the first element in the module.
Frees the memory.
By comparing the printed values for the module number, data element tag, and value representation to their respective default tables, you can determine which module, element and value representation are present.
LDicomDS *pDS;
L_UINT32 nCount;
pDICOMMODULE pModule;
pDICOMELEMENT pElement;
L_CHAR cs[256];
/* Create the data set */
pDS = new LDicomDS(NULL);
/* Load the data set from a DICOM file */
pDS->LoadDS("D:\\LTWIN13x\\images\\test2.dic", 0);
/* determine the number of modules in the data set. */
nCount = pDS->GetCountModule();
/* Find the first module on Level 0 of the Data Set tree. */
pModule = pDS->FindIndexModule(0);
if (pModule != NULL)
{
pElement = pModule->pElement[0];
// print the information
wsprintf(cs, "This data set has %d modules.\nThe first module has number %Xh.\n"
"The first module has %d elements.\nThe first element of the first module has:\n"
"Tag number: %Xh\nVR: %Xh\nLength: %d\n", nCount, pModule->nModule,
pModule->nCount, pElement->nTag, pElement->nVR, pElement->nLength);
MessageBox(NULL, cs, "Notice", MB_OK);
}
else
MessageBox(NULL, "pModule is NULL", "Notice", MB_OK);
/* Free the memory. */
delete pDS;
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.