fedorov / MultiVolumeImporter

A 3D Slicer module to support import of multi-volume data from non-DICOM sources, and provide plugin for importing such data from images saved in DICOM.
http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/MultiVolumeImporter
Other
9 stars 25 forks source link

Implement RepetitionTime + InstanceNumber heuristics #16

Closed fedorov closed 8 years ago

fedorov commented 8 years ago

In some situations, all time-stamps may be missing, and the following strategy may be needed, as discussed by Tom Chenevert/UMich in the context of QIN DSC analysis challenge:

From: Chenevert, Tom Date: Mon, Jan 25, 2016 at 11:51 AM Subject: RE: QIN DSC challenge To: "Andrey Fedorov", "Schmainda, Kathleen" Cc: "Malyarenko, Dariya" , "Prah, Melissa"

Hi Andrey; Regarding temporal sorting of images in the DSC challenge, here is what I did (right or wrong). I (think I?) relied on InstanceNumber for overall sorting, but I still was unsure of slice acq order within a TR interval so I simply set them all to the same time. That is all slices within a given dynamic were acquired simultaneously, given by TR*(nth dynamic - 1). I know this is not physically possible, but it is what I did.

fedorov commented 8 years ago

More details from David

---------- Forwarded message ----------
From: David Clunie
Date: Sun, Feb 7, 2016 at 9:50 AM
Subject: Re: QIN DSC MRI analysis challenge: parsing out timing information
To: "Chenevert, Tom", Andrey Fedorov>, "Prah, Melissa"
Cc: "Malyarenko, Dariya" , "Schmainda, Kathleen", Jayashree Kalpathy-Cramer , "Cao, Yue" 

Hi Tom

I heard back from GE about the particular pulse sequence
that was used in the case I was looking at (Pulse Sequence
Name (0019,109c) = "epepi11"), and the slices at different
locations in the same pass are spread across the repetition
but interleaved. GE wrote:

"For EPI DSC perfusion scan, #acqs usually is 1. With this
in mind, DT for the i-th slice (iSlc, starting from 1) at
the j-th pass (jPass, starting from 1) can be calculated
as follows (assuming the number of slices is #slices):

DT(iSlc, jPass) = TR*(jPass-1)+TR/#slices*kAcqOrder,
where kAcqOrder is the index of acquisition order, starting
from 1.

Since interleaved acquisition order is used, the relation
between slice order and acquisition order is:

Slice_Order (iSlc)        Acquisition_Order (kAcqOrder)
          1                          1
          2                          4
          3                          2
          4                          5
          5                          3"

Since GE's formula describes kAcqOrder as starting from 1, not
zero, this means that the time from the formula for the first
slice would be TR/#slices, rather than zero.

So I assume it describes the end time of acquisition of
each slice, not the start time (the definition of the
corresponding DICOM attribute being start time).

David