[IGSTK-Developers] Image file format

Julien Jomier julien.jomier at kitware.com
Tue Mar 7 09:50:58 EST 2006


Hi Luis,

Thanks for the explanation. So I already created a USImageReader that 
returns a USImageSpatialObject.

The DICOM reading for only one slice is *not* specific to the Ultrasound 
modality. For instance, if I convert my MR MetaImage file using GDCM, 
I'll get only one file that stores the 3D MRI. I've fixed the 
DICOMImageReader so that it also reads a directory with only one file 
(without setting any flags). Do you see any issues in doing this?

Regarding the real-time capture, I like the idea of deriving from the 
ImageReader, I'll see what I can do.

Julien

Luis Ibanez wrote:
> 
> 
> Hi Julien,
> 
> 
> Please note the the specific functionalities needed for
> reading Ultrasound images should be placed in a class
> deriving from igstkDICOMImageReader, in order to conform
> to the hierarchy:
> 
> 
> 
>       ImageReader
>        |
>        |
>        +--DICOMImageReader
>               |
>               |
>               +--CTImageReader
>               |
>               |
>               +--MRIImageReader
>               |
>               |
>               +--USImageReader
> 
> 
> 
> If the DICOMImageReader needs to be modified in order
> to read a single DICOM slice, this should be a mode
> controlled by its StateMachine. That mode should be
> set only once and not be reversible, since it will be
> requested from the derived classes, and therefore it
> will be specific to the modality.
> 
> The mode should control a State that goes before the
> selection of the directory name. The "Request" methods
> for selecting the mode must be protected, so only the
> derived classes are allowed to call them. Those methods
> must not be part of the public API.
> 
> 
> RealTime capture should be modeled in an independent
> hierarchy. Probably deriving from the "ImageReader"
> class. We could anticipate to have real-time capture
> from fluoroscopic images, CT fluoroscopy, microscopy
> (for neurosurgery), color video (for laparoscopy) and
> ultrasound.
> 
> 
> 
> 
>      Luis
> 
> 
> 
> ------------------------
> Julien Jomier wrote:
>> I have the DICOMImageReader working now. I'll check this in the 
>> sandbox tomorrow.
>>
>> Julien
>>
>> Hui Zhang wrote:
>>
>>> Hi, Julien,
>>>
>>> I agree. Some single DICOM file contains the 3D and even 4D 
>>> information. So should we enhance igstkDICOMImageReader to make it 
>>> accept single file input? May just have a parallel itkImageReader 
>>> variable in the class to handle the single file input, and the output 
>>> is switched between itkImageReader and itkImageSeriesReader depending 
>>> on the input?
>>>
>>> You are right. The test of 3D/2D image registration class definitely 
>>> need a ultrasound image file input. The ultrasound image should not 
>>> be restricted in real-time capture.
>>>
>>> Regards,
>>> James
>>>
>>> ----- Original Message ----- From: "Julien Jomier" 
>>> <julien.jomier at kitware.com>
>>> To: "Hui Zhang" <zhang at isis.imac.georgetown.edu>
>>> Cc: "'IGSTK-developers'" <igstk-developers at public.kitware.com>
>>> Sent: Monday, March 06, 2006 6:11 PM
>>> Subject: Re: [IGSTK-Developers] Image file format
>>>
>>>
>>>> Hi James,
>>>>
>>>> I agree with you, we need an igstkBufferedImage class. I'll work on 
>>>> that soon.
>>>>
>>>> The problem with the DICOM having only one slice is not only a 
>>>> problem with Ultrasound images but some 3D DICOM files can be stored 
>>>> in only one file. Also, I don't see why Ultrasound images should be 
>>>> restricted to real-time capture.
>>>>
>>>> Julien
>>>>
>>>> Hui Zhang wrote:
>>>>
>>>>> Hi, Julien,
>>>>>
>>>>> Regard the ultrasound images, I think it should be from a stream, 
>>>>> either video grabbing or acquired, not from a saved file. 
>>>>> Ultrasound image is used for real-time image display in the 
>>>>> application, while reading from a single file means it is not a 
>>>>> live or real-time image. For the research, the saved ultrasound 
>>>>> image will be useful.
>>>>>
>>>>> In my ultrasound application, pre-operative CT or MR images are 
>>>>> from DICOM images, and the ultrasound image is directly from 
>>>>> firewire port transfer. I used an image buffer to fill the 
>>>>> real-time ultrasound data. So perhaps we need an igstkBufferedImage 
>>>>> or igstkStreamImage for ultrasound, not from igstkDICOMImageReader? 
>>>>> igstkBufferedImage may provide a function to fill the data from 
>>>>> various input?
>>>>>
>>>>> 2 cents,
>>>>>
>>>>> Regards,
>>>>>
>>>>> James
>>>>>
>>>>> ----- Original Message ----- From: "Julien Jomier" 
>>>>> <julien.jomier at kitware.com>
>>>>> To: <cleary at georgetown.edu>
>>>>> Cc: "'IGSTK-developers'" <igstk-developers at public.kitware.com>
>>>>> Sent: Monday, March 06, 2006 5:13 PM
>>>>> Subject: Re: [IGSTK-Developers] Image file format
>>>>>
>>>>>
>>>>>> Ok DICOM it is... I agree it's better, but we can still read a 
>>>>>> DICOM without any patient information so I don't really see the 
>>>>>> difference (why is this not handled by the state machine BTW?)
>>>>>>
>>>>>> Anyways. The current implementation of the DICOMImageReader is 
>>>>>> using the itkImageSeriesReader which requires at least two 
>>>>>> filenames, this assumption is not true since a 2D Ultrasound image 
>>>>>> has only one slice. How should we deal with this? Can we just 
>>>>>> bypass the SeriesReader if there is only one slice?
>>>>>>
>>>>>> I'm open to suggestions, thanks,
>>>>>>
>>>>>> Julien
>>>>>>
>>>>>> Kevin Cleary wrote:
>>>>>>
>>>>>>> Hi guys
>>>>>>>
>>>>>>> I agree with Luis on this one - I like to stick with DICOM 
>>>>>>> because it is
>>>>>>> also traceable from the header - meaning I can tell on what 
>>>>>>> scanner and
>>>>>>> where it came from
>>>>>>>
>>>>>>> Kevin
>>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: 
>>>>>>> igstk-developers-bounces+cleary=georgetown.edu at public.kitware.com
>>>>>>> [mailto:igstk-developers-bounces+cleary=georgetown.edu at public.kitware.com] 
>>>>>>>
>>>>>>> On Behalf Of Luis Ibanez
>>>>>>> Sent: Monday, March 06, 2006 3:32 PM
>>>>>>> To: Andinet Enquobahrie
>>>>>>> Cc: 'IGSTK-developers'
>>>>>>> Subject: Re: [IGSTK-Developers] Image file format
>>>>>>>
>>>>>>>
>>>>>>> Hi Andinet, Julien,
>>>>>>>
>>>>>>> Adding fileformats different from DICOM will compromise the
>>>>>>> safety level of IGSTK.
>>>>>>>
>>>>>>> Having gdcm in ITK we can save any image in DICOM format.
>>>>>>>
>>>>>>> You can convert your MetaImage file in to DICOM by using
>>>>>>> the examples in Insight/Examples/IO.  Then load that DICOM
>>>>>>> file into your IGSTK application.
>>>>>>>
>>>>>>>
>>>>>>> I would suggest that we stick to supporting *only DICOM*
>>>>>>> as the only format that is safe enough for being used in
>>>>>>> the surgery room.
>>>>>>>
>>>>>>>
>>>>>>> The MetaImage format has the recent addition of anatomical
>>>>>>> information and orientation, but those entries are optional.
>>>>>>>
>>>>>>> MetaImage doesn't carry information about PatientName, or patient
>>>>>>> ID, which makes it extremely dangerous in a clinical environment.
>>>>>>>
>>>>>>> It would be too easy to load the image of the wrong patient,
>>>>>>> and an IGSTK application would not have a way of raising a flag.
>>>>>>>
>>>>>>>
>>>>>>> Also, in its current state it is too easy to modify a MetaImage
>>>>>>> headers with an editor and to corrupt a file.
>>>>>>>
>>>>>>>
>>>>>>> Please remember that the conveniences that you may want
>>>>>>> to have while you are developing prototypes for research,
>>>>>>> are the same risky operations that can harm a patient during
>>>>>>> an actual surgical intervention.  IGSTK is not supposed to
>>>>>>> behave like Matlab.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>     My 2 Cents,
>>>>>>>
>>>>>>>
>>>>>>>       Luis
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -------------------------
>>>>>>> Andinet Enquobahrie wrote:
>>>>>>>
>>>>>>>> Julien Jomier wrote:
>>>>>>>>
>>>>>>>>> Andinet,
>>>>>>>>>
>>>>>>>>> The liver MR has been converted to isotropic voxels and saved 
>>>>>>>>> as MetaImage. Looking at the igstkMRImageReader class, this one 
>>>>>>>>> derives from DICOM image reader, so right now I don't know how 
>>>>>>>>> to read an MR volume using MetaImage.
>>>>>>>>> Should I create an igstkMetaImageMRImageReader class?
>>>>>>>>
>>>>>>>>
>>>>>>>> Julien,
>>>>>>>>
>>>>>>>> As we chatted on IM and agreed,  I think igstkMetaImageReader 
>>>>>>>> class templated by image type would be fine unless the other 
>>>>>>>> developers think of a different approach.
>>>>>>>>
>>>>>>>> -Andinet
>>>>>>>>
>>>>>>>>> The ultrasound images are in the spatialobject file format 
>>>>>>>>> right now. I can try to convert them to metaImage or just read 
>>>>>>>>> them directly since IGSTK seems to support several file formats.
>>>>>>>>>
>>>>>>>>> Let me know,
>>>>>>>>>
>>>>>>>>> Julien
>>>>>>>>>
>>>>>>>>> Andinet Enquobahrie wrote:
>>>>>>>>>
>>>>>>>>>> Julien,
>>>>>>>>>>
>>>>>>>>>> The image reader classes are designed in such a way that we 
>>>>>>>>>> can also support non-DICOM images. The Dicom image reader 
>>>>>>>>>> class is derived from the "ImageReader" superclass which you 
>>>>>>>>>> can use to derive a MetaImageReader class.  Are your 
>>>>>>>>>> Ultrasound images in MetaImage forma?
>>>>>>>>>>
>>>>>>>>>> -Andinet
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -Andinet
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> Are we going to support only DICOM for image reading?
>>>>>>>>>>> I've a MetaImage file that I want to read in (from the 
>>>>>>>>>>> original dicom but preprocessed). I can convert it to DICOM 
>>>>>>>>>>> but I'd rather read it in directly.
>>>>>>>>>>>
>>>>>>>>>>> thanks for the input,
>>>>>>>>>>>
>>>>>>>>>>> Julien
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> IGSTK-Developers mailing list
>>>>>>>>>>> IGSTK-Developers at public.kitware.com
>>>>>>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> IGSTK-Developers mailing list
>>>>>>>> IGSTK-Developers at public.kitware.com
>>>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> IGSTK-Developers mailing list
>>>>>>> IGSTK-Developers at public.kitware.com
>>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> IGSTK-Developers mailing list
>>>>>>> IGSTK-Developers at public.kitware.com
>>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> IGSTK-Developers mailing list
>>>>>> IGSTK-Developers at public.kitware.com
>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>> _______________________________________________
>> IGSTK-Developers mailing list
>> IGSTK-Developers at public.kitware.com
>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>
>>
> 
> 




More information about the IGSTK-Developers mailing list