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