#include <gdcmDicomDirPatient.h>
Inheritance diagram for gdcm::DicomDirPatient:
Public Member Functions | |
DicomDirPatient (bool empty=false) | |
Constructor. | |
~DicomDirPatient () | |
Canonical destructor. | |
void | Print (std::ostream &os=std::cout, std::string const &indent="") |
Prints the Object. | |
void | WriteContent (std::ofstream *fp, FileType t) |
Writes the Object. | |
void | AddStudy (DicomDirStudy *obj) |
Adds a new gdcmDicomDirStudy to the Patient. | |
DicomDirStudy * | NewStudy () |
adds a new Patient at the beginning of the PatientList of a partially created DICOMDIR | |
void | ClearStudy () |
Remove all studies in the patient. | |
DicomDirStudy * | GetFirstStudy () |
Get the first entry while visiting the DicomDirStudy. | |
DicomDirStudy * | GetNextStudy () |
Get the next entry while visiting the DicomDirStudies. | |
DicomDirStudy * | GetLastStudy () |
Get the first entry while visiting the DicomDirStudy. | |
bool | AddEntry (DocEntry *Entry) |
Inserts *in the right place* any Entry (Dicom Element) into the Sequence Item. | |
bool | RemoveEntry (DocEntry *EntryToRemove) |
Clear the std::list from given entry AND delete the entry. | |
bool | RemoveEntryNoDestroy (DocEntry *EntryToRemove) |
Clear the std::list from given entry BUT keep the entry. | |
void | ClearEntry () |
Remove all entry in the Sequence Item. | |
DocEntry * | GetFirstEntry () |
Get the first Dicom entry while visiting the SQItem. | |
DocEntry * | GetNextEntry () |
Get the next Dicom entry while visiting the SQItem. | |
DocEntry * | GetDocEntry (uint16_t group, uint16_t elem) |
Gets a Dicom Element inside a SQ Item Entry. | |
bool | IsEmpty () |
tells us if the set contains no entry | |
int | GetSQItemNumber () |
returns the ordinal position of a given SQItem | |
void | SetSQItemNumber (int itemNumber) |
Sets the ordinal position of a given SQItem. | |
int | GetDepthLevel () |
Accessor on SQDepthLevel. | |
void | SetDepthLevel (int depth) |
Accessor on SQDepthLevel. | |
void | SetBaseTagKey (BaseTagKey const &key) |
Accessor on BaseTagKey. | |
BaseTagKey const & | GetBaseTagKey () const |
Accessor on BaseTagKey. | |
virtual std::string | GetEntryValue (uint16_t group, uint16_t elem) |
Get the "std::string representable" value of the Dicom entry. | |
virtual void * | GetEntryBinArea (uint16_t group, uint16_t elem) |
Gets (from Header) a 'non string' element value. | |
virtual int | GetEntryLength (uint16_t group, uint16_t elem) |
Searches within Header Entries (Dicom Elements) parsed with the public and private dictionaries for the value length of a given tag.. | |
virtual std::string | GetEntryVR (uint16_t group, uint16_t elem) |
Searches within Header Entries (Dicom Elements) parsed with the public [and private dictionaries] for the element value representation of a given tag.. Obtaining the VR (Value Representation) might be needed by caller to convert the string typed content to caller's native type (think of C++ vs Python). The VR is actually of a higher level of semantics than just the native C++ type. | |
ValEntry * | GetValEntry (uint16_t group, uint16_t elem) |
Same as Document::GetDocEntry except it only returns a result when the corresponding entry is of type ValEntry. | |
BinEntry * | GetBinEntry (uint16_t group, uint16_t elem) |
Same as Document::GetDocEntry except it only returns a result when the corresponding entry is of type BinEntry. | |
SeqEntry * | GetSeqEntry (uint16_t group, uint16_t elem) |
Same as Document::GetDocEntry except it only returns a result when the corresponding entry is of type SeqEntry. | |
bool | SetValEntry (std::string const &content, uint16_t group, uint16_t elem) |
Accesses an existing DocEntry (i.e. a Dicom Element) through it's (group, element) and modifies it's content with the given value. | |
bool | SetValEntry (std::string const &content, ValEntry *entry) |
Accesses an existing DocEntry (i.e. a Dicom Element) and modifies it's content with the given value. | |
bool | SetBinEntry (uint8_t *content, int lgth, uint16_t group, uint16_t elem) |
Accesses an existing DocEntry (i.e. a Dicom Element) through it's (group, element) and modifies it's content with the given value. | |
bool | SetBinEntry (uint8_t *content, int lgth, BinEntry *entry) |
Accesses an existing BinEntry (i.e. a Dicom Element) and modifies it's content with the given value. | |
ValEntry * | InsertValEntry (std::string const &value, uint16_t group, uint16_t elem, TagName const &vr=GDCM_UNKNOWN) |
Modifies the value of a given Doc Entry (Dicom Element) when it exists. Create it with the given value when unexistant. | |
BinEntry * | InsertBinEntry (uint8_t *binArea, int lgth, uint16_t group, uint16_t elem, TagName const &vr=GDCM_UNKNOWN) |
Modifies the value of a given Header Entry (Dicom Element) when it exists. Create it with the given value when unexistant. A copy of the binArea is made to be kept in the Document. | |
SeqEntry * | InsertSeqEntry (uint16_t group, uint16_t elem) |
Modifies the value of a given Doc Entry (Dicom Element) when it exists. Creates it when unexistant. | |
virtual bool | CheckIfEntryExist (uint16_t group, uint16_t elem) |
Checks if a given Dicom Element exists within the H table. | |
ValEntry * | NewValEntry (uint16_t group, uint16_t elem, TagName const &vr=GDCM_UNKNOWN) |
Build a new Val Entry from all the low level arguments. Check for existence of dictionary entry, and build a default one when absent. | |
BinEntry * | NewBinEntry (uint16_t group, uint16_t elem, TagName const &vr=GDCM_UNKNOWN) |
Build a new Bin Entry from all the low level arguments. Check for existence of dictionary entry, and build a default one when absent. | |
SeqEntry * | NewSeqEntry (uint16_t group, uint16_t elem) |
Build a new Seq Entry from all the low level arguments. Check for existence of dictionary entry, and build a default one when absent. | |
DictEntry * | NewVirtualDictEntry (uint16_t group, uint16_t elem, TagName const &vr=GDCM_UNKNOWN, TagName const &vm=GDCM_UNKNOWN, TagName const &name=GDCM_UNKNOWN) |
Request a new virtual dict entry to the dict set. | |
void | SetPrintLevel (int level) |
Sets the print level for the Dicom Header Elements. | |
int | GetPrintLevel () |
Gets the print level for the Dicom Entries. | |
Protected Member Functions | |
void | FillObject (ListDicomDirMetaElem const &elemList) |
add the 'Object' related Dicom Elements to the listEntries of a partially created DICOMDIR | |
DictEntry * | GetDictEntry (uint16_t group, uint16_t elem) |
Searches [both] the public [and the shadow dictionary (when they exist)] for the presence of the DictEntry with given group and element. The public dictionary has precedence on the shadow one. | |
DictEntry * | GetDictEntry (uint16_t group, uint16_t elem, TagName const &vr) |
Searches [both] the public [and the shadow dictionary (when they exist)] for the presence of the DictEntry with given group and element, and create a new virtual DictEntry if necessary. | |
Protected Attributes | |
ListDocEntry | DocEntries |
Chained list of Doc Entries. | |
ListDocEntry::iterator | ItDocEntries |
Iterator, used to visit the entries. | |
ListDocEntry::iterator | ItValEntries |
Iterator, used to visit the Val Entries (for Python users). | |
int | PrintLevel |
Amount of printed details for each Dicom Entries : 0 : stands for the least detail level. | |
Private Attributes | |
ListDicomDirStudy | Studies |
chained list of DicomDirStudy (to be exploited hierarchicaly) | |
ListDicomDirStudy::iterator | ItStudy |
iterator on the DicomDirStudies of the current DicomDirPatient |
Definition at line 36 of file gdcmDicomDirPatient.h.
|
Constructor.
Definition at line 34 of file gdcmDicomDirPatient.cxx. References gdcm::DicomDirObject::FillObject(), and gdcm::ListDicomDirStudyElem.
00035 :DicomDirObject() 00036 { 00037 if( !empty ) 00038 { 00039 ListDicomDirStudyElem const &elemList = 00040 Global::GetDicomDirElements()->GetDicomDirPatientElements(); 00041 FillObject(elemList); 00042 } 00043 } |
|
Canonical destructor.
Definition at line 48 of file gdcmDicomDirPatient.cxx. References ClearStudy().
00049 { 00050 ClearStudy(); 00051 } |
|
Inserts *in the right place* any Entry (Dicom Element) into the Sequence Item.
Implements gdcm::DocEntrySet. Definition at line 107 of file gdcmSQItem.cxx. References gdcm::SQItem::DocEntries, gdcm::DocEntry::GetElement(), and gdcm::DocEntry::GetGroup(). Referenced by gdcm::DicomDirObject::FillObject(), gdcm::DicomDir::NewMeta(), and gdcm::DicomDir::SetElement().
00108 { 00109 if (DocEntries.empty() ) 00110 { 00111 DocEntries.push_back(entry); 00112 return true; 00113 } 00114 00115 ListDocEntry::iterator insertSpot; 00116 ListDocEntry::iterator it = DocEntries.end(); 00117 do 00118 { 00119 it--; 00120 00121 if ( (*it)->IsItemDelimitor() ) 00122 { 00123 continue; 00124 } 00125 if ( (*it)->GetGroup() < entry->GetGroup() ) 00126 break; 00127 else 00128 if ( (*it)->GetGroup() == entry->GetGroup() && 00129 (*it)->GetElement() < entry->GetElement() ) 00130 break; 00131 } while (it != DocEntries.begin() ); 00132 00133 insertSpot = it++; 00134 insertSpot++; // ?!? 00135 DocEntries.insert(insertSpot, entry); 00136 return true; 00137 } |
|
Adds a new gdcmDicomDirStudy to the Patient.
Definition at line 47 of file gdcmDicomDirPatient.h.
00047 { Studies.push_back(obj); }; |
|
Checks if a given Dicom Element exists within the H table.
Definition at line 434 of file gdcmDocEntrySet.cxx. References gdcm::DocEntrySet::GetDocEntry().
00435 { 00436 return GetDocEntry(group,elem)!=NULL; 00437 } |
|
Remove all entry in the Sequence Item.
Implements gdcm::DocEntrySet. Definition at line 189 of file gdcmSQItem.cxx. References gdcm::SQItem::DocEntries. Referenced by gdcm::SQItem::~SQItem().
00190 { 00191 for(ListDocEntry::iterator cc = DocEntries.begin(); 00192 cc != DocEntries.end(); 00193 ++cc) 00194 { 00195 delete *cc; 00196 } 00197 DocEntries.clear(); 00198 } |
|
Remove all studies in the patient.
Definition at line 86 of file gdcmDicomDirPatient.cxx. References Studies. Referenced by ~DicomDirPatient().
|
|
add the 'Object' related Dicom Elements to the listEntries of a partially created DICOMDIR
Definition at line 56 of file gdcmDicomDirObject.cxx. References gdcm::SQItem::AddEntry(), gdcm::ListDicomDirMetaElem, gdcm::DocEntry::SetOffset(), and gdcm::ValEntry::SetValue(). Referenced by gdcm::DicomDirImage::DicomDirImage(), gdcm::DicomDirMeta::DicomDirMeta(), DicomDirPatient(), gdcm::DicomDirSerie::DicomDirSerie(), and gdcm::DicomDirStudy::DicomDirStudy().
00057 { 00058 // FillObject fills up the SQItem that will be conneected to the right place 00059 ListDicomDirMetaElem::const_iterator it; 00060 uint16_t tmpGr,tmpEl; 00061 DictEntry *dictEntry; 00062 ValEntry *entry; 00063 00064 // for all the Elements found in they own part of the DicomDir dict. 00065 for(it = elemList.begin(); it != elemList.end(); ++it) 00066 { 00067 tmpGr = it->Group; 00068 tmpEl = it->Elem; 00069 dictEntry = Global::GetDicts()->GetDefaultPubDict()->GetEntry(tmpGr,tmpEl); 00070 entry = new ValEntry(dictEntry); 00071 entry->SetOffset(0); // just to avoid further missprinting 00072 entry->SetValue(it->Value); 00073 00074 AddEntry(entry); 00075 } 00076 } |
|
Accessor on BaseTagKey.
Definition at line 77 of file gdcmSQItem.h. References gdcm::BaseTagKey. Referenced by gdcm::Document::ParseDES().
00077 { return BaseTagKeyNested; }
|
|
Same as Document::GetDocEntry except it only returns a result when the corresponding entry is of type BinEntry.
Definition at line 127 of file gdcmDocEntrySet.cxx. References gdcmWarningMacro, and gdcm::DocEntrySet::GetDocEntry(). Referenced by gdcm::DocEntrySet::GetEntryBinArea(), and gdcm::DocEntrySet::SetBinEntry().
00128 { 00129 DocEntry *currentEntry = GetDocEntry(group, elem); 00130 if ( !currentEntry ) 00131 { 00132 gdcmWarningMacro( "No corresponding BinEntry " << std::hex << group << 00133 "," << elem); 00134 return NULL; 00135 } 00136 00137 return dynamic_cast<BinEntry*>(currentEntry); 00138 } |
|
Accessor on SQDepthLevel.
Definition at line 68 of file gdcmSQItem.h. Referenced by gdcm::Document::ParseDES().
00068 { return SQDepthLevel; }
|
|
Searches [both] the public [and the shadow dictionary (when they exist)] for the presence of the DictEntry with given group and element, and create a new virtual DictEntry if necessary.
Definition at line 558 of file gdcmDocEntrySet.cxx. References gdcm::GDCM_UNKNOWN, gdcm::DocEntrySet::GetDictEntry(), gdcm::DictEntry::GetName(), gdcm::DictEntry::GetVR(), gdcm::DocEntrySet::NewVirtualDictEntry(), and gdcm::TagName.
00560 { 00561 DictEntry *dictEntry = GetDictEntry(group,elem); 00562 DictEntry *goodEntry = dictEntry; 00563 std::string goodVR = vr; 00564 00565 if (elem == 0x0000) goodVR="UL"; 00566 00567 if ( goodEntry ) 00568 { 00569 if ( goodVR != goodEntry->GetVR() 00570 && goodVR != GDCM_UNKNOWN ) 00571 { 00572 goodEntry = NULL; 00573 } 00574 } 00575 00576 // Create a new virtual DictEntry if necessary 00577 if (!goodEntry) 00578 { 00579 if (dictEntry) 00580 { 00581 goodEntry = NewVirtualDictEntry(group, elem, goodVR, "FIXME", 00582 dictEntry->GetName() ); 00583 } 00584 else 00585 { 00586 goodEntry = NewVirtualDictEntry(group, elem, goodVR); 00587 } 00588 } 00589 return goodEntry; 00590 } |
|
Searches [both] the public [and the shadow dictionary (when they exist)] for the presence of the DictEntry with given group and element. The public dictionary has precedence on the shadow one.
Definition at line 534 of file gdcmDocEntrySet.cxx. References gdcmWarningMacro, and gdcm::Dict::GetEntry(). Referenced by gdcm::DocEntrySet::GetDictEntry(), gdcm::DocEntrySet::NewBinEntry(), gdcm::DocEntrySet::NewSeqEntry(), gdcm::DocEntrySet::NewValEntry(), and gdcm::Document::ReadNextDocEntry().
00535 { 00536 DictEntry *found = 0; 00537 Dict *pubDict = Global::GetDicts()->GetDefaultPubDict(); 00538 if (!pubDict) 00539 { 00540 gdcmWarningMacro( "We SHOULD have a default dictionary"); 00541 } 00542 else 00543 { 00544 found = pubDict->GetEntry(group, elem); 00545 } 00546 return found; 00547 } |
|
Gets a Dicom Element inside a SQ Item Entry.
Implements gdcm::DocEntrySet. Definition at line 230 of file gdcmSQItem.cxx. References gdcm::SQItem::DocEntries. Referenced by gdcm::DicomDir::CreateDicomDir().
00231 { 00232 for(ListDocEntry::iterator i = DocEntries.begin(); 00233 i != DocEntries.end(); 00234 ++i) 00235 { 00236 if ( (*i)->GetGroup() == group && (*i)->GetElement() == elem ) 00237 return *i; 00238 } 00239 return NULL; 00240 } |
|
Gets (from Header) a 'non string' element value.
Definition at line 57 of file gdcmDocEntrySet.cxx. References gdcm::BinEntry::GetBinArea(), and gdcm::DocEntrySet::GetBinEntry(). Referenced by gdcm::PixelReadConvert::GrabInformationsFromFile().
00058 { 00059 BinEntry *entry = GetBinEntry(group, elem); 00060 if( entry ) 00061 return entry->GetBinArea(); 00062 return 0; 00063 } |
|
Searches within Header Entries (Dicom Elements) parsed with the public and private dictionaries for the value length of a given tag..
Definition at line 73 of file gdcmDocEntrySet.cxx. References gdcm::DocEntrySet::GetDocEntry(), and gdcm::DocEntry::GetLength(). Referenced by gdcm::DicomDir::SetElement(), and gdcm::File::Write().
00074 { 00075 DocEntry *entry = GetDocEntry(group, elem); 00076 if( entry ) 00077 return entry->GetLength(); 00078 return -1; 00079 } |
|
|
Searches within Header Entries (Dicom Elements) parsed with the public [and private dictionaries] for the element value representation of a given tag.. Obtaining the VR (Value Representation) might be needed by caller to convert the string typed content to caller's native type (think of C++ vs Python). The VR is actually of a higher level of semantics than just the native C++ type.
Definition at line 94 of file gdcmDocEntrySet.cxx. References gdcm::GDCM_UNFOUND, gdcm::DocEntrySet::GetDocEntry(), and gdcm::DocEntry::GetVR().
00095 { 00096 DocEntry *entry = GetDocEntry(group, elem); 00097 if( entry ) 00098 return entry->GetVR(); 00099 return GDCM_UNFOUND; 00100 } |
|
Get the first Dicom entry while visiting the SQItem.
Implements gdcm::DocEntrySet. Definition at line 204 of file gdcmSQItem.cxx. References gdcm::SQItem::DocEntries, and gdcm::SQItem::ItDocEntries.
00205 { 00206 ItDocEntries = DocEntries.begin(); 00207 if( ItDocEntries != DocEntries.end() ) 00208 return *ItDocEntries; 00209 return 0; 00210 } |
|
Get the first entry while visiting the DicomDirStudy.
Definition at line 101 of file gdcmDicomDirPatient.cxx. References ItStudy, and Studies.
|
|
Get the first entry while visiting the DicomDirStudy.
Definition at line 128 of file gdcmDicomDirPatient.cxx. References ItStudy, and Studies.
|
|
Get the next Dicom entry while visiting the SQItem.
Implements gdcm::DocEntrySet. Definition at line 216 of file gdcmSQItem.cxx. References gdcm::SQItem::DocEntries, and gdcm::SQItem::ItDocEntries.
00217 { 00218 ++ItDocEntries; 00219 if( ItDocEntries != DocEntries.end() ) 00220 return *ItDocEntries; 00221 return NULL; 00222 } |
|
Get the next entry while visiting the DicomDirStudies.
Definition at line 114 of file gdcmDicomDirPatient.cxx. References gdcmAssertMacro, ItStudy, and Studies.
|
|
Gets the print level for the Dicom Entries.
Definition at line 48 of file gdcmBase.h.
00048 { return PrintLevel; }; |
|
Same as Document::GetDocEntry except it only returns a result when the corresponding entry is of type SeqEntry.
Definition at line 148 of file gdcmDocEntrySet.cxx. References gdcmWarningMacro, and gdcm::DocEntrySet::GetDocEntry().
00149 { 00150 DocEntry *currentEntry = GetDocEntry(group, elem); 00151 if ( !currentEntry ) 00152 { 00153 gdcmWarningMacro( "No corresponding SeqEntry " << std::hex << group << 00154 "," << elem); 00155 return NULL; 00156 } 00157 00158 return dynamic_cast<SeqEntry*>(currentEntry); 00159 } |
|
returns the ordinal position of a given SQItem
Definition at line 63 of file gdcmSQItem.h.
00063 { return SQItemNumber; };
|
|
Same as Document::GetDocEntry except it only returns a result when the corresponding entry is of type ValEntry.
Definition at line 110 of file gdcmDocEntrySet.cxx. References gdcm::DocEntrySet::GetDocEntry(). Referenced by gdcm::DocEntrySet::SetValEntry(), and gdcm::File::Write().
00111 { 00112 DocEntry *currentEntry = GetDocEntry(group, elem); 00113 if ( !currentEntry ) 00114 return NULL; 00115 00116 return dynamic_cast<ValEntry*>(currentEntry); 00117 } |
|
Modifies the value of a given Header Entry (Dicom Element) when it exists. Create it with the given value when unexistant. A copy of the binArea is made to be kept in the Document.
Definition at line 309 of file gdcmDocEntrySet.cxx. References gdcm::DocEntrySet::AddEntry(), gdcmWarningMacro, gdcm::DocEntrySet::GetDocEntry(), gdcm::DocEntry::GetVR(), gdcm::DocEntrySet::NewBinEntry(), gdcm::DocEntrySet::RemoveEntry(), gdcm::DocEntrySet::SetBinEntry(), and gdcm::TagName. Referenced by gdcm::File::InitializeDefaultFile(), and gdcm::FileHelper::InsertBinEntry().
00312 { 00313 BinEntry *binEntry = 0; 00314 DocEntry *currentEntry = GetDocEntry( group, elem ); 00315 00316 // Verify the currentEntry 00317 if (currentEntry) 00318 { 00319 binEntry = dynamic_cast<BinEntry *>(currentEntry); 00320 00321 // Verify the VR 00322 if( binEntry ) 00323 if( binEntry->GetVR()!=vr ) 00324 binEntry = NULL; 00325 00326 // if currentEntry doesn't correspond to the requested valEntry 00327 if( !binEntry) 00328 { 00329 if( !RemoveEntry(currentEntry) ) 00330 { 00331 gdcmWarningMacro( "Removal of previous DocEntry failed."); 00332 00333 return NULL; 00334 } 00335 } 00336 } 00337 00338 // Create a new binEntry if necessary 00339 if( !binEntry) 00340 { 00341 binEntry = NewBinEntry(group, elem, vr); 00342 00343 if ( !AddEntry(binEntry) ) 00344 { 00345 gdcmWarningMacro( "AddEntry failed allthough this is a creation."); 00346 00347 delete binEntry; 00348 return NULL; 00349 } 00350 } 00351 00352 // Set the binEntry value 00353 uint8_t *tmpArea; 00354 if( lgth>0 && binArea ) 00355 { 00356 tmpArea = new uint8_t[lgth]; 00357 memcpy(tmpArea,binArea,lgth); 00358 } 00359 else 00360 { 00361 tmpArea = 0; 00362 } 00363 if( !SetBinEntry(tmpArea,lgth,binEntry) ) 00364 { 00365 if( tmpArea ) 00366 { 00367 delete[] tmpArea; 00368 } 00369 } 00370 00371 return binEntry; 00372 } |
|
Modifies the value of a given Doc Entry (Dicom Element) when it exists. Creates it when unexistant.
Definition at line 382 of file gdcmDocEntrySet.cxx. References gdcm::DocEntrySet::AddEntry(), gdcmWarningMacro, gdcm::DocEntrySet::GetDocEntry(), gdcm::DocEntrySet::NewSeqEntry(), and gdcm::DocEntrySet::RemoveEntry(). Referenced by gdcm::FileHelper::InsertSeqEntry().
00383 { 00384 SeqEntry *seqEntry = 0; 00385 DocEntry *currentEntry = GetDocEntry( group, elem ); 00386 00387 // Verify the currentEntry 00388 if( currentEntry ) 00389 { 00390 seqEntry = dynamic_cast<SeqEntry *>(currentEntry); 00391 00392 // Verify the VR 00393 if( seqEntry ) 00394 seqEntry = NULL; 00395 00396 // if currentEntry doesn't correspond to the requested seqEntry 00397 if( !seqEntry ) 00398 { 00399 if (!RemoveEntry(currentEntry)) 00400 { 00401 gdcmWarningMacro( "Removal of previous DocEntry failed."); 00402 00403 return NULL; 00404 } 00405 } 00406 } 00407 // Create a new seqEntry if necessary 00408 if( !seqEntry ) 00409 { 00410 seqEntry = NewSeqEntry(group, elem); 00411 00412 if( !AddEntry(seqEntry) ) 00413 { 00414 gdcmWarningMacro( "AddEntry failed allthough this is a creation."); 00415 00416 delete seqEntry; 00417 return NULL; 00418 } 00419 } 00420 00421 // TODO : Find a trick to insert a SequenceDelimitationItem 00422 // in the SeqEntry, at the end. 00423 return seqEntry; 00424 } |
|
Modifies the value of a given Doc Entry (Dicom Element) when it exists. Create it with the given value when unexistant.
Definition at line 250 of file gdcmDocEntrySet.cxx. References gdcm::DocEntrySet::AddEntry(), gdcmWarningMacro, gdcm::DocEntrySet::GetDocEntry(), gdcm::DocEntry::GetVR(), gdcm::DocEntrySet::NewValEntry(), gdcm::DocEntrySet::RemoveEntry(), gdcm::DocEntrySet::SetValEntry(), and gdcm::TagName. Referenced by gdcm::File::InitializeDefaultFile(), gdcm::FileHelper::InsertValEntry(), and gdcm::File::Write().
00253 { 00254 ValEntry *valEntry = 0; 00255 DocEntry *currentEntry = GetDocEntry( group, elem ); 00256 00257 if (currentEntry) 00258 { 00259 valEntry = dynamic_cast<ValEntry *>(currentEntry); 00260 00261 // Verify the VR 00262 if( valEntry ) 00263 if( valEntry->GetVR()!=vr ) 00264 valEntry = NULL; 00265 00266 // if currentEntry doesn't correspond to the requested valEntry 00267 if( !valEntry) 00268 { 00269 if( !RemoveEntry(currentEntry) ) 00270 { 00271 gdcmWarningMacro( "Removal of previous DocEntry failed."); 00272 00273 return NULL; 00274 } 00275 } 00276 } 00277 00278 // Create a new valEntry if necessary 00279 if( !valEntry ) 00280 { 00281 valEntry = NewValEntry( group, elem, vr ); 00282 00283 if ( !AddEntry(valEntry) ) 00284 { 00285 gdcmWarningMacro("AddEntry failed although this is a creation."); 00286 00287 delete valEntry; 00288 return NULL; 00289 } 00290 } 00291 00292 // Set the binEntry value 00293 SetValEntry(value, valEntry); // The std::string value 00294 return valEntry; 00295 } |
|
tells us if the set contains no entry
Implements gdcm::DocEntrySet. Definition at line 60 of file gdcmSQItem.h.
00060 { return DocEntries.empty(); }; |
|
Build a new Bin Entry from all the low level arguments. Check for existence of dictionary entry, and build a default one when absent.
Definition at line 471 of file gdcmDocEntrySet.cxx. References gdcmAssertMacro, gdcmWarningMacro, gdcm::DocEntrySet::GetDictEntry(), and gdcm::TagName. Referenced by gdcm::FileHelper::CopyBinEntry(), gdcm::DocEntrySet::InsertBinEntry(), and gdcm::Document::ReadNextDocEntry().
00473 { 00474 DictEntry *dictEntry = GetDictEntry(group, elem, vr); 00475 gdcmAssertMacro(dictEntry); 00476 00477 BinEntry *newEntry = new BinEntry(dictEntry); 00478 if (!newEntry) 00479 { 00480 gdcmWarningMacro( "Failed to allocate BinEntry"); 00481 return 0; 00482 } 00483 return newEntry; 00484 } |
|
Build a new Seq Entry from all the low level arguments. Check for existence of dictionary entry, and build a default one when absent.
Definition at line 493 of file gdcmDocEntrySet.cxx. References gdcmAssertMacro, gdcmWarningMacro, and gdcm::DocEntrySet::GetDictEntry(). Referenced by gdcm::DocEntrySet::InsertSeqEntry(), and gdcm::Document::ReadNextDocEntry().
00494 { 00495 DictEntry *dictEntry = GetDictEntry(group, elem, "SQ"); 00496 gdcmAssertMacro(dictEntry); 00497 00498 SeqEntry *newEntry = new SeqEntry( dictEntry ); 00499 if (!newEntry) 00500 { 00501 gdcmWarningMacro( "Failed to allocate SeqEntry"); 00502 return 0; 00503 } 00504 return newEntry; 00505 } |
|
adds a new Patient at the beginning of the PatientList of a partially created DICOMDIR
Definition at line 76 of file gdcmDicomDirPatient.cxx. References Studies.
00077 { 00078 DicomDirStudy *st = new DicomDirStudy(); 00079 Studies.push_back(st); 00080 return st; 00081 } |
|
Build a new Val Entry from all the low level arguments. Check for existence of dictionary entry, and build a default one when absent.
Definition at line 447 of file gdcmDocEntrySet.cxx. References gdcmAssertMacro, gdcmWarningMacro, gdcm::DocEntrySet::GetDictEntry(), and gdcm::TagName. Referenced by gdcm::FileHelper::CopyValEntry(), gdcm::DocEntrySet::InsertValEntry(), and gdcm::Document::ReadNextDocEntry().
00449 { 00450 DictEntry *dictEntry = GetDictEntry(group, elem, vr); 00451 gdcmAssertMacro(dictEntry); 00452 00453 ValEntry *newEntry = new ValEntry(dictEntry); 00454 if (!newEntry) 00455 { 00456 gdcmWarningMacro( "Failed to allocate ValEntry"); 00457 return 0; 00458 } 00459 return newEntry; 00460 } |
|
Request a new virtual dict entry to the dict set.
Definition at line 515 of file gdcmDocEntrySet.cxx. References gdcm::TagName. Referenced by gdcm::File::File(), and gdcm::DocEntrySet::GetDictEntry().
00519 {
00520 return Global::GetDicts()->NewVirtualDictEntry(group,elem,vr,vm,name);
00521 }
|
|
Prints the Object.
Reimplemented from gdcm::SQItem. Definition at line 152 of file gdcmDicomDirPatient.cxx. References Studies.
|
|
Clear the std::list from given entry AND delete the entry.
Implements gdcm::DocEntrySet. Definition at line 144 of file gdcmSQItem.cxx. References gdcm::SQItem::DocEntries, gdcmWarningMacro, and gdcm::DocEntry::GetKey().
00145 { 00146 for(ListDocEntry::iterator it = DocEntries.begin(); 00147 it != DocEntries.end(); 00148 ++it) 00149 { 00150 if( *it == entryToRemove ) 00151 { 00152 DocEntries.erase(it); 00153 gdcmWarningMacro( "One element erased: " << entryToRemove->GetKey() ); 00154 delete entryToRemove; 00155 return true; 00156 } 00157 } 00158 gdcmWarningMacro( "Entry not found: " << entryToRemove->GetKey() ); 00159 return false ; 00160 } |
|
Clear the std::list from given entry BUT keep the entry.
Implements gdcm::DocEntrySet. Definition at line 167 of file gdcmSQItem.cxx. References gdcm::SQItem::DocEntries, gdcmWarningMacro, and gdcm::DocEntry::GetKey().
00168 { 00169 for(ListDocEntry::iterator it = DocEntries.begin(); 00170 it != DocEntries.end(); 00171 ++it) 00172 { 00173 if( *it == entryToRemove ) 00174 { 00175 DocEntries.erase(it); 00176 gdcmWarningMacro( "One element erased, no destroyed: " 00177 << entryToRemove->GetKey() ); 00178 return true; 00179 } 00180 } 00181 00182 gdcmWarningMacro( "Entry not found:" << entryToRemove->GetKey() ); 00183 return false ; 00184 } |
|
Accessor on BaseTagKey.
Definition at line 74 of file gdcmSQItem.h. References gdcm::BaseTagKey. Referenced by gdcm::Document::ParseSQ().
00074 { BaseTagKeyNested = key; } |
|
Accesses an existing BinEntry (i.e. a Dicom Element) and modifies it's content with the given value.
Definition at line 228 of file gdcmDocEntrySet.cxx. References gdcm::GDCM_BINLOADED, gdcm::BinEntry::SetBinArea(), gdcm::DocEntry::SetLength(), and gdcm::ContentEntry::SetValue().
00229 { 00230 if(entry) 00231 { 00232 entry->SetBinArea(content); 00233 entry->SetLength(lgth); 00234 entry->SetValue(GDCM_BINLOADED); 00235 return true; 00236 } 00237 return false; 00238 } |
|
Accesses an existing DocEntry (i.e. a Dicom Element) through it's (group, element) and modifies it's content with the given value.
Definition at line 191 of file gdcmDocEntrySet.cxx. References gdcmWarningMacro, and gdcm::DocEntrySet::GetBinEntry(). Referenced by gdcm::DocEntrySet::InsertBinEntry(), and gdcm::FileHelper::SetBinEntry().
00193 { 00194 BinEntry *entry = GetBinEntry(group, elem); 00195 if (!entry ) 00196 { 00197 gdcmWarningMacro( "No corresponding ValEntry " << std::hex << group << 00198 "," << elem << " element (try promotion first)."); 00199 return false; 00200 } 00201 00202 return SetBinEntry(content,lgth,entry); 00203 } |
|
Accessor on SQDepthLevel.
Definition at line 71 of file gdcmSQItem.h.
00071 { SQDepthLevel = depth; } |
|
Sets the print level for the Dicom Header Elements.
Definition at line 45 of file gdcmBase.h. Referenced by gdcm::SQItem::Print(), gdcm::SeqEntry::Print(), gdcm::FileHelper::Print(), gdcm::ElementSet::Print(), and gdcm::DicomDir::Print().
00045 { PrintLevel = level; }; |
|
Sets the ordinal position of a given SQItem.
Definition at line 65 of file gdcmSQItem.h. Referenced by gdcm::SeqEntry::AddSQItem(), and gdcm::DicomDir::NewMeta().
00065 { SQItemNumber = itemNumber; }; |
|
Accesses an existing DocEntry (i.e. a Dicom Element) and modifies it's content with the given value.
Definition at line 211 of file gdcmDocEntrySet.cxx. References gdcm::ValEntry::SetValue().
00212 { 00213 if(entry) 00214 { 00215 entry->SetValue(content); 00216 return true; 00217 } 00218 return false; 00219 } |
|
Accesses an existing DocEntry (i.e. a Dicom Element) through it's (group, element) and modifies it's content with the given value.
Definition at line 169 of file gdcmDocEntrySet.cxx. References gdcmWarningMacro, and gdcm::DocEntrySet::GetValEntry(). Referenced by gdcm::File::AnonymizeFile(), gdcm::Document::Document(), gdcm::DocEntrySet::InsertValEntry(), gdcm::FileHelper::SetValEntry(), and gdcm::File::Write().
00171 { 00172 ValEntry *entry = GetValEntry(group, elem); 00173 if (!entry ) 00174 { 00175 gdcmWarningMacro( "No corresponding ValEntry " << std::hex << group << 00176 "," << elem << " element (try promotion first)."); 00177 return false; 00178 } 00179 return SetValEntry(content,entry); 00180 } |
|
Writes the Object.
Reimplemented from gdcm::SQItem. Definition at line 60 of file gdcmDicomDirPatient.cxx. References Studies.
|
|
Chained list of Doc Entries.
Definition at line 82 of file gdcmSQItem.h. Referenced by gdcm::SQItem::AddEntry(), gdcm::SQItem::ClearEntry(), gdcm::SQItem::GetDocEntry(), gdcm::SQItem::GetFirstEntry(), gdcm::SQItem::GetNextEntry(), gdcm::SQItem::Print(), gdcm::SQItem::RemoveEntry(), gdcm::SQItem::RemoveEntryNoDestroy(), and gdcm::SQItem::WriteContent(). |
|
Iterator, used to visit the entries.
Definition at line 84 of file gdcmSQItem.h. Referenced by gdcm::SQItem::GetFirstEntry(), and gdcm::SQItem::GetNextEntry(). |
|
iterator on the DicomDirStudies of the current DicomDirPatient
Definition at line 60 of file gdcmDicomDirPatient.h. Referenced by GetFirstStudy(), GetLastStudy(), and GetNextStudy(). |
|
Iterator, used to visit the Val Entries (for Python users).
Definition at line 86 of file gdcmSQItem.h. |
|
Amount of printed details for each Dicom Entries : 0 : stands for the least detail level.
Definition at line 53 of file gdcmBase.h. Referenced by gdcm::Base::Base(). |
|
chained list of DicomDirStudy (to be exploited hierarchicaly)
Definition at line 58 of file gdcmDicomDirPatient.h. Referenced by ClearStudy(), GetFirstStudy(), GetLastStudy(), GetNextStudy(), NewStudy(), Print(), and WriteContent(). |