X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=ChangeLog;h=fd48dd6dcbc2cc0c1601d5128206c7b2073e605d;hb=8d10ccb6794a0f22234983990e2181a24625fbd8;hp=6bdf25a0c0fc2efbba2cf67e8559ba29cbea19ca;hpb=301f0d7ae54cda9ddfaacadfa25c843275c4de0c;p=gdcm.git diff --git a/ChangeLog b/ChangeLog index 6bdf25a0..fd48dd6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,531 @@ +2004-12-04 Benoit Regrain + * Bug fix due my last commit (compilation under Windows). + * Example/Volume2Dicom : bug fix in the file and reformatting source code + * src/gdcmFile.h : bug fix. Variable type and variable name had same name + +2004-12-03 Mathieu Malaterre + * Huge cleanup: + - Remove printf / sprintf + - include iostream AFTER gdcm so we don't get warnings + - GDCM_NO_ANSI_STRING_STREAM shouldn't be used explitely ouside of gdcm + source + - Also remove tons of include from header files, hopefully this should + speeup the compilation time, since it was becoming a dog slow. + - Remove gdcm.h as it include way too many files and slow down compilation + (plus it is not up to date) + - remove 'using namespace std' this is BAD ! + +2004-12-03 Benoit Regrain + * Remove memory leaks on the DicomDir + * Remove some useless datas in DicomDirObject + * Add usefull methods in SQItem, to be complient withe the ElementSet + +2004-12-03 Benoit Regrain + * src/gdcmFile.[h|cxx] : now use FileType instead of TWriteType. + +2004-12-03 Benoit Regrain + * src/gdcmPixelWriteConvert.[h|cxx] : new class to write datas (and in the + future, with convertion) + * src/gdcmFile.[h|cxx] : the PixelWriteConverter instance replace Pixel_Data + and ImageDataSize values. Remove the method to get the PixelReadConverter + from the output of the class + +2004-12-03 Benoit Regrain + * Rename src/gdcmPixelConvert.[h|cxx] to src/gdcmPixelReadConvert.[h|cxx] + +2004-12-02 Benoit Regrain + * vtk/vtkGdcmReader.cxx : correct error in vtkDebugMacro, vtkWarningMacro + and vtkErrorMacro use. + * gdcmPython/gdcm.i : corrections to avoid warnings at compilation + +2004-12-02 Benoit Regrain + * Test/TestCopyDicom.cxx : the new dicom created is created empty, without + file name in input + * src/gdcmSeqEntry.cxx : bug fix in destruction of an element + * src/gdcmHeader.cxx : bug fix. Keep the string, otherwise it is destroyed. + The string leaves only in the fonction. So when we make a .c_str(), we + get the pointeur on the first element, element that will be destroyed + immediately after thee instruction. + * src/gdcmDocument.cxx : remove memory leaks. Bug fix when testing if the + file has been opened : the test must be made on the content of the + pointer and not directly on the pointer ! + Code formatting + +2004-12-02 Benoit Regrain + * gdcmPython/gdcm.i : change gdcmHeaderHelper to gdcmSerieHeader. Now, + the python part recompiles + +2004-11-30 Benoit Regrain + * Test/ShowDicom.cxx : Change the test to only open one vtkImageViewer. + Otherwise, under linux (Graphic card : NVidia / SE : FedoraCore 1) the + X session is killed (for my computer... it seems to not be identic on + all linux) + +2004-11-30 Benoit Regrain + * Test/ShowDicom.cxx : now can be used with an off-screen rendering to + avoid problems (otherwise, the difference test between the visible image + and the reference is incorrect. If the reference is greater than the + screen resolution, it's produce errors). + Can be used for only one image. Can be used with a visible flag. + * vtk/vtkGdcmReader.cxx : remove commented codes. + * vtk/vtkGdcmReader.h : add the gdcmCommon.h include file to avoid warnings + under windows at compilation + * vtk/vtkgdcmViewer.cxx : reformat the file. Apply a default window/level + for grayscale images + * vtk/GdcmToBaseline.cxx : new program to easy create the reference image + +2004-11-30 Benoit Regrain + * src/gdcmFile.[h|cxx] : bug fix for ACR-LIBIDO files when writting the file + * Test/TestAllReadCompareDicom.cxx, TestReadWriteReadCompare.cxx : add + tests on the image size X, Y, Z + +2004-11-26 Benoit Regrain + * Remove some useless methods in gdcm::Document, gdcm::Header and gdcm::File + * Rename gdcmHeaderHelper.[h|cxx] to gdcmSerieHeader.[h|cxx] to be coherent + between the class name and the file name + +2004-11-25 Benoit Regrain + * src/ : fix compilation warnings for the Write method (2 different + proto). So Rename 'Write(ifstream* fp' into 'WriteContent(ifstream* fp' + fix compilation warnings for the gdcm::Document::TransferSyntaxStrings + variable... create a static method in gdcm::Document to access to + this variable content. + +2004-11-25 Benoit Regrain + * src/gdcmDocument.[h|cxx] : set the Transfert Syntax values to the header + file, to be accessed by other files (like gdcmFile). Remove commented + code. Move the change of the header to the gdcmFile, using the + DocEntryArchive + * src/gdcmHeader.[h|cxx] : the write is completely made in the Header. + To be sure of that (and simplify calls), the Write of the header now + gets a file name and not a file pointer (std::ifstream). + * src/gdcmFile.[h|cxx] : apply the write file type to the header, using the + DocEntryArchive. Remove all open of the written file + +2004-11-25 Benoit Regrain + * vtk/vtkGdcmReader.cxx : compilation bug fix for the vtk part + +2004-11-25 Benoit Regrain + * src/gdcmDocument.cxx : fix bug... test if the fp is opened to use it + * src/gdcmPixelConvert.cxx : calculate the image size when while the grab of + the header. + * src/gdcmFile.[h|cxx] : remove PixelRead and ImageDataSizeRaw variables and + some corresponding methods. Write correctly the file and check before + write + * Test/TestCopyDicom.cxx, TestReadWriteReadCompare.cxx, + TestAllReadCompareDicom.cxx : pass the write of images to RGB and test + is now on RGB datas (as before my last commit + * Example/PrintHeader.cxx, PrintFile.cxx : repad files. + +2004-11-24 Benoit Regrain + * src/gdcmBinEntry.cxx, gdcmSeqEntry.cxx, gdcmSQItem.cxx, gdcmValEntry.cxx : + Add a print information of the type of the entry + * src/gdcmDocument.cxx : add the write of the preambule of a Dicom file. + It was in the gdcmFile, and all write have been regrouped + * src/gdcmFile.[h|cxx] : add methods to get the Raw data elements and size. + Write correctly all dicom files (in decompressed mode only at this time) + * Test/ : test on files are now made using Raw datas and not color datas if + any. + * Example/PrintFile.cxx : add more printings + +2004-11-24 Benoit Regrain + * Amelioration of code, remove some code copy. For the loading of + BinEntry (in gdcmDocument), add the test to verify if the file is already + opened or not. + +2004-11-24 Benoit Regrain + * src/gdcmDocEntryArchive.[h|cxx] : bug fix and add a method to temporary + remove a DocEntry in the header (push an empty DocEntry) + * src/gdcmFile.[h|cxx] : remove some useless variables, methods and code + lines. Bug fix in the initialization of the PixelConvert and the + DocEntryArchive + * src/gdcmElementSet.[h|cxx] : add methods Initialize and GetNext to + use in TestCopyDicom (now this test can run under windows... but fails) + * Test/TestCopyDicom.cxx : amelioration of the test : + - test the pixels written + - add test points to quickly find where is the error + - can set a file name input and output in arguments + * Test/TestAllReadCompareDicom.cxx, TestReadWriteReadCompare.cxx : + amelioration of the test output + +2004-11-23 Benoit Regrain + * src/gdcmDocEntryArchive.cxx : complete the print function, that prints + all replaced DocEntry's + * src/gdcmFile.[h|cxx] : remove all changes of the header when getting datas. + Now, each needed DocEntry to modify is duplicated, modified and inserted + to the header using DocEntryArchive. Thus, after save, we can restore the + header initial state. + +2004-11-22 Benoit Regrain + * src/gdcmFile.h : fix compilation errors on zorglub linuc computer + +2004-11-19 Benoit Regrain + * src/gdcmDocEntry.cxx : remove the copy of the DictEntry... there isn't + correct to copy it. The DictEntry is specified at the DocEntry creation, + then, it musn't change in the time. + * src/gdcmDocEntryArchive.[h|cxx] : new class. It's goal is to change the + header correctly. At this time, the change is only made for the first + level of the Document. In the future, it might consider sequences. + The change is made by replacing a DocEntry by an other that is created + outside the class. The old value is kept. When we restore the header + status, the added DocEntry is deleted and replaced by the old value. + * src/gdcmElementSet.h : Set the DocEntryArchive like friend. + * src/gdcmFile.[h|cxx] : Use the gdcmDocEntryArchive. Add methods to + set the write type to explicit VR, implicit VR or ACR. Add methods to set + the write mode to native, decompressed or RGB (but not used at this time) + +2004-11-15 Benoit Regrain + * src/gdcmSeqEntry.cxx : add initialisation of variable SeqTerm + * src/gdcmDocument.cxx : add delete of DocEntry's to remove some memory leaks + +2004-11-15 Benoit Regrain + * src/gdcmDocument.cxx : now, when using the ReplaceOrCreateByNumber to + set a BinEntry, the binArea is copied (like to set a ValEntry, the string + is copied). + * Test/TestCopyDicom.cxx, Example/TestCopyDicom.cxx : the image data isn't + set because already copied when copying the BinEntry's of the header + * Test/TestAllReadCompareDicom.cxx : remove warnings + +2004-11-15 Benoit Regrain + * FIX : now, the DocEntries are all deleted in the gdcmElementSet. + Two problems appear when doing it : + - with the gdcmFile : when the GetImageData method is called, the pixels + are stored in the gdcmPixelConvert, but a gdcmBinEntry link to these + datas (pixels). And each structure destruct the datas when it's + destructed. So we have two destructions for the same datas. To solve it, + a flag is added in the gdcmBinEntry to indicate if the BinEntry owns the + datas or not. If it doesn't own datas, then they will not destroyed by + the gdcmBinEntry. + - with the gdcmDicomDir : the sequences (gdcmSQItem) contain DocEntry + elements. The DicomDir* (DicomDirPatient, etc.) inherit from SQItem. + Thus destruct the DicomDir* elements and the TagHT of the ElementSet + create a double destruction of the same DocEntry's. So, to solve it, + the TagHT is simply cleared and the DicomDir* elements are destroyed. + * TODO : add an entry concerning memory leaks in the DicomDir + +2004-11-15 Benoit Regrain + * FIX : src/gdcmDocument.cxx Remove obvious code in the destructor + * FIX : src/gdcmPixelConvert : Set to NULL the deleted structures in the + squeeze method + +2004-11-15 Benoit Regrain + * FIX: src/gdcmUtil.cxx : to compile with MSVC6 + * src/gdcmDocument.cxx : fix memory leaks. Fix possible bugs : use an object + after it have been deleted + +2004-11-16 Eric Boix + * FIX: src/* fix the doxygen warnings. + * src/gdcmVR.cxx: removed some redundant tests (e.g. LO) + * src/gdcmDocument.cxx: FIX ::ComputeRLEInfo() rleSegmentOffsetTable[] + was erroneously defined with a size of 15 instead of 16. [many thanks + to Jean Michel Rouet for pointing out this bug]. + +2004-11-15 Mathieu Malaterre + 1. Finish merging JMR patch for writting DICOM from scratch + 2. Fix -hopefully- bug with MONOCHROME and space vs null character + 3. Use const ref when possible + 4. Add a new function InitializeDefaultHeader, which create a template DICOM header (CT image for now) + 5. A few more comments + 6. CreateUniqueUID can now be called without parameter" + +2004-11-15 Mathieu Malaterre + * ENH: Slightly bigger patch: + 1. Getting toward full integration of JMR patch for writting dicom from scratch + 2. Update Test to test part of this patch: CreateUniqueUID + 3. File was not close properly in gdcmDict + 4. Use of typedef is to be prefered when possible (gdcmDict.cxx) + 5. Use of const ref instead of copy (speed issue) + 6. Remove temporary (duplicate) string in TranslateToKey + 7. Mark extremely dangerous code as such (gdcmDocument.cxx and AddEntry fallback case) + 8. Do not repeat virtual in subclasses + 9. Implemented in gdcm::Util two new function: GetIPAddress, and CreateUniqueUID + +2004-11-15 Mathieu Malaterre + * Apply first patch toward better string comparison when dealing with broken + DICOM files. Essentially the string could be padded with a space instead + of a null character as defined by standard + +2004-11-15 Benoit Regrain + * src/gdcmDocument.[cxx|h] : fix memory leaks. The return is suppressed + because never used... and in the same time, that's remove some memory leaks + +2004-11-15 Benoit Regrain + * src/gdcmFile.cxx : now delete the PixelConvert instance. + * In examples and tests : change the type of image data variables from void* + to uint8_t*. Remmove all delete on image data variables + +2004-11-10 Benoit Regrain + * src/gdcmDocument.cxx : Set the file pointer TP to 0 in the constructors. + Verify the file pointer value before open the file, and if it's not null, + a verbose message is generated. + Close correctly the file when the file isn't considered dicom-like. The + correctly close is a call to CloseFile. + When closing the file pointer, test if its not null to close the file. + * src/gdcmPixelConvert.cxx : bug fix for the SIEMENS_GBS_III-16-ACR_NEMA_1.acr + file. For an uncompressed image, the copied datas correspond in the least + case to the image size (calculated) or the image size specified in the + header. A verbose is generated if these two size mismatch + +2004-11-09 Benoit Regrain + * Test/TestAllReadCompareDicom.cxx : test the existence of the directory + using an 'ifstream' other than a 'FILE *'. The previous solution ('FILE *') + break under windows (with msvc6 compilation). + +2004-11-09 Benoit Regrain + * src/gdcmDicomDir.h : bug fix for the last Boix's commit (problem when + compiling with MSVC6) + +2004-11-09 Benoit Regrain + * Bugs fix for the Windows build with VC6 + * CMakeLists.txt : bug fix - The include of the VTK lib is made only when it's + needed (only for projects required VTK). If the VTK is included in all + projects, there is conflicts with the jpeg lib of vtk when compiling the + gdcmjpeg[8,12,16] projects. The first conflict is on the jmorecfg.h file. + * src/gdcmUtil.h : export binary_write methods. Otherwise, there's problems + when compiling the gdcm_wrap.cxx file (created by the compilation of the + gdcm.i file) + * vtk/vtkGdcmDemo.cxx : remove the use of std namespace for the cerr use + (like it's already made for the cout use). Otherwise, conflict with the + std::cerr of vtk. + +2004-11-09 Eric Boix + * src/gdcmDicomDit.h the Method typedef is now local to DicomDir class. + * gdcmPython/gdcm.i: + - comments on the DicomDir::Method related usage added. + - now that we use the namespace gdcm, a lot of internal classes do + NOT need to be wrapped anymore. + * gdcmPython/demo/DicomDirProgressMethod.py (that uses the above + DicomDir::Method) new example added. + +2004-11-05 Mathieu Malaterre + * Improve string manipulation. I now inforce the notion of 'DicomString' + A DicomString can contain as many \0 as they want + and it is *always* of even length. + We only support odd length for very rare case. + And in the near future this should be removed. + +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 @@ -46,7 +574,7 @@ 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 + 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) @@ -196,7 +724,7 @@ 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'. @@ -300,10 +828,10 @@ 2004-06-29 Jean-Pierre Roux FIX : - remove Frog's beautified, but never checked 'Parse7FE0' code, - replace by uggly but working old code :-( - A lot of things should be OK again. - It's really urgent to have a test suite that *tests*, - to prevent Frog's beautifying sessions to break all the stuff - (twice, withing a fortnigh ...) + A lot of things should be OK again. + It's really urgent to have a test suite that *tests*, + to prevent Frog's beautifying sessions to break all the stuff + (twice, withing a fortnigh ...) 2004-06-28 Eric Boix * Test/TestWriteRead.cxx and TestReadWrite.cxx merged (because of @@ -338,14 +866,14 @@ 2004-06-24 Jean-Pierre Roux FIX : - now Write drops LUT Descriptors and LUTs (if any) - when SamplesPerPixel =3 + when SamplesPerPixel =3 - now Write is no longer confused by - 'BitsAllocated = 12" and 'BitsStored=12" + 'BitsAllocated = 12" and 'BitsStored=12" - "UN" value representation Elements are now written correctly - (their legth is stored on 4 bytes -just like OB, OW, and SQ-) + (their legth is stored on 4 bytes -just like OB, OW, and SQ-) ENH : - now gdcmHeader has its own Write methods - (in order to split the job that has not to be done - for gdcmDicomDir) + (in order to split the job that has not to be done + for gdcmDicomDir) 2004-06-23 Eric Boix * Test/PrintAllDocument.cxx: looping on files is now effective. It used to @@ -357,13 +885,13 @@ 2004-06-24 Jean-Pierre Roux FIX : Write - All the Sequences and Sequence Item are now written as 'no length' stuff, and a Sequence Delimitor aor an Item Delimitor - is added a the end, when necessary. + is added a the end, when necessary. - A lot of brain-damaged images, that were read correctly are - now written correctly - - length compatible BinEntry are now loaded correctly - (even for odd groups) + now written correctly + - length compatible BinEntry are now loaded correctly + (even for odd groups) Note : only Explicit Value Representation was checked. - (question : is implicit VR really necessary for gdcm ?) + (question : is implicit VR really necessary for gdcm ?) 2004-06-23 Eric Boix * DEVELOPPER: added a proposition of coding style. @@ -383,40 +911,40 @@ 2004-06-22 Jean-Pierre Roux In order : to write Sequences, whatever their imbrication level, - : to allow user to create his own Sequences - a lot of modif where necessary (adding, moving, or virtualising methods) + : to allow user to create his own Sequences + a lot of modif where necessary (adding, moving, or virtualising methods) -WARNING : save your own sources *before* cvs up ! - - - gdcmBinEntry - ADD virtual void Write(FILE *fp, FileType filetype); - + WARNING : save your own sources *before* cvs up ! + + - gdcmBinEntry + ADD virtual void Write(FILE *fp, FileType filetype); + - gdcmDocEntry - ADD virtual void Write(FILE *fp, FileType filetype); - ADD void gdcmDocEntry::WriteCommonPart(FILE *fp, FileType filetype); - - - gdcmDocEntrySet - ADD virtual void Write (FILE *fp, FileType filetype)=0; - ADD virtual gdcmDocEntry *GetDocEntryByNumber(guint16 group,guint16 element) = 0; + ADD virtual void Write(FILE *fp, FileType filetype); + ADD void gdcmDocEntry::WriteCommonPart(FILE *fp, FileType filetype); + + - gdcmDocEntrySet + ADD virtual void Write (FILE *fp, FileType filetype)=0; + ADD virtual gdcmDocEntry *GetDocEntryByNumber(guint16 group,guint16 element) = 0; ADD gdcmDocEntry *GetDocEntryByName(std::string name); ADD virtual std::string GetEntryByNumber(guint16 group,guint16 element) = 0; - ADD std::string GetEntryByName(TagName name); + ADD std::string GetEntryByName(TagName name); ADD gdcmDictEntry *NewVirtualDictEntry(guint16 group, guint16 element, std::string vr = "unkn", std::string fourth = "unkn", std::string name = "unkn"); - ADD gdcmValEntry *NewValEntryByNumber(guint16 group, guint16 element); - ADD gdcmBinEntry *NewBinEntryByNumber(guint16 group, guint16 element); + ADD gdcmValEntry *NewValEntryByNumber(guint16 group, guint16 element); + ADD gdcmBinEntry *NewBinEntryByNumber(guint16 group, guint16 element); ADD gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element); ADD gdcmDocEntry *NewDocEntryByName (std::string Name); ADD gdcmDictEntry *GetDictEntryByName (std::string Name); ADD gdcmDictEntry *GetDictEntryByNumber(guint16, guint16); - REM virtual gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element)=0; + REM virtual gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element)=0; REM virtual gdcmDocEntry *NewDocEntryByName (std::string Name)=0; - - - gdcmDocument - ADD virtual bool WriteF(FileType type); // New stuff, with recursive exploration + + - gdcmDocument + ADD virtual bool WriteF(FileType type); // New stuff, with recursive exploration ADD virtual std::string GetEntryByName (TagName tagName); ADD virtual std::string GetEntryVRByName (TagName tagName); REM virtual bool Write(FILE *, FileType);