]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/kernel/marDicom.h
Remove useless files
[creaMaracasVisu.git] / lib / maracasVisuLib / src / kernel / marDicom.h
1 /*=========================================================================
2
3   Program:   wxMaracas
4   Module:    $RCSfile: marDicom.h,v $
5   Language:  C++
6   Date:      $Date: 2008/11/14 11:33:20 $
7   Version:   $Revision: 1.2 $
8
9   Copyright: (c) 2002, 2003
10   License:
11   
12      This software is distributed WITHOUT ANY WARRANTY; without even 
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14      PURPOSE.  See the above copyright notice for more information.
15
16 =========================================================================*/
17 #ifndef __MAR__KERNEL__DICOM__HXX__
18 #define __MAR__KERNEL__DICOM__HXX__
19 /*
20
21 #include <kgfo/volume.h>
22 #include <wx/list.h>
23 #include "marObject.h"
24
25 class MAR_KERNEL_EXPORT marDicom : public marObject
26 {
27     public:
28
29     enum DicomTags
30         {
31             ID_File_Name = 0                   ,
32             ID_SOP_Class_UID                   ,
33             ID_SOP_Instance_UID                ,
34             ID_Study_Date                      ,
35             ID_Series_Date                     ,
36             ID_Acquisition_Date                ,
37             ID_Image_Date                      ,
38             ID_Study_Time                      ,
39             ID_Series_Time                     ,
40             ID_Acquisition_Time                ,
41             ID_Image_Time                      ,
42             ID_Modality                        ,
43             ID_Manufacturer                    ,
44             ID_Institution_Name                ,
45             ID_Study_Description               ,
46             ID_Series_Description              ,
47             ID_Admitting_Diagnoses_Description ,
48             ID_Patient_Name                    ,
49             ID_Patient_ID                      ,
50             ID_Body_Part_Examined              ,
51             ID_Scanning_Sequence               ,
52             ID_Sequence_Variant                ,
53             ID_Scan_Options                    ,
54             ID_MR_Acquisition_Type             ,
55             ID_Sequence_Name                   ,
56             ID_Slice_Thickness                 ,
57             ID_Repetition_Time                 ,
58             ID_Echo_Time                       ,
59             ID_Inversion_Time                  ,
60             ID_Number_of_Averages              ,
61             ID_Imaging_Frequency               ,
62             ID_Imaged_Nucleus                  ,
63             ID_Echo_Number                     ,
64             ID_Magnetic_Field_Strength         ,
65             ID_Spacing_Between_Slices          ,
66             ID_Echo_Train_Length               ,
67             ID_Percent_Sampling                ,
68             ID_Percent_Phase_Field_of_View     ,
69             ID_Receiving_Coil                  ,
70             ID_Patient_Position                ,
71             ID_Study_Instance_UID              ,
72             ID_Series_Instance_UID             ,
73             ID_Study_ID                        ,
74             ID_Series_Number                   ,
75             ID_Acquisition_Number              ,
76             ID_Image_Number                    ,
77             ID_Patient_Orientation             ,
78             ID_Image_Position                  ,
79             ID_Image_Position_Patient          ,
80             ID_Image_Orientation               ,
81             ID_Image_Orientation_Patient       ,
82             ID_Location                        ,
83             ID_Frame_of_Reference_UID          ,
84             ID_Slice_Location                  ,
85             ID_Image_Comments                  ,
86             ID_Pixel_Spacing                   ,
87             ID_Window_Center                   ,
88             ID_Window_Width                    ,
89             ID_dicom_tags_count
90         };
91
92     public:
93
94     marDicom( marParameters* p = NULL );
95
96     ~marDicom( )
97         {
98             reset( );
99         }
100
101     wxString& getActualStudy( )
102         {
103             return( _actualStudy );
104         }
105
106     wxString& getActualSerie( )
107         {
108             return( _actualSerie );
109         }
110
111     wxArrayString getStudies( );
112     wxArrayString getSeries( );
113     wxArrayString getStudyData( );
114     wxArrayString getSerieData( );
115
116     void loadActualSerie( );
117
118     wxArrayString& getImageFileNames( )
119         {
120             return( _imageFileNames );
121         }
122
123     wxArrayString& getImageNumbers( )
124         {
125             return( _imageNumbers );
126         }
127
128     void loadVolume( bool force = false );
129     void freeVolume( );
130     bool volumeLoaded( )
131         {
132             return( _volume != NULL );
133         }
134
135     kVolume* getVolume( )
136         {
137             return( _volume );
138         }
139
140     wxString getImageNumber( int i )
141         {
142             return( _imageNumbers[ i ] );
143         }
144
145     wxString getImageFileName( int i )
146         {
147             return( _imageFileNames[ i ] );
148         }
149
150     bool setActualStudy( wxString& s );
151     bool setActualSerie( wxString& s );
152     
153     //
154     // General methods
155     //
156     void reset( )
157         {
158             freeVolume( );
159             _imageFileNames.Clear( );
160             _imageNumbers.Clear( );
161         }
162
163     void copyFrom( const marObject& from );
164    //
165    //Persistence methods
166    //
167     bool save( std::ofstream& os );
168     bool load( std::ifstream& is );
169
170     wxArrayString getRelationalArrayStudyData( );
171     wxArrayString getRelationalArraySerieData( );
172
173     private:
174
175     wxString _actualStudy;
176     wxString _actualSerie;
177     wxArrayString _imageFileNames;
178     wxArrayString _imageNumbers;
179     kVolume* _volume;
180
181 };
182
183
184 */
185 #endif // __MAR__KERNEL__DICOM__HXX__