Winston Lutz Shifts Disagreeing with DoseLab

Hello all,

We ran a pre-winston lutz with only gantry and collimator rotations. When analyzed both with pylinac and with doselab pro, the ideal shifts are the same (within reason) as are the mean and maximum cax to BB displacements.

We then applied the shifts using the Quasar Winston Lutz wand and repeated, this time including couch kicks at both gantry 0 and gantry 180. This time, the mean and maximum cax to BB displacements are still very similar, but the ideal shift is very different in the X direction. Pylinac reports that the BB should be shifted right by 0.03mm while Doselab reports that it should be shifted left by 0.44mm.

Any idea why this discrepancy would exist? If we re-run the analysis in both programs without the couch kick fields we get similar results for the shifts, but the couch kicks seem to be introducing a large discrepancy.

Thanks in advance.

Is it possible that our couch rotation definition that we use is reversed with respect to what pylinac thinks it is? I believe we are using IEC 601. Is there a way to overwrite the couch rotation angles in pylinac?

Sorry to spam, but some additional information:

  1. No couch kicks included: pylinac and doselab both want shifts left ~0.05mm
  2. All couch kicks included: pylinac wants shift left 0.03mm, doselab wants shift left 0.44mm
  3. Only couch kicks at gantry 0 included: pylinac and doselab both want shifts left ~0.32mm
  4. Only couch kicks at gantry 180 included: pylinac wants shift right 0.24mm and doselab wants shift left 0.31mm

is there a way to troubleshoot this in pylinac?

Hi David,
Try one thing for me: change this line to just couch_angle: pylinac/ at master · jrkerns/pylinac ( and see what you get.

I think I’m still using an old version of pylinac, since the code I have for the shift vector looks very different. Looks like I need to update that first…

I’ve updated my Pylinac to 2.3.2 now.

Our center has the opposite couch definition of IEC 61217. We had always thought we should be using the ‘varian IEC’ scale in doselab but now I’m wondering if that’s incorrect.

When I analyze with:

  • Pylinac with c = img.couch_angle_varian_scale I get a right shift of 0.40mm and in 0.06mm
  • Pylinac with c = img.couch_angle I get a right shift of 0.45mm and an in shift of 0.04mm
  • Doselab with “IEC” scale I get a right shift of 0.4mm and an in shift of 0.05mm
  • Doselab with “Varian IEC” scale I get a left shift of 0.44mm and an out shift of 0.05mm
    I hate how in Doselab your options are “IEC” or “Varian IEC” but then the outputs are “IEC 601” and “IEC 1217”

I just did an additional test where I set up the WL cube with known offsets. (but only couch kicks at gantry 0)

Pylinac 2.3.2 with c=img.couch_angle gives the same results as DoseLab with Varian IEC scale but the X and Y shifts are in the wrong direction in the pylinac implementation. Any idea why the signs of these shifts would be wrong?

Pylinac 2.3.2 with c=img.couch_angle_varian_scale gives the same results as DoseLab with IEC scale.

sorry to spam everyone, but we figured it out. Had to change c=img.couch_angle_varian_scale to c=360-img.couch_angle_varian_scale