[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