Winston-Lutz Multi-Target error using pylinac

Hi! Im currently using the Multi-Target Winston-Lutz module. I obtained 7 DICOM images varying the gantry angle (at 0º, 90º, 135º, 180º, 240º, 290º and 325º) on a certain calibration phantom (5 spheres, 7.5mm size) with a 10cm x 10cm radiation field size.
I got no problem with the bb at the centre, but when the program try to analize the bb nº1, it drops this error:
ValueError: Did not find any field/bb pairs for bb: {‘name’: ‘1’, ‘offset_left_mm’: 25, ‘offset_up_mm’: -30, ‘offset_in_mm’: -10, ‘bb_size_mm’: 7.5, ‘rad_size_mm’: 100}

The radiation field size is correct (but i dont know why it is necessary to start the calculation), could it be that the positions are not correct?

the .dcm images contains the data of the gantry angle (359.953566344993º, 135.002487499922º, 180.003316672024º, 240.002211109255º, 289.997973118414º, 325.002303239467º and 89.9950249508693º) in that order, its that relevant?

i got this message too: “Non-zero couch angles not yet allowed. Dropped 6 images” what does that means?

Thank you! I hope someone can help me!

I will drop my code here:

used_rad_size = 100
bb_size = 7.5
bbs_vision = [
{
“name”: “Iso”,
“offset_left_mm”: 0,
“offset_up_mm”: 0,
“offset_in_mm”: 0,
“bb_size_mm”: bb_size,
“rad_size_mm”: used_rad_size,
},
{
“name”: “1”,
“offset_left_mm”: 25,
“offset_up_mm”: -30,
“offset_in_mm”: -10,
“bb_size_mm”: bb_size,
“rad_size_mm”: used_rad_size,
}, # 7.55mm BB1
{
“name”: “2”,
“offset_left_mm”: 15,
“offset_up_mm”: -15,
“offset_in_mm”: 10,
“bb_size_mm”: bb_size,
“rad_size_mm”: used_rad_size,
}, # 7.55mm BB2
{
“name”: “4”,
“offset_left_mm”: -20,
“offset_up_mm”: 10,
“offset_in_mm”: -20,
“bb_size_mm”: bb_size,
“rad_size_mm”: used_rad_size,
}, # 7.55mm BB4
{
“name”: “5”,
“offset_left_mm”: -30,
“offset_up_mm”: 20,
“offset_in_mm”: 20,
“bb_size_mm”: bb_size,
“rad_size_mm”: used_rad_size,
}, # 7.55mm BB5
]
wl.analyze(bb_arrangement=bbs_vision)
wl.plot_images()

print to PDF

wl.publish_pdf(“mywl.pdf”)

The multi-target overview covers the fact that multi-target/single-field analysis is not yet implemented. It currently only handles multi-target/multi-field analysis.

The radiation size is passed on a per-bb basis because it’s a multi-target analysis, and theoretically each field surrounding the bb could be a different size. The gantry angle order makes no difference.

“Non-zero couch angles not yet allowed. Dropped 6 images”. I have not yet worked on being able to incorporate the couch rotations into the isocenter calculations. So, any image with a non-zero couch value is removed from the analysis.

Since you have an example of a multi-target/single-field analysis, feel free to submit it to the image submission form so that I will include it in the test suite when the new module is created. I hope to start work on it in the next 2-3 months.

Thanks!

  1. I think the issue is that the software drops any couch angle <> exactly 0.
    All my images were acquired at couch of 0 ±0.1 degrees, and they’re all dropped.
  2. For user_rad_size, should it be the overall jaw setting, or the actual open field surrounding each of the BBs?
    Thanks,
    Eli
  1. The couch just needs to be within 5 degrees: https://github.com/jrkerns/pylinac/blob/71a61a61845d477dcf57d9e6fa8abf20c8884a25/pylinac/winston_lutz.py#L1695. Although looking at it again, this will fail for images on the far side of zero (i.e. 359.9). I’ll have to patch that.
  2. each field surrounding the BBs. That’s why it’s defined for each BB. That way each field can theoretically be a different size. https://github.com/jrkerns/pylinac/blob/71a61a61845d477dcf57d9e6fa8abf20c8884a25/pylinac/winston_lutz.py#L71