[Dcmlib] Backport on gdcm1.2 : CheckMandatoryElements
Jean-Pierre Roux
Jean-Pierre.Roux at creatis.insa-lyon.fr
Fri Mar 10 10:55:09 CET 2006
Mathieu.
Je ne suis pas entierement d'accord avec les modifs que tu as faites
dans CheckMandatoryElements :
0018|5100 [Patient Position] [HFS ]
n'est pas une info redondante : si un Patient est imagé une fouis en
Head First, une autre fois en Feet First, il faudra bien qu'on aie
l'info pour, par exemple, recaler les images.
Tu peux dire qu'elle n'a pas de sens si on cree une image from scratch,
mais dans ses conditions, 0020|0037 [Image Orientation (Patient)] =
[1\0\0\0\1\0 ] (ou quoi que soit d'aitre)n'a pas de sens non plus.
Et ce qui est sûr, c'est que si qq'un fabrique des vues MIP ou MPR a
partir d'un serie d'images natives, 0020|0037 [Image Orientation
(Patient)] n'aura pas cette valeur pour toutes les images.
D'autant moins que , dans ce cas 0008|0016 [SOP Class UID] *devra* valoir
[1.2.840.10008.5.1.4.1.1.7 ] ==> [Secondary Capture Image Storage]
(l'option retenue autrefois, de forcer SOP Class UID a [Secondary
Capture Image Storage] des qu'une image etait modifiée etait stupide; ce
n'est pas une raison pour ne jamais utiliser cette valeur, lorsqu'elle
doit l'etre.
GDCM ne pourra *jamais* deviner ce que l'utilisateur veut faire, c'est a
l'utilisateur de le dire.
Dans la version CVS, l'utilisateur a la possibilité de spécifier dans
lequel des 4 cas suivants il se situe (il y aura, sans probleme, la
possibilité d'affiner encore, si on en a besoin, ou de modifier la value
par defaut USER_OWN_IMAGE, pour le moment), en utilisant la methode
FileHelper::SetContentType( );
If he rewrites an image (after modifying the pixels with a mathematical
function of the original image) he has to say :
myFileHelper.SetContentType(FILTERED_IMAGE);
--> SOP Class UID : unmodified
--> 'Image Type' : DERIVED\PRIMARY
If he rewrites an image (without modifying the pixels of the original
image) he has to say :
myFileHelper.SetContentType(UNMODIFIED_PIXELS_IMAGE);
--> SOP Class UID : unmodified
--> 'Image Type' : unmodified
If he creates his own image ex-nihilo he has to say :
myFileHelper.SetContentType(USER_OWN_IMAGE);
-->SOP Class UID -> [Secondary Capture Image Storage]
--> 'Image Type' : DERIVED\PRIMARY <-- I'd agree to modify it
If he creates a MIP image, or a MPR image from a Serie he has to say
myFileHelper.SetContentType(CREATED_IMAGE)
-->SOP Class UID -> [Secondary Capture Image Storage]
--> 'Image Type' : DERIVED\PRIMARY <-- I'd agree to modify it
JP
--> Benoit : je parie que tu vas me dire que j'ai encore oublie la macro
VTK qui permet de set le ContentType :-(
More information about the Dcmlib
mailing list