Pinnacle : KeyDependency


  • KeyDependency is a list of event-action “dependencies” in the currently open plan
  • Executes an action (AddAction) whenever a specified event occurs (KeyString)
    • Ex. Whenever a beam angle is changed, a script is called to rename it (need to verify this works)
  • Consists of three parts – Name, KeyString and AddAction
  • The dependency remains until it’s “destroyed” in a script or the plan is closed
  • Each new KeyDependency is created by invoking CreateChild
  • A script can be called, or a single line of code when the KeyString occurs
  • Works only on software level changes
    • e.g. Can be set to execute when the software sees TrialList.Current.BeamList.Current.Name, but not something specific like TrialList.Current.BeamList.Current.Name = "New Name"
    • This can be really hit-or-miss as it doesn’t seem to work for anything associated with the IMRT Inverse Planning window.
  • The technique can be utilized with the PinnacleInit file to automate checks and tasks based on user actions


  • KeyDependency calling a script when an event occurs (in this case, another trial is selected)
KeyDependencyList.CreateChild = "";
KeyDependencyList.Last =
     Name = “TempDependency”;
     KeyString = “TrialList.Current.Name”; 
     AddAction = “Script.ExecuteNow = SomeScriptName.Script”;//Calls your script
  • KeyDependency running a line of code when an event occurs
KeyDependencyList.CreateChild = "";
KeyDependencyList.Last =
     Name = “TempDependency2”;
     KeyString = “TrialList.Current.Name”; 
    AddAction = “TrialList.Current.BeamList.Current.Name = TrialList.Current.Name”; //Beam name changed to match trial name
  • Like other variables, KeyDependencies must be destroyed manually in the script or they will persist until the plan is closed
KeyDependencyList.TempDependency.Destroy = “”;
1. Scripting on the Pinnacle3 Treatment Planning System. Geoghegan, S.