GDCM 3.0.24
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
24namespace gdcm
25{
26
36{
37 LD_ALL = 0x00000000,
38 LD_NOSEQ = 0x00000001,
39 LD_NOSHADOW = 0x00000002,
40 LD_NOSHADOWSEQ = 0x00000004
41};
42
43
51{
52public:
53 FileWithName(File &f):File(f),filename(){}
54 std::string filename;
55};
56
57typedef std::vector< SmartPointer<FileWithName> > FileList;
59class Scanner;
60
69{
70public:
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 );
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
87protected:
88 bool UserOrdering(FileList *fileSet);
89 void AddFileName(std::string const &filename);
90 bool AddFile(FileWithName &header);
91 void AddRestriction(const Tag& tag);
93 bool ImageNumberOrdering( FileList *fileList );
94 bool FileNameOrdering( FileList *fileList );
95
96 using Rule = struct RuleStructure{
97 uint16_t group;
98 uint16_t elem;
99 std::string value;
100 int op;
101 };
102 typedef std::vector<Rule> SerieRestrictions;
103
104 typedef std::map<std::string, FileList *> SingleSerieUIDFileSetmap;
106 SingleSerieUIDFileSetmap::iterator ItFileSetHt;
107
108private:
109 SerieRestrictions Restrictions;
110 SerieRestrictions Refine;
111
112 bool UseSeriesDetails;
113 bool DirectOrder;
114
115 BOOL_FUNCTION_PFILE_PFILE_POINTER UserLessThanFunction;
116};
117
118// backward compat
119} // end namespace gdcm
120
121
122#endif //GDCMSERIEHELPER_H
FileWithName.
Definition gdcmSerieHelper.h:51
std::string filename
Definition gdcmSerieHelper.h:54
FileWithName(File &f)
Definition gdcmSerieHelper.h:53
a DICOM File
Definition gdcmFile.h:34
Scanner.
Definition gdcmScanner.h:56
SerieHelper DO NOT USE this class, it is only a temporary solution for ITK migration from GDCM 1....
Definition gdcmSerieHelper.h:69
std::map< std::string, FileList * > SingleSerieUIDFileSetmap
Definition gdcmSerieHelper.h:104
RuleStructure{ uint16_t group Rule
Definition gdcmSerieHelper.h:97
int op
Definition gdcmSerieHelper.h:100
void AddRestriction(const Tag &tag)
std::string value
Definition gdcmSerieHelper.h:99
FileList * GetFirstSingleSerieUIDFileSet()
bool ImageNumberOrdering(FileList *fileList)
void OrderFileList(FileList *fileSet)
bool AddFile(FileWithName &header)
uint16_t elem
Definition gdcmSerieHelper.h:98
bool UserOrdering(FileList *fileSet)
void AddRestriction(uint16_t group, uint16_t elem, std::string const &value, int op)
std::vector< Rule > SerieRestrictions
Definition gdcmSerieHelper.h:102
void AddRestriction(const std::string &tag)
void CreateDefaultUniqueSeriesIdentifier()
void SetDirectory(std::string const &dir, bool recursive=false)
bool FileNameOrdering(FileList *fileList)
void SetLoadMode(int)
Definition gdcmSerieHelper.h:75
std::string CreateUniqueSeriesIdentifier(File *inFile)
void SetUseSeriesDetails(bool useSeriesDetails)
void AddFileName(std::string const &filename)
bool ImagePositionPatientOrdering(FileList *fileSet)
FileList * GetNextSingleSerieUIDFileSet()
SingleSerieUIDFileSetmap SingleSerieUIDFileSetHT
Definition gdcmSerieHelper.h:105
SingleSerieUIDFileSetmap::iterator ItFileSetHt
Definition gdcmSerieHelper.h:106
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element).
Definition gdcmTag.h:39
#define GDCM_EXPORT
Definition gdcmWin32.h:34
Definition gdcmASN1.h:21
LodModeType
Definition gdcmSerieHelper.h:36
@ LD_NOSEQ
Definition gdcmSerieHelper.h:38
@ LD_NOSHADOW
Definition gdcmSerieHelper.h:39
@ LD_ALL
Definition gdcmSerieHelper.h:37
@ LD_NOSHADOWSEQ
Definition gdcmSerieHelper.h:40
bool(* BOOL_FUNCTION_PFILE_PFILE_POINTER)(File *, File *)
Definition gdcmSerieHelper.h:58
CompOperators
Definition gdcmSerieHelper.h:27
@ GDCM_EQUAL
Definition gdcmSerieHelper.h:28
@ GDCM_GREATER
Definition gdcmSerieHelper.h:30
@ GDCM_DIFFERENT
Definition gdcmSerieHelper.h:29
@ GDCM_LESS
Definition gdcmSerieHelper.h:32
@ GDCM_GREATEROREQUAL
Definition gdcmSerieHelper.h:31
@ GDCM_LESSOREQUAL
Definition gdcmSerieHelper.h:33
std::vector< SmartPointer< FileWithName > > FileList
Definition gdcmSerieHelper.h:57