[Dcmlib] TestChangeHeader

Eric Boix Eric.Boix at creatis.insa-lyon.fr
Wed Sep 8 19:38:28 CEST 2004


	Salut Mathieu,

Quoting Mathieu Malaterre <mathieu.malaterre at kitware.com>:
> - Est-ce que ca vaut le coup que je m'occupe des champs prives ? En fait 
> des que je trouve 'unkn' je saute le champ. Est-ce que plus tard un 
> utilisateur pourra avoir un dictionaire Dicom prive pour que ces champs 
> ne soient pas ecartes ?
Oui, tout a fait. Le parsing se fait par defaut avec le dictionnaire
public. L'API prevoit de pouvoir specifier un dictionaire prive'
(cf gdcmDocument::SetShaDict(gdcmDict *dict)) qui est utilise' en
plus du dictionnaire public au moment du parsing. 
Ceci dit bien qu'on ai prevu les choses, tout cela reste non-teste
(et je predis un peu de boulot avant que cela fonctionne).

> - Qu'est que je suis sense faire avec les 'gdcm::Binary data NOT loaded' 
> et 'gdcm::Binary data loaded with length is xxx'. Qu'est ce que ca 
> represente ?
Certains types contenus dans un header dicom sont naturelement convertibles
en string (on utilise la representation explicite ou implicite donne'e
par le dictionnaire). Exemple: un US (unisgned short en binaire sur
le disque) est exprimable en string. Pour d'autres types (pense a une LUT),
y'a pas de sens a representer cela en interne a gdcm comme un string.
Donc on le charge en binaire, et pour l'afficher dans un print
on se contente d'afficher l'adresse et la taille...

> Est-ce qu'il faut que je les concervent pour les ecrire plus tard ?
Ben, tout depend de ce que tu veux ecrire. Exemple: je charge une
image DICOM en niveau de gris plus une LUT. 
Si tu veux juste l'anonymisee alors il te faut conserver la partie
niveau de gris ET la LUT.
Si tu veux la convertir en RGB, alors tu peux butter le niveau de gris
et la LUT.
JPR travaille la dessus pour faire une API plus user friendly...

> Comment 'charge' celles qui sont 'NOT loaded' ?
Ben, c'est vrai que
   void gdcmDocument::LoadDocEntry(gdcmDocEntry* entry)
ne charge que si la taille est pas plus grosse que ce que l'user 
a specifie' comme limite.
Tu peux donc invoquer gdcmDocument::SetMaxSizeLoadEntry( A_FOND_A_FOND)
puis gdcmDocument::LoadDocEntry(gdcmDocEntry* entry)...
Heueu, ca fonctionne pour toi ?

	Frog.



More information about the Dcmlib mailing list