It looks like you are on the right track. Different CTs might or might not be detected as sequences depending on the header tags. You can interate through and see which ones are not and check them interactively. You might need to go a level lower and use the sequence plugin directly.
I dug deeper using the DICOM module , based on the recommendation on another topic to view
slicer.util.selectModule("DICOM")
browserWidget = slicer.modules.DICOMWidget.browserWidget
browserWidget.importDirectory(vol_pth)
#loadables, loadablesByPlugin = selectLoadables(browserWidget)
patient = slicer.dicomDatabase.patients()[0]
studies = slicer.dicomDatabase.studiesForPatient(patient)
series = [slicer.dicomDatabase.seriesForStudy(study) for study in studies]
seriesUIDs = [uid for uidList in series for uid in uidList]
browserWidget.onSeriesSelected(seriesUIDs)
browserWidget.examineForLoading()
loadables = browserWidget.loadableTable.loadables
loadablesByPlugin = browserWidget.loadablesByPlugin
for plugin in loadablesByPlugin:
print(plugin.loadType)
Yes, if you want to load everything as a sequence then yes only use the sequence plugin. By default the high level code picks the loadables that have the highest confidence (i.e. the plugin’s heuristics indicate that the data in question matches the intent of the plugin. You can look at the examine portion of the plugins to see what they are looking for in the data. Sequences in particular can be encoded many ways so the heuristics are not always right. But if you know your data is 4dct, then you should ensure that the sequence plugin is used.