/*=========================================================================
Program: gdcm
- Module: $RCSfile: TestSequence.cxx,v $
+ Module: $RCSfile: TestImageSet.cxx,v $
Language: C++
- Date: $Date: 2005/02/10 14:23:18 $
- Version: $Revision: 1.2 $
+ Date: $Date: 2005/03/02 16:39:28 $
+ Version: $Revision: 1.1 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
typedef std::list<gdcm::File *> FileList;
// If there is sameSerie, sameStudy is set to true
-int CompareImages(FileList &list,bool sameSerie,bool sameStudy)
+int CompareImages(FileList &list, bool sameSerie, bool sameStudy)
{
if( sameSerie )
sameStudy = true;
for(it=list.begin();it!=list.end();++it)
{
// SOP Instance UID
- entry=(*it)->GetValEntry(0x0008,0x0018);
+ entry=(*it)->GetValEntry(0x0008, 0x0018);
if( entry )
if( instUID.find(entry->GetValue())!=instUID.end() )
instUID[entry->GetValue()]++;
if( !reread->IsReadable() )
{
std::cerr << "Failed" << std::endl
- << " Could not reread image written:" << fileName << std::endl;
+ << " Could not reread written image :" << fileName << std::endl;
delete reread;
return NULL;
}
}
std::cout << " Description (Test::TestSequence): " << std::endl;
- std::cout << " Will test the creation of sequences of 4 images" << std::endl;
+ std::cout << " Tests the creation of a 4 images Set" << std::endl;
std::cout << " with the following steps : "<< std::endl;
- std::cout << " step 1: create separed images without correspondance" << std::endl
- << " in UID for study and serie" << std::endl;
- std::cout << " step 2: create serie of image." << std::endl
- << " So the Serie and Study UID must be equal" << std::endl;
- std::cout << " step 3: create separed serie of image with same study" << std::endl
- << " So the Study UID must be equal" << std::endl;
+ std::cout << " step 1: create images belonging" << std::endl
+ << " to different Study and Terie" << std::endl;
+ std::cout << " step 2: create images belonging" << std::endl
+ << " to the same Serie (therefore to the same Study)" << std::endl;
+ std::cout << " step 3: create images belonging" << std::endl
+ << " to different Series within the same Study" << std::endl;
std::cout << std::endl << std::endl;
gdcm::File *file;
int i;
std::cout<<" step...";
- std::string studyUID = gdcm::Util::CreateUniqueUID();
- std::string serieUID = gdcm::Util::CreateUniqueUID();
+ std::string studyUID;
+ std::string serieUID;
// Step 1 : All files have different UID
fileList.clear();
std::ostringstream fileName;
fileName << "FileSeq" << i << ".dcm";
file = new gdcm::File();
+ // 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);
+ // Series Instance UID
+ serieUID = gdcm::Util::CreateUniqueUID();
+ file->InsertValEntry(serieUID, 0x0020, 0x000e);
newFile = WriteImage(file,fileName.str());
if( !newFile )
// Step 2 : Same Serie & Study
fileList.clear();
+ studyUID = gdcm::Util::CreateUniqueUID();
+ serieUID = gdcm::Util::CreateUniqueUID();
for(i = 0;i < 4;i++)
{
std::ostringstream fileName;
fileName << "FileSeq" << i << ".dcm";
file = new gdcm::File();
- file->SetValEntry(studyUID,0x0020,0x000d);
- file->SetValEntry(serieUID,0x0020,0x000e);
+ file->InsertValEntry(studyUID,0x0020,0x000d);
+ file->InsertValEntry(serieUID,0x0020,0x000e);
newFile = WriteImage(file,fileName.str());
if( !newFile )
// Step 3 : Same Study
fileList.clear();
+ serieUID = gdcm::Util::CreateUniqueUID();
for(i = 0;i < 4;i++)
{
std::ostringstream fileName;
fileName << "FileSeq" << i << ".dcm";
file = new gdcm::File();
- file->SetValEntry(studyUID,0x0020,0x000d);
-
+ file->InsertValEntry(studyUID,0x0020,0x000d);
+ serieUID = gdcm::Util::CreateUniqueUID();
+ file->InsertValEntry(serieUID,0x0020,0x000e);
newFile = WriteImage(file,fileName.str());
if( !newFile )
{
Program: gdcm
Module: $RCSfile: TestMakeIcon.cxx,v $
Language: C++
- Date: $Date: 2005/02/11 13:12:05 $
- Version: $Revision: 1.3 $
+ Date: $Date: 2005/03/02 16:39:28 $
+ Version: $Revision: 1.4 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
std::string input = "LIBIDO-8-ACR_NEMA-Lena_128_128.acr";
std::string output = "test.dcm";
+ gdcm::Debug::DebugOn();
+
if ( argc == 3 )
{
input = argv[1];
// icone is just define like the image
// The purpose is NOT to imagine an icon,
// just check the stuff works
+
uint16_t binVal[3]={0x52f7,0xf358,0xad9b};
sqi->InsertValEntry( "MONOCHROME2", 0x0028,0x0004);
f1 = new gdcm::File(output);
f1->Print();
+ std::cout << "End of Print" << std::endl;
icon = f1->GetSeqEntry(0x0088, 0x0200);
+ if (!icon)
+ {
+ std::cout << "Sequence 0088|0200 not found" << std::endl
+ << " ... Failed" << std::endl;
+ delete fh1;
+ delete f1;
+ return 1;
+ }
+ std::cout << "Sequence 0088|0200 found" << std::endl;
+
sqi = icon->GetFirstSQItem();
if ( !sqi )
{
- std::cout << "Sequence 0088|0200 not found" << std::endl
+ std::cout << "Sequence 0088|0200 has no SQItem" << std::endl
<< " ... Failed" << std::endl;
delete fh1;
delete f1;
return 1;
}
+ std::cout << "First Item found" << std::endl;
+
// Test for entry 0028|0010
if ( !sqi->GetValEntry(0x0028,0x0010) )
{
delete f1;
return 1;
}
+ std::cout << "First Item ->ValEntry 0028|0010 found" << std::endl;
if ( sqi->GetValEntry(0x0028,0x0010)->GetValue() != "128" )
{
std::cout << "Value 0028|0010 don't match" << std::endl
delete f1;
return 1;
}
+ std::cout << "First Item ->ValEntry 0028|0011 found" << std::endl;
if ( sqi->GetValEntry(0x0028,0x0011)->GetValue() != "128" )
{
std::cout << "Value 0028|0011 don't match" << std::endl
delete f1;
return 1;
}
+ std::cout << "First Item ->ValEntry 0028|0100 found" << std::endl;
if ( sqi->GetValEntry(0x0028,0x0100)->GetValue() != "8" )
{
std::cout << "Value 0028|0100 don't match" << std::endl
delete f1;
return 1;
}
+ std::cout << "First Item ->ValEntry 0028|0101 found" << std::endl;
if ( sqi->GetValEntry(0x0028,0x0101)->GetValue() != "8" )
{
std::cout << "Value 0028|0101 don't match" << std::endl
delete f1;
return 1;
}
+ std::cout << "First Item ->ValEntry 0028|0102 found" << std::endl;
if ( sqi->GetValEntry(0x0028,0x0102)->GetValue() != "7" )
{
std::cout << "Value 0028|0102 don't match" << std::endl
delete f1;
return 1;
}
+ std::cout << "First Item ->ValEntry 0028|0103 found" << std::endl;
if ( sqi->GetValEntry(0x0028,0x0103)->GetValue() != "0" )
{
std::cout << "Value 0028|0103 don't match" << std::endl
}
// Test for entry 0005|0010
- if ( !sqi->GetValEntry(0x0028,0x0010) )
+ if ( !sqi->GetBinEntry(0x0005,0x0010) )
{
std::cout << "BinEntry 0005|0010 not found" << std::endl
<< " ... Failed" << std::endl;
delete f1;
return 1;
}
+ std::cout << "First Item ->BinEntry 0005|0010 found" << std::endl;
if( sqi->GetBinEntry(0x0005,0x0010)->GetLength() != 6 )
{
std::cout << "BinEntry size 0005|0010 don't match" << std::endl
return 1;
}
+ std::cout << "Length BinEntry 0005|0010 OK" << std::endl;
+
if( memcmp(sqi->GetBinEntry(0x0005,0x0010)->GetBinArea(),binVal,6)!=0 )
{
std::cout << "Value 0005|0010 don't match (BinEntry)" << std::endl
delete f1;
return 1;
}
+ std::cout << "Value BinEntry 0005|0010 OK" << std::endl;
delete fh1;
delete f1;