Getting 3D time points from a 4D DICOM series is very difficult, as it is different for each imaging modality, acquisition type, and vendor implementation. In the last couple of years, we implemented in 3D Slicer 5 basic strategies to group/sort images (see multi-volume importer plugin source in 3D Slicer) that covers most cases, but still we have to keep adding new variants as we come across more images. Also, there are multiple valid grouping options for a data set: e.g., you can group image slices according to their absolute acquisition time, or based on their acquisition time with the heart cycle. We use some consistency checks to make loading more robust, but it causes some of the valid datasets fail to load (for example, slice positions or number of slices are not always equal in each time point).
Probably interpretation of a few commonly used image types could be implemented in ITK, but I don’t think it is realistic to implement a solution in ITK that would read all 4D data sets. Maybe a solution could be to implement a plugin infrastructure in ITK similarly to 3D Slicer’s DICOM plugins: DICOM loader passes the data to each registered DICOM plugin for examination, each plugin examines the data and returns what information it can load from it, finally the DICOM loader chooses most likely valid interpretation (if there are multiple possible interpretations then the user may be offered to choose one). A few plugins could be maintained in ITK proper and users could add their own rules that would cover image types in their field of use.