+ // TODO : FIXME
+ // how to white out disk space if longer than 50 ?
+ (*it).Value = (*it).Value + spaces;
+ lgtToWrite = lgth > (*it).Value.length() ? (*it).Value.length() : lgth;
+ fp->write( (char *)(*it).Value.c_str(), lgtToWrite );
+
+ }
+ fp->close();
+ delete fp;
+ }
+}
+
+/**
+ * \brief anonymize a File (removes Patient's personal info passed with
+ * AddAnonymizeElement()
+ */
+bool File::AnonymizeFile()
+{
+ // If Anonymisation list is empty, let's perform some basic anonymisation
+ if ( AnonymizeList.begin() == AnonymizeList.end() )
+ {
+ // If exist, replace by spaces
+ SetValEntry (" ",0x0010, 0x2154); // Telephone
+ SetValEntry (" ",0x0010, 0x1040); // Adress
+ SetValEntry (" ",0x0010, 0x0020); // Patient ID
+
+ DocEntry* patientNameHE = GetDocEntry (0x0010, 0x0010);
+
+ if ( patientNameHE ) // we replace it by Study Instance UID (why not ?)
+ {
+ std::string studyInstanceUID = GetEntryValue (0x0020, 0x000d);
+ if ( studyInstanceUID != GDCM_UNFOUND )
+ {
+ SetValEntry(studyInstanceUID, 0x0010, 0x0010);
+ }
+ else
+ {
+ SetValEntry("anonymised", 0x0010, 0x0010);
+ }