GDCM  2.2.6
gdcmSerieHelper.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: GDCM (Grassroots DICOM). A DICOM library
4 
5  Copyright (c) 2006-2011 Mathieu Malaterre
6  All rights reserved.
7  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
14 #ifndef GDCMSERIEHELPER_H
15 #define GDCMSERIEHELPER_H
16 
17 #include "gdcmTag.h"
18 #include "gdcmSmartPointer.h"
19 #include "gdcmFile.h"
20 #include <vector>
21 #include <string>
22 #include <map>
23 
24 namespace gdcm
25 {
26 
34 };
36 {
37  LD_ALL = 0x00000000,
38  LD_NOSEQ = 0x00000001,
39  LD_NOSHADOW = 0x00000002,
40  LD_NOSHADOWSEQ = 0x00000004
41 };
42 
43 
51 {
52 public:
53  FileWithName(File &f):File(f),filename(){}
54  std::string filename;
55 };
56 
57 typedef std::vector< SmartPointer<FileWithName> > FileList;
59 class Scanner;
60 
69 {
70 public:
71  SerieHelper();
72  ~SerieHelper();
73 
74  void Clear();
75  void SetLoadMode (int ) {}
76  void SetDirectory(std::string const &dir, bool recursive=false);
77 
78  void AddRestriction(const std::string & tag);
79  void SetUseSeriesDetails( bool useSeriesDetails );
80  void CreateDefaultUniqueSeriesIdentifier();
81  FileList *GetFirstSingleSerieUIDFileSet();
82  FileList *GetNextSingleSerieUIDFileSet();
83  std::string CreateUniqueSeriesIdentifier( File * inFile );
84  void OrderFileList(FileList *fileSet);
85  void AddRestriction(uint16_t group, uint16_t elem, std::string const &value, int op);
86 
87 protected:
88  bool UserOrdering(FileList *fileSet);
89  void AddFileName(std::string const &filename);
90  bool AddFile(FileWithName &header);
91  void AddRestriction(const Tag& tag);
92  bool ImagePositionPatientOrdering(FileList *fileSet);
93  bool FileNameOrdering( FileList *fileList );
94 
95  typedef struct {
96  uint16_t group;
97  uint16_t elem;
98  std::string value;
99  int op;
100  } Rule;
101  typedef std::vector<Rule> SerieRestrictions;
102 
103  typedef std::map<std::string, FileList *> SingleSerieUIDFileSetmap;
105  SingleSerieUIDFileSetmap::iterator ItFileSetHt;
106 
107 private:
108  SerieRestrictions Restrictions;
109  SerieRestrictions Refine;
110 
111  bool UseSeriesDetails;
112  bool DirectOrder;
113 
114  BOOL_FUNCTION_PFILE_PFILE_POINTER UserLessThanFunction;
115 };
116 
117 // backward compat
118 } // end namespace gdcm
119 
120 
121 #endif //GDCMSERIEHELPER_H
void SetLoadMode(int)
Definition: gdcmSerieHelper.h:75
std::vector< Rule > SerieRestrictions
Definition: gdcmSerieHelper.h:101
SingleSerieUIDFileSetmap::iterator ItFileSetHt
Definition: gdcmSerieHelper.h:105
Definition: gdcmSerieHelper.h:33
std::string value
Definition: gdcmSerieHelper.h:98
Definition: gdcmSerieHelper.h:31
Scanner This filter is meant for quickly browsing a FileSet (a set of files on disk). Special consideration are taken so as to read the mimimum amount of information in each file in order to retrieve the user specified set of DICOM Attribute.
Definition: gdcmScanner.h:55
std::map< std::string, FileList * > SingleSerieUIDFileSetmap
Definition: gdcmSerieHelper.h:103
Definition: gdcmSerieHelper.h:32
Definition: gdcmSerieHelper.h:30
#define GDCM_EXPORT
Definition: gdcmWin32.h:34
bool(* BOOL_FUNCTION_PFILE_PFILE_POINTER)(File *, File *)
Definition: gdcmSerieHelper.h:58
std::vector< SmartPointer< FileWithName > > FileList
Definition: gdcmSerieHelper.h:57
FileWithName.
Definition: gdcmSerieHelper.h:50
Definition: gdcmSerieHelper.h:38
Definition: gdcmSerieHelper.h:95
FileWithName(File &f)
Definition: gdcmSerieHelper.h:53
SerieHelper DO NOT USE this class, it is only a temporary solution for ITK migration from GDCM 1...
Definition: gdcmSerieHelper.h:68
SingleSerieUIDFileSetmap SingleSerieUIDFileSetHT
Definition: gdcmSerieHelper.h:104
Definition: gdcmSerieHelper.h:39
LodModeType
Definition: gdcmSerieHelper.h:35
a DICOM File See PS 3.10 File: A File is an ordered string of zero or more bytes, where the first byt...
Definition: gdcmFile.h:33
int op
Definition: gdcmSerieHelper.h:99
uint16_t elem
Definition: gdcmSerieHelper.h:97
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element). Basically an uint32_t which...
Definition: gdcmTag.h:38
Definition: gdcmSerieHelper.h:28
Definition: gdcmSerieHelper.h:40
uint16_t group
Definition: gdcmSerieHelper.h:96
std::string filename
Definition: gdcmSerieHelper.h:54
CompOperators
Definition: gdcmSerieHelper.h:27
Definition: gdcmSerieHelper.h:29
Definition: gdcmSerieHelper.h:37

Generated on Sat Dec 21 2013 05:56:17 for GDCM by doxygen 1.8.5
SourceForge.net Logo