2 //-----------------------------------------------------------------------------
3 #ifndef GDCMHEADERHELPER_H
4 #define GDCMHEADERHELPER_H
6 #include "gdcmHeader.h"
8 //-----------------------------------------------------------------------------
9 // Dicom Part 3.3 Compliant
14 BI, // Biomagnetic Imaging
15 CF, // Cinefluorography
17 CR, // Computed Radiography
19 CT, // Computed Tomography
21 DF, // Digital Fluoroscopy
23 DM, // Digital Microscopy
24 DS, // Digital Substraction Angiography
25 DX, // Digital Radiography
26 ECG, // Echocardiography
27 EPS, // Basic Cardiac EP
29 FA, // Fluorescein Angiography
34 LS, // Laser Surface Scan
35 MA, // Magnetic Resonance Angiography
36 MR, // Magnetic Resonance
37 NM, // Nuclear Medicine
39 PT, // Positron Emission Tomography
40 RF, // Radio Fluoroscopy
41 RG, // Radiographic Imaging
42 RTDOSE, // Radiotherapy Dose
43 RTIMAGE, // Radiotherapy Image
44 RTPLAN, // Radiotherapy Plan
45 RTSTRUCT, // Radiotherapy Structure Set
46 SM, // Microscopic Imaging
47 ST, // Single-photon Emission Computed Tomography
50 VF, // Videofluorography
51 XA, // X-Ray Angiography
52 XC // Photographic Imaging
55 //-----------------------------------------------------------------------------
57 * This class is meant to *interpret* data given from gdcmHeader
59 * - it will help other dev to link against there lib
60 * - return value instead of string
61 * - will be able to search for data at some other place
62 * - return *default value* which is not a gdcmHeader goal
65 class GDCM_EXPORT gdcmHeaderHelper : public gdcmHeader {
68 gdcmHeaderHelper(const char *filename,
69 bool exception_on_error = false);
72 std::string GetPixelType();
78 // Usefull for rescaling graylevel:
79 float GetRescaleIntercept();
80 float GetRescaleSlope();
82 int GetNumberOfScalarComponents();
83 int GetNumberOfScalarComponentsRaw();
85 std::string GetStudyUID();
86 std::string GetSeriesUID();
87 std::string GetClassUID();
88 std::string GetInstanceUID();
91 * change GetXImagePosition -> GetXOrigin in order not to confused reader
92 * -# GetXOrigin can return default value (=0) if it was not ImagePosition
93 * -# Image Position is different in dicomV3 <> ACR NEMA -> better use generic
100 int GetImageNumber();
101 ModalityType GetModality();
103 void GetImageOrientationPatient( float* iop );
106 //-----------------------------------------------------------------------------
108 This class should be used for a stack of 2D dicom images.
109 For a multiframe dicom image better use directly gdcmHeaderHelper
111 class GDCM_EXPORT gdcmSerieHeaderHelper {
113 gdcmSerieHeaderHelper() {};
114 ~gdcmSerieHeaderHelper();
116 void AddFileName(std::string filename); //should return bool or throw error ?
117 void AddGdcmFile(gdcmHeaderHelper *file);
118 void SetDirectory(std::string dir);
119 void OrderGdcmFileList();
121 inline gdcmHeaderHelper *GetGdcmHeader()
123 //Assume all element in the list have the same global infos
124 return CoherentGdcmFileList.front();
127 std::list<gdcmHeaderHelper*>& GetGdcmFileList();
130 bool ImagePositionPatientOrdering();
131 bool ImageNumberOrdering();
132 bool FileNameOrdering();
134 std::list<gdcmHeaderHelper*> CoherentGdcmFileList;
137 //-----------------------------------------------------------------------------