# Unable to use DICOMUtils to load dicom files

**URL:** <https://discourse.slicer.org/t/unable-to-use-dicomutils-to-load-dicom-files/41290>\
**Category:** Development\
**Created:** [January 26, 2025, 9:50am UTC](https://discourse.slicer.org/t/unable-to-use-dicomutils-to-load-dicom-files/41290 "2025-01-26T09:50:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![slicerpy](https://avatars.discourse-cdn.com/v4/letter/s/edb3f5/32.png) [@slicerpy](https://discourse.slicer.org/u/slicerpy)\
**Post date:** [January 26, 2025, 9:50am UTC](https://discourse.slicer.org/t/unable-to-use-dicomutils-to-load-dicom-files/41290/1 "2025-01-26T09:50:22Z")

</div>

I am trying use the below sample code from vscode , but getting the error captured below.  
from DICOMLib import DICOMUtils  
with DICOMUtils.TemporaryDICOMDatabase() as db:  
DICOMUtils.importDicom(dicomDataDir, db)  
patientUIDs = db.patients()  
for patientUID in patientUIDs:  
loadedNodeIDs.extend(DICOMUtils.loadPatientByUID(patientUID))

Error  
**No module named ‘logic’**  
3.9.10 (main, Jan 23 2025, 23:04:06) [MSC v.1942 64 bit (AMD64)]  
Traceback (most recent call last):  
File “c:\Users\praveen.selvaraj\Downloads\Slicer-5.6.2-Win\bin\import sys.py”, line 10, in   
from DICOMLib import DICOMUtils  
File “C:\Users\praveen.selvaraj\AppData\Local\slicer.org\Slicer 5.8.0\lib\Slicer-5.8\qt-scripted-modules\DICOMLib\__init_\_.py”, line 1, in   
from .DICOMProcesses import \*  
File “C:\Users\praveen.selvaraj\AppData\Local\slicer.org\Slicer 5.8.0\lib\Slicer-5.8\qt-scripted-modules\DICOMLib\DICOMProcesses.py”, line 38, in   
class DICOMProcess:  
File “C:\Users\praveen.selvaraj\AppData\Local\slicer.org\Slicer 5.8.0\lib\Slicer-5.8\qt-scripted-modules\DICOMLib\DICOMProcesses.py”, line 84, in DICOMProcess  
def start(self, cmd: str, args: list[str]) → qt.QProcess:  
**AttributeError: module ‘qt’ has no attribute ‘QProcess’**

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [January 26, 2025, 10:24am UTC](https://discourse.slicer.org/t/unable-to-use-dicomutils-to-load-dicom-files/41290/2 "2025-01-26T10:24:00Z")

</div>

The DICOM module is set up to work in the Slicer environment, not other python environments. If you want to dig into the code it’s likely that a large part could be factored out.

---

<div class="post-metadata">

**Author:** ![slicerpy](https://avatars.discourse-cdn.com/v4/letter/s/edb3f5/32.png) [@slicerpy](https://discourse.slicer.org/u/slicerpy)\
**Post date:** [January 27, 2025, 8:17pm UTC](https://discourse.slicer.org/t/unable-to-use-dicomutils-to-load-dicom-files/41290/3 "2025-01-27T20:17:38Z")

</div>

Thank you pieper. So I am looking to automate manual segmentation , so It is recommended and potentially possible(without refactor) only from slicer python console ?

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [January 27, 2025, 10:45pm UTC](https://discourse.slicer.org/t/unable-to-use-dicomutils-to-load-dicom-files/41290/4 "2025-01-27T22:45:29Z")

</div>

If you want to use Slicer’s features for now you need to use Slicer’s python environment, which you can do with `--no-main-window` and specify a python script. If you want to factor out some features to use outside of Slicer you can, but it means doing some coding work. Slicer’s python is basically just python, but with extra features enabled to support the GUI app.
