GDCM 2.2.1

- Main Page
- Related Pages
- Namespaces
- Classes
- Files
- Examples

TraverseModules.cxx
/*=========================================================================
Program: GDCM (Grassroots DICOM). A DICOM library
Copyright (c) 2006-2011 Mathieu Malaterre
All rights reserved.
See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/*
*/
#include "gdcmDefs.h"
#include "gdcmGlobal.h"
#include "gdcmIODs.h"
#include "gdcmIOD.h"
#include "gdcmMacros.h"
#include "gdcmIODEntry.h"
#include "gdcmModules.h"
#include "gdcmModule.h"
#include "gdcmAnonymizer.h"
#include "gdcmDicts.h"
int main(int , char *[])
{
using namespace gdcm;
static Global &g = Global::GetInstance();
if( !g.LoadResourcesFiles() )
{
return 1;
}
static const Defs &defs = g.GetDefs();
static const Modules &modules = defs.GetModules();
static const IODs &iods = defs.GetIODs();
static const Macros &macros = defs.GetMacros();
static const Dicts &dicts = g.GetDicts();
std::vector<Tag> tags = gdcm::Anonymizer::GetBasicApplicationLevelConfidentialityProfileAttributes();
for( std::vector<Tag>::const_iterator tit = tags.begin(); tit != tags.end(); ++tit )
{
const Tag &tag = *tit;
const DictEntry &dictentry = dicts.GetDictEntry(tag);
std::cout << "Processing Attribute: " << tag << " " << dictentry << std::endl;
IODs::IODMapTypeConstIterator it = iods.Begin();
for( ; it != iods.End(); ++it )
{
const IODs::IODName &name = it->first;
const IOD &iod = it->second;
const size_t niods = iod.GetNumberOfIODs();
// Iterate over each iod entry in order:
for(unsigned int idx = 0; idx < niods; ++idx)
{
const IODEntry &iodentry = iod.GetIODEntry(idx);
const char *ref = iodentry.GetRef();
//Usage::UsageType ut = iodentry.GetUsageType();
const Module &module = modules.GetModule( ref );
if( module.FindModuleEntryInMacros(macros, tag ) )
{
const ModuleEntry &module_entry = module.GetModuleEntryInMacros(macros,tag);
Type type = module_entry.GetType();
std::cout << "IOD Name: " << name << std::endl;
std::cout << "Type: " << type << std::endl;
}
}
}
}
return 0;
}