Giter Site home page Giter Site logo

slicer-petdicomextension's Introduction

Slicer PET DICOM Extension

The PET DICOM Extension provides tools to import PET Standardized Uptake Value (SUV) images from DICOM into 3D Slicer. SUV computation is based on the vendor-neutral "happy path only" calculation described on the Quantitative Imaging Biomarkers Alliance (QIBA) wiki page Standardized Uptake Value (SUV).

Documentation: https://www.slicer.org/wiki/Documentation/Nightly/Extensions/PETDICOM

Acknowledgements

This work is funded in part by Quantitative Imaging to Assess Response in Cancer Therapy Trials NIH grant U01-CA140206 (PIs John Buatti, Tom Casavant, Michael Graham, Milan Sonka) and Quantitative Image Informatics for Cancer Research (QIICR) NIH grant U24 CA180918.

slicer-petdicomextension's People

Contributors

che85 avatar chribaue avatar ejulrich avatar fedorov avatar jamesobutler avatar jcfr avatar pieper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

slicer-petdicomextension's Issues

Extension is not functional on mac

Steps to reproduce:

  1. download QIN-HEADNECK case 73 (screenshot 1)

image

  1. try to parse from DICOM module (screenshot 2)

image

  1. error is in screenshot 3

image

SUV conversion error - Can’t find tag 18 1072 - but tag 18 1078 available

Hello,

I can’t convert my DICOM files in Bq/mL into SUV.
I think the problem comes from the metadata of my data which do not contain the tag (0018,1072) RadiopharmaceuticalStartTime, as the error message of the “SUV Factor Calculator” module tells me:
itk::ExceptionObject (0000005A9AB9D0D0)
Location: “unknown”
File: D:\D\S\S-0-E-b\PETDICOMExtension\SUVFactorCalculatorCLI\itkDCMTKFileReader.cxx
Line: 89
Description: ITK ERROR: Can’t find tag 18 1072

However, in the documentation of this module, they mention that the tag (0018,1078) RadiopharmaceuticalStartDateTime​ can be interchangeable with the tag (0018,1072) RadiopharmaceuticalStartTime, and my metadata contains this tag.

How can I overcome this error message?

Thank you very much for your attention !

PixelData should not be precached

The dicom module uses the plugin's tags member to know which fields to put into the TagCache database:

https://github.com/Slicer/Slicer/blob/bc6482c9a4abaabe3f93b0bfee31d5a8a2c4ae97/Modules/Scripted/DICOM/DICOM.py#L176-L185

But the PETSUV plugin includes PixelData in the tags member:

https://github.com/QIICR/Slicer-PETDICOMExtension/blob/master/DICOMPETSUVPlugin/DICOMPETSUVPlugin.py#L65

This probably leads to a large tag cache and poor performance, although I haven't timed it.

Possibly related to #21

Very slow loading when many studies in the DICOM database

I downloaded all the studies from IDC with the PET modality (about 1700 studies) and loaded them into the Slicer dicom database. I installed the PET DICOM extensions in Slicer 5.0.3-2023-08-03.

I'm able to examine the series and see that the PET SUV Plugin correctly identifies that the PET series and is selected to load, but when I try to load it appears that Slicer is in an infinite loop, or at least something very very slow.

If I export the same study from the database to a directory by itself, and then import that directory into a newly created database the study loads quickly. I take this to mean that the plugin is looping over all studies in the database or something similarly inefficient.

Environment to Build PETDICOMExtension

I would like to build the Slicer-PETDICOMExtension on my own computer as a command-line tool to use. PETDICOMExtension seems to need to pre-install some libraries, such as Slicer, DCMTK, ITK, VTK, etc, to compile.

Any documentation to install all required libraries for compiling PETDICOMExtension? It would be great if there is a Dockerfile for compiling environment configuration.

Calculation of SUV values

I believe the calculation for SUV is as follows:

SUV = PET_activity * weight / decay_corrected_dose

Your implementation does NOT convert the PET_raw intensity values (0 to 32767) to PET_activity values using rescale slope and rescale intercept by the following equation:

PET_activity = PET_raw * rescale_slope + rescale_intercept

Can you please verify this and confirm the same? If the issue is valid, can you explain the fundamentals behind your implementation?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.