return(fp);
fclose(fp);
- dbg.Verbose(0, "gdcmParser::gdcmParser not DICOM/ACR", filename.c_str());
+ dbg.Verbose(0, "gdcmParser::OpenFile not DICOM/ACR", filename.c_str());
}
else {
- dbg.Verbose(0, "gdcmParser::gdcmParser cannot open file", filename.c_str());
+ dbg.Verbose(0, "gdcmParser::OpenFile cannot open file", filename.c_str());
}
return(NULL);
}
free(a);
return NULL;
}
- cout << hex << Group << " " << Elem << "loaded" <<endl;
- Element->SetPrintLevel(2);
- Element->Print();
+
return a;
}
{
// EXPLICIT VR
guint16 z=0, shortLgr;
- if (vr == "Unknown") { // Unknown was 'written'
+ if (vr == "unkn") { // Unknown was 'written'
shortLgr=lgr;
fwrite ( &shortLgr,(size_t)2 ,(size_t)1 ,_fp);
fwrite ( &z, (size_t)2 ,(size_t)1 ,_fp);
} else {
if (gr != 0xfffe) { // NO value for 'delimiters'
- if (vr == "Unknown") // Unknown was 'written'
+ if (vr == "unkn") // Unknown was 'written'
fwrite(&z,(size_t)2 ,(size_t)1 ,_fp);
else
fwrite (vr.c_str(),(size_t)2 ,(size_t)1 ,_fp);
}
- if ( (vr == "OB") || (vr == "OW") || (vr == "SQ") || gr == 0xfffe) // JPR
+ if ( (vr == "OB") || (vr == "OW") || (vr == "SQ") || gr == 0xfffe)
{
if (gr != 0xfffe)
fwrite ( &z, (size_t)2 ,(size_t)1 ,_fp);
return;
char VR[3];
- int lgrLue;
long PositionOnEntry = ftell(fp);
// Warning: we believe this is explicit VR (Value Representation) because
// is in explicit VR and try to fix things if it happens not to be
// the case.
- lgrLue=fread (&VR, (size_t)2,(size_t)1, fp);
+ int lgrLue=fread (&VR, (size_t)2,(size_t)1, fp); // lgrLue not used
VR[2]=0;
if(!CheckHeaderEntryVR(Entry,VR))
{
sprintf(msg,"Falsely explicit vr file (%04x,%04x)\n",
Entry->GetGroup(),Entry->GetElement());
dbg.Verbose(1, "gdcmParser::FindVR: ",msg);
-
+ if (Entry->GetGroup()%2 && Entry->GetElement() == 0x0000) { // Group length is UL !
+ gdcmDictEntry* NewEntry = NewVirtualDictEntry(
+ Entry->GetGroup(),Entry->GetElement(),
+ "UL","FIXME","Group Length");
+ Entry->SetDictEntry(NewEntry);
+ }
return(false);
}
if ( Entry->IsVRUnknown() )
{
// When not a dictionary entry, we can safely overwrite the VR.
- Entry->SetVR(vr);
+ if (Entry->GetElement() == 0x0000) { // Group length is UL !
+ Entry->SetVR("UL");
+ } else {
+ Entry->SetVR(vr);
+ }
}
else if ( Entry->GetVR() != vr )
{
s << NewInt32;
}
}
-
#ifdef GDCM_NO_ANSI_STRING_STREAM
s << std::ends; // to avoid oddities on Solaris
#endif //GDCM_NO_ANSI_STRING_STREAM
{
gdcmDictEntry *NewTag = GetDictEntryByName(Name);
if (!NewTag)
- NewTag = NewVirtualDictEntry(0xffff, 0xffff, "LO", "Unknown", Name);
+ NewTag = NewVirtualDictEntry(0xffff, 0xffff, "LO", "unkn", Name);
gdcmHeaderEntry* NewEntry = new gdcmHeaderEntry(NewTag);
if (!NewEntry)