1 // $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.h,v 1.4 2003/10/03 14:26:11 jpr Exp $
3 #ifndef GDCMHEADERHELPER_H
4 #define GDCMHEADERHELPER_H
6 #include "gdcmHeader.h"
11 // Dicom Part 3.3 Compliant
16 BI, // Biomagnetic Imaging
17 CF, // Cinefluorography
19 CR, // Computed Radiography
21 CT, // Computed Tomography
23 DF, // Digital Fluoroscopy
25 DM, // Digital Microscopy
26 DS, // Digital Substraction Angiography
27 DX, // Digital Radiography
28 ECG, // Echocardiography
29 EPS, // Basic Cardiac EP
31 FA, // Fluorescein Angiography
36 LS, // Laser Surface Scan
37 MA, // Magnetic Resonance Angiography
38 MR, // Magnetic Resonance
39 NM, // Nuclear Medicine
41 PT, // Positron Emission Tomography
42 RF, // Radio Fluoroscopy
43 RG, // Radiographic Imaging
44 RTDOSE, // Radiotherapy Dose
45 RTIMAGE, // Radiotherapy Image
46 RTPLAN, // Radiotherapy Plan
47 RTSTRUCT, // Radiotherapy Structure Set
48 SM, // Microscopic Imaging
49 ST, // Single-photon Emission Computed Tomography
52 VF, // Videofluorography
53 XA, // X-Ray Angiography
54 XC // Photographic Imaging
58 This class is meant to *interpret* data given from gdcmHeader
60 * it will help other dev to link against there lib
61 * return value instead of string
62 * will be able to search for data at some other place
63 * return *default value* which is not a gdcmHeader goal
66 class GDCM_EXPORT gdcmHeaderHelper : public gdcmHeader {
70 gdcmHeaderHelper::gdcmHeaderHelper();
71 gdcmHeaderHelper::gdcmHeaderHelper(const char *filename, bool exception_on_error = false);
74 std::string GetPixelType();
80 int GetNumberOfScalarComponents();
82 std::string GetStudyUID();
83 std::string GetSeriesUID();
84 std::string GetClassUID();
85 std::string GetInstanceUID();
88 change GetXImagePosition -> GetXOrigin in order not to confused reader
89 -# GetXOrigin can return default value (=0) if it was not ImagePosition
90 -# Image Position is different in dicomV3 <> ACR NEMA -> better use generic
98 ModalityType GetModality();
100 void GetImageOrientationPatient( float* iop );
106 This class should be used for a stack of 2D dicom images.
107 For a multiframe dicom image better use directly gdcmHeaderHelper
109 class GDCM_EXPORT gdcmSerieHeaderHelper {
112 gdcmSerieHeaderHelper::gdcmSerieHeaderHelper() {};
113 gdcmSerieHeaderHelper::~gdcmSerieHeaderHelper();
115 void AddFileName(std::string filename); //should return bool or throw error ?
116 void AddGdcmFile(gdcmHeaderHelper *file);
117 void SetDirectory(std::string dir);
118 void OrderGdcmFileList();
120 gdcmHeaderHelper *GetGdcmHeader()
122 //Assume all element in the list have the same global infos
123 return CoherentGdcmFileList.front();
126 std::list<gdcmHeaderHelper*>& GetGdcmFileList();
129 bool ImagePositionPatientOrdering();
130 bool ImageNumberOrdering();
131 bool FileNameOrdering();
133 std::list<gdcmHeaderHelper*> CoherentGdcmFileList;