Program: gdcm
Module: $RCSfile: TestImageSet.cxx,v $
Language: C++
- Date: $Date: 2005/06/03 09:55:18 $
- Version: $Revision: 1.3 $
+ Date: $Date: 2007/05/23 14:18:06 $
+ Version: $Revision: 1.8 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
*/
#include "gdcmFile.h"
#include "gdcmFileHelper.h"
-#include "gdcmValEntry.h"
+#include "gdcmDataEntry.h"
#include "gdcmUtil.h"
#include "gdcmDebug.h"
#include <sstream>
#include <list>
-typedef std::list<gdcm::File *> FileList;
+typedef std::list<GDCM_NAME_SPACE::File *> FileList;
// If there is sameSerie, sameStudy is set to true
int CompareImages(FileList &list, bool sameSerie, bool sameStudy)
{
- gdcm::Debug::DebugOn();
+ GDCM_NAME_SPACE::Debug::DebugOn();
if( sameSerie )
sameStudy = true;
- gdcm::ValEntry *entry;
+ GDCM_NAME_SPACE::DataEntry *entry;
std::map<std::string, int> instUID;
std::map<std::string, int> mediaUID;
std::map<std::string, int> serieUID;
for(it=list.begin();it!=list.end();++it)
{
// SOP Instance UID
- entry=(*it)->GetValEntry(0x0008, 0x0018);
+ entry=(*it)->GetDataEntry(0x0008, 0x0018);
if( entry )
- if( instUID.find(entry->GetValue())!=instUID.end() )
- instUID[entry->GetValue()]++;
+ if( instUID.find(entry->GetString())!=instUID.end() )
+ instUID[entry->GetString()]++;
else
- instUID[entry->GetValue()]=1;
+ instUID[entry->GetString()]=1;
// Media Storage SOP Instance UID
- entry=(*it)->GetValEntry(0x0002,0x0003);
+ entry=(*it)->GetDataEntry(0x0002,0x0003);
if( entry )
- if( mediaUID.find(entry->GetValue())!=mediaUID.end() )
- mediaUID[entry->GetValue()]++;
+ if( mediaUID.find(entry->GetString())!=mediaUID.end() )
+ mediaUID[entry->GetString()]++;
else
- mediaUID[entry->GetValue()]=1;
+ mediaUID[entry->GetString()]=1;
// Series Instance UID
- entry=(*it)->GetValEntry(0x0020,0x000e);
+ entry=(*it)->GetDataEntry(0x0020,0x000e);
if( entry )
- if( serieUID.find(entry->GetValue())!=serieUID.end() )
- serieUID[entry->GetValue()]++;
+ if( serieUID.find(entry->GetString())!=serieUID.end() )
+ serieUID[entry->GetString()]++;
else
- serieUID[entry->GetValue()]=1;
+ serieUID[entry->GetString()]=1;
// Study Instance UID
- entry=(*it)->GetValEntry(0x0020,0x000d);
+ entry=(*it)->GetDataEntry(0x0020,0x000d);
if( entry )
- if( studyUID.find(entry->GetValue())!=studyUID.end() )
- studyUID[entry->GetValue()]++;
+ if( studyUID.find(entry->GetString())!=studyUID.end() )
+ studyUID[entry->GetString()]++;
else
- studyUID[entry->GetValue()]=1;
+ studyUID[entry->GetString()]=1;
}
if( sameSerie )
FileList::iterator it;
for(it=list.begin();it!=list.end();++it)
{
- delete (*it);
+ (*it)->Delete();
}
list.clear();
}
-gdcm::File *WriteImage(gdcm::File *file, const std::string &fileName)
+GDCM_NAME_SPACE::File *WriteImage(GDCM_NAME_SPACE::File *file, const std::string &fileName)
{
// Create a 256x256x1 image 8 bits, unsigned
std::ostringstream str;
// Set the image size
- file->InsertValEntry("256",0x0028,0x0011); // Columns
- file->InsertValEntry("256",0x0028,0x0010); // Rows
+ file->InsertEntryString("256",0x0028,0x0011,"US"); // Columns
+ file->InsertEntryString("256",0x0028,0x0010,"US"); // Rows
// Set the pixel type
- file->InsertValEntry("8",0x0028,0x0100); // Bits Allocated
- file->InsertValEntry("8",0x0028,0x0101); // Bits Stored
- file->InsertValEntry("7",0x0028,0x0102); // High Bit
+ file->InsertEntryString("8",0x0028,0x0100,"US"); // Bits Allocated
+ file->InsertEntryString("8",0x0028,0x0101,"US"); // Bits Stored
+ file->InsertEntryString("7",0x0028,0x0102,"US"); // High Bit
// Set the pixel representation
- file->InsertValEntry("0",0x0028,0x0103); // Pixel Representation
+ file->InsertEntryString("0",0x0028,0x0103,"US"); // Pixel Representation
// Set the samples per pixel
- file->InsertValEntry("1",0x0028,0x0002); // Samples per Pixel
+ file->InsertEntryString("1",0x0028,0x0002,"US"); // Samples per Pixel
// The so called 'prepared image', built ex nihilo just before,
// has NO Pixel Element yet.
memset(imageData,0,size);
// Write the image
- gdcm::FileHelper *hlp = new gdcm::FileHelper(file);
+ GDCM_NAME_SPACE::FileHelper *hlp = GDCM_NAME_SPACE::FileHelper::New(file);
hlp->SetImageData(imageData,size);
hlp->SetWriteTypeToDcmExplVR();
if( !hlp->Write(fileName) )
std::cout << "Failed\n"
<< " File in unwrittable\n";
- delete hlp;
+ hlp->Delete();
delete[] imageData;
return NULL;
}
delete[] imageData;
- delete hlp;
+ hlp->Delete();
// Read the written image
- gdcm::File *reread = new gdcm::File( fileName );
+ GDCM_NAME_SPACE::File *reread = GDCM_NAME_SPACE::File::New( );
+ reread->SetFileName( fileName );
+ reread->Load();
if( !reread->IsReadable() )
{
std::cerr << "Failed" << std::endl
<< " Could not reread written image :" << fileName << std::endl;
- delete reread;
+ reread->Delete();
return NULL;
}
<< " to different Series within the same Study" << std::endl;
std::cout << std::endl << std::endl;
- gdcm::File *file;
- gdcm::File *newFile;
+ GDCM_NAME_SPACE::File *file;
+ GDCM_NAME_SPACE::File *newFile;
FileList fileList;
int i;
{
std::ostringstream fileName;
fileName << "FileSeq" << i << ".dcm";
- file = new gdcm::File();
+ file = GDCM_NAME_SPACE::File::New();
// It's up to the user to initialize Serie UID and Study UID
// Study Instance UID
- studyUID = gdcm::Util::CreateUniqueUID();
- file->InsertValEntry(studyUID, 0x0020, 0x000d);
+ studyUID = GDCM_NAME_SPACE::Util::CreateUniqueUID();
+ file->InsertEntryString(studyUID, 0x0020, 0x000d, "UI");
// Series Instance UID
- serieUID = gdcm::Util::CreateUniqueUID();
- file->InsertValEntry(serieUID, 0x0020, 0x000e);
+ serieUID = GDCM_NAME_SPACE::Util::CreateUniqueUID();
+ file->InsertEntryString(serieUID, 0x0020, 0x000e, "UI");
newFile = WriteImage(file, fileName.str());
if( !newFile )
{
- delete file;
+ file->Delete();
return 1;
}
else
fileList.push_back(newFile);
- delete file;
+ file->Delete();
}
if( CompareImages(fileList, false, false) )
// Step 2 : Same Serie & Study
fileList.clear();
- studyUID = gdcm::Util::CreateUniqueUID();
- serieUID = gdcm::Util::CreateUniqueUID();
+ studyUID = GDCM_NAME_SPACE::Util::CreateUniqueUID();
+ serieUID = GDCM_NAME_SPACE::Util::CreateUniqueUID();
for(i = 0;i < 4;i++)
{
std::ostringstream fileName;
fileName << "FileSeq" << i << ".dcm";
- file = new gdcm::File();
- file->InsertValEntry(studyUID, 0x0020, 0x000d);
- file->InsertValEntry(serieUID, 0x0020, 0x000e);
+ file = GDCM_NAME_SPACE::File::New();
+ file->InsertEntryString(studyUID, 0x0020, 0x000d, "UI");
+ file->InsertEntryString(serieUID, 0x0020, 0x000e, "UI");
newFile = WriteImage(file, fileName.str());
if( !newFile )
{
- delete file;
+ file->Delete();
return(1);
}
else
fileList.push_back(newFile);
- delete file;
+ file->Delete();
}
if( CompareImages(fileList, true, true) )
// Step 3 : Same Study
fileList.clear();
- serieUID = gdcm::Util::CreateUniqueUID();
+ serieUID = GDCM_NAME_SPACE::Util::CreateUniqueUID();
for(i = 0;i < 4;i++)
{
std::ostringstream fileName;
fileName << "FileSeq" << i << ".dcm";
- file = new gdcm::File();
- file->InsertValEntry(studyUID, 0x0020, 0x000d);
- serieUID = gdcm::Util::CreateUniqueUID();
- file->InsertValEntry(serieUID, 0x0020, 0x000e);
+ file = GDCM_NAME_SPACE::File::New();
+ file->InsertEntryString(studyUID, 0x0020, 0x000d, "UI");
+ serieUID = GDCM_NAME_SPACE::Util::CreateUniqueUID();
+ file->InsertEntryString(serieUID, 0x0020, 0x000e, "UI");
newFile = WriteImage(file, fileName.str());
if( !newFile )
{
- delete file;
+ file->Delete();
return(1);
}
else
fileList.push_back(newFile);
- delete file;
+ file->Delete();
}
if( CompareImages(fileList, false, true) )