How to find the dose for normalized volume of specified ROI

63 views
Skip to first unread message

Jianjie Luo (Nepean Blue Mountains LHD)

unread,
Nov 29, 2020, 10:39:31 PM11/29/20
to pinnacl...@googlegroups.com

Dear Pinnacle users,


I'm having a difficulty to find the dose with specified volume/roi. For example, I would like to know how many cGys of 30% of PTV received. 


Originally, I'd like to use WindowList.DoseVolHistTabular.WidgetList.Table.Table.EntryBuffer. I know how to shift dose (set current row to cGy) to find volume but I don't know how to shift volume to find dose. Such as MakeEntryBufferCurrent = "here fill number of 30% of PTV"; It doesn't work. I tried to use loop a file to shift dose until I found my volume. Again, for unknown reason. it said ExecuteNow = "/myPath/some.Script" is wrong in an if statement {}.


So I have to use other methods to find it. now trying Track tool. I can use Track tool to move and point to Normalized Volume and display dose. How can I do it with script to let me select certain normalized volume? And how can I get the dose cGy number related the specified volume? 




It will be much appreciated if you can help!


All the best,

Jianjie Luo

Radiation Oncology Medical Physicist | Nepean Cancer Care Centre
Cnr Great Western HWY & Somerset Street, Kingswood, NSW 2747
Tel (02) 4734 1868 | Fax (02) 4734 2330 | Jianj...@health.nsw.gov.au
www.health.nsw.gov.au



This message is intended for the addressee named and may contain confidential information. If you are not the intended recipient, please delete it and notify the sender.

Views expressed in this message are those of the individual sender, and are not necessarily the views of NSW Health or any of its entities.

Andrew Thorne

unread,
May 17, 2021, 3:07:54 AM5/17/21
to pinnacle3-users
Hi Jianjie,
I think Pinnacle has a limitation on the number of times you can recall a script, and after ~200 loops it will come up with an error message as you described.

We've taken a slightly different method to find Dxx% statistics (one thing we really wish Pinnacle's Scorecard could do itself!) using the DVHGroup.MaxDoseOverrideInCentiGray.Value to set values, and DVHList.Current.PercentOutOfRange.Value to read the percentages.

We use a Newton-Raphson iteration method to quickly converge on the correct percentage, with the ROIs min and max doses as the search limits (although you'll need a check if the min dose is undefined and set to 0 if this is the case).
This method can quickly converge in around 5 to 6 loops so shouldn't go anywhere near the internal loop limit. The method is as follows:

  • Set desired percentage as a variable
  • Find ROI min dose
  • Find ROI max dose
  • Calculate mid point.
  • Set mid point as MaxDoseOverideInCentiGray
  • Check PercentageOutOfRange
  • If the percentage read out is too low, then use the mid point as the new minimum, and calculate a new mid point
  • If the percentage is too high, then use the mid point as the new maximum, and calculate a new mid point
  • Loop until the percentage is achieved (we use a 0.05 buffer each way to prevent excessive loops
Hope this helps!
Kind regards,

Andrew
Reply all
Reply to author
Forward
0 new messages