[Dcmlib] [DICOM] Ongoing effort for supporting Private Dictionaries in ITK-gdcm

Jean-Pierre Roux jpr at creatis.insa-lyon.fr
Tue Sep 6 17:16:25 CEST 2005


Mathieu Malaterre wrote:

>> Do you mean some images are *not* 'gdcm readable' when their relevant 
>> Private Dicom Dictionary is not used? (in this case, it's a gdcm bug 
>> we (-I-) have to fix)
>> Or just that users want to get the value of some Dicom entries 
>> belonging to a Shadow (private) Group?
>> *With* or *without* the Private Dictionary, the value is available in 
>> memory.
>
>
> Je sais le probleme c'est que sans choper la spec, tu peux pas 
> extraire les infos d'une image implicit, pour interpreter les donnees...

If you know that some important information is in a private tag, you 
probabely know also what type it is.

> Le seul vrai probleme c'est le private tag que je t'ai envoye y'a pas 
> longtemps: (et que je retrouve pas...)

See at :
http://www.creatis.insa-lyon.fr/~jpr/PUBLIC/gdcm/gdcmSampleData/were_in_gdcmData/MR_forceLoad29-1010_29-1020.dcm
+
http://www.creatis.insa-lyon.fr/~jpr/PUBLIC/gdcm/gdcmSampleData/were_in_gdcmData/MR_forceLoad29-1010_29-1020.README.txt

---------------------------
This image contains two 'long' Entries (29|1010,29|1020), not loaded with the standard value of
MAX_SIZE_LOAD_ELEMENT_VALUE (4096); but the user needs them.
Use method
Document::AddForceLoadElement()
before calling
Document::Load().

Check the result with 
PrintFile filein=... forceload=29-1010,29-1020
---------------------------

The user troubles came from the fact that the tag was not loaded in memory.
Using or no a Private Dict doesn't change anything...
User has to write 
f->AddForceLoadElement(0x0029,0x1010);
f->Load();
to load it.

Since the VR is not known, it will be a BinEntry.
And actually it is!
(just hexedit the file, you'll see it)
It contains ome ASCII keywords, each one followed by binary informations (?!?)
If user doesn't know the structure of this field, he will not guess it (and no Private Dictionary will give it him!)

If user *knows* it's an ASCII array, and wants to use it as a st::string, he now just writes :
f->GetEntryForcedAsciiValue(group, number);
(Note : in this case, he *may not* do that : it's *not*  an ASCII array ...)

(I'll commit this modif imediately)


>
> Et celui la qui est un peu hors norme:
> http://www.creatis.insa-lyon.fr/pipermail/dcmlib/2005-August/002311.html


I remember the mail;
No image was attached;

Just tell Simon Warfiel he can use :
f->GetEntryForcedAsciiValue(0x0043,0x1039);

(That avoid to modify the Dicts/dicomV3.dic)

JP



>
> Mathieu
>



More information about the Dcmlib mailing list