/*========================================================================= 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 ¯os = defs.GetMacros(); static const Dicts &dicts = g.GetDicts(); std::vector tags = gdcm::Anonymizer::GetBasicApplicationLevelConfidentialityProfileAttributes(); for( std::vector::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; }