-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.90 2003/09/24 16:18:32 jpr Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.91 2003/09/24 16:46:38 jpr Exp $
//This is needed when compiling in debug mode
#ifdef _MSC_VER
void gdcmHeader::Initialise(void) {
dicom_vr = gdcmGlobal::GetVR();
dicom_ts = gdcmGlobal::GetTS();
- Dicts = gdcmGlobal::GetDicts();
+ Dicts = gdcmGlobal::GetDicts();
RefPubDict = Dicts->GetDefaultPubDict();
RefShaDict = (gdcmDict*)0;
}
Initialise();
if ( !OpenFile(exception_on_error))
return;
-printf ("avant ParseHeader\n");
ParseHeader();
-printf ("avant LoadElements\n");
-
LoadElements();
CloseFile();
}
}
// Fourth semantics:
+//
+// ---> Warning : This fourth fiels is NOT part
+// of the 'official' Dicom Dictionnary
+// and should NOT be used.
+// (Not defined for all the groups
+// may be removed in a future release)
+//
// CMD Command
// META Meta Information
// DIR Directory
// We thought this was explicit VR, but we end up with an
// implicit VR tag. Let's backtrack.
- sprintf(msg,"Falsely explicit vr file (%04x,%04x)\n", ElVal->GetGroup(),ElVal->GetElement());
+ sprintf(msg,"Falsely explicit vr file (%04x,%04x)\n",
+ ElVal->GetGroup(),ElVal->GetElement());
dbg.Verbose(1, "gdcmHeader::FindVR: ",msg);
fseek(fp, PositionOnEntry, SEEK_SET);
FoundSequenceDelimiter = true;
else if ( n != 0xe000 ){
char msg[100]; // for sprintf. Sorry
- sprintf(msg,"wrong element (%04x) for an item sequence (%04x,%04x)\n",n, g,n);
+ sprintf(msg,"wrong element (%04x) for an item sequence (%04x,%04x)\n",
+ n, g,n);
dbg.Verbose(1, "gdcmHeader::FindLengthOB: ",msg);
errno = 1;
return 0;
void gdcmHeader::FindLength (gdcmElValue * ElVal) {
guint16 element = ElVal->GetElement();
guint16 group = ElVal->GetGroup();
- std::string vr = ElVal->GetVR();
+ std::string vr = ElVal->GetVR();
guint16 length16;
if( (element == 0x0010) && (group == 0x7fe0) ) {
dbg.SetDebug(0);
dbg.Verbose(2, "gdcmHeader::FindLength: ",
- "on est sur 7fe0 0010");
+ "we reached 7fe0 0010");
}
if ( (filetype == ExplicitVR) && ! ElVal->IsImplicitVr() ) {
void gdcmHeader::LoadElementValue(gdcmElValue * ElVal) {
size_t item_read;
guint16 group = ElVal->GetGroup();
- std::string vr = ElVal->GetVR();
+ std::string vr= ElVal->GetVR();
guint32 length = ElVal->GetLength();
bool SkipLoad = false;
* @param Elem
* \return integer acts as a boolean
*/
-int gdcmHeader::ReplaceOrCreateByNumber(std::string Value, guint16 Group, guint16 Elem ) {
+int gdcmHeader::ReplaceOrCreateByNumber(std::string Value,
+ guint16 Group, guint16 Elem ) {
// TODO : FIXME JPRx
// curieux, non ?
/**
* \ingroup gdcmHeader
- * \brief Modify or (Creates if not found) an element
+ * \brief Modify (or Creates if not found) an element
* @param Value new value
* @param Group
* @param Elem
g = ReadInt16();
n = ReadInt16();
-
- //if ( (g==0x7fe0) && (n==0x0010) )
-
+
if (errno == 1)
// We reached the EOF (or an error occured) and header parsing
// has to be considered as finished.
int gdcmHeader::SetPubElValByNumber(std::string content, guint16 group,
guint16 element)
-//TODO : homogeneiser les noms : SetPubElValByNumber qui appelle PubElValSet.SetElValueByNumber
+//TODO : homogeneiser les noms : SetPubElValByNumber
+// qui appelle PubElValSet.SetElValueByNumber
// pourquoi pas SetPubElValueByNumber ??
{
* @param VR The Value Representation to be given to this new tag.
* @ return The newly hand crafted Element Value.
*/
-gdcmElValue* gdcmHeader::NewManualElValToPubDict(std::string NewTagName, std::string VR) {
+gdcmElValue* gdcmHeader::NewManualElValToPubDict(std::string NewTagName,
+ std::string VR) {
gdcmElValue* NewElVal = (gdcmElValue*)0;
guint32 StuffGroup = 0xffff; // Group to be stuffed with additional info
guint32 FreeElem = 0;
void * a = malloc(l);
if(!a) {
std::cout << "Big Broblem (LoadElementVoidArea, malloc) "
- << std::hex << Group << " " << Elem << std::endl;
+ << std::hex << Group << " " << Elem << std::endl;
return NULL;
}
int res = PubElValSet.SetVoidAreaByNumber(a, Group, Elem);
size_t l2 = fread(a, 1, l ,fp);
if(l != l2) {
std::cout << "Big Broblem (LoadElementVoidArea, fread) "
- << std::hex << Group << " " << Elem << std::endl;
+ << std::hex << Group << " " << Elem << std::endl;
free(a);
return NULL;
}
gdcmElValue* elValue = PubElValSet.GetElementByNumber(Group, Elem);
if (!elValue) {
dbg.Verbose(1, "gdcmHeader::GetElValueByNumber",
- "failed to Locate gdcmElValue");
+ "failed to Locate gdcmElValue");
return (size_t)0;
}
return elValue->GetOffset();
//int LutLength;
//int LutDepth;
int LutNbits;
- // Just hope Lookup Table Desc-Red = Lookup Table Desc-Red = Lookup Table Desc-Blue
+ //Just hope Lookup Table Desc-Red = Lookup Table Desc-Red = Lookup Table Desc-Blue
// Consistency already checked in GetLUTLength
std::string LutDescription = GetPubElValByNumber(0x0028,0x1101);
if (LutDescription == GDCM_UNFOUND)
if(l==0)
return (NULL);
int nBits=GetLUTNbits();
+
// a virer quand on aura trouve UNE image
// qui correspond VRAIMENT à la definition !
std::cout << "l " << l << " nBits " << nBits;
unsigned char * g = (unsigned char *)LutG;
unsigned char * b = (unsigned char *)LutB;
for(int i=0;i<l;i++) {
- //std::cout << "lut16 " << i << " : " << *r << " " << *g << " " << *b << std::endl;
+ //std::cout << "lut16 " << i << " : " << *r << " " << *g << " " << *b
+ // << std::endl;
printf("lut 8 %d : %d %d %d \n",i,*r,*g,*b);
*rgb++ = *r++;
*rgb++ = *g++;
-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.cxx,v 1.7 2003/09/24 14:01:04 jpr Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeaderHelper.cxx,v 1.8 2003/09/24 16:46:38 jpr Exp $
//This is needed when compiling in debug mode
#ifdef _MSC_VER
else if ( StrModality.find("PT") < StrModality.length()) return PT;
else if ( StrModality.find("RF") < StrModality.length()) return RF;
else if ( StrModality.find("RG") < StrModality.length()) return RG;
- else if ( StrModality.find("RTDOSE") < StrModality.length()) return RTDOSE;
- else if ( StrModality.find("RTIMAGE") < StrModality.length()) return RTIMAGE;
- else if ( StrModality.find("RTPLAN") < StrModality.length()) return RTPLAN;
- else if ( StrModality.find("RTSTRUCT") < StrModality.length()) return RTSTRUCT;
+ else if ( StrModality.find("RTDOSE") < StrModality.length()) return RTDOSE;
+ else if ( StrModality.find("RTIMAGE") < StrModality.length()) return RTIMAGE;
+ else if ( StrModality.find("RTPLAN") < StrModality.length()) return RTPLAN;
+ else if ( StrModality.find("RTSTRUCT")< StrModality.length()) return RTSTRUCT;
else if ( StrModality.find("SM") < StrModality.length()) return SM;
else if ( StrModality.find("ST") < StrModality.length()) return ST;
else if ( StrModality.find("TG") < StrModality.length()) return TG;
//----------------------------------------------------------------------------
std::string gdcmHeaderHelper::GetStudyUID()
{
- return GetPubElValByNumber(0x0020,0x000d); //!0020 000d UI REL Study Instance UID
+ return GetPubElValByNumber(0x0020,0x000d); //0020 000d UI REL Study Instance UID
}
//----------------------------------------------------------------------------
std::string gdcmHeaderHelper::GetSeriesUID()
{
- return GetPubElValByNumber(0x0020,0x000e); //!0020 000e UI REL Series Instance UID
+ return GetPubElValByNumber(0x0020,0x000e); //0020 000e UI REL Series Instance UID
}
//----------------------------------------------------------------------------
std::string gdcmHeaderHelper::GetClassUID()
{
- return GetPubElValByNumber(0x0008,0x0016); //!0008 0016 UI ID SOP Class UID
+ return GetPubElValByNumber(0x0008,0x0016); //0008 0016 UI ID SOP Class UID
}
//----------------------------------------------------------------------------
std::string gdcmHeaderHelper::GetInstanceUID()
{
- return GetPubElValByNumber(0x0008,0x0018); //!0008 0018 UI ID SOP Instance UID
+ return GetPubElValByNumber(0x0008,0x0018); //0008 0018 UI ID SOP Instance UID
}
//----------------------------------------------------------------------------
//This could be implemented in a 'Strategy Pattern' approach
//But as I don't know how to do it, I leave it this way
-//BTW, this is also a Strategy, I don't know this is the best approcah :)
+//BTW, this is also a Strategy, I don't know this is the best approach :)
void gdcmSerieHeaderHelper::OrderGdcmFileList()
{
if( ImagePositionPatientOrdering() )