From 18bb892c7de8776d82ddc7fb99b227ac675e2e96 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Sun, 10 Dec 2017 13:20:42 +1030
Subject: [PATCH] Little adjustments

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

diff --git a/fsl/data/dicom.py b/fsl/data/dicom.py
index fe3795fe8..8f9e6d742 100644
--- a/fsl/data/dicom.py
+++ b/fsl/data/dicom.py
@@ -15,7 +15,7 @@ wrappers around functionality provided by Chris Rorden's ``dcm2niix`` program:
    :nosignatures:
 
    scanDir
-   loadNifti
+   loadSeries
 
 .. note:: These functions will not work if an executable called ``dcm2niix``
           cannot be found.
@@ -29,6 +29,8 @@ import subprocess as sp
 import               glob
 import               json
 
+import nibabel    as nib
+
 import fsl.utils.tempdir as tempdir
 import fsl.data.image    as fslimage
 
@@ -41,13 +43,13 @@ class DicomImage(fslimage.Image):
     transformation. Additional DICOM metadata may be accessed via TODO
     """
 
-    def __init__(self, image, meta):
+    def __init__(self, image, meta, *args, **kwargs):
         """Create a ``DicomImage``.
 
         :arg image: Passed through to :meth:`.Image.__init__`.
         :arg meta:  Dictionary containing DICOM meta-data.
         """
-        fslimage.Image.__init__(self, image)
+        fslimage.Image.__init__(self, image, *args, **kwargs)
         self.__meta = meta
 
 
@@ -94,7 +96,7 @@ def scanDir(dcmdir):
 
     with tempdir.tempdir() as td:
 
-        sp.call(cmd.split())
+        sp.call(cmd.split(), stdout=sp.DEVNULL, stderr=sp.DEVNULL)
 
         files = glob.glob(op.join(td, '*.json'))
 
@@ -117,7 +119,7 @@ def scanDir(dcmdir):
         return series
 
 
-def loadNifti(series):
+def loadSeries(series):
     """Takes a DICOM series meta data dictionary, as returned by
     :func:`scanDir`, and loads the associated data as one or more NIFTI
     images.
@@ -130,11 +132,14 @@ def loadNifti(series):
 
     dcmdir = series['DicomDir']
     snum   = series['SeriesNumber']
-    cmd    = 'dcm2niix -b n -f %s -z n -o n {}'.format(dcmdir)
+    desc   = series['SeriesDescription']
+    cmd    = 'dcm2niix -b n -f %s -z n -o . {}'.format(dcmdir)
 
     with tempdir.tempdir() as td:
-        sp.call(cmd.split())
 
-        files = glob.glob(op.join(td, '{}.nii'.format(snum)))
+        sp.call(cmd.split(), stdout=sp.DEVNULL, stderr=sp.DEVNULL)
+
+        files  = glob.glob(op.join(td, '{}.nii'.format(snum)))
+        images = [nib.load(f, mmap=False) for f in files]
 
-        return [DicomImage(f, series) for f in files]
+        return [DicomImage(i, series, name=desc) for i in images]
-- 
GitLab