# DICOM import failed

**URL:** <https://discourse.slicer.org/t/dicom-import-failed/6654>\
**Category:** Support\
**Tags:** dicom\
**Created:** [April 30, 2019, 2:26pm UTC](https://discourse.slicer.org/t/dicom-import-failed/6654 "2019-04-30T14:26:23Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![prorai](https://avatars.discourse-cdn.com/v4/letter/p/e8c25b/32.png) [@prorai](https://discourse.slicer.org/u/prorai)\
**Post date:** [April 30, 2019, 2:26pm UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/1 "2019-04-30T14:26:24Z")

</div>

i saw this error in log file ,when my script for model import is failed . these are the last few lines.

```
self.importedVolume = DSVPC.load(DSVPC.examineForImport([files])[0])
  File "C:/Program Files/Slicer 4.10.1/bin/../lib/Slicer-4.10/qt-scripted-modules/DICOMScalarVolumePlugin.py", line 429, in load
    addAcquisitionTransformIfNeeded=self.acquisitionGeometryRegularizationEnabled())
  File "C:/Program Files/Slicer 4.10.1/bin/../lib/Slicer-4.10/qt-scripted-modules/DICOMScalarVolumePlugin.py", line 693, in createAcquisitionTransform
    self.gridTransformFromCorners(volumeNode, self.originalCorners, self.targetCorners)
  File "C:/Program Files/Slicer 4.10.1/bin/../lib/Slicer-4.10/qt-scripted-modules/DICOMScalarVolumePlugin.py", line 599, in gridTransformFromCorners
    displacements = slicer.util.arrayFromGridTransform(gridTransform)
  File "C:\Program Files\Slicer 4.10.1\bin\Python\slicer\util.py", line 870, in arrayFromGridTransform
    nshape = tuple(reversed(displacementGrid.GetDimensions()))
AttributeError: 'NoneType' object has no attribute 'GetDimensions'
```

---

<div class="post-metadata">

**Author:** ![prorai](https://avatars.discourse-cdn.com/v4/letter/p/e8c25b/32.png) [@prorai](https://discourse.slicer.org/u/prorai)\
**Post date:** [May 7, 2019, 7:41am UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/2 "2019-05-07T07:41:51Z")

</div>

i notice that this is happening after i have enabled ‘apply regularization transform’ in the application setting

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 7, 2019, 11:20pm UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/3 "2019-05-07T23:20:02Z")

</div>

Can you load the volume successfully by using the DICOM browser user interface? (with “apply regularization transform” enabled)

---

<div class="post-metadata">

**Author:** ![prorai](https://avatars.discourse-cdn.com/v4/letter/p/e8c25b/32.png) [@prorai](https://discourse.slicer.org/u/prorai)\
**Post date:** [May 9, 2019, 7:33am UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/4 "2019-05-09T07:33:29Z")

</div>

yes, its working in user interface.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 9, 2019, 4:48pm UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/5 "2019-05-09T16:48:39Z")

</div>

Then the issue is in your script. Could you copy the script or a URL to its source code repository?

---

<div class="post-metadata">

**Author:** ![prorai](https://avatars.discourse-cdn.com/v4/letter/p/e8c25b/32.png) [@prorai](https://discourse.slicer.org/u/prorai)\
**Post date:** [May 10, 2019, 7:46am UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/6 "2019-05-10T07:46:14Z")

</div>

```
    from DICOMScalarVolumePlugin import DICOMScalarVolumePluginClass
    result = utils.importDicom(self.path)
    DSVPC = DICOMScalarVolumePluginClass()
    db = slicer.dicomDatabase

    if(db.patients()):
        for patient in db.patients():
            for study in db.studiesForPatient(patient):
                for series in db.seriesForStudy(study):
                    print('looking at series ' + str(series) + ' for patient ' + str(patient))
                    files = db.filesForSeries(series)
                    if len(files) >= 1:
                        self.importedVolume = DSVPC.load(DSVPC.examineForImport([files])[0])

                        # TODO use bodypart information to determine what segments are expected to be present, or some other way to determine what segments types should be created
                        import dicom
                        data = dicom.read_file(files[0])
                        # for info in data: print('file ' + str(files[0]) + ' has data: ' + str(info))
                        self.bodyPartExamined = data.get('BodyPartExamined')
                        print('dicom header has info bodyPartExamined: ' + str(self.bodyPartExamined))

```

this the area where i’m getting error , basically while importing DICOM files , one more thing i get this issue when i use --no–window mode.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 11, 2019, 4:15am UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/7 "2019-05-11T04:15:45Z")

</div>

Thank you for the code, it helped a lot. The problem is that you force the DICOMScalarVolumePlugin to load all kinds of data you have in your database. You need to use the appropriate plugin for each data type.

If you are only interested in scalar volumes, you can keep using only DICOMScalarVolumePlugin but catch exceptions thrown by `DSVPC.load(...)`.

---

<div class="post-metadata">

**Author:** ![prorai](https://avatars.discourse-cdn.com/v4/letter/p/e8c25b/32.png) [@prorai](https://discourse.slicer.org/u/prorai)\
**Post date:** [May 13, 2019, 8:24am UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/8 "2019-05-13T08:24:21Z")

</div>

i’m handling the exception now, but still getting same error messages

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 13, 2019, 11:37am UTC](https://discourse.slicer.org/t/dicom-import-failed/6654/9 "2019-05-13T11:37:57Z")

</div>

Yes, you will still get errors for information objects that cannot be loaded as scalar volumes, but if you catch the correct exception for them you can still load everything else.
