[Dcmlib] gdcmWriter, VtkGdcmWriter, ItkGdcmWriter
Jean-Pierre ROUX
jean-pierre.roux at creatis.insa-lyon.fr
Mon Feb 28 08:39:34 CET 2005
Bonjour.
C'est clair qu'on est en train de faire 3 fois ma meme chose ...
Mathieu avait raison quand il disait que toutes les finasseries
devaient etre faites au niveau de gdcm.
Champs obigatoires :
C'est sportif, car ils dependent de la modalite.
Ex : Image Position Patient est ogligatoire pour les images IRM, et
n'a aucun sens pour une image Rayons X, une image Ultrasons, etc
Si on veut faire qq chose qui ne fasse pas tousser dicom3tools, il
faudra prendre la doc Dicom de reference, et faire une GROSSE
fonction (qui unifiera
CheckMandatoryEntries et InitializeDefault ?)
Reste a definir precisement ce qu'on laisse a l'utilisateur le soin
de faire, ce qu'on lui interdit de faire.
Et a quel moment.
Et pour quoi faire.
3 cas, a mon avis :
- L'utilisateur a un tableau de pixels, qu'il a créé a partir de
rien, et veut faire une 'vraie' image Dicom.
- L'utilisateur a une image ACR-Nema ou une image Dicom non conforme
et veut la normaliser
- L'utilisateur a un ensemble d'images, et veut creer de nouvelles
'Series', contenant, par exemple des images parametriques, et ajouter
ces 'Series' a l'examen (Study) d'ou proviennent les images source,
ayant servi a faire les images parametriques.
Il faudra alors qu'on decide quelle latitude on lui laisse pour les UID.
vraisemblablement :
. UID de l'image : on le cree sans lui permettre d'intervenir.
. UID de la Serie: il faudrait lui permettre de le conserver d'une
image a l'autre, s'il veut creer une nouvelle serie -mais pas de
rajouter des images a une 'Serie du constructeur' (?)-
. UID de l'examen: on devrait pouvoir lui permettre de le conserver
d'une image a l'autre, et également de reutiliser le Study UID d'une
'image constructeur'.
Une alternative a ca est de considerer qu'il est conscient de ce
qu'il fait, et de le laisser se debrouiller tout seul.
Autre chose :
Dans ce que j'avais ecrit, et que Benoit a eu raison de commenter
out, car on ne s'etait pas mis d'accord sur l'endroit ou etait geres
les UID, et donc ca petait la test suite, je considerais que
l'utilisateur *savait* les champs auxquels il devait affecter une
valeur (P.ex : Nom Patient, ID Patient, nom medecin, etc), et, s'il
ne l'avait pas fait, la methode CheckMandatoryEntries, juste avant
d'ecrire l'image, rajoutait (et poussait dans l'archive) les champs
obligatoires qui manquaient (et les virait apres l'ecriture), de
telle sorte que l'utilisateur ne 'voit' dans les Entries de son image
que ce qu'il a lui meme mis (et dont les valeurs etaient
naturellement conservees).
Un autre solution serait de mettre a sa disposition une methode
InitializeMandatoryEntries(modality) qui construise un gdcm::File
avec les entries obligatoires pour cette modality et laisser a
l'utilisateur le soin de les remplir.
Ya plu ka se decider...
JPRx
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