X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=Doc%2FWebsite%2FNews.html;h=3e98d7236b9281c70dc92405d12a45dd31a01e4b;hb=8bcc29f4b38b0a81e6ca731248b8d41b4606984d;hp=f53a75f60727252d79734d29babc92603da6eae3;hpb=72bb0a5e3095df153005f562bd113ec6233e8d8c;p=gdcm.git diff --git a/Doc/Website/News.html b/Doc/Website/News.html index f53a75f6..3e98d723 100644 --- a/Doc/Website/News.html +++ b/Doc/Website/News.html @@ -26,17 +26,13 @@ Any contribution is welcome.
+ ValEntry(DictEntry *e); + BinEntry(DictEntry *e); +-->DataEntry *New(uint16_t group,uint16_t elem, VRKey const &vr); + + std::string const &ValEntry::GetValue() const; + std::string const &BinEntry::GetValue() const; +-->std::string const &DataEntry::GetString() const; + + uint8_t *BinEntry::GetBinArea(); +-->uint8_t *DataEntry::GetBinArea(); + + void ValEntry::SetValue(std::string const &value); + void BinEntry::SetValue(std::string const &value); +-->void DataEntry::SetString(std::string const &value); + + void BinEntry::SetBinArea( uint8_t *area, bool self = true ); +-->void DataEntry::SetBinArea( uint8_t *area, bool self = true ); + + void ValEntry::CopyValEntry(uint16_t gr, uint16_t el); +-->void DataEntry::CopyDataEntry(uint16_t gr, uint16_t el, VRKey const &vr); ++ +
+Example : + +old way : + DocEntry *p3 = item2->GetDocEntry(0x0018,0x0050); + if( !p3 ) return false; + ContentEntry *entry2 = dynamic_cast+ +(p3); + std::string thickness = entry2->GetValue(); + +new way : + DocEntry *p3 = item2->GetDocEntry(0x0018,0x0050); + if( !p3 ) return false; + DataEntry *entry2 = dynamic_cast (p3); + std::string thickness = entry2->GetString(); + +
+ DataEntry *FileHelper::CopyDataEntry(uint16_t group, uint16_t elem); +-->DataEntry *FileHelper::CopyDataEntry(uint16_t group, uint16_t elem, + const VRKey &vr = GDCM_VRUNKNOWN); + + void FileHelper::CheckMandatoryEntry(uint16_t group, uint16_t elem, std::string value); +-->void FileHelper::CheckMandatoryEntry(uint16_t group, uint16_t elem, std::string value, + const VRKey &vr = GDCM_VRUNKNOWN); + + void FileHelper::SetMandatoryEntry(uint16_t group, uint16_t elem, std::string value); +-->void FileHelper::SetMandatoryEntry(uint16_t group, uint16_t elem, std::string value, + const VRKey &vr = GDCM_VRUNKNOWN); + + void FileHelper::CopyMandatoryEntry(uint16_t group, uint16_t elem, std::string value); +-->void FileHelper::CopyMandatoryEntry(uint16_t group, uint16_t elem, std::string value, + const VRKey &vr = GDCM_VRUNKNOWN); ++
+For multivaluated numeric DataEntries +-->void DataEntry::SetValue(const uint32_t &id,const double &val); +-->double DataEntry::GetValue(const uint32_t &id) const; +-->uint32_t DataEntry::GetValueCount() const; + +For converting 'Decimal String' +-->bool GetDSValue(std::vector <double> &valueVector); ++ +
+use : + +#define ValEntry DataEntry +#define BinEntry DataEntry + +#define GetEntryValue(g,e) GetEntryString(g,e) +#define GetEntryForcedAsciiValue(g,e) GetEntryString(g,e) + +#define GetValEntry(g,e) GetDataEntry(g,e) +#define GetBinEntry(g,e) GetDataEntry(g,e) +#define GetValue() GetString() + +#define InsertValEntry(v,g,e,vr) InsertEntryString(v,g,e,vr) // warning mind the VR! +#define InsertBinEntry(b,l,g,e,vr) InsertEntryBinArea(b,l,g,e,vr) + +#define SetValEntry(c,g,e) SetEntryString(c,g,e) | !! +#define SetValEntry(c,en) SetEntryString(c,en) | !! + +#define SetBinEntry(c,l,en) SetEntryBinArea(c,l,en) | !! +#define SetBinEntry(c,l,g,e) SetEntryBinArea(c,l,g,e) | !! + +#define NewValEntry(g,e,vr) NewDataEntry(g,e,vr) +#define NewBinEntry(g,e,vr) NewDataEntry(g,e,vr) + ++
gdcm::SerieHelper *sh= new gdcm::SerieHelper(); // if user wants *not* to load some parts of the file headers @@ -159,10 +442,10 @@ Any contribution is welcome. // if user wants to sort reverse order sh->SetSortOrderToReverse(); - // here, we suppose only the first Coherent File List is of interest - // Just iterate using sh->NexttCoherentFileList() + // here, we suppose only the first 'Single SerieUID' Fileset is of interest + // Just iterate using sh->NextSingleSerieUIDFileSet() // if you want to get all of them - gdcm::FileList *l = sh->GetFirstCoherentFileList(); + gdcm::FileList *l = sh->GetFirstSingleSerieUIDFileSet(); // if user is doesn't trust too much the files with same Serie UID if ( !sh->IsCoherent(l) ) @@ -176,7 +459,7 @@ Any contribution is welcome. // (a *very* simple example is given in vtkgdcmSerieViewer.cxx) reader->SetUserFunction (userSuppliedFunction); - // to pass a 'Coherent File List' as produced by gdcm::SerieHelper + // to pass a 'Single SerieUID' Fileset as produced by gdcm::SerieHelper reader->SetCoherentFileList(l); reader->Update();@@ -190,29 +473,29 @@ Any contribution is welcome.
- gdcm::File *f = new gdcm::File(); + he doesn't want to deal with SeqEntry + (every time it's possible, i.e for 'true length' Sequences)
+ and/or he doesn't want to deal with Shadow groups + (every time it's possible i.e. when element 0x0000 + exists for this Group)
+ or he doesn't want to deal with SeqEntry that belong to a + Shadow group (every time it's possible + -'true length' Sequence-)
+ use :
++ gdcm::File *f = new gdcm::File(); f->SetLoadMode(NO_SEQ); | depending on what f->SetLoadMode(NO_SHADOW); | you want *not* f->SetLoadMode(NO_SEQ | NO_SHADOW);| to load from the @@ -311,23 +594,23 @@ Any contribution is welcome.
- gdcm::DicomDir *f = new gdcm::DicomDir(); + (every time it's possible, i.e for 'true length' Sequences)
+ and/or he doesn't want to deal with Shadow groups + (every time it's possible i.e. when element 0x0000 + exists for this Group)
+ or he doesn't want to deal with SeqEntry that belong to a + Shadow group (every time it's possible + -'true length' Sequence-)
+ when he parses all the Dicom files within a given directory.
+ use :
++ gdcm::DicomDir *f = new gdcm::DicomDir(); f->SetLoadMode(NO_SEQ); | depending on what f->SetLoadMode(NO_SHADOW); | you want *not* f->SetLoadMode(NO_SEQ | NO_SHADOW);| to load from the files f->SetLoadMode(NO_SHADOWSEQ); | within the root directory - f->SetDirectoryName(rootDirectoryName); - f->Load( ); + f->SetDirectoryName(rootDirectoryName); + f->Load( );Don't use any longer old deprecated style:
@@ -362,13 +645,7 @@ Any contribution is welcome.- Known bugs
-
- Use of Implicit Value Representation writting mode may - causes troubles, when there are some SQ belonging to a - Shadow Group.
- Better you use Explicit Value Representation writting mode ... -- Troubles on 'Big endian' processors (i.e. Apple/Motorola, SunSparc - ...) when writting 16 Bits images. -
- Troubles on 64-bits processors. +