X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=ChangeLog;h=58061aace582d61fa87baf32c94b6a0ec2363911;hb=559c3639fc5b255b36a951f352db1addead9f78f;hp=97a5c7fe1510a233f77825057a048ab7e9dee328;hpb=8c8dfaf3f3625d1ac9ca2f7f2af0753b80ed009a;p=gdcm.git diff --git a/ChangeLog b/ChangeLog index 97a5c7fe..58061aac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,424 @@ +2004-11-03 Mathieu Malaterre + * /binary_write/ gdcm source. Now even on big endian we are writting + little endian. This should -heopfully- fix some tests + +2004-11-03 Mathieu Malaterre + * Now the dictionary is compiled into gdcm lib. This is a default + behavior, thus any dic file specified is picked before failback to + the one comiled into lib + +2004-10-27 Mathieu Malaterre + * Change internals for gdcmDict. Don't use any 'new' any more. + This should definitely solve any leak problem, and we should be + as fast as before, as long as don't modify too much the dictionary. + +2004-10-25 Mathieu Malaterre + * STYLE: ivars should start with a capital letter. + * Accessors should be const to avoid people starting modifying stuff (since this is a ref). + * remove 'virtual' as Style specify subclasses shouldn't reuse the keyword + +2004-10-22 Eric Boix + * Doc/Dicom2004_Part5.pdf added (thanks to JPR). + * Dicts/dicomTS2004.dic, dicomV3VM2004.dic, groupNameAbbreviations2004.dic + new 2004 dictionaries added (thanks to JPR). + * FIX dashboard warning RLEFrame::NumberFragments is now of type unsigned int + * CLEANUP_ROUND (15) for gdcmPixelConvert + - RLEFrame::NumberFragments is now of type unsigned int + - gdcmFile::GetImageData(), GetImageDataIntoVector(), GetImageDataRaw() + are now all based on PixelConverter. ::GetImageDataIntoVectorRaw() + no longer exists. + +2004-10-21 Mathieu Malaterre + * Initial work in gathering all transfer syntax accessors. clearly + IsDecompressed/IsJPEG2000/IsJPEGLossless/IsRLELossless shouldn't be all + ivars, but only one transfersyntax (class) ivar with equivalent method on + the class. + +2004-10-21 Mathieu Malaterre + * Removed all FILE* ref and replace by ifstream/ofstream. For now I use a temp + solution with the two files jdatadst.cxx and jdatasrc.cxx, this need to be + discussed (plus I didn't like having a 2000 lines patch not commited) + +2004-10-21 Eric Boix + * src/gdcmDocument.cxx: wrong type on return fixed (thanks dashboard) + * CLEANUP_ROUND (14) for gdcmPixelConvert + - PixelConvert::GetLutRGBA(FILE*) is now GetLutRGBA() (no fp needed) + - PixelConvert::BuildRGBImage()(FILE*) is now BuildRGBImage() (no fp needed) + - File::GetImageDataIntoVector() doesn't need unnecessary OpenFile() and + CloseFile() anymore. + - File::GetImageDataRaw() doesn't call GetImageDataIntoVectorRaw() + anymore and hence avoids storing a copy of PixelConvert::Decompressed + into File::Pixel_Data. + +2004-10-20 Eric Boix + * src/gdcmDocument.cxx ftell() return properly stored in a long (i.e. + no longer depends on's programmers PMS = Preposterous Mood Swings ;). + * CLEANUP_ROUND (13) for gdcmPixelConvert + Substituted File::ParsePixelData() with PixelConvert::Print() new + method: + - src/gdcmParsePixels.cxx removed (only contained File::ParsePixelData()) + - src/gdcmRLEFrame.cxx, gdcmJPEGFragment.cxx added. Added a ::Print() + method to those classes. + - src/gdcmFile.[cxx|h]: + -- Added a ::Print() method. + -- PixelConverter is now a reference instead of a member. + -- gdcmPython/gdcm.i: added "using namespace gdcm" in order for + gdcm_wrap.cxx to "understand" File::GetPixelConverter() + +2004-10-18 Eric Boix + * Doc/CMakeLists.txt, doxygen.config.in: when dot is present the + collaboration diagram and inheritance diagram should be generated with + doxygen. + * Doc/Website/Sidebar.html: Dashboard is now also in the sidebar. + * gdcmPython/gdcm.i: gdcmRLEFramesInfo.h gdcmJPEGFragmentsInfo.h are + pointlessly wrapped (see + http://www.creatis.insa-lyon.fr/pipermail/dcmlib/2004-October/000692.html ) + * CLEANUP_ROUND (12) for gdcmPixelConvert (sugar is my friend stage) + - Header::GetLUTRGBA() moved to PixelConvert::GetLutRGBA() + - vtk/vtkGdcmReader.cxx: adapted to displacment of Header::GetLUTRGBA() + - Document::RLEInfo and JPEGInfo are now pointer members (Swig thing) + - src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]: + -- File::Initialise: PixelConverter setup moved away to + PixelConverter::GrabInformationsFromHeader() + -- File::GetImageDataIntoVector(): Lut R + Lut G + Lut B color table + interpretation moved away to PixelConverter::BuildRGBImage() + +2004-10-16 Mathieu Malaterre + * Remove GDCM_EXPORT keyword from gdcm::DirList due to : + http://support.microsoft.com/support/kb/articles/Q168/9/58.ASP + +2004-10-15 Eric Boix + * src/gdcmDebug.cxx last ditch attempt to get warning/error messages + displayed on Win32 when a brutal abort() occurs (because of uncatched + exception). See TODO new entry of this commit for more on this. + * TODO added new entry. + * CLEANUP_ROUND (12) for gdcmPixelConvert (nicotine is my friend stage) + src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]: + - HandleColor is no longer called from gdcmFile.cxx + - gdcmPixelConvert.cxx clean up on method arguments and internal + variable names for semantical coherence. + +2004-10-14 Mathieu Malaterre + * Finished lossless transition, not only do we now read all lossless jpeg + images, without the need of the Cornwell lib, but we do read them properly now + * To reduce code (well to avoid code duplication), I defined a common place + for jpeg read/write: gdcmJpeg.cxx. Now gdcmJpeg[8,12 16] include this file and + redefine symbols. This is not prefect but this the best solution I found for a + compilation time jpeg option. + +2004-10-13 Mathieu Malaterre + * Update jpeg ijg lib to support lossless jpeg implementation + For more info look in jpeg/libijg/README.GDCM.txt for necessary steps to + reproduce at home. + * Also added a special copyright for dcmtk since we use their bugfixes. + Thanks dcmtk crew ! + +2004-10-13 Eric Boix + * Doc/Website/MailingList.html added (Sidebar.html changed accordingly). + * gdcmPython/gdcm.i: fix for compilation of wrappers (Note: %include order + matters, as stated in warning note at begining of %include section). + * src/gdcmDicomDir*.[cxx|h]: coding style + * src/gdcmDocument.h: doxygen \ref seems uncompatible with \todo. + * src/gdcmJpeg8.cxx: doxygen fix. + * CLEANUP_ROUND (12) for gdcmPixelConvert (seing the ligth stage) + src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]: color handling moved + from File:: to PixelConvert::. + +2004-10-12 Eric Boix + * CLEANUP_ROUND (11) for gdcmPixelConvert (cafeine is my friend stage) + src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]: + - more code moved away from File:: to PixelConvert:: + - fat setup of PixelConverter set in place in File::Initialise. + +2004-10-12 Mathieu Malaterre + * Apply patch for namespace in gdcm. Didn't rename files for keeping a sort of + namespace at the file system level. So now you should convert your examples + like this: + gdcmHeader -> gdcm::Header + It would be nice if people keep in mind to no open the namespace, since it + allows compilation on broken plateform which were defining common symbol in + the standart namespace (like LP, Unknown ...) + +2004-10-10 Eric Boix + * CLEANUP_ROUND (10) for gdcmPixelConvert (Xanax is my friend stage) + The JPEG fragments are now parsed at the same stage than the RLE + information. All code related to JPEG is now in gdcmPixelConvert: + - src/gdcmJPEGFragment.h and gdcmJPEGFragmentsInfo.[h|cxx] added + - src/gdcmJpeg12.cxx, gdcmJpeg2000.cxx and gdcmJpeg8.cxx no longer + export a gdcmFile:: method. Those are simply global functions + (for the time being this is better than having them attach to + either gdcmFile:: or gdcmPixelConvert::). + - src/gdcmDocument.[cxx|h], gdcmDocument:: now parser the JPEG fragments + and stores the result in a gdcmJPEGFragmentsInfo. + - src/gdcmFile.[cxx|h] and gdcmPixelConvert.[cxx|h]: all JPEG related + code (among other stuff) moved away from gdcmFile:; to + gdcmPixelConvert:: + +2004-10-08 Eric Boix + * src/gdcmCommon.h now declares int8_t for non stdint.h plateforms. + * CLEANUP_ROUND (7) for gdcmPixelConvert (lost at sea) + - src/gdcmFile.h gdcmPixelConvert.cxx gdcmPixelConvert.h gdcmRLE.cxx: + clean up of RLE related code. + * CLEANUP_ROUND (8) for gdcmPixelConvert (end of RLE nigthmare) + - src/gdcmRLE.cxx removed + - src/gdcmPixelConvert.cxx all RLE code is now in PixelConvert:: + - src/CMakeLists.txt gdcmFile.[cxx|h] changed accordingly + - src/gdcmRLEFrame*.h gdcmPixelConvert is now a friend class. + * CLEANUP_ROUND (9) for gdcmPixelConvert + - src/gdcmFile.[cxx|h} gdcmPixelConvert.[cxx|h], SwapZone(), + ConvertReorderEndianity(), ConvertDecmpres12BitsTo16Bits() moved + away from gdcmFile:: to gdcmPixelConvert::. + +2004-10-07 Eric Boix + * CLEANUP_ROUND (5) for gdcmPixelConvert (Upshit creek without a paddle) + - src/gdcmDocument.[cxx|h] Parse7Fe0 renamed to ComputeRLEInfo. + This is because Parse7Fe0 used to parse the pixels to compute the + length. This task was passed over to FindDocEntryLengthOB() a long + time ago, EXCEPT I had forgotten the OW case... + Hence Parse7Fe0 was no longer necessary. When renaming to ComputeRLEInfo + we just recylce the code for parsing RLE fragments and computing + offsets. + * CLEANUP_ROUND (6) for gdcmPixelConvert (man, I need a paddle bad) + - src/gdcmRLE.cxx: is now much simpler and avoids code replication + with the retired Parse7Fe0(). + - src/gdcmRLEFrame.h: type fix for properly computing OffSet[] + - src/gdcmDocument.cxx: segments offset are now correct + clean up. + +2004-10-06 Eric Boix + * CLEANUP_ROUND (3) for gdcmPixelConvert (nightmare stage) + - src/gdcmRLEFramesInfo.[cxx|h], gdcmRLEFrame.h added + - src/gdcmDocument.[cxx|h] ::Parse7FE0 now sets up the RLEInfo. + - src/CMakeLists.txt: alphabetic order reodering + new entries. + * CLEANUP_ROUND (4) for gdcmPixelConvert + - src/gdcmDocument.[cxx|h] ::ParseDES and ::ParseSQ no longer bother + to return an unused length. + +2004-10-09 Mathieu Malaterre + * Remove all sprintf from the code to centralize in one spot in gdcmUtil + this should be cleanner from the plane view. The iostream are erally a pain + to use to do simple stuff. + +2004-10-04 Mathieu Malaterre + * Redo the compilation of the ijg jpeg library. Now only one source is + necesseray. No need to rename file by hand what so ever. CMake handle the + copying of the file within different directory, configure header file to + modify some symbol. The only addition made to ijg wasd a mangle table so + that symbol are different wether we are within 8bits or 12bits. + +2004-10-01 Eric Boix + * Added documentation of vtkgdcmReader on Website: + - testvtkGdcmReader.cxx renamed to vtkGdcmDemo.cxx (to be compatible + with it's binary name). + - vtk/vtkGdcmDemo.cxx and vtkgdcmViewer.cxx: added comments for + the Website to be more complete. + - Doc/doxygen.config.in: vtk/vtkGdcmReader.cxx now appears on + doxygenated documentation. + - Doc/DoxyVtkGdcmReaderExamples.txt added + (see http://www.creatis.insa-lyon.fr/Public/Gdcm/html.developper/ + DoxyVtkGdmReaderExamples.html ) + * src/win32, vtk/win32 manually maintained .dsp and .dsw removed. + * CLEANUP_ROUND (3) for gdcmPixelConvert + - src/gdcmFile.cxx, gdcmFile.h splitting GetImageDataIntoVectorRaw + +2004-09-29 Eric Boix + * CLEANUP_ROUND (2) for gdcmPixelConvert + - src/gdcmFile.cxx, gdcmFile.h splitting GetImageDataIntoVectorRaw + +2004-09-29 Eric Boix + * CLEANUP_ROUND for gdcmPixelConvert: + - src/gdcmFile.cxx, gdcmFile.h, gdcmHeader.cxx, gdcmHeader.h clean up + - src/gdcmPixelStuff[h|cxx] removed + - src/gdcmPixelConvert[h|cxx] added. Preparatory work included. + - src/CMakeLists.txt changed accordingly + * GDCMHOME clean up: + - MANIFEST.in, WrapSwig.py, WrapVTK.py, distutilsWrapping.py and + gdcmVersion.py moved to newly created ATTIC related + gdcmPython/SetupOldies/ directory. + * Autotools clean up: + - */*/Makefile.am removed AT EXCEPTION of gdcmPython/Makefile.am + - autogen.sh configure.in acinclude.m4 python.m4 removed + +2004-09-27 Eric Boix + * src/*.cxx *.h Reference to License.htm fixed to License.html. + * Doc/CMakeLists.txt, doxygen.config.in: fix. + * Doc/Website/ConformanceSummary.html, minimal conformance statement added. + +2004-09-24 Eric Boix + * TODO updated with Mathieu suggestions. I proposed a template for + describing TODO entries and used it for new entries. + * Added Doc/Website/CodingStyle.html, Developpers.html, + DeveloppersPython.html, GdcmDataCvs.html and + DownloadVersion0_1.html, DownloadVersion0_3.html. + * Some Doc/*.txt Doxygen files (which do not really concern the + documentation itself, but the website) moved to html and + placed in directory Doc/Website: + - Doc/DoxyDevelInstal.txt moved to Doc/Website/Developpers.html + - Doc/DoxyInstallation.txt moved to Doc/Website/Installation.html + - Doc/DoxyIntroduction.txt included in Doc/Website/Main.html + * Doc/DoxyfileDeveloppers, DoxyfileUsers, Makefile.am oldies removed. + * CMakeLists.txt changed accordingly. + * DEVELOPPER spread out in Doc/Website/Developpers.html, CodingStyle.html, + DeveloppersPython.html + * INSTALL nows refers to Doc/Website/Installation.html + +2004-09-23 Eric Boix + * Added Doc/Website directory, that contains a first raw version + of gdcm Web site. + +2004-09-23 Jean-Pierre Roux + * FIX In order not to be poluted any longer by casting problems, + the member VoidArea of gdcmBinEntry is now uint8_t* (instead of void *) + we can now delete[] it safely + * VoidArea is now called BinArea (less confusing name), + and all the methods called ...VoidArea... are now ... BinArea... + * class gdcmObject is now called gdcmDicomDirObject (less confusing name) + +2004-09-22 Eric Boix + * src/gdcmDocument.cxx: gdcmDocument::~gdcmDocument() doesn't clear (nor + clear) TagHT, which is an inherited member of gdcmElementSet. It is + up to the destructor of gdcmElementSet to clean up TagHt and it's + pointed content. + +2004-09-21 Eric Boix + * Test/CMakeLists.txt: update to follow gdcmData renamings. + * src/gdcmCommon.h, gdcmDocument.cxx: doxygen typos + +2004-09-17 Eric Boix + * ENH: added some utility method that builds a flat dictionnary + holding all the Dicom entries contained in the recursive structure + of a gdcmElementSet. Refer to add FlatHashTablePrint.cxx for + an example of usage. + - src/gdcmDocument.[h|cxx] added BuildFlatHashTableRecurse() and + BuildFlatHashTable() that build a flat dictionary. + - src/gdcmElementSet.h: added a new private GetTag() accessor. + gdcmDocument is now a friend of gdcmElementSet. + - src/gdcmElementSet.cxx: clean up. + - Example/FlatHashTablePrint.cxx added. + - Example/CmakeLists.txt changed accordingly + +2004-09-16 Eric Boix + * gdcmDocEntrySet::SQDepthLevel and gdcmDocEntrySet::BaseTagKey attributes + moved away from gdcmDocEntrySet (since this class is an abstract class + acting like an interface). SQDepthLevel and BaseTagKey are now + in class + - src/gdcmDocEntrySet.[h|cxx] removal of SQDepthLevel and BaseTagKey + and associated accessors. Doxygenation of the class. + - src/gdcmSQItem.[h|cxx] SQDepthLevel and BaseTagKey and associated + accessors added. + - src/gdcmSeqEntry.[h|cxx]: constructor doesn't handle depth anymore. + Use SQDepthLevel accessor instead. ::Print() adapted. + - src/gdcmElementSet.cxx changed according to changes in gdcmSeqEntry. + - src/gdcmDocument.cxx changed accordingly. + +2004-09-13 Eric Boix + * Preparation of writing a gdcmHeader iterator: generalisation of gdcmTagKey + - The following is the doxygen comment of the typedef declaration + of gdcmagKey in src/gdcmCommon.h: + gdcmTagKey is made to old an "universal" (as in URL, Universal + Ressource Locator) key to a gdcmDocEntry i.e. a dicom tag. + A dicom tag allways has a group and an element, but a set of tags + embeded in various (optionally nested) sequences and sharing + the same group and element all share the same (group, element) + "identifier". Hence the (group, element) cannot be used as an + identifier (in gdcm we shall refer to a "TagKey") of a tag. + In order to construct a proper tag identifier (i.e. a key) we + consider the following definition of a TagKey: + - let Group, Element be the string representation of the + group and element dicom tag members, + - let ItemNumber be the string representation of the integer + index of the considered item number of a sequence, + Let the key of a tag embeded in a sequence, noted SeqTag, be + the form: + /ItemNumber#Group|Element + where "/", "#" and "|" are characters acting as separators. + Then the general form of a gdcmTagKey is given by: + Group|Element + where means NO or many instances of SeqTag. + Hence the gdcmTagKey of a tag not "leaving" in a sequence is the + string e.g. + 0028|1201 + but the gdcmTagKey of a tag "embeded" is the first item of + a sequence, itself nested in the third item of a sequence is the + string e.g. + 0004|1220/2#0008|0082/0#0008|0090 + - src/gdcmDocEntry.h: added a new Key (of type gdcmTagKey) member, in + order to hold the new sequence compatible key. Previously, the + GetKey() method would look in the underlying gdcmDictEntry. + - src/gdcmDocEntry.cxx: + -- constructor now copies the underlying DictEntry key, in the local + Key member. + -- ::Print: displays the member Key, instead of the (group, element). + - src/gdcmCommon.h: added some comments on typedef gdcmTagKey. + - src/gdcmDocEntrySet.h:xi + -- ::ParseDES() now setups the gdcmTagKey of the sequence it is parsing. + -- now has a new BaseTagKey member. + -- STYLE. + * src/gdcmValEntry.[h|cxx], src/gdcmBinEntry.[h|cxx]: the member VoidArea, + previously a member of gdcmValEntry, moved to gdcmBinEntry were is + truly belongs. + This poses the problem with the semantics of the following lines + LoadEntryVoidArea(0x0028,0x1201); // R LUT + LoadEntryVoidArea(0x0028,0x1202); // G LUT + LoadEntryVoidArea(0x0028,0x1203); // B LUT + in gdcmDocument::gdcmDocument(std::string const & ). Please refer + to the long FIXME note for what the problem is. Nevertheless in + order to get things working the dicom dictionary was altered ! + Please fix things urgently... + * Dicts/dicomV3.dic WRONGLY altered (this means we introduced a uncorrect + information), see above note on moving the member VoidArea. Nevertheless + the following entries previously correctly set as US are now inproperly + set to OW: + 0028 1201 OW IMG Red Palette Color Lookup Table Data + 0028 1202 OW IMG Green Palette Color Lookup Table Data + 0028 1203 OW IMG Blue Palette Color Lookup Table Data + * src/gdcmDocEntry.[h|cxx], src/gdcmSeqEntry.h: SQDepthLevel member + of gdcmDocEntry moved to gdcmSeqEntry. + * src/gdcmSeqEntry.cxx: STYLE. + +2004-08-04 Eric Boix + * Test/TestAllEntryVerify.cxx minor fix and added comments. + +2004-08-03 Eric Boix + * gdcmPython/testSuite.py: all the test suite in python is now moved + to it's C++ version (see gdcmData/TestAllEntryVerifyReference.txt) + * Test/CMakeLists.txt adapted to renaming of files in gdcmData + * gdcm/TODO and src/gdcmDictSet.h cleaned up frow the "TODO Swig" oldies + +2004-08-02 Eric Boix + * gdcmPython/CMakeLists.txt: SWIG_FLAGS doesn't declare includeall + to avoid inclusion recursion until STL is reached. + * src/gdcmDocument.[h|cxx]: exceptions substituted to errno C-style + mecanism. errno.h is not included in gdcm anymore. + * src/gdcmException.h: introduced new gdcmFormatUnexpected class + (gdcmFormatError now inherits from gdcmFormatUnexpected). + * TODO updated + * gdcmPython/testSuite.py checks on CR-MONO1-10-chest.dcm moved to + gdcmData/TestAllEntryVerifyReference.txt + * Test/TestAllEntryVerify.cxx is now effective (used allways return true) + * src/gdcmDocument.[cxx|h]: constructors no longer use the bool + exception_on_error parameter. + - src/gdcmFile.[cxx|h], src/gdcmHeader.[cxx|h] changed accordingly, + - vtk/vtkGdcmReader.cxx changed accordingly, + - Example/*.cxx and Test/*.cxx changed accordingly. + +2004-07-06 Eric Boix + * src/gdcmDicomDir.cxx, gdcmDocEntrySet.cxx: removed inclusion of errno.h + * src/gdcmDocument.[h|cxx], gdcmFile.[h|cxx], gdcmHeader.[h|cxx]: + enable_sequences removed from gdcmHeader constructor and dependencies. + * Example/PrintHeader.cxx: fixed accordingly (enable_sequences removal). + * gdcmPython/demo/PrintHeader.py: dummy fix. + * src/gdcmDocument.[h|cxx], gdcmFile.[h|cxx], gdcmHeader.[h|cxx]: + skip_shadow removed from gdcmHeader constructor and dependencies. + * Example/*.cxx and Test/*.cxx changed accordingly. + +2004-07-27 Eric Boix + * Test/CMakeLists.txt: newly re-introduced SIEMENS_Sonata-12-MONO2-SQ.dcm + in gdcmData (previously known as E00001S03I0015.dcm) is blacklisted. + +2004-07-21 Jean-Pierre Roux + * FIX Now, Parsing and Printing a DICOMDIR do work! + ( troubles remain in makeDicomDir and BuildUpDicomDir :-( + 2004-07-20 Jean-Pierre Roux * FIX Some brain damaged headers have Zero-Lenght fields for 'Transfert Syntax UID', or 'Media Stored SOP Class UID'.