GDCM  2.4.5
gdcmDICOMDIRGenerator.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 GDCMDICOMDIRGENERATOR_H
15 #define GDCMDICOMDIRGENERATOR_H
16 
17 #include "gdcmDirectory.h"
18 #include "gdcmTag.h"
19 #include <utility> // std::pair
20 
21 namespace gdcm
22 {
23 class File;
24 class Scanner;
25 class SequenceOfItems;
26 class VL;
27 class DICOMDIRGeneratorInternal;
28 
57 {
58 public:
63 
65  void SetFilenames( FilenamesType const & fns );
66 
68  void SetRootDirectory( FilenameType const & root );
69 
72  void SetDescriptor( const char *d );
73 
75  bool Generate();
76 
78  void SetFile(const File& f);
79  File &GetFile();
80 
81 protected:
82  Scanner &GetScanner();
83  bool AddPatientDirectoryRecord();
84  bool AddStudyDirectoryRecord();
85  bool AddSeriesDirectoryRecord();
86  bool AddImageDirectoryRecord();
87 
88 private:
89  const char *ComputeFileID(const char *);
90  bool TraverseDirectoryRecords(VL start );
91  bool ComputeDirectoryRecordsOffset(const SequenceOfItems *sqi, VL start);
92  size_t FindNextDirectoryRecord( size_t item1, const char *directorytype );
93  SequenceOfItems *GetDirectoryRecordSequence();
94  size_t FindLowerLevelDirectoryRecord( size_t item1, const char *directorytype );
95  typedef std::pair< std::string, Tag> MyPair;
96  MyPair GetReferenceValueForDirectoryType(size_t item);
97  bool SeriesBelongToStudy(const char *seriesuid, const char *studyuid);
98  bool ImageBelongToSeries(const char *sopuid, const char *seriesuid, Tag const &t1, Tag const &t2);
99  bool ImageBelongToSameSeries(const char *sopuid, const char *seriesuid, Tag const &t);
100 
101  DICOMDIRGeneratorInternal * Internals;
102 };
103 
109 } // end namespace gdcm
110 
111 #endif //GDCMDICOMDIRGENERATOR_H
Class to represent a Sequence Of Items (value representation : SQ)
Definition: gdcmSequenceOfItems.h:39
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
#define GDCM_EXPORT
Definition: gdcmWin32.h:34
Directory::FilenameType FilenameType
Definition: gdcmDICOMDIRGenerator.h:60
Value Length.
Definition: gdcmVL.h:29
DICOMDIRGenerator class This is a STD-GEN-CD DICOMDIR generator. ref: PS 3.11-2008 Annex D (Normative...
Definition: gdcmDICOMDIRGenerator.h:56
std::vector< FilenameType > FilenamesType
Definition: gdcmDirectory.h:49
Directory::FilenamesType FilenamesType
Definition: gdcmDICOMDIRGenerator.h:59
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
std::string FilenameType
Definition: gdcmDirectory.h:48
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element). Basically an uint32_t which...
Definition: gdcmTag.h:38
Definition: gdcmASN1.h:20

Generated on Fri Sep 25 2015 17:58:22 for GDCM by doxygen 1.8.9.1
SourceForge.net Logo