[Dcmlib] gdcm proposal
Jean-Pierre ROUX
jean-pierre.roux at creatis.insa-lyon.fr
Tue Apr 26 22:19:57 CEST 2005
At 10:21 -0400 26/04/05, Mathieu Malaterre wrote:
[...]
> Sinon dans les commentaires en vrac, je continue a donner un role
>different a /l'image DICOM/. Pour moi on peut parfaitement avoir un
>header avec PixelSize=12, Spacing=0,0 et pourtant l'image gdcm.Image
>doit etre construite correctement. Ainsi on peut faire PrintDocument et
>montrer les valeurs effectivement lues, et aussi bien plus tard sauver
>l'image correctement. L'idee serait que gdcm.Writer ecrive un
>dictionaire dont les valeurs se baserait sur gdcm.Image (et ecraserait
>celle de l'input). Je fais reference a l'horeur qui est faite en ce
>moment dans gdcm, si une image est codee sur 12 bits juste avant de
>l'ecrire on change 12 -> 16 ... ce qui veut dire que PrintDocument est
>dependant de l'ordre des actions au moment de l'ecriture.
J'ai l'impression que decris la situation 'gdcm-Juillet 2004' ...
L'ecriture d'un fichier provoquait'en douce' la modif de certains
champs (comme ce que tu décrits), ce qui fait qu'effectivement un
Print() n'aurait pas eu le même output avant et pares l'ecrire du
fichier.
Ce n'est plus le cas actuellement, et j'ai l'impression que le
'dictionaire dont les valeurs se baseraient sur gdcm.Image (et
ecraseraient celles de l'input)', il y a deja le 'Archive' qu'a ecrit
Benoit il y a plusieurs mois, qui fait ca.
Me trompe-je?
> J'ai essayer d'avoir un reader/writer ala VTK, mais c'est aussi base
>sur le principe de ifstream/ofstream. Je fais donc le choix de dupliquer
>le header DICOM... ou alors il faudrait faire un Writer astucieux qui au
>moment d'ecrire valeur par valeur verifierais qu'il n'ecrive pas une betise.
>
> J'introduis aussi la notion de gdcm.Validator ou par exemple on
>verifierais la VM des elements et autres DICOMeries.
J'avais proposé, en son temps, de faire un 'Check Header'qu'on aurait
lancé juste avant d'écrire, et puis laissé tomber l'idée :
Si, lors du Test Write Dicom (ou l'on prend tous les champs, un par
un, pour faire un nouveau 'gdcm::Document'), on trouve une VM qui
n'est pas bonne, que fait-on? On refuse d'écrire le fichier, alors
qu'il aurait été la copie conforme d'un fichier Siemens, par exemple?
Quant aux champs de type 1, 1C, 2, 2C, 3, vu que leur type varie
selon la modalité (et que les constructeurs ne le respectent pas), ca
ferait de la programmation kilometrique, pour, probablement pas
grand-chose.
JPRx
>
> Merci de me faire part de vos commentaires.
>
>Mathieu
>Ps: y'a beaucoup de choses a dire mais j'ai peur de faire un mail trop
>long et personne ne le lirait...enfin bon je verrai bien les reactions
>et en fonction je serais + prolix
>_______________________________________________
>Dcmlib mailing list
>Dcmlib at creatis.insa-lyon.fr
>http://www.creatis.insa-lyon.fr/mailman/listinfo/dcmlib
Jean-Pierre ROUX
UMR CNRS 5515-CREATIS
Laboratoire de Radiologie Experimentale
Hopital Cardiologique
28 Avenue du Doyen LEPINE
B.P. Lyon-Montchat
69394 Lyon Cedex 03
Tel : (+33) 04 72 35 74 12
Fax : (+33) 04 72 68 49 16
URL : http://www.creatis.univ-lyon1.fr
e-mail : jpr at creatis.univ-lyon1.fr
More information about the Dcmlib
mailing list