Although not ideal, one approach for this issue is to check-up on the following DICOM fields:
-
(0020,1002)ImagesInAcquisition(number of all slices per each volume) -
(0020,9057)InStackPositionNumber(number of particular slice in particular volume) -
(0020,0013)InstanceNumber(number of particular slice in the whole acquisition) -
(0020,1041)SliceLocation(self explanatory)
From the above - all the necessary information on the volume/slice acquisition regime can be deduced and verified…
A toy-example:
-
ImagesInAcquisition
[ 44, 44, 44, ..., 44 ] -
InStackPositionNumber
[ 1, 2, ..., 44, 1, 2, ..., 44, ..., 44 ] -
InstanceNumber
[ 1, 2, 3, ..., 19800 ]
(For a 15 mins scan withTR=2and 44 slices/volume) -
SliceLocation
[ 52.3353, 49.1677, ... -83.8686, 52.3353, 49.1677, ... -83.8686, ..., -83.8686 ]
(For a top-down and non-interleaved acquisition)
Based on the above the vector containing slice-timing can be prepared and populated in the data.
Obviously this approach is not straight-forward and it would be nicer to have it imported directly from DICOM files… 
Another example attached below
