X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Doc%2FWebsite%2FNews.html;h=49c6bfd6220f424385a9576d035241cd8a91682f;hb=31619439d2bd17207886a86e5a3879548517ae37;hp=80a89551c8a57188d9a8349749d2471d19b0d048;hpb=5544a1627fc9bb02b2d4c20b4ffa3ba8fa81c0ae;p=gdcm.git diff --git a/Doc/Website/News.html b/Doc/Website/News.html index 80a89551..49c6bfd6 100644 --- a/Doc/Website/News.html +++ b/Doc/Website/News.html @@ -7,9 +7,108 @@ - + +

Gdcm News

+ + +
+

+ + Missing features +

+We know the following are missing; don't loose time looking for them ...
+We know they could be helpfull. We shall add them some day.
+Any contribution is welcome. +

@@ -17,53 +116,358 @@ Current Version

+ -
-
-For people who get this new release :
-
-We consider now that :
-- any dicom related file is a gdcm::Document.
-- a gdcm::Document can be :
-      - a gdcm::File,     if it contains pixel data,
-      - a gdcm::DicomDir, if it contains only informations 
-                          on the files in a given directory
-
-- in a gdcm::Document, there are gdcm::DocEntry, that can be :
-     - gdcm::ContentEntry (any entry that has an actual value,
-                           *not* an embedded set of other gdcm::DocEntry)
-                           a gdcm::ContentEntry can be :
-          - gdcm::ValEntry (whose value is std::string representable 
-                            e.g. character values, or integers),
-          - gdcm::BinEntry (whose value is not std::string representable 
-                            e.g. color palettes, overlays, icons , ...)
-     - gdcm::Sequence (no proper 'value', but a set of gdcm::SQItems, 
-                       composed of a set of gdc::DocEntry, recursively)
+   
  • State of the art + +
  • Missing Features +
  • New Features +
  • +
    + +
  • vtkGdcmReader::SetUserFunction (userSuppliedFunction)
    + with :
    + void userSuppliedFunction(uint8_t *imageData, File *f);
    + allows user to reorganize the pixels of each image just after reading + it (to mirror, or topdown the image, for instance)
    + Note : uint8_t * doesn't mean it works only on 8 Bits images. +
    It's for prototyping. Feel free to cast it. +

    +
  • + SerieHelper::SetUserLessThanFunction(userSuppliedComparisonFunction) +
    with :
    + bool userSuppliedComparisonFunction(File *, File *);
    + allows user -when he knows more about his files than gdcm does- + to give his own comparison function. +
  • SerieHelper::SetSortOrderToReverse allows user to ask + to sort the Files reverse order. +
  • SerieHelper::AddRestriction has now a new constructor
    + AddRestriction(group, element, value, operator);
    + allows user to exclude some files from the sorting, according to + any comparison operator
    + (GDCM_EQUAL, GDCM_DIFFERENT, + GDCM_GREATER, GDCM_GREATEROREQUAL, + GDCM_LESS, GDCM_LESSOREQUAL), not only on the + equality. +

    +
  • AnonymizeNoLoad used with dirin=inputDirectoryName + anonymizes all the files within the given Directory. +
    + User may also choose extra elements he wants to rub out:
    + rubout=listOfElementsToRubOut
    + with listOfElementsToRubOut : group1-elem1,group2-elem2, + ... (in hexa, no space within the list ) +

    +
  • gdcm::SerieHelper() has a new method + void AddGdcmFile(File *header), that allows aware user to + create a 'FileList' (actually a + std::vector< File* > ).
    + The FileList created this way will be the + 'first one' in the gdcm::FileHelper() (retrieve it with + FileList *GetFirstCoherentFileList() ).
    + It may be sorted using OrderFileList.
    + No 'coherence check' will be performed on this FileList + before sorting.
    + It may be passed to a vtkGdcmReader + (to avoid parsing twice the files) +

    +
  • vtkGdcmReader can now get the result of + gdcm::SerieHelper (to avoid parsing twice the files)
    + Proceed as follow :
    +
    +           gdcmSerieHelper *sh = new gdcmSerieHelper();
    +           sh->SetDirectory(myImageDirectory, true);
    +           gdcmFileList *l = s->GetFirstCoherentFileList();
    +           s->OrderFileList(l);
    +
    +           vtkGdcmReader *gr = new vtkGdcmReader();
    +           gr->SetCoherentFileList(l);
    +           gr->Update();  
    +           
    + This works with a directory that contains only one 'Serie' + (same Serie UID for all the images).
    + If it contains more than one Serie, you'll have to loop + on the Series, using GetNextCoherentFileList();
    + It will be up to the user to delete the gdcm::File. +

    + See vtkgdcmSerieViewer for an example. +

    +
  • Both vtkgdcmViewer and vtkgdcmViewer2 + are available to allow easy displaying of single/multiframe + GreyLevel/RGB/PaletteColor images

    +
  • DICOMDIR anonymiser (Load and Noload mode) +

    +
  • Because the gdcm::DicomDir::Load() method may be used + either for loading an already made DICOMDIR file or for + parsing all the dicom files with a given root directory we + syntaxically separated the operations:
    + For loading an already made DICOMDIR file, use :
    +
    +           gdcm::DicomDir *d = new gdcm::DicomDir();
    +           d->SetFileName(fileName);
    +           d->Load( );  
    +           
    -- in a gdcm::DicomDir, we only deal, hierarchically, with : - - gdcmPatient - - gdcmStudy - - gdcmSerie - - gdcmImage - -You can see gdcm UML Class Diagram + For parsing all the dicom files within a given root directory, use :
    +
    +           gdcm::DicomDir *d = new gdcm::DicomDir();
    +           d->SetDirectoryName(dirName);
    +           d->Load( )  
    +           
    + Don't use any longer old deprecated style:
    + + gdcm::DicomDir *d = new gdcm::DicomDir();
    + d->SetParseDir(true); //
    or d->SetParseDir(false);
    + d->Load( fileName );
    +
    +
    +
  • User is now allowed to tell gdcm::Document constructor + 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
    +                  f->SetLoadMode(NO_SHADOWSEQ);      | target file
    +            f->SetFileName(fileName);
    +            f->Load( );
    +            
    + Don't use any longer old deprecated style:
    + + gdcm::File *f = new gdcm::File(fileName);
    +
    +
  • User is now allowed to tell gdcm::DicomDir constructor + 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-)
    + 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( );
    +            
    + Don't use any longer old deprecated style:
    + + gdcm::DicomDir *dcmdir = new gdcm::DicomDir(dirName, true);
    +
    + + +
  • Bug fixes + + +
  • A.P.I. breaking modifications (since previous version : 1.0) + + +
  • Known bugs + + + + +
    +

    + + Version 1.0 (Feb 14 2005) +

    + +

    @@ -72,28 +476,40 @@ You can see gdcm UML Class Diagram

    +
  • Improvement of the jpeg sub-library: jpeg + compressed Dicom files (lossless and lossy) + might be read (check-it out) @@ -103,6 +519,11 @@ You can see gdcm UML Class Diagram Version 0.4 (February 6 2004)