Difference between revisions of "Slicer3:UIDesign:WorkingProblems:BCAnalysis:PET"

From Slicer Wiki
Jump to: navigation, search
Line 78: Line 78:
 
* Normalize ROI by SUVmax?
 
* Normalize ROI by SUVmax?
  
== Approach & STATUS ==
+
== Approach & notes ==  
 
+
* Fixed dicom tag reading (nuclear medicine tags are nested.)
For each label value/color:
+
* SUV computation:
 +
  For each label value/color:
 
   create a binary volume that includes only that label
 
   create a binary volume that includes only that label
 
   use that binary as a stencil on the PET volume
 
   use that binary as a stencil on the PET volume
Line 87: Line 88:
 
     get the mean Cpet
 
     get the mean Cpet
 
     (no max_mean yet)
 
     (no max_mean yet)
     computes SUVmax
+
     computes SUVmax (DONE)
     computes SUVmean
+
     computes SUVmean (DONE)
     updates display
+
    computes SUVmin (DONE)
    no unit conversion yet (assumes MBq/ml
+
     updates display (DONE)
 +
* no unit conversion yet (assumes MBq/ml) (unit conversion too, DONE)
 
* will work for single or multiple tumors under one label
 
* will work for single or multiple tumors under one label
 
* can be made to work for different labels, if want to assess tumors separately.
 
* can be made to work for different labels, if want to assess tumors separately.
* need to:
+
* wire up display panel inside module (create custom PETCT LUT ) (DONE)
** wire up display panel inside module (create custom PETCT LUT )
+
* get good volume render for slides. (sent Questions to Yanling & Curt on 10/14/2009)
*** get good volume render for slides.
+
* custom LUT and scaling (created vtkMRMLPETProceduralColorNode with two types of PET (heat, which corresponds to rgb file sent from jeff, and rainbow) DONE)
*** help from Nicole on min/max & LUT scaling -- access via volumes module (not exposed in API)?
+
* test and verify SUV calculation (jeff, see figure below -- right order of magnitude...)
** test and verify SUV calculation
+
* add unit correction (convert among Ci, Bq, and kg, lb, etc. DONE)
** add unit correction for all vendors
+
* detect vendor and use special calculations for Philips (permission from Jeff to ignore Phillips )
** detect vendor and use special calculations for Philips
+
* improve overall usability (always, always)
** improve overall usability
 
*** propagateVolumeSelection after touching node selectors auto-fits data to win -- so annoying! fix.
 
  
'''Requested from Jeff:'''
+
== '''STATUS''' ==
 +
* Module is working and checked into Slicer's svn trunk. Needs to be batted around by users (like Ron).
 +
* Volume rendering must still be switched on -- but VR module is a moving target right now... so checkbox to turn on/off vr is disabled -- questions about how to proceed are in to Curt & Yanling.
 +
* Need to put units (g/ml) on all SUV computation results!
 +
* must validate with additional datasets.
 +
* would LIKE to add opacity to the transfer function -- (sent question to Nicole about this.).
  
* suvmax (ballpark) values (if possible) for pet/ct case (from  2009 03 20) for validation, if possible
+
== '''KNOWN BUGS / USABILITY PROBLEMS''' ==
* pet color lut rgb values
+
* Volume rendering switch currently disabled.
* check on DICOM tags Slicer is missing for (2009 03 20) pet case
+
* propagateVolumeSelection after touching node selectors auto-fits data to win -- so annoying! must fix.
* data for RSNA:
+
* need to add g/ml units to computation result!!!
** '''volumetric:''' artifact-free, case where linear measures don't adequately report, volume measures do
+
* stupid color range slider does not initialize to span the range by default...
** '''dce:''' pre and post acquired with same acq parameters (fat supression, etc), followup closer in time
 
** '''pet/ct:''' data with appropriate dicom tags (if we don't have) and example philips scan for future dev
 
  
 
== PPT files ==
 
== PPT files ==
  
 
[[media:PETCTPresentation.ppt | Slides for Volumetric Analysis (in progress) ]]
 
[[media:PETCTPresentation.ppt | Slides for Volumetric Analysis (in progress) ]]

Revision as of 22:01, 14 October 2009

Home < Slicer3:UIDesign:WorkingProblems:BCAnalysis:PET

Back to Project Overview

SUV Analysis for Breast Cancer

Goal

Goal is to accommodate basic RECIST assessment for cancer treatment (Response Evaluation Criteria In Solid Tumors).

Specifically for PET/CT analysis, develop appropriate visualization of PET/CT Fusion, and a module for computing Standardized Uptake Value (SUV).

PET SUV Analysis Workflow

  • Segment the tumor by hand (ROI or VOI, can be simple circle or ellipsoid)
  • Compute SUV of baseline
    • extract parameters from dicom header including
      • concentration
      • injected activity
      • patient weight
    • SUV = ( concentration (microcuries/cc) / injected activity (microcuries) ) - (patient weight (g))
    • use maximum value
  • Compute SUV of followup
    • extract parameters from dicom header including
      • concentration
      • injected activity
      • patient weight
    • SUV = ( concentration (microcuries/cc) / injected activity (microcuries) ) - (patient weight (g))
    • use maximum value
  • Normalize ROI by SUVmax
  • Resport parameters of interest
    • SUVmax_baseline,
    • SUVmax_followup,
    •  % change
  • For multiple tumors, report
    • sum of SUV_baselines
    • sum of SUV_followup
    • percent change

Approach

Started a PET_SUV module in Slicer that

  • lets you choose a pre-treatment pet volume
  • lets you choose a post-treatment CT volume (if present)
  • lets you choose pre & post-treatment label maps.
  • displays them in FG/BG with correct LUT
  • pulls parameters of interest for SUV calculation from DICOM header
  • has entry widget for parameters missing from header
  • computes measures of interest as described above.
  • no special viewer for now.
  • ...

Resources

Display guide

case study MS PPT Slides shows tumor

MS Word document with DICOM tags for SUV

Slicer Display at present

Initial view in Slicer (w/o volume rendering)
Ron's PETCT in Slicer: GPU Raycasting (GLSL) with Gradient Magnitude Opacity Modulation
Draft module (w/o display) DICOM Tags missing?

Questions for Ron/Jeffrey

  • Same case as Draft display -- same case as ppt slides?
  • Check DICOM tags; not all are found for computing suv?
    • Radiopharmaceutical Start Time (0018,1072)
    • Decay Correction (0054,1102)
    • Decay Factor (0054,1321)
    • Frame Reference Time (0054,1300)
    • Radionuclide Half Life (0018,1075)
    • Series Time (0008,0032)
    • Patient Weight (0010,1030)
    • Radionuclide Total Dose (0018,1074)
    • Correction (7053,1009) (counts to Bq/cc)
    • Philips SUV Factor (7053,1000) (custom)
  • Normalize ROI by SUVmax?

Approach & notes

  • Fixed dicom tag reading (nuclear medicine tags are nested.)
  • SUV computation:
 For each label value/color:
 create a binary volume that includes only that label
 use that binary as a stencil on the PET volume
 if the number of voxels in the stenciled image > 0
   get the maximum Cpet
   get the mean Cpet
   (no max_mean yet)
   computes SUVmax (DONE)
   computes SUVmean (DONE)
   computes SUVmin (DONE)
   updates display (DONE)
  • no unit conversion yet (assumes MBq/ml) (unit conversion too, DONE)
  • will work for single or multiple tumors under one label
  • can be made to work for different labels, if want to assess tumors separately.
  • wire up display panel inside module (create custom PETCT LUT ) (DONE)
  • get good volume render for slides. (sent Questions to Yanling & Curt on 10/14/2009)
  • custom LUT and scaling (created vtkMRMLPETProceduralColorNode with two types of PET (heat, which corresponds to rgb file sent from jeff, and rainbow) DONE)
  • test and verify SUV calculation (jeff, see figure below -- right order of magnitude...)
  • add unit correction (convert among Ci, Bq, and kg, lb, etc. DONE)
  • detect vendor and use special calculations for Philips (permission from Jeff to ignore Phillips )
  • improve overall usability (always, always)

STATUS

  • Module is working and checked into Slicer's svn trunk. Needs to be batted around by users (like Ron).
  • Volume rendering must still be switched on -- but VR module is a moving target right now... so checkbox to turn on/off vr is disabled -- questions about how to proceed are in to Curt & Yanling.
  • Need to put units (g/ml) on all SUV computation results!
  • must validate with additional datasets.
  • would LIKE to add opacity to the transfer function -- (sent question to Nicole about this.).

KNOWN BUGS / USABILITY PROBLEMS

  • Volume rendering switch currently disabled.
  • propagateVolumeSelection after touching node selectors auto-fits data to win -- so annoying! must fix.
  • need to add g/ml units to computation result!!!
  • stupid color range slider does not initialize to span the range by default...

PPT files

Slides for Volumetric Analysis (in progress)