Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
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