GDCM  2.4.5
gdcmMediaStorage.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 GDCMMEDIASTORAGE_H
15 #define GDCMMEDIASTORAGE_H
16 
17 #include "gdcmTransferSyntax.h"
18 
19 namespace gdcm { class Tag; }
20 namespace gdcm_ns
21 {
22 #if !defined(SWIGPYTHON) && !defined(SWIGCSHARP) && !defined(SWIGJAVA) && !defined(SWIGPHP)
23 using namespace gdcm;
24 #endif
25 class DataSet;
27 class File;
28 
29 // WARNING: This class will be deprecated in the future. There is no reason to extend this class.
30 // Please check the gdcm::UIDs class if adding new well known UID.
31 
44 {
45 public:
46  typedef enum {
47  MediaStorageDirectoryStorage = 0,
115  SegmentationStorage, // "1.2.840.10008.5.1.4.1.1.66.4"
116  RTIonPlanStorage, // 1.2.840.10008.5.1.4.1.1.481.8
117  XRay3DAngiographicImageStorage, // 1.2.840.10008.5.1.4.1.1.13.1.1
119  RTIonBeamsTreatmentRecordStorage, // 1.2.840.10008.5.1.4.1.1.481.9
120  SurfaceSegmentationStorage, // "1.2.840.10008.5.1.4.1.1.66.5"
121  VLWholeSlideMicroscopyImageStorage, // 1.2.840.10008.5.1.4.1.1.77.1.6
122  RTTreatmentSummaryRecordStorage, // 1.2.840.10008.5.1.4.1.1.481.7
123  EnhancedUSVolumeStorage, // 1.2.840.10008.5.1.4.1.1.6.2
124  XRayRadiationDoseSR, // 1.2.840.10008.5.1.4.1.1.88.67
125  VLEndoscopicImageStorage, // 1.2.840.10008.5.1.4.1.1.77.1.1
126  BreastTomosynthesisImageStorage, // 1.2.840.10008.5.1.4.1.1.13.1.3
127  FujiPrivateCRImageStorage, // 1.2.392.200036.9125.1.1.2
128  OphthalmicPhotography8BitImageStorage, // 1.2.840.10008.5.1.4.1.1.77.1.5.1
129  OphthalmicTomographyImageStorage, // 1.2.840.10008.5.1.4.1.1.77.1.5.4
133  MS_END
134  } MSType; // Media Storage Type
135 
136 typedef enum {
137  NoObject = 0, // DICOMDIR
138  Video, // Most common, include image, video and volume
139  Waveform, // Isn't it simply a 1D video ?
140  Audio, // ???
142  URI, // URL...
143  Segmentation, // TODO
144  ObjectEnd
145  } ObjectType;
146 
148  static const char* GetMSString(MSType ts);
149 
151  const char* GetString() const;
152  static MSType GetMSType(const char *str);
153 
154  MediaStorage(MSType type = MS_END):MSField(type) {}
155 
158  static bool IsImage(MSType ts);
159 
160  operator MSType () const { return MSField; }
161 
162  const char *GetModality() const;
163  unsigned int GetModalityDimension() const;
164 
165  static unsigned int GetNumberOfMSType();
166  static unsigned int GetNumberOfMSString();
167  static unsigned int GetNumberOfModality();
168 
169 
174  bool SetFromFile(File const &file);
175 
178  bool SetFromDataSet(DataSet const &ds); // Will get the SOP Class UID
179  bool SetFromHeader(FileMetaInformation const &fmi); // Will get the Media Storage SOP Class UID
180  bool SetFromModality(DataSet const &ds);
181  void GuessFromModality(const char *modality, unsigned int dimension = 2);
182 
183  friend std::ostream &operator<<(std::ostream &os, const MediaStorage &ms);
184 
185  bool IsUndefined() const { return MSField == MS_END; }
186 
187 protected:
188  void SetFromSourceImageSequence(DataSet const &ds);
189 
190 private:
191  bool SetFromDataSetOrHeader(DataSet const &ds, const Tag & tag);
193  const char* GetFromDataSetOrHeader(DataSet const &ds, const Tag & tag);
195  const char* GetFromHeader(FileMetaInformation const &fmi);
197  const char* GetFromDataSet(DataSet const &ds);
198 
199 private:
200  MSType MSField;
201 };
202 //-----------------------------------------------------------------------------
203 inline std::ostream &operator<<(std::ostream &_os, const MediaStorage &ms)
204 {
205  const char *msstring = MediaStorage::GetMSString(ms);
206  _os << (msstring ? msstring : "INVALID MEDIA STORAGE");
207  return _os;
208 
209 }
210 
211 } // end namespace gdcm_ns
212 
213 #endif // GDCMMEDIASTORAGE_H
Definition: gdcmMediaStorage.h:108
Class to represent a Data Set (which contains Data Elements) A Data Set represents an instance of a r...
Definition: gdcmDataSet.h:55
Definition: gdcmMediaStorage.h:138
Definition: gdcmMediaStorage.h:71
Definition: gdcmMediaStorage.h:56
Definition: gdcmMediaStorage.h:127
Definition: gdcmMediaStorage.h:98
MSType
Definition: gdcmMediaStorage.h:46
Definition: gdcmMediaStorage.h:63
Definition: gdcmMediaStorage.h:122
Definition: gdcmMediaStorage.h:120
Definition: gdcmMediaStorage.h:79
Definition: gdcmMediaStorage.h:111
Definition: gdcmMediaStorage.h:103
#define GDCM_EXPORT
Definition: gdcmWin32.h:34
MediaStorage(MSType type=MS_END)
Definition: gdcmMediaStorage.h:154
Definition: gdcmMediaStorage.h:85
Definition: gdcmMediaStorage.h:91
Definition: gdcmMediaStorage.h:61
Definition: gdcmMediaStorage.h:100
Definition: gdcmMediaStorage.h:115
Class to represent a File Meta Information.
Definition: gdcmFileMetaInformation.h:40
Definition: gdcmMediaStorage.h:81
Definition: gdcmMediaStorage.h:55
Definition: gdcmMediaStorage.h:131
Definition: gdcmMediaStorage.h:142
Definition: gdcmMediaStorage.h:73
bool IsUndefined() const
Definition: gdcmMediaStorage.h:185
Definition: gdcmMediaStorage.h:87
Definition: gdcmMediaStorage.h:118
Definition: gdcmMediaStorage.h:125
Definition: gdcmMediaStorage.h:88
Definition: gdcmMediaStorage.h:97
Definition: gdcmMediaStorage.h:65
Definition: gdcmMediaStorage.h:72
Definition: gdcmMediaStorage.h:109
Definition: gdcmMediaStorage.h:116
Definition: gdcmMediaStorage.h:84
Definition: gdcmMediaStorage.h:74
Definition: gdcmMediaStorage.h:117
Definition: gdcmMediaStorage.h:70
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
Definition: gdcmMediaStorage.h:130
Definition: gdcmMediaStorage.h:94
Definition: gdcmMediaStorage.h:90
Definition: gdcmMediaStorage.h:139
Definition: gdcmMediaStorage.h:110
Definition: gdcmMediaStorage.h:58
Definition: gdcmMediaStorage.h:107
Definition: gdcmMediaStorage.h:92
Definition: gdcmMediaStorage.h:143
Definition: gdcmMediaStorage.h:96
Definition: gdcmMediaStorage.h:124
Definition: gdcmMediaStorage.h:62
Definition: gdcmMediaStorage.h:78
Definition: gdcmMediaStorage.h:75
Definition: gdcmMediaStorage.h:57
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element). Basically an uint32_t which...
Definition: gdcmTag.h:38
Definition: gdcmMediaStorage.h:114
Definition: gdcmMediaStorage.h:89
Definition: gdcmMediaStorage.h:105
Definition: gdcmMediaStorage.h:141
Definition: gdcmMediaStorage.h:86
Definition: gdcmASN1.h:20
Definition: gdcmMediaStorage.h:123
Definition: gdcmMediaStorage.h:132
Definition: gdcmMediaStorage.h:126
Definition: gdcmMediaStorage.h:93
std::ostream & operator<<(std::ostream &_os, const MediaStorage &ms)
Definition: gdcmMediaStorage.h:203
Definition: gdcmMediaStorage.h:101
Definition: gdcmMediaStorage.h:95
MediaStorage.
Definition: gdcmMediaStorage.h:43
Definition: gdcmMediaStorage.h:140

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