Note
Go to the end to download the full example code.
Read RTPLAN DICOM and list information#
Given an RTPLAN DICOM file, list basic info for the beams in it.
Beam name Number Gantry SSD (cm)
Field 1 1 0.0 89.8
# authors : Darcy Mason
# Guillaume Lemaitre <g.lemaitre58@gmail.com>
# license : MIT
import pydicom
from pydicom.data import get_testdata_file
print(__doc__)
def list_beams(ds: pydicom.Dataset) -> str:
"""Summarizes the RTPLAN beam information in the dataset."""
lines = [f"{'Beam name':^13s} {'Number':^8s} {'Gantry':^8s} {'SSD (cm)':^11s}"]
for beam in ds.BeamSequence:
cp0 = beam.ControlPointSequence[0]
ssd = float(cp0.SourceToSurfaceDistance / 10)
lines.append(
f"{beam.BeamName:^13s} {beam.BeamNumber:8d} {cp0.GantryAngle:8.1f} {ssd:8.1f}"
)
return "\n".join(lines)
path = get_testdata_file("rtplan.dcm")
ds = pydicom.dcmread(path)
print(list_beams(ds))
Total running time of the script: (0 minutes 0.003 seconds)