Skip to content

Instantly share code, notes, and snippets.

@jrkerns
Created May 26, 2023 14:51
Show Gist options
  • Save jrkerns/2368998f865d6def633e16a16f1570ea to your computer and use it in GitHub Desktop.
Save jrkerns/2368998f865d6def633e16a16f1570ea to your computer and use it in GitHub Desktop.
gammex
from pylinac.cheese import CheeseModule, CheesePhantomBase
class GammexRMIModule(CheeseModule):
"""The pluggable module with user-accessible holes.
The ROIs of each circle are ~45 degrees apart.
"""
common_name = "Gammex electron density"
outer_radius_mm = 106
inner_radius_mm = 54
roi_radius_mm = 12
roi_settings = {
"1": {
"angle": -90,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"2": {
"angle": -67.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
"3": {
"angle": -45,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"4": {
"angle": -22.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
"5": {
"angle": 0,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"6": {
"angle": 22.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
"7": {
"angle": 45,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"8": {
"angle": 67.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
"9": {
"angle": 90,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"10": {
"angle": 112.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
"11": {
"angle": 135,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"12": {
"angle": 157.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
"13": {
"angle": 180,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"14": {
"angle": 202.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
"15": {
"angle": 225,
"distance": inner_radius_mm,
"radius": roi_radius_mm,
},
"16": {
"angle": 247.5,
"distance": outer_radius_mm,
"radius": roi_radius_mm,
},
}
class GammexPhantom(CheesePhantomBase):
"""A class for analyzing the Gammex Phantom containing insert holes and plugs for HU analysis."""
_model = "Gammex"
air_bubble_radius_mm = 55
clear_borders = False
hu_origin_slice_variance = 200
localization_radius = 106
min_num_images = 10
catphan_radius_mm = 165
roi_config: dict
module_class = GammexRMIModule
module: GammexRMIModule
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment