[Dcmlib] Yet another tag
Jean-Pierre Roux
jpr at creatis.insa-lyon.fr
Fri Nov 5 16:36:13 CET 2004
Mathieu Malaterre wrote:
>
> Au fait, ici c'est quoi la valeur voulue:
>
> const unsigned int Document::MAX_SIZE_LOAD_ELEMENT_VALUE = 0xfff; // 4096
>
> 0xfff = 4095, non ?
Bien vu !
Faute de frappe dans le commentaire !
MAX_SIZE_LOAD_ELEMENT_VALUE , c'est la valeur au dessus de la quelle on
decide (arbitrairement) que c'est trop long, et qu'on ne charge pas la
valeur (tout de suite, mais en fait, on ne la charge jamais -pour le
moment-).
Ce n'est qu'exceptionnellement, maintenant, qu'on a des champs qui sont
plus longs que ca.
C'etait interessant a l'epoque où l'on ne traitait pas les sequences, et
c'etait un moyen de les ignorer, plutot que de les ammener brutalement
en mémoire et ne rien pouvoir en faire.
On peut jouer a changer la valeur (mettre 15, par exemple), pour voir ce
qui pette quand il manque une valeur dont on a *vraiment* besoin
- ca fait vrailent du vilain ... la 'Transfert Syntax' n'est par
chargée, par exemple, etc-
On peut mettre 7fffffffffffffff, pour se debarrasser du soucis de savoir
si les pb que l'on a sont ou non dus a ce qu'une valeur (en géneral une
BinEntry) n'est pas chargee.
--> A propos de Sequences, on a vire, et j'etais d'accord, l'option
'enableSequence' (true ou false) du constructeur du Header qui
permettait, justement, de ne pas charger les Sequences (celles dont la
longueur etait precisée).
Il se trouve qu'on a maintenant à faire a des images MR Philips, telles
qu'elles sont gravées sur la console de l'IRM, c'est à dire ... toutes,
et pour lesquelles le contenu de certaines Dicom Sequences est buggé :
alors que l'image est annoncée en Little Endian -et elle l'est-, sans
sommation, dans certaines Dicom Sequences privées, les longueurs sont
codées en big endian . Si on remet les longueur d'aplomb, a l'aide de
l'editeur hexa, ca marche.
Il ne me parait pas tres serieux de faire un patch tel que :
si on est dans le cas :
Modality = MR et Manufacturer = Philips Medical Systems et Station Name
= NTSCAN et Manufacturer's Model Name = Intera et ... etc
et num = 0x2001 et elem =0xe05f
alors, pour tous les DocEntry qui sont dans cette Sequence, permutter
les octets de la longueur lue .
La bonne manip serait de permettre a l'utilisateur de dire s'il veut ou
non ignorer les Sequences.
Ton opinion ?
>
> Matt
>
>
More information about the Dcmlib
mailing list