Program: gdcm
Module: $RCSfile: gdcmDictSet.cxx,v $
Language: C++
- Date: $Date: 2004/08/31 14:24:47 $
- Version: $Revision: 1.35 $
+ Date: $Date: 2004/09/13 07:49:35 $
+ Version: $Revision: 1.36 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
return NULL;
}
-/**
- * \brief Retrieve the default reference DICOM V3 public dictionary.
- * \result The retrieved default dictionary.
- */
-gdcmDict *gdcmDictSet::GetDefaultPubDict()
-{
- return GetDict(PUB_DICT_NAME);
-}
-
/**
* \brief Create a gdcmDictEntry which will be reference
* in no dictionnary
Program: gdcm
Module: $RCSfile: gdcmDictSet.h,v $
Language: C++
- Date: $Date: 2004/08/03 17:28:59 $
- Version: $Revision: 1.24 $
+ Date: $Date: 2004/09/13 07:49:35 $
+ Version: $Revision: 1.25 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
DictKey const & name );
gdcmDict* GetDict( DictKey const & DictName );
- gdcmDict* GetDefaultPubDict();
+
+ /// \brief Retrieve the default reference DICOM V3 public dictionary.
+ gdcmDict* GetDefaultPubDict() { return GetDict(PUB_DICT_NAME); };
+
+ // \brief Retrieve the virtual reference DICOM dictionary.
+ // \warning : not end user intended
+ // gdcmDict* GetVirtualDict() { return &VirtualEntry; };
gdcmDictEntry* NewVirtualDictEntry(uint16_t group, uint16_t element,
std::string vr = "Unknown",
/// Directory path to dictionaries
std::string DictPath;
/// H table for the on the fly created gdcmDictEntries
- std::map<std::string,gdcmDictEntry *> VirtualEntry;
+ TagKeyHT VirtualEntry;
};
//-----------------------------------------------------------------------------
Program: gdcm
Module: $RCSfile: gdcmDocument.cxx,v $
Language: C++
- Date: $Date: 2004/09/10 18:54:38 $
- Version: $Revision: 1.74 $
+ Date: $Date: 2004/09/13 07:49:36 $
+ Version: $Revision: 1.75 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
b = new gdcmBinEntry(a);
AddEntry(b);
b->SetVoidArea(voidArea);
- }
+ }
+
SetEntryByNumber(voidArea, lgth, group, elem);
//b->SetVoidArea(voidArea); //what if b == 0 !!
uint16_t group,
uint16_t element)
{
+ int c;
+ int l;
+
gdcmValEntry* valEntry = GetValEntryByNumber(group, element);
if (!valEntry )
{
return false;
}
// Non even content must be padded with a space (020H)...
- std::string evenContent = content;
- if( evenContent.length() % 2 )
+ std::string finalContent = content;
+ if( finalContent.length() % 2 )
{
- evenContent += '\0'; // ... therefore we padd with (000H) .!?!
+ finalContent += '\0'; // ... therefore we padd with (000H) .!?!
}
- valEntry->SetValue(evenContent);
+ valEntry->SetValue(finalContent);
// Integers have a special treatement for their length:
- gdcmVRKey vr = valEntry->GetVR();
- if( vr == "US" || vr == "SS" )
- {
- int c = CountSubstring(content, "\\"); // for multivaluated items
- valEntry->SetLength((c+1)*2);
- }
- else if( vr == "UL" || vr == "SL" )
- {
- int c = CountSubstring(content, "\\"); // for multivaluated items
- valEntry->SetLength((c+1)*4);
- }
- else
- {
- valEntry->SetLength(evenContent.length());
- }
+ l = finalContent.length();
+ if ( l != 0) // To avoid to be cheated by 'zero length' integers
+ {
+ gdcmVRKey vr = valEntry->GetVR();
+ if( vr == "US" || vr == "SS" )
+ {
+ c = CountSubstring(content, "\\") + 1; // for multivaluated items
+ l = c*2;
+ }
+ else if( vr == "UL" || vr == "SL" )
+ {
+ c = CountSubstring(content, "\\") + 1; // for multivaluated items
+ l = c*4;;
+ }
+ }
+ valEntry->SetLength(l);
return true;
}
*/
gdcmBinEntry* a = (gdcmBinEntry *)TagHT[key];
a->SetVoidArea(content);
- //a->SetLength(lgth); // ???
+ a->SetLength(lgth);
return true;
}
Program: gdcm
Module: $RCSfile: gdcmFile.cxx,v $
Language: C++
- Date: $Date: 2004/09/10 18:54:38 $
- Version: $Revision: 1.124 $
+ Date: $Date: 2004/09/13 07:49:36 $
+ Version: $Revision: 1.125 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
InitialPlanConfig = Header->GetEntryByNumber(0x0028,0x0006);
InitialBitsAllocated = Header->GetEntryByNumber(0x0028,0x0100);
- // the following entries *may* be removed
- // by gdcmFile::GetImageDataIntoVectorRaw
- // we save them.
-
- // we SHALL save them !
- // (some troubles, now)
- /*
+ // the following entries *may* be removed from the H table
+ // (NOT deleted ...) by gdcmFile::GetImageDataIntoVectorRaw
+ // we keep a pointer on them.
InitialRedLUTDescr = Header->GetDocEntryByNumber(0x0028,0x1101);
InitialGreenLUTDescr = Header->GetDocEntryByNumber(0x0028,0x1102);
InitialBlueLUTDescr = Header->GetDocEntryByNumber(0x0028,0x1103);
InitialRedLUTData = Header->GetDocEntryByNumber(0x0028,0x1201);
InitialGreenLUTData = Header->GetDocEntryByNumber(0x0028,0x1202);
InitialBlueLUTData = Header->GetDocEntryByNumber(0x0028,0x1203);
-
- if (InitialRedLUTData == NULL)
- std::cout << "echec InitialRedLUTData " << std::endl;
- else
- {
- printf("%p\n",InitialRedLUTData);
- InitialRedLUTData->Print(); std::cout <<std::endl;
- }
- */
}
}
}
Header = 0;
- if ( InitialRedLUTDescr )
- delete InitialRedLUTDescr;
-
- if ( InitialGreenLUTDescr )
- delete InitialGreenLUTDescr;
-
- if ( InitialBlueLUTDescr )
- delete InitialBlueLUTDescr;
-
-/* LATER ...
-
- if ( InitialRedLUTData )
- delete InitialRedLUTData;
-
- if ( InitialGreenLUTData != NULL)
- delete InitialGreenLUTData;
-
- if ( InitialBlueLUTData != NULL)
- delete InitialBlueLUTData;
-*/
+// InitialLutDescriptors and InitialLutData
+// will have to be deleted if the don't belong any longer
+// to the Header H table ...
}
//-----------------------------------------------------------------------------
Program: gdcm
Module: $RCSfile: gdcmFile.h,v $
Language: C++
- Date: $Date: 2004/09/12 01:40:09 $
- Version: $Revision: 1.46 $
+ Date: $Date: 2004/09/13 07:49:36 $
+ Version: $Revision: 1.47 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
/// \brief Bits Allocated (0x0028,0x0100), as found on disk
std::string InitialBitsAllocated;
- // some DocEntry that can be moved ou of the H table during reading process
+ // some DocEntry that can be moved out of the H table during reading process
// if user asked to transform gray level + LUT image into RGB image
-
+ // We keep a pointer on them for a future use.
+
/// \brief Red Palette Color Lookup Table Descriptor 0028 1101 as read
gdcmDocEntry* InitialRedLUTDescr;
/// \brief Green Palette Color Lookup Table Descriptor 0028 1102 as read