]> Creatis software - gdcm.git/blob - src/gdcm.h
c3d5bda22d5384bd5d7f7b3be7c20b8a2a52de65
[gdcm.git] / src / gdcm.h
1 // gdcm.h
2
3 // gdcmlib Intro:  
4 // * gdcmlib is a library dedicated to reading and writing dicom files.
5 // * LGPL for the license
6 // * lightweigth as opposed to CTN or DCMTK which come bundled which try
7 //   to implement the full DICOM standard (networking...). gdcmlib concentrates
8 //   on reading and writing
9 // * Formats: this lib should be able to read ACR-NEMA v1 and v2, Dicom v3 (as
10 //   stated in part10). [cf dcmtk/dcmdata/docs/datadict.txt]
11 // * Targeted plateforms: Un*xes and Win32/VC++6.0
12 //
13 //
14 // TODO
15 // The declarations commented out and starting with "TODO Swig" needed
16 // to be temporarily removed for swig to proceed correctly (in fact
17 // problems appears at loading of _gdcm.[so/dll]). So, simply uncomment
18 // the declaration once you provided the definition of the method...
19
20 #ifndef GDCM_H
21 #define GDCM_H
22
23 using namespace std;
24
25 #include <iostream>
26 #include <stddef.h>   // For size_t
27 #include <stdio.h>    // FIXME For FILE on GCC only
28 #include <list>
29 #include <map>
30 #include "gdcmException.h"
31
32
33 // The requirement for the hash table (or map) that we shall use:
34 // 1/ First, next, last (iterators)
35 // 2/ should be sortable (i.e. sorted by TagKey). This
36 //    condition shall be droped since the Win32/VC++
37 //    implementation doesn't look a sorted one. Pffff....
38 // 3/ Make sure we can setup some default size value,
39 //    which should be around 4500 entries which is the
40 //    average dictionary size (said JPR)
41 //
42 // JPR CLEAN
43 // En fait, je disais que dans LE Directory Dicom (dans son etat 2001)
44 // il y a +/- 1600 entrees.
45 // Une valeur raisonable pour un  majorant du nombre d'entrees
46 // dans une entete DICOM d'une image semble semble etre 300
47 // Si on 'decortique' les elements SQ (ce qui ne semble pas etre fait pour le moment)
48 // on risque en fait de depasser ... un nombre non previsible dans le cas d'une entree SQ
49 // contenant lui même un tres grand nombre d'entrees ?!?)
50 // Quant au nombre d'entrees dans un DICOMDIR, c'est encore pire : il n'est limité
51 // que par la taille d'un CD-ROM (les DVD-ROM ne sont pas encore pris en compte)
52 // On peut s'attendre a 30 entrees par fichier dicom présent sur le CD-ROM
53 // REMARQUE : il faudra se pencher sur le pb de la creation du DICOMDIR lorsqu'on voudra 
54 // exporter des images lisibles par les consoles cliniques 
55 // et pas seulement importables dans e-film. 
56
57 ////////////////////////////////////////////////////////////////////////////
58 // Tag based hash tables.
59 // We shall use as keys the strings (as the C++ type) obtained by
60 // concatenating the group value and the element value (both of type
61 // unsigned 16 bit integers in Dicom) expressed in hexadecimal.
62 // Example: consider the tag given as (group, element) = (0x0010, 0x0010).
63 // Then the corresponding TagKey shall be the string 0010|0010 (where
64 // the | (pipe symbol) acts as a separator). Refer to 
65 // gdcmDictEntry::TranslateToKey for this conversion function.
66
67 #include "gdcmCommon.h"
68 #include "gdcmDictEntry.h"
69 #include "gdcmDict.h"
70 #include "gdcmDictSet.h"
71 #include "gdcmElValue.h"
72 #include "gdcmElValSet.h"
73 #include "gdcmHeader.h"
74 #include "gdcmFile.h"
75
76 //class gdcmSerie : gdcmFile;
77 //class gdcmMultiFrame : gdcmFile;
78
79 #endif // #ifndef GDCM_H