[Insight-developers] Dicom
Stephen R. Aylward
aylward@unc.edu
Tue, 17 Sep 2002 01:57:37 -0400
Hi,
The more I think about it, perhaps we should consider including a 3rd
party library for DICOM into ITK or possibly including more of the DICOM
stuff (grey scale standardization, intensity windowing, offsets,
overlays, etc.) in our implementation. I hadn't planned on doing
either, but there is definite appeal to these other options. Either
option will require significant work and maintenance, but DICOM is a
standard that we should support - perhaps better than we already do.
So, I'd like to hear from other groups (not just Jim :) ). How many of
ya'll vote for:
1) Including another library is appropriate to get full DICOM support
2) Increasing our implementation to include more of DICOM's
intensity-related tags
3) Not spending more time on IO
Ragarding 1) There is no easy way to get CTN to build cross platform,
but I did make progress awhile ago on CMake for dcmtk. But, it is a
fairly large library to start including with ITK (compared to PNG)...but
then we'll have full support (that is, the library functions will be
there, but I am not certain how much our existing IO base classes will
allow us to make us of the additional capabilities of DICOM - I'd have
to look into this more).
Regarding 2) My concern with doing more ourselves is the evolving nature
of the "standard." Soon (?) a 3D standard will be out - but it is only
slated to cover Ultrasound images. I don't know the schedule for CT
and then MR related 3D standards for DICOM. Vendors are becoming more
complient, but anything we do will always fail for some people.
Additionally, we kind of decided that ITK wouldn't focus on IO, and I
hate duplicating effort and trying to play catch-up with another group.
Some of our uses are using DCMTK and ITK on their own with success.
Okay - my bias is really showing. The nice part about doing it on our
own is that we don't burden the user with having to install another
library, and we'll have direct control of the software.
Ragarding 3) If we don't provide sufficient support at some level, then
we perhaps look bad. The question is what level of support. Right now
we can read in DICOM objects (which are 2D images) and read in multiple,
raw DICOM slices to create a volume by writing a simple header. We do
not offset the raw pixel values, apply the intensity windowings
specified in an object, map the values via any lookup table in an
object, automatically searching a directory/pacs-hierarchy to identify
and reconstruct patients/studies/series/volumes, support jpeg
compression of the pixels, suport dicom directories within objects,
support overlays, support annotations, support multi-layered data (e.g.,
sometimes digital subtraction images have the unsubtracted data also
stored in one object), the new CAD markings, lines, curves, etc.
So, ther truly is no clear answer. So, vote now... :)
s
--
===============================================
Dr. Stephen R. Aylward
Assistant Professor of Radiology
Adjunct Assistant Professor of Computer Science
http://caddlab.rad.unc.edu
aylward@unc.edu
(919) 966-9695