GDCM 3.0.24
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
19namespace gdcm { class Tag; }
20namespace gdcm_ns
21{
22#if !defined(SWIGPYTHON) && !defined(SWIGCSHARP) && !defined(SWIGJAVA) && !defined(SWIGPHP)
23using namespace gdcm;
24#endif
25class DataSet;
27class 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{
45public:
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
146 MS_END
147 } MSType; // Media Storage Type
148
149typedef enum {
150 NoObject = 0, // DICOMDIR
151 Video, // Most common, include image, video and volume
152 Waveform, // Isn't it simply a 1D video ?
153 Audio, // ???
155 URI, // URL...
157 ObjectEnd
158 } ObjectType;
159
161 static const char* GetMSString(MSType ts);
162
164 const char* GetString() const;
165 static MSType GetMSType(const char *str);
166
167 MediaStorage(MSType type = MS_END):MSField(type) {}
168
171 static bool IsImage(MSType ts);
172
173 operator MSType () const { return MSField; }
174
175 const char *GetModality() const;
176 unsigned int GetModalityDimension() const;
177
178 static unsigned int GetNumberOfMSType();
179 static unsigned int GetNumberOfMSString();
180 static unsigned int GetNumberOfModality();
181
182
187 bool SetFromFile(File const &file);
188
191 bool SetFromDataSet(DataSet const &ds); // Will get the SOP Class UID
192 bool SetFromHeader(FileMetaInformation const &fmi); // Will get the Media Storage SOP Class UID
193 bool SetFromModality(DataSet const &ds);
194 void GuessFromModality(const char *modality, unsigned int dimension = 2);
195
196 friend std::ostream &operator<<(std::ostream &os, const MediaStorage &ms);
197
198 bool IsUndefined() const { return MSField == MS_END; }
199
200protected:
202
203private:
204 bool SetFromDataSetOrHeader(DataSet const &ds, const Tag & tag);
205
206 std::string GetFromDataSetOrHeader(DataSet const &ds, const Tag & tag);
207 std::string GetFromHeader(FileMetaInformation const &fmi);
208 std::string GetFromDataSet(DataSet const &ds);
209
210private:
211 MSType MSField;
212};
213//-----------------------------------------------------------------------------
214inline std::ostream &operator<<(std::ostream &_os, const MediaStorage &ms)
215{
216 const char *msstring = MediaStorage::GetMSString(ms);
217 _os << (msstring ? msstring : "INVALID MEDIA STORAGE");
218 return _os;
219
220}
221
222} // end namespace gdcm_ns
223
224#endif // GDCMMEDIASTORAGE_H
Class to represent a Data Set (which contains Data Elements)
Definition gdcmDataSet.h:56
Class to represent a File Meta Information.
Definition gdcmFileMetaInformation.h:41
a DICOM File
Definition gdcmFile.h:34
MediaStorage.
Definition gdcmMediaStorage.h:44
static const char * GetMSString(MSType ts)
Return the Media String associated. Will return NULL for MS_END.
MSType
Definition gdcmMediaStorage.h:46
@ BreastTomosynthesisImageStorage
Definition gdcmMediaStorage.h:126
@ RTIonPlanStorage
Definition gdcmMediaStorage.h:116
@ VideoPhotographicImageStorage
Definition gdcmMediaStorage.h:132
@ MammographyCADSR
Definition gdcmMediaStorage.h:109
@ VLMicroscopicImageStorage
Definition gdcmMediaStorage.h:130
@ GEPrivate3DModelStorage
Definition gdcmMediaStorage.h:107
@ DigitalMammographyImageStorageForPresentation
Definition gdcmMediaStorage.h:51
@ XRayAngiographicBiPlaneImageStorageRetired
Definition gdcmMediaStorage.h:83
@ RTStructureSetStorage
Definition gdcmMediaStorage.h:91
@ SpacialFiducialsStorage
Definition gdcmMediaStorage.h:87
@ VLWholeSlideMicroscopyImageStorage
Definition gdcmMediaStorage.h:121
@ EncapsulatedCDAStorage
Definition gdcmMediaStorage.h:101
@ HemodynamicWaveformStorage
Definition gdcmMediaStorage.h:75
@ EnhancedPETImageStorage
Definition gdcmMediaStorage.h:131
@ XRayRadiofluoroscopingImageStorage
Definition gdcmMediaStorage.h:82
@ OphthalmicTomographyImageStorage
Definition gdcmMediaStorage.h:129
@ StudyComponentManagementSOPClass
Definition gdcmMediaStorage.h:102
@ DigitalXRayImageStorageForPresentation
Definition gdcmMediaStorage.h:49
@ LegacyConvertedEnhancedPETImageStorage
Definition gdcmMediaStorage.h:138
@ XRayRadiationDoseSR
Definition gdcmMediaStorage.h:124
@ LegacyConvertedEnhancedMRImageStorage
Definition gdcmMediaStorage.h:137
@ DetachedPatientManagementSOPClass
Definition gdcmMediaStorage.h:104
@ EnhancedSR
Definition gdcmMediaStorage.h:95
@ RawDataStorage
Definition gdcmMediaStorage.h:85
@ GrayscaleSoftcopyPresentationStateStorageSOPClass
Definition gdcmMediaStorage.h:80
@ IVOCTForPresentation
Definition gdcmMediaStorage.h:134
@ XRay3DCraniofacialImageStorage
Definition gdcmMediaStorage.h:133
@ DetachedVisitManagementSOPClass
Definition gdcmMediaStorage.h:103
@ BasicVoiceAudioWaveformStorage
Definition gdcmMediaStorage.h:77
@ MultiframeSingleBitSecondaryCaptureImageStorage
Definition gdcmMediaStorage.h:66
@ MultiframeGrayscaleWordSecondaryCaptureImageStorage
Definition gdcmMediaStorage.h:68
@ UltrasoundImageStorageRetired
Definition gdcmMediaStorage.h:57
@ XRayAngiographicImageStorage
Definition gdcmMediaStorage.h:81
@ ModalityPerformedProcedureStepSOPClass
Definition gdcmMediaStorage.h:112
@ SurfaceSegmentationStorage
Definition gdcmMediaStorage.h:120
@ SecondaryCaptureImageStorage
Definition gdcmMediaStorage.h:65
@ MRImageStorage
Definition gdcmMediaStorage.h:61
@ StandaloneOverlayStorage
Definition gdcmMediaStorage.h:70
@ UltrasoundMultiFrameImageStorage
Definition gdcmMediaStorage.h:60
@ FujiPrivateCRImageStorage
Definition gdcmMediaStorage.h:127
@ AmbulatoryECGWaveformStorage
Definition gdcmMediaStorage.h:74
@ EnhancedXAImageStorage
Definition gdcmMediaStorage.h:118
@ VideoEndoscopicImageStorage
Definition gdcmMediaStorage.h:105
@ UltrasoundImageStorage
Definition gdcmMediaStorage.h:58
@ HardcopyColorImageStorage
Definition gdcmMediaStorage.h:141
@ RTIonBeamsTreatmentRecordStorage
Definition gdcmMediaStorage.h:119
@ PETImageStorage
Definition gdcmMediaStorage.h:88
@ LegacyConvertedEnhancedCTImageStorage
Definition gdcmMediaStorage.h:136
@ VideoMicroscopicImageStorage
Definition gdcmMediaStorage.h:145
@ GeneralElectricMagneticResonanceImageStorage
Definition gdcmMediaStorage.h:106
@ BreastProjectionXRayImageStorageForProcessing
Definition gdcmMediaStorage.h:140
@ BasicTextSR
Definition gdcmMediaStorage.h:96
@ Philips3D
Definition gdcmMediaStorage.h:94
@ SpacialRegistrationStorage
Definition gdcmMediaStorage.h:86
@ IVOCTForProcessing
Definition gdcmMediaStorage.h:135
@ DigitalIntraoralXRayImageStorageForProcessing
Definition gdcmMediaStorage.h:54
@ EncapsulatedPDFStorage
Definition gdcmMediaStorage.h:100
@ OphthalmicPhotography16BitImageStorage
Definition gdcmMediaStorage.h:144
@ VLEndoscopicImageStorage
Definition gdcmMediaStorage.h:125
@ XRay3DAngiographicImageStorage
Definition gdcmMediaStorage.h:117
@ VLPhotographicImageStorage
Definition gdcmMediaStorage.h:114
@ NuclearMedicineImageStorageRetired
Definition gdcmMediaStorage.h:64
@ BreastProjectionXRayImageStorageForPresentation
Definition gdcmMediaStorage.h:139
@ OphthalmicPhotography8BitImageStorage
Definition gdcmMediaStorage.h:128
@ MultiframeGrayscaleByteSecondaryCaptureImageStorage
Definition gdcmMediaStorage.h:67
@ RTDoseStorage
Definition gdcmMediaStorage.h:90
@ EnhancedMRImageStorage
Definition gdcmMediaStorage.h:62
@ RTImageStorage
Definition gdcmMediaStorage.h:89
@ HangingProtocolStorage
Definition gdcmMediaStorage.h:111
@ MultiframeTrueColorSecondaryCaptureImageStorage
Definition gdcmMediaStorage.h:69
@ StandaloneVOILUTStorage
Definition gdcmMediaStorage.h:79
@ CardiacElectrophysiologyWaveformStorage
Definition gdcmMediaStorage.h:76
@ DetachedStudyManagementSOPClass
Definition gdcmMediaStorage.h:99
@ RTPlanStorage
Definition gdcmMediaStorage.h:92
@ CTImageStorage
Definition gdcmMediaStorage.h:55
@ FujiPrivateMammoCRImageStorage
Definition gdcmMediaStorage.h:143
@ CSANonImageStorage
Definition gdcmMediaStorage.h:93
@ MRSpectroscopyStorage
Definition gdcmMediaStorage.h:63
@ HardcopyGrayscaleImageStorage
Definition gdcmMediaStorage.h:97
@ StandaloneCurveStorage
Definition gdcmMediaStorage.h:71
@ StandaloneModalityLUTStorage
Definition gdcmMediaStorage.h:78
@ ComputedRadiographyImageStorage
Definition gdcmMediaStorage.h:48
@ RTTreatmentSummaryRecordStorage
Definition gdcmMediaStorage.h:122
@ DigitalXRayImageStorageForProcessing
Definition gdcmMediaStorage.h:50
@ DigitalIntraoralXrayImageStorageForPresentation
Definition gdcmMediaStorage.h:53
@ ComprehensiveSR
Definition gdcmMediaStorage.h:98
@ PhilipsPrivateMRSyntheticImageStorage
Definition gdcmMediaStorage.h:113
@ ToshibaPrivateDataStorage
Definition gdcmMediaStorage.h:108
@ LeadECGWaveformStorage
Definition gdcmMediaStorage.h:72
@ EnhancedUSVolumeStorage
Definition gdcmMediaStorage.h:123
@ UltrasoundMultiFrameImageStorageRetired
Definition gdcmMediaStorage.h:59
@ DigitalMammographyImageStorageForProcessing
Definition gdcmMediaStorage.h:52
@ KeyObjectSelectionDocument
Definition gdcmMediaStorage.h:110
@ GeneralECGWaveformStorage
Definition gdcmMediaStorage.h:73
@ NuclearMedicineImageStorage
Definition gdcmMediaStorage.h:84
@ SegmentationStorage
Definition gdcmMediaStorage.h:115
@ EnhancedCTImageStorage
Definition gdcmMediaStorage.h:56
@ EnhancedMRColorImageStorage
Definition gdcmMediaStorage.h:142
bool SetFromDataSet(DataSet const &ds)
void SetFromSourceImageSequence(DataSet const &ds)
@ Video
Definition gdcmMediaStorage.h:151
@ Segmentation
Definition gdcmMediaStorage.h:156
@ URI
Definition gdcmMediaStorage.h:155
@ PDF
Definition gdcmMediaStorage.h:154
@ Audio
Definition gdcmMediaStorage.h:153
@ Waveform
Definition gdcmMediaStorage.h:152
const char * GetString() const
Return the Media String of the object.
static bool IsImage(MSType ts)
static unsigned int GetNumberOfMSString()
static MSType GetMSType(const char *str)
void GuessFromModality(const char *modality, unsigned int dimension=2)
const char * GetModality() const
bool SetFromModality(DataSet const &ds)
static unsigned int GetNumberOfMSType()
unsigned int GetModalityDimension() const
MediaStorage(MSType type=MS_END)
Definition gdcmMediaStorage.h:167
bool SetFromFile(File const &file)
bool SetFromHeader(FileMetaInformation const &fmi)
bool IsUndefined() const
Definition gdcmMediaStorage.h:198
static unsigned int GetNumberOfModality()
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
std::ostream & operator<<(std::ostream &os, const Directory &d)
Definition gdcmDirectory.h:88