-
Notifications
You must be signed in to change notification settings - Fork 10
/
merge_beams.py
34 lines (30 loc) · 1.06 KB
/
merge_beams.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Merges beams with the same gantry, couch and collimator angle
#
# Authors:
# Marit Funderud
# Helse Møre og Romsdal HF
#
# Made for RayStation version: 10B
# Python 3.6
from connect import *
import math
import sys
# Python 3.6
from System.Windows import *
try:
beam_set = get_current("BeamSet")
except SystemError:
raise IOError("No beam set loaded.")
target_beams = []
potential_beams = ['LPO','Venstre','Forfra','RAO','Høyre','RPO','LAO','Bakfra']
for beam in beam_set.Beams:
for i in range(len(potential_beams)):
if beam.Name == potential_beams[i]:
target_beams.append(beam_set.Beams[beam.Name])
for t in target_beams:
beams_to_be_merged = []
for beam in beam_set.Beams:
if beam.Name != t.Name and beam.GantryAngle == t.GantryAngle and beam.InitialCollimatorAngle == t.InitialCollimatorAngle and beam.CouchRotationAngle == t.CouchRotationAngle and beam.BeamQualityId == t.BeamQualityId:
beams_to_be_merged.append(beam.Name)
if len(list(beams_to_be_merged)) > 0:
beam_set.MergeBeamSegments(TargetBeamName = t.Name, MergeBeamNames = beams_to_be_merged)