Difference between revisions of "Slicer3:UIDesign:WorkingProblems:BCAnalysis:PET"
From Slicer Wiki
Line 62: | Line 62: | ||
[[image:DraftPETCTModule1.png|thumb|center|600px|Draft module (w/o display) DICOM Tags missing?]] | [[image:DraftPETCTModule1.png|thumb|center|600px|Draft module (w/o display) DICOM Tags missing?]] | ||
− | [[image:DraftPETCTVWithoutolumeRender.png|thumb|center|500px| Latest with new PET heat color LUT and SUV computation]] | + | [[image:DraftPETCTVWithoutolumeRender.png|thumb|center|500px| Latest with new PET heat color LUT and SUV computation from DICOM header information.]] |
+ | |||
+ | |||
+ | [[image:DraftPETCTVWithInverseGrey.png|thumb|center|500px| Latest with inverse Grey display and manual parameter entry.]] | ||
== Questions for Ron/Jeffrey== | == Questions for Ron/Jeffrey== |
Revision as of 22:16, 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 progress (shown from early to latest)
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)
- Update nuclear medicine parameters from DICOM automatically when PET volume is selected. (DONE)
- Allow manual override (manual setting) of key parameters in the computation in case PET volume is not DICOM. (DONE)
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.).
- see latest screen shots above.
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...