From a5d02f5680928e1cc1c441e0060a36d65fd0f5f2 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Fri, 5 Oct 2018 18:35:16 +0100
Subject: [PATCH] RF: Bump minimum dcm2niix version, and use the
 load-one-series flag to reduce the number of series that need to be loaded.

---
 fsl/data/dicom.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/fsl/data/dicom.py b/fsl/data/dicom.py
index 57e0a227d..61e8086ed 100644
--- a/fsl/data/dicom.py
+++ b/fsl/data/dicom.py
@@ -44,6 +44,10 @@ import fsl.data.image    as fslimage
 log = logging.getLogger(__name__)
 
 
+MIN_DCM2NIIX_VERSION = (1, 0, 2017, 12, 15)
+"""Minimum version of dcm2niix that is required for this module to work. """
+
+
 class DicomImage(fslimage.Image):
     """The ``DicomImage`` is a volumetric :class:`.Image` with some associated
     DICOM metadata.
@@ -115,7 +119,6 @@ def enabled():
     """
 
     cmd            = 'dcm2niix -h'
-    minimumVersion = (1, 0, 2016, 9, 30)
     versionPattern = re.compile('v'
                                 '(?P<major>[0-9]+)\.'
                                 '(?P<minor>[0-9]+)\.'
@@ -145,7 +148,7 @@ def enabled():
             # make sure installed version
             # is equal to or newer than
             # minimum required version
-            for iv, mv in zip(installedVersion, minimumVersion):
+            for iv, mv in zip(installedVersion, MIN_DCM2NIIX_VERSION):
                 if   iv > mv: return True
                 elif iv < mv: return False
 
@@ -225,7 +228,7 @@ def loadSeries(series):
     dcmdir = series['DicomDir']
     snum   = series['SeriesNumber']
     desc   = series['SeriesDescription']
-    cmd    = 'dcm2niix -b n -f %s -z n -o . {}'.format(dcmdir)
+    cmd    = 'dcm2niix -b n -f %s -z n -o . -n {} {}'.format(snum, dcmdir)
 
     with tempdir.tempdir() as td:
 
-- 
GitLab