Difference between revisions of "Slicer3:UIDesign:WorkingProblems:BCAnalysis:PET"
From Slicer Wiki
Line 78: | Line 78: | ||
* Normalize ROI by SUVmax? | * Normalize ROI by SUVmax? | ||
− | == Approach & | + | == 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 | 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) |
− | + | 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. | ||
− | + | * 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 == | == 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:PETBack to Project Overview
Contents
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
- extract parameters from dicom header including
- 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
- extract parameters from dicom header including
- 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
case study MS PPT Slides shows tumor
MS Word document with DICOM tags for SUV
Slicer Display at present
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...