From a853a1114d061e9b5e06560ff9077c3d98671ae4 Mon Sep 17 00:00:00 2001 From: jpr Date: Fri, 9 Apr 2010 15:38:18 +0000 Subject: [PATCH] avoid further troubles when wild anonymization was performed --- src/gdcmSerieHelper.cxx | 29 ++++++++++++++++++----------- src/gdcmSerieHelper.h | 7 ++++--- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/gdcmSerieHelper.cxx b/src/gdcmSerieHelper.cxx index fc0f2135..4e215e7f 100644 --- a/src/gdcmSerieHelper.cxx +++ b/src/gdcmSerieHelper.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmSerieHelper.cxx,v $ Language: C++ - Date: $Date: 2008/05/14 07:48:52 $ - Version: $Revision: 1.69 $ + Date: $Date: 2010/04/09 15:38:18 $ + Version: $Revision: 1.70 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -13,7 +13,7 @@ This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. - + =========================================================================*/ #include "gdcmSerieHelper.h" @@ -1092,23 +1092,30 @@ std::string SerieHelper::CreateUserDefinedFileIdentifier( File *inFile ) } } // Eliminate non-alphanum characters, including whitespace. + unsigned int s_size = s.size(); - for(unsigned int i=0; i= '+' && s[i] <= '-') || (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= '0' && s[i] <= '9') || (s[i] >= 'A' && s[i] <= 'Z'))) - { - s.replace(i, 1, "_"); // ImagePositionPatient related stuff will be more human readable + { + s.replace(i, 1, "_"); // ImagePositionPatient related stuff will be more human readable + } } + // deal with Dicom strings trailing '\0' + if(s[s_size-1] == '_') + s.erase(s_size-1, 1); } - // deal with Dicom strings trailing '\0' - if(s[s_size-1] == '_') - s.erase(s_size-1, 1); - id += s.c_str(); id += "%%%"; // make the FileIdentifier Tokenizable } diff --git a/src/gdcmSerieHelper.h b/src/gdcmSerieHelper.h index 95a62aca..c7405f4e 100644 --- a/src/gdcmSerieHelper.h +++ b/src/gdcmSerieHelper.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmSerieHelper.h,v $ Language: C++ - Date: $Date: 2009/05/19 15:08:37 $ - Version: $Revision: 1.45 $ + Date: $Date: 2010/04/09 15:38:18 $ + Version: $Revision: 1.46 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -60,13 +60,14 @@ class File; * into several XCoherent Filesets * XCoherent stands for 'Extra Coherent' (same orientation, or same position) */ + class GDCM_EXPORT SerieHelper : public RefCounter { gdcmTypeMacro(SerieHelper); public: /// SingleSerieUIDFileSetmap replaces the former CoherentFileListmap - /// ( List were actually std::vectors, and where no coherent at all : + /// (List were actually std::vectors, and where no coherent at all : /// They were only Single SeriesInstanceUID File sets) typedef std::map SingleSerieUIDFileSetmap; -- 2.45.0