Module: $RCSfile: gdcmFileHelper.cxx,v $
Language: C++
- Date: $Date: 2007/10/17 10:03:59 $
- Version: $Revision: 1.133 $
+ Date: $Date: 2007/10/25 07:52:59 $
+ Version: $Revision: 1.136 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmDocEntryArchive.h"
#include "gdcmDictSet.h"
#include "gdcmOrientation.h"
-
+
+
+
+#include <algorithm> // for transform?
+
#if defined(__BORLANDC__)
- #include <mem.h> // for memset
+ #include <mem.h> // for memset
+ #include <ctype.h> //for toupper
+ #include <math.h>
#endif
#include <fstream>
// --------------------- For DataSet ---------------------
- /// \todo check that 0018|0015 [CS] [Body Part Examined] value is UPPER CASE
- /// (avoid dciodvfy to complain!)
-
+ // check whether 0018|0015 [CS] [Body Part Examined] value is UPPER CASE
+ // (avoid dciodvfy to complain!)
+ DataEntry *e_0018_0015 = FileInternal->GetDataEntry(0x0018, 0x0015);
+ if ( e_0018_0015)
+ {
+ std::string bodyPartExamined = e_0018_0015->GetString();
+ std::transform(bodyPartExamined.begin(), bodyPartExamined.end(), bodyPartExamined.begin(),
+ (int(*)(int)) toupper);
+ CopyMandatoryEntry(0x0018,0x0015,bodyPartExamined,"CS");
+ }
if ( ContentType != USER_OWN_IMAGE) // when it's not a user made image
{
// If 'SOP Class UID' and 'SOP Instance UID' exist ('true DICOM' image)
// we create the 'Source Image Sequence' SeqEntry
// to hold informations about the Source Image
-
+
+ // 'SOP Instance UID'
DataEntry *e_0008_0016 = FileInternal->GetDataEntry(0x0008, 0x0016);
+ //
DataEntry *e_0008_0018 = FileInternal->GetDataEntry(0x0008, 0x0018);
if ( e_0008_0016 && e_0008_0018)
{
e_0008_1150->Delete();
// create 'Referenced SOP Instance UID' from 'SOP Instance UID'
- DataEntry *e_0008_0018 = FileInternal->GetDataEntry(0x0008, 0x0018);
+ // DataEntry *e_0008_0018 = FileInternal->GetDataEntry(0x0008, 0x0018);
DataEntry *e_0008_1155 = DataEntry::New(0x0008, 0x1155, "UI");
e_0008_1155->SetString( e_0008_0018->GetString());