Program: gdcm
Module: $RCSfile: exAnonymizeNoLoad.cxx,v $
Language: C++
- Date: $Date: 2005/02/08 18:02:03 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2005/05/04 07:29:17 $
+ 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
int main(int argc, char *argv[])
{
gdcm::File *f1;
-
+
gdcm::Debug::DebugOn();
- std::cout << "------------------------------------------------" << std::endl;
+
std::cout << "Anonymize a gdcm-readable Dicom image" << std::endl;
std::cout << "even if pixels are not gdcm readable (JPEG2000)" << std::endl;
std::cout << "Warning : the image is overwritten" << std::endl;
- std::cout << " : to preserve image integrity "
- << " use exAnonymize " << std::endl;
+ std::cout << " : to preserve image integrity,"
+ << " use exAnonymize " << std::endl;
+ std::cout << "------------------------------------------------" << std::endl;
- if( argc < 3 )
+ if( argc < 2 )
{
- std::cerr << "Usage " << argv[0] << " Source image.dcm "
- << " Output image.dcm " << std::endl;
+ std::cerr << "Usage " << argv[0] << " Source Document "
+ << std::endl;
return 1;
}
std::string fileName = argv[1];
- std::string outputFileName = argv[2];
// ============================================================
// Read the input image.
// ============================================================
-
- std::cout << argv[1] << std::endl;
-
- f1 = new gdcm::File( fileName );
- if (!f1->IsReadable()) {
- std::cerr << "Sorry, " << fileName <<" not a gdcm-readable "
- << "DICOM / ACR File"
- <<std::endl;
+ bool res;
+
+ f1 = new gdcm::File( );
+ f1->SetLoadMode(NO_SEQ - NO_SHADOW);
+ res = f1->Load(fileName);
+
+ // gdcm::File::IsReadable() is no usable here, because we deal with
+ // any kind of gdcm::Readable *document*
+ // not only gdcm::File (as opposed to gdcm::DicomDir)
+ if ( !res ) {
+ std::cout <<std::endl
+ << "Sorry, " << fileName <<" not a gdcm-readable "
+ << "DICOM / ACR Document"
+ <<std::endl;
+ return 1;
}
- std::cout << " ... is readable " << std::endl;
+ std::cout << argv[1] << " is readable " << std::endl;
// ============================================================
// No need to load the pixels in memory.
// Choose the fields to anonymize.
// ============================================================
// Institution name
- f1->AddAnonymizeElement(0x0008, 0x0080, "Xanadoo");
+ f1->AddAnonymizeElement( 0x0008, 0x0080, "Xanadoo" );
// Patient's name
- f1->AddAnonymizeElement(0x0010, 0x0010, "Fantomas");
+ f1->AddAnonymizeElement( 0x0010, 0x0010, "Fantomas" );
// Patient's ID
- f1->AddAnonymizeElement( 0x0010, 0x0020,"1515" );
+ f1->AddAnonymizeElement( 0x0010, 0x0020,"1515" );
+ // Patient's Birthdate
+ f1->AddAnonymizeElement( 0x0010, 0x0030,"11.11.1111" );
+ // Patient's Adress
+ f1->AddAnonymizeElement( 0x0010, 0x1040,"Sing-sing" );
+ // Patient's Mother's Birth Name
+ f1->AddAnonymizeElement( 0x0010, 0x1060,"Vampirella" );
// Study Instance UID
- f1->AddAnonymizeElement(0x0020, 0x000d, "9.99.999.9999" );
+ f1->AddAnonymizeElement( 0x0020, 0x000d, "9.99.999.9999" );
// Telephone
f1->AddAnonymizeElement(0x0010, 0x2154, "3615" );
// Aware use will add new fields here