Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
mitkDICOMTagScanner.h
Go to the documentation of this file.
1 /*===================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 #ifndef mitkDICOMTagScanner_h
18 #define mitkDICOMTagScanner_h
19 
20 #include <stack>
21 #include "itkMutexLock.h"
22 
23 #include "mitkDICOMEnums.h"
24 #include "mitkDICOMTagPath.h"
25 #include "mitkDICOMTagCache.h"
27 
28 namespace mitk
29 {
30 
46  class MITKDICOMREADER_EXPORT DICOMTagScanner : public itk::Object
47  {
48  public:
50 
54  virtual void AddTag(const DICOMTag& tag) = 0;
58  virtual void AddTags(const DICOMTagList& tags) = 0;
62  virtual void AddTagPath(const DICOMTagPath& path) = 0;
66  virtual void AddTagPaths(const DICOMTagPathList& paths) = 0;
67 
73  virtual void SetInputFiles(const StringList& filenames) = 0;
74 
81  virtual void Scan() = 0;
82 
86  virtual DICOMDatasetAccessingImageFrameList GetFrameInfoList() const = 0;
87 
91  virtual DICOMTagCache::Pointer GetScanCache() const = 0;
92 
93  protected:
94 
96  static std::string GetActiveLocale();
101  void PushLocale() const;
106  void PopLocale() const;
107 
108  DICOMTagScanner();
109  virtual ~DICOMTagScanner();
110 
111  private:
112 
113  static itk::MutexLock::Pointer s_LocaleMutex;
114 
115  mutable std::stack<std::string> m_ReplacedCLocales;
116  mutable std::stack<std::locale> m_ReplacedCinLocales;
117 
119  };
120 }
121 
122 #endif
itk::SmartPointer< Self > Pointer
Class is used to identify (nested) attributes in a DICOM dataset. In contrast to the class DICOMTag...
std::vector< DICOMTag > DICOMTagList
Definition: mitkDICOMTag.h:64
Representation of a DICOM tag.
Definition: mitkDICOMTag.h:37
#define MITKDICOMREADER_EXPORT
DataCollection - Class to facilitate loading/accessing structured data.
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:53
std::vector< std::string > StringList
std::vector< DICOMTagPath > DICOMTagPathList
Abstracts the tag scanning process for a set of DICOM files.
std::vector< DICOMDatasetAccessingImageFrameInfo::Pointer > DICOMDatasetAccessingImageFrameList