From 5a7f506da1ee16d6e742c4e95f7f1b09826d8980 Mon Sep 17 00:00:00 2001 From: jpr Date: Fri, 27 Jul 2007 09:49:31 +0000 Subject: [PATCH] Deal with element 0x0001 of Private Groups --- src/gdcmDocEntry.cxx | 13 +++++++++---- src/gdcmDocument.cxx | 19 ++++++++++--------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/gdcmDocEntry.cxx b/src/gdcmDocEntry.cxx index 79103b01..afea104a 100644 --- a/src/gdcmDocEntry.cxx +++ b/src/gdcmDocEntry.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDocEntry.cxx,v $ Language: C++ - Date: $Date: 2007/07/26 08:36:49 $ - Version: $Revision: 1.90 $ + Date: $Date: 2007/07/27 09:49:31 $ + Version: $Revision: 1.91 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -324,8 +324,13 @@ void DocEntry::Print(std::ostream &os, std::string const & ) uint16_t e = GetElement(); if ( e == 0x0000 ) name = "Group Length"; - else if ( GetGroup()%2 == 1 && ( e >= 0x0010 && e <= 0x00ff ) ) - name = "Private Creator"; + else if ( GetGroup()%2 == 1 ) + { + if ( e >= 0x0010 && e <= 0x00ff ) + name = "Private Creator"; + else if (e == 0x0001) + name = "Private Group Length To End"; + } else { name = GetName(); diff --git a/src/gdcmDocument.cxx b/src/gdcmDocument.cxx index 1370bae8..115f3054 100644 --- a/src/gdcmDocument.cxx +++ b/src/gdcmDocument.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDocument.cxx,v $ Language: C++ - Date: $Date: 2007/07/26 08:36:49 $ - Version: $Revision: 1.364 $ + Date: $Date: 2007/07/27 09:49:31 $ + Version: $Revision: 1.365 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -1349,7 +1349,6 @@ bool Document::ParseSQ( SeqEntry *seqEntry, gdcmWarningMacro("in ParseSQ : should never get here!"); UnexpectedEOF = true; return false; - //break; } if ( delim_mode ) { @@ -2248,12 +2247,14 @@ DocEntry *Document::ReadNextDocEntry() // Data Elements are Explicit VR and some other ones Implicit VR // -> Better we fix the problem at Write time - else if (CurrentGroup%2 == 1 && - (CurrentElem >= 0x0010 && CurrentElem <=0x00ff )) - { - // DICOM PS 3-5 7.8.1 a) states that those - // (gggg-0010->00FF where gggg is odd) attributes have to be LO - realVR = "LO"; + else if (CurrentGroup%2 == 1 ) + { + if (CurrentElem >= 0x0010 && CurrentElem <=0x00ff ) + // DICOM PS 3-5 7.8.1 a) states that those + // (gggg-0010->00FF where gggg is odd) attributes have to be LO + realVR = "LO"; + else if ( CurrentElem == 0x0001) + realVR = "UL"; // Private Group Length To End } else -- 2.45.1