From: jpr Date: Tue, 15 Jun 2004 10:06:10 +0000 (+0000) Subject: Jean-Pierre Roux X-Git-Tag: Version0.5.bp~136 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=cb31c53b363711167e5356caf328b37460955da6;p=gdcm.git Jean-Pierre Roux * gdcmSeqEntry.cxx - fix the display of Sequence Delimitor (SQDepthLevel pb) - fix the display of SQItem ordinal number - add the GetSQItemByOrdinalNumber method - remove some useless never written private methods --- diff --git a/src/gdcmDocument.cxx b/src/gdcmDocument.cxx index 7476b4b0..ea6119c4 100644 --- a/src/gdcmDocument.cxx +++ b/src/gdcmDocument.cxx @@ -1442,6 +1442,7 @@ long gdcmDocument::ParseDES(gdcmDocEntrySet *set, long offset, long l_max, bool */ long gdcmDocument::ParseSQ(gdcmSeqEntry *set, long offset, long l_max, bool delim_mode) { int SQItemNumber = 0; + gdcmDocEntry *NewDocEntry = (gdcmDocEntry *)0; gdcmSQItem *itemSQ; bool dlm_mod; @@ -1468,7 +1469,7 @@ long gdcmDocument::ParseSQ(gdcmSeqEntry *set, long offset, long l_max, bool deli dlm_mod = true; else dlm_mod=false; - + lgr=ParseDES(itemSQ, NewDocEntry->GetOffset(), l, dlm_mod); set->AddEntry(itemSQ,SQItemNumber); diff --git a/src/gdcmSeqEntry.cxx b/src/gdcmSeqEntry.cxx index e7e56832..2273a11f 100644 --- a/src/gdcmSeqEntry.cxx +++ b/src/gdcmSeqEntry.cxx @@ -60,16 +60,16 @@ void gdcmSeqEntry::Print(std::ostream &os){ // Then, Print each SQ Item for(ListSQItem::iterator cc = items.begin();cc != items.end();++cc) - { - - std::cout << "SQItemNumber " << (*cc)->GetSQItemNumber() << std::endl; - + { (*cc)->Print(os); } // at end, print the sequence terminator item, if any if (delimitor_mode) { - s2 << " | " ; // FIXME : cout the right number of | ! + if (SQDepthLevel>0) { + for (int i=0;iPrint(os); @@ -95,6 +95,22 @@ void gdcmSeqEntry::SetDepthLevel(int depth) { SQDepthLevel = depth; } +/// \brief return a pointer to th SQItem referenced by its ordinal number +/// (returns the first one if ordinal number is <0 +/// returns the last one if ordinal number is > item number + +gdcmSQItem *gdcmSeqEntry::GetSQItemByOrdinalNumber(int nb) { + if (nb<0) + return (*(items.begin())); + int count = 0 ; + for(ListSQItem::iterator cc = items.begin(); + cc != items.end(); + count ++, ++cc){ + if (count==nb) + return (*cc); + } + return (*(items.end())); +} //----------------------------------------------------------------------------- // Protected @@ -102,31 +118,4 @@ void gdcmSeqEntry::SetDepthLevel(int depth) { //----------------------------------------------------------------------------- // Private -// end-user intended : the guy *wants* to create his own SeQuence ?!? - -/// \brief to be written, if really usefull -gdcmDocEntry *gdcmSeqEntry::NewDocEntryByNumber(guint16 group, - guint16 element) { -// TODO - std::cout << "TODO : gdcmSeqEntry::NewDocEntryByNumber " << std::endl; - gdcmDocEntry *a; - return a; -} - -/// \brief to be written, if really usefull -gdcmDocEntry *gdcmSeqEntry::NewDocEntryByName (std::string Name) { -// TODO - std::cout << "TODO : gdcmSeqEntry::NewDocEntryByName " << std::endl; - gdcmDocEntry *a; - return a; -} - -/// \brief to be written, if really usefull -gdcmDocEntry *gdcmSeqEntry::GetDocEntryByNumber(guint16 group, - guint16 element) { -// TODO - std::cout << "TODO : gdcmSeqEntry::GetDocEntryByNumber " << std::endl; - gdcmDocEntry *a; - return a; -} //----------------------------------------------------------------------------- diff --git a/src/gdcmSeqEntry.h b/src/gdcmSeqEntry.h index 91c373b4..69aae040 100644 --- a/src/gdcmSeqEntry.h +++ b/src/gdcmSeqEntry.h @@ -29,14 +29,8 @@ public: /// \brief Sets the Sequence Delimitation Item inline void SetSequenceDelimitationItem(gdcmDocEntry * e) { seq_term = e;} - void AddEntry(gdcmSQItem *it, int itemNumber); - - /// \brief creates a new SQITEM for this SeQuence. - gdcmSQItem * NewItem(void); - - gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element); - gdcmDocEntry *NewDocEntryByName (std::string Name); - gdcmDocEntry *GetDocEntryByNumber(guint16 group, guint16 element); + void AddEntry(gdcmSQItem *it, int itemNumber); + gdcmSQItem *GetSQItemByOrdinalNumber(int itemNumber); void SetDepthLevel(int depth);