pyRTQA is a Quality Assurance (QA) tool for Radiation Therapy.
It's built using Python and Tkinter, and integrates with pylinac with a structured GUI.
- Analyze CatPhan images (503, 504, 600, 604 supported)
- Picket Fence - Single and Multiple image analysis, Starshot, Winston-Lutz QA, Field analysis, Leeds Phantom support
- FFF Profile Analysis for AERB compliance
- User-friendly GUI built with Tkinter
- EXE version available for non-Python users
- Modern light-themed interface
- Robust error handling
- Automatically creates log files to track application activity and errors
pip install -r requirements.txt
python pyRTQA_UI.pyJust follow this link https://drive.google.com/file/d/1YWexvyTdjlWMh5dmKEiKYpmtV-NbvbUI/view?usp=sharing and double-click the pyRTQAsetup.exe file for installation!
Contributions are always welcome! If you find a bug, have a feature request, or want to improve something, feel free to open an issue or submit a pull request.
-
RFA Data
- Measure beam profiles with:
- Field Size: 20 cm x 20 cm
- Depth: 10 cm
- SSD: 90 cm
- Normalize to 100% and export to Excel with 2 sheets:
- Inline Sheet:
Inline (cm)andDose (%)columns - Crossline Sheet:
Crossline (cm)andDose (%)columns
- Inline Sheet:
- Include energy and depth info in the file.
- Measure beam profiles with:
-
2D Image Data
- Upload an EPID image (.dcm or .tiff)
- Use a 10 cm slab phantom, SSD 90 cm
- Enter energy and depth info
- Place all
.dcmimages in a folder - Use valid filenames like:
MyWL-gantry0-coll90-couch315.dcmgantry90_stuff_coll45-couch0.dcmabc-couch45-gantry315-coll0.dcm01-gantry0-abcd-coll30couch10abc.dcmabc-gantry30.dcmcoll45abc.dcm
- Avoid invalid names like:
gantry=0-coll=90-couch=315.dcmgan45_collimator30-table270.dcm
- Specify the ball bearing size (in mm)
- Upload a
.dcmor.tifffile - Enter tolerance and action level
- For individual leaf analysis:
- Check "Separate Leaves"
- For combined analysis:
- Leave "Separate Leaves" unchecked
- Input the expected picket gap (in mm)
- Only needed for separate leaf mode
- You may need to adjust for DLG & EPID effects
- Place multiple Picket Fence .dcm images in a folder.
- Each image is analyzed individually.
- Summary table and individual results (image, histogram) are included in the report.
- .dcm format is recommended for best analysis.
- Upload a
.dcmor.tifffile for analysis
- Upload a folder of CBCT/CT
.dcmimages
- Upload a high-quality image of the Leeds TOR phantom (.dcm preferred).
- Analysis includes low and high contrast resolution tests.
pyRTQA/
├── pyRTQA_UI.py # Main launcher script
├── gui/ # Tkinter GUI modules
│ └── ...
├── analysis/ # QA analysis modules (CatPhan, WL, etc.)
│ └── ...
├── logs/ # Auto-generated log files
│ └── pyRTQA.log
├── dist/ # Executable output from pyinstaller
│ └── pyRTQA.exe
├── requirements.txt
├── LICENSE
├── CREDITS.md
├── README.md
├── .gitignore
└── instructions.txt
- Python
- Tkinter
- pylinac
BSD Clause3 License — see LICENSE
- Database support
- User authentication
- QA report exporting
Made with ❤️ by Sambasivaselli