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;
}
gdcm::Anonymizer::GetBasicApplicationLevelConfidentialityProfileAttributes
static std::vector< Tag > GetBasicApplicationLevelConfidentialityProfileAttributes()
Return the list of Tag that will be considered when anonymizing a DICOM file.
gdcm::Defs
FIXME I do not like the name 'Defs'.
Definition gdcmDefs.h:33
gdcm::Defs::GetIODs
const IODs & GetIODs() const
Definition gdcmDefs.h:48
gdcm::Defs::GetMacros
const Macros & GetMacros() const
Definition gdcmDefs.h:45
gdcm::Defs::GetModules
const Modules & GetModules() const
Definition gdcmDefs.h:40
gdcm::DictEntry
Class to represent an Entry in the Dict.
Definition gdcmDictEntry.h:37
gdcm::Dicts
Class to manipulate the sum of knowledge (all the dict user load).
Definition gdcmDicts.h:29
gdcm::Dicts::GetDictEntry
const DictEntry & GetDictEntry(const Tag &tag, const char *owner=nullptr) const
THREAD SAFE.
gdcm::Global
Global.
Definition gdcmGlobal.h:50
gdcm::Global::GetDefs
Defs const & GetDefs() const
gdcm::Global::GetDicts
Dicts const & GetDicts() const
gdcm::Global::LoadResourcesFiles
bool LoadResourcesFiles()
gdcm::Global::GetInstance
static Global & GetInstance()
return the singleton instance
gdcm::IODEntry
Class for representing a IODEntry.
Definition gdcmIODEntry.h:52
gdcm::IODEntry::GetRef
const char * GetRef() const
Definition gdcmIODEntry.h:65
gdcm::IOD
Class for representing a IOD.
Definition gdcmIOD.h:35
gdcm::IOD::GetIODEntry
const IODEntry & GetIODEntry(SizeType idx) const
Definition gdcmIOD.h:54
gdcm::IOD::GetNumberOfIODs
SizeType GetNumberOfIODs() const
Definition gdcmIOD.h:50
gdcm::IODs
Class for representing a IODs.
Definition gdcmIODs.h:30
gdcm::IODs::End
IODMapTypeConstIterator End() const
Definition gdcmIODs.h:56
gdcm::IODs::Begin
IODMapTypeConstIterator Begin() const
Definition gdcmIODs.h:55
gdcm::IODs::IODName
std::string IODName
Definition gdcmIODs.h:32
gdcm::IODs::IODMapTypeConstIterator
IODMapType::const_iterator IODMapTypeConstIterator
Definition gdcmIODs.h:54
gdcm::Macros
Class for representing a Modules.
Definition gdcmMacros.h:30
gdcm::ModuleEntry
Class for representing a ModuleEntry.
Definition gdcmModuleEntry.h:30
gdcm::ModuleEntry::GetType
const Type & GetType() const
Definition gdcmModuleEntry.h:42
gdcm::Module
Class for representing a Module.
Definition gdcmModule.h:38
gdcm::Module::FindModuleEntryInMacros
bool FindModuleEntryInMacros(Macros const &macros, const Tag &tag) const
gdcm::Modules
Class for representing a Modules.
Definition gdcmModules.h:30
gdcm::Modules::GetModule
const Module & GetModule(const char *name) const
Definition gdcmModules.h:47
gdcm::Tag
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element).
Definition gdcmTag.h:39
gdcm::Type
Type.
Definition gdcmType.h:42
gdcmAnonymizer.h
gdcmDefs.h
gdcmDicts.h
gdcmGlobal.h
gdcmIODEntry.h
gdcmIOD.h
gdcmIODs.h
gdcmMacros.h
gdcmModule.h
gdcmModules.h
gdcm
Definition gdcmASN1.h:21