Open ekamperi opened 1 year ago
That image does not look like a successful picket fence delivery. I'm only seeing horizontal streaks, not the expected vertical dose bars.
Indeed. However I get the exact same behavior from a seemingly valid picket fence.
I added some debug print()s in picketfence.py and it appears that spacing
isn't calculated properly. If I hardcode it, pylinac doesn't throw but it doesn't recognise all the fences. E.g.
pf_good.analyze(picket_spacing=None)
throws but pf_good.analyze(picket_spacing=50)
succeeds though only one fence is detected:
I'm not able to access your link.
I'm not able to access your link.
Apologies, I fixed the link. It should work now.
EDIT: I guess GitHub is blocking external links that are not https? Anyway, copying and pasting manually http://test2.ogkologia.gr/picket.dcm should work.
pf = PicketFence(<file>)
pf.analyze(required_prominence=0.1)
pf.plot_analyzed_image()
This works for me.
The reason it won't analyze is due to the narrow y-range of the MLCs. Opening the Y-jaws more will generally analyze without any extra parameters. I'll play around to see if I can auto-detect the initial picket locations better out of the box. Thanks.
Hi James
I am getting the same error with the HD Millenium MLC with the attached file. I see in the predefined MLC types the HD Millenium MLC is defined as: HD_MILLENNIUM = { "name": "HD Millennium", "arrangement": MLCArrangement([(10, 5), (40, 2.5), (10, 5)]), } #:
The Varian Truebeam system overview gives the HD Millenium arrangement as: Shouldn't the MLCArrangement be (14,5), (32, 2.5), (14, 5)] ?
However I tried the following:
>>> mlc_setup = MLCArrangement(leaf_arrangement=[(14,5), (32, 2.5), (14, 5)])
>>> pf = PicketFence('/home/alanphys/Sites/VP/Static.dcm', mlc=mlc_setup)
>>> pf.analyze()
and
>>> mlc_setup = MLCArrangement(leaf_arrangement=[(32, 2.5)])
>>> pf = PicketFence('/home/alanphys/Sites/VP/Static.dcm', mlc=mlc_setup)
>>> pf.analyze()
as well as
>>> pf = PicketFence('/home/alanphys/Sites/VP/Static.dcm', mlc='HD Millennium')
>>> pf.analyze()
and they all gave the same error. Your workaround above worked though. The MLC arrangement doesn't seem to affect the analysis. StaticNew.zip
Regards Alan
Ugh, you're right. How embarrassing 🤦. I'll adjust that in the next release
Describe the bug Analyzing a picket fence dicom file obtained from a Varian Truebeam linac throws an exception during the detection of the left edge detection.
I tried with
invert=True
and also withLEFT_RIGHT
andUP_DOWN
orientation. Same result.To Reproduce Please find the faulty picket fence dicom file here.
Expected behavior Pylinac should either succeed in analyzing the picket fence file or display some more informative message to guide the user.
Screenshots This is the orientation of the picket fence image data:
Additional context For what is worth this happens only in static picket fence dicom files. When obtaining a picket fence over an arc beam, pylinac succeeds. Happy to provide any further information that could help to figure out what's going on.