malaterre [Tue, 16 Nov 2004 05:03:35 +0000 (05:03 +0000)]
ENH:
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
malaterre [Tue, 16 Nov 2004 02:54:34 +0000 (02:54 +0000)]
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
malaterre [Tue, 16 Nov 2004 02:04:00 +0000 (02:04 +0000)]
ENH: Apply first patch toward better string comparison when dealing with broken DICOM file. Essentially the string could be padded with a space instead of a null character as defined by standard
regrain [Mon, 15 Nov 2004 16:12:30 +0000 (16:12 +0000)]
* 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
-- BeNours
regrain [Mon, 15 Nov 2004 15:29:03 +0000 (15:29 +0000)]
* 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
-- BeNours
malaterre [Fri, 12 Nov 2004 21:33:46 +0000 (21:33 +0000)]
BUG: Apply patch proposed by Peter Cech (ITK user), to handle some Philips NTSCAN where some private tag were being flip to Big endian for no reason (the rest of the file is in little endian).
regrain [Wed, 10 Nov 2004 16:13:17 +0000 (16:13 +0000)]
* 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
-- BeNours
regrain [Tue, 9 Nov 2004 16:14:20 +0000 (16:14 +0000)]
* src/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).
-- BeNours
regrain [Tue, 9 Nov 2004 11:21:31 +0000 (11:21 +0000)]
* 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.
-- BeNours
frog [Tue, 9 Nov 2004 10:25:25 +0000 (10:25 +0000)]
* 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.
malaterre [Sun, 7 Nov 2004 14:28:54 +0000 (14:28 +0000)]
ENH: Final -hopefully- change to jpeg lib. In order to match ITK structure, and be more cross plateform, reduce code redondency and improve compilation time
malaterre [Fri, 5 Nov 2004 20:23:12 +0000 (20:23 +0000)]
ENH: 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.
malaterre [Wed, 3 Nov 2004 18:08:55 +0000 (18:08 +0000)]
ENH: 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
malaterre [Thu, 28 Oct 2004 22:21:56 +0000 (22:21 +0000)]
ENH:
- cosmetic cleanup in TODO, we should remove entries fixed
- some other cleanup at some other places
- adding a first implementation for the binary_write function
- adding big endian flag in cmake cache
malaterre [Mon, 25 Oct 2004 04:47:41 +0000 (04:47 +0000)]
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 sub class shouldn't reuse the keyword (4)
malaterre [Mon, 25 Oct 2004 04:08:19 +0000 (04:08 +0000)]
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 sub class shouldn't reuse the keyword (3)
malaterre [Mon, 25 Oct 2004 03:35:19 +0000 (03:35 +0000)]
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 sub class shouldn't reuse the keyword (2)
malaterre [Mon, 25 Oct 2004 03:03:44 +0000 (03:03 +0000)]
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 sub class shouldn't reuse the keyword
frog [Fri, 22 Oct 2004 13:56:44 +0000 (13:56 +0000)]
* 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.
malaterre [Fri, 22 Oct 2004 04:13:24 +0000 (04:13 +0000)]
ENH: 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.
malaterre [Fri, 22 Oct 2004 03:05:39 +0000 (03:05 +0000)]
ENH: 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)
frog [Wed, 20 Oct 2004 22:31:51 +0000 (22:31 +0000)]
* 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.
frog [Wed, 20 Oct 2004 14:30:38 +0000 (14:30 +0000)]
* 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()
frog [Mon, 18 Oct 2004 12:49:19 +0000 (12:49 +0000)]
2004-10-18 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
* 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()
frog [Fri, 15 Oct 2004 10:43:27 +0000 (10:43 +0000)]
* 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.
malaterre [Thu, 14 Oct 2004 22:35:01 +0000 (22:35 +0000)]
ENH: * 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.
malaterre [Thu, 14 Oct 2004 22:16:33 +0000 (22:16 +0000)]
ENH: Afterall change my mind we need a common place: gdcmJpeg to define the reading of jpeg file, then gdcmJpeg[8,12,16] are just a kludge because of this compile time option in ijg