Search Results for

    Show / Hide Table of Contents

    Class TradeoffExplorationContext

    Context for performing multi-criteria optimization (MCO) to explore different trade-offs.

    Inheritance
    System.Object
    TradeoffExplorationContext
    Inherited Members
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: VMS.TPS.Common.Model.API
    Assembly: VMS.TPS.Common.Model.API.dll
    Syntax
    public class TradeoffExplorationContext
    Remarks

    To be able to get the TradeoffExplorationContext class from ExternalPlanSetup, the plan needs to have the optimization objectives set.

    Examples

    The basic workflow is the following:

    Properties

    CanCreatePlanCollection

    True if a plan collection can be created.

    Declaration
    public bool CanCreatePlanCollection { get; }
    Property Value
    Type Description
    System.Boolean

    CanLoadSavedPlanCollection

    True if a previously saved plan collection can be loaded.

    Declaration
    public bool CanLoadSavedPlanCollection { get; }
    Property Value
    Type Description
    System.Boolean

    CanUseHybridOptimizationInPlanGeneration

    True if VMAT-IMRT hybrid optimization can be used in CreatePlanCollection(Boolean, TradeoffPlanGenerationIntermediateDoseMode, Boolean).

    Declaration
    public bool CanUseHybridOptimizationInPlanGeneration { get; }
    Property Value
    Type Description
    System.Boolean

    CanUsePlanDoseAsIntermediateDose

    True if plan dose can be used as intermediate dose in CreatePlanCollection(Boolean, TradeoffPlanGenerationIntermediateDoseMode, Boolean).

    Declaration
    public bool CanUsePlanDoseAsIntermediateDose { get; }
    Property Value
    Type Description
    System.Boolean

    CurrentDose

    Dose at the current location on the Pareto surface (the current trade-offs). Returns null if no valid dose exists.

    Declaration
    public Dose CurrentDose { get; }
    Property Value
    Type Description
    Dose

    HasPlanCollection

    True if the trade-off exploration context has a plan collection, so that the trade-offs can be explored using the CreatePlanCollection(Boolean, TradeoffPlanGenerationIntermediateDoseMode, Boolean) method. This property is set to true when a plan collection is loaded successfully using LoadSavedPlanCollection() or created using CreatePlanCollection(Boolean, TradeoffPlanGenerationIntermediateDoseMode, Boolean).

    Declaration
    public bool HasPlanCollection { get; }
    Property Value
    Type Description
    System.Boolean

    TargetStructures

    Target structures in trade-off exploration. These structures cannot be selected for trade-off exploration at the structure level. Homogeneity indices only apply to the target structures.

    Declaration
    public IReadOnlyList<Structure> TargetStructures { get; }
    Property Value
    Type Description
    System.Collections.Generic.IReadOnlyList<Structure>

    IReadOnlyList<Structure>

    TradeoffObjectiveCandidates

    Available optimization objectives that can be selected for trade-off exploration in multi-criteria optimization.

    Declaration
    public IReadOnlyList<OptimizationObjective> TradeoffObjectiveCandidates { get; }
    Property Value
    Type Description
    System.Collections.Generic.IReadOnlyList<OptimizationObjective>

    IReadOnlyList<OptimizationObjective>

    TradeoffObjectives

    Trade-off objectives. If HasPlanCollection is false, System.Double.NaN is returned as the cost.

    Declaration
    public IReadOnlyCollection<TradeoffObjective> TradeoffObjectives { get; }
    Property Value
    Type Description
    System.Collections.Generic.IReadOnlyCollection<TradeoffObjective>

    IReadOnlyList<TradeoffObjective>

    TradeoffStructureCandidates

    Available structures that can be selected for trade-off exploration in multi-criteria optimization. Only organs at risk can be used for trade-off exploration at the structure level.

    Declaration
    public IReadOnlyList<Structure> TradeoffStructureCandidates { get; }
    Property Value
    Type Description
    System.Collections.Generic.IReadOnlyList<Structure>

    IReadOnlyList<Structure>

    Methods

    AddTargetHomogeneityObjective(Structure)

    [Availability of this method depends on your Eclipse Scripting API license] Creates a homogeneity objective for a given target structure to be used as a trade-off objective. Only target structures with an upper dose objective with larger than zero priority may have a homogeneity objective. Adding a new trade-off objective sets HasPlanCollection to false, as it invalidates the current plan collection.

    Declaration
    public bool AddTargetHomogeneityObjective(Structure targetStructure)
    Parameters
    Type Name Description
    Structure targetStructure

    Structure for which the homogeneity objective is created.

    Returns
    Type Description
    System.Boolean

    True if the structure was a target and the objective was successfully created.

    AddTradeoffObjective(OptimizationObjective)

    [Availability of this method depends on your Eclipse Scripting API license] Creates a trade-off objective from an individual optimization objective. Adding a new trade-off objective sets HasPlanCollection to false, as it invalidates the current plan collection.

    Declaration
    public bool AddTradeoffObjective(OptimizationObjective objective)
    Parameters
    Type Name Description
    OptimizationObjective objective

    Objective to be added as a trade-off objective.

    Returns
    Type Description
    System.Boolean

    True if the objective was successfully added.

    AddTradeoffObjective(Structure)

    [Availability of this method depends on your Eclipse Scripting API license] Creates a trade-off objective from all objectives associated with the given structure. Targets cannot be used in trade-off exploration at the structure level. Structures that do not have objectives or are not included in the plan cannot be added as trade-off objectives. Adding a new trade-off objective sets HasPlanCollection to false, as it invalidates the current plan collection.

    Declaration
    public bool AddTradeoffObjective(Structure structure)
    Parameters
    Type Name Description
    Structure structure

    Structure to be added as a trade-off objective.

    Returns
    Type Description
    System.Boolean

    True if the structure was successfully added as a trade-off objective.

    ApplyTradeoffExplorationResult()

    [Availability of this method depends on your Eclipse Scripting API license] Saves the trade-off exploration result. Also applies the trade-off exploration result to the plan setup for IMRT plans. For VMAT plans, to apply the results to the plan setup, an additional call to the CreateDeliverableVmatPlan(Boolean) method is needed.

    Declaration
    public void ApplyTradeoffExplorationResult()

    CreateDeliverableVmatPlan(Boolean)

    [Availability of this method depends on your Eclipse Scripting API license] Applies the trade-off exploration result to the plan setup for VMAT plans.

    Declaration
    public bool CreateDeliverableVmatPlan(bool useIntermediateDose)
    Parameters
    Type Name Description
    System.Boolean useIntermediateDose

    True if intermediate dose is used when creating the VMAT plan.

    Returns
    Type Description
    System.Boolean

    True if a deliverable VMAT plan was successfully created.

    CreatePlanCollection(Boolean, TradeoffPlanGenerationIntermediateDoseMode, Boolean)

    [Availability of this method depends on your Eclipse Scripting API license] Creates a plan collection for trade-off exploration and sets HasPlanCollection to true. Note: This operation is a long-running task because it involves optimizing a set of Pareto plans.

    Declaration
    public bool CreatePlanCollection(bool continueOptimization, TradeoffPlanGenerationIntermediateDoseMode intermediateDoseMode, bool useHybridOptimizationForVmat = false)
    Parameters
    Type Name Description
    System.Boolean continueOptimization

    True if the starting point for the trade-off exploration should be created by continuing optimization for the existing plan. Otherwise, the starting point is created by starting optimization from the beginning.

    TradeoffPlanGenerationIntermediateDoseMode intermediateDoseMode

    Specifies which intermediate dose mode is used for plan generation.

    System.Boolean useHybridOptimizationForVmat

    True if VMAT-IMRT hybrid optimization should be used in VMAT plan generation. Otherwise native VMAT optimization is used.

    Returns
    Type Description
    System.Boolean

    True if plan collection was successfully created.

    GetObjectiveCost(TradeoffObjective)

    Gets the current relative cost of a trade-off objective. The costs are normalized to the range [0,1]. If HasPlanCollection is false, System.Double.NaN is returned as the cost.

    Declaration
    public double GetObjectiveCost(TradeoffObjective objective)
    Parameters
    Type Name Description
    TradeoffObjective objective

    Trade-off objective for which to get the cost.

    Returns
    Type Description
    System.Double

    Current relative cost [0,1] of the given trade-off objective.

    GetObjectiveLowerLimit(TradeoffObjective)

    Gets the lower limit value for a trade-off objective. It is not possible to set the cost value of the objective below this value. The range of the objective may be limited because one or more objective has a restrictor (SetObjectiveUpperRestrictor(TradeoffObjective, Double)) set. If HasPlanCollection is false, System.Double.NaN is returned as the cost.

    Declaration
    public double GetObjectiveLowerLimit(TradeoffObjective objective)
    Parameters
    Type Name Description
    TradeoffObjective objective

    Trade-off objective for which to get the lower limit.

    Returns
    Type Description
    System.Double

    Lower limit [0,1] of the given trade-off objective

    GetObjectiveUpperLimit(TradeoffObjective)

    Gets the upper limit value for a trade-off objective. It is not possible to set the cost value of the objective above this value. The range of the objective may be limited because one or more objective has a restrictor (SetObjectiveUpperRestrictor(TradeoffObjective, Double)) set. If HasPlanCollection is false, System.Double.NaN is returned as the cost.

    Declaration
    public double GetObjectiveUpperLimit(TradeoffObjective objective)
    Parameters
    Type Name Description
    TradeoffObjective objective

    Trade-off objective for which to get the upper limit.

    Returns
    Type Description
    System.Double

    Upper limit [0,1] of the given trade-off objective.

    GetObjectiveUpperRestrictor(TradeoffObjective)

    Gets the current upper limit of a trade-off objective. The limits are normalized to the range [0,1]. If HasPlanCollection is false, System.Double.NaN is returned as the cost.

    Declaration
    public double GetObjectiveUpperRestrictor(TradeoffObjective objective)
    Parameters
    Type Name Description
    TradeoffObjective objective

    Trade-off objective to get the upper limit.

    Returns
    Type Description
    System.Double

    Current upper limit [0,1] of the given trade-off objective.

    GetStructureDvh(Structure)

    Calculates a DVH for a given structure based on the dose at the current location on the Pareto surface (current trade-offs). If HasPlanCollection is false, the call to GetStructureDvh(Structure) returns null.

    Declaration
    public DVHData GetStructureDvh(Structure structure)
    Parameters
    Type Name Description
    Structure structure

    Structure for which the DVH is calculated.

    Returns
    Type Description
    DVHData

    DVHData if the current location on the Pareto surface is valid. Otherwise, null.

    LoadSavedPlanCollection()

    Loads a previously saved plan collection and sets HasPlanCollection to true.

    Declaration
    public bool LoadSavedPlanCollection()
    Returns
    Type Description
    System.Boolean

    True if the plan collection was successfully loaded from the database.

    RemoveAllTradeoffObjectives()

    [Availability of this method depends on your Eclipse Scripting API license] Removes all the trade-off objectives of the current plan collection. Removing all trade-off objectives invalidates the current plan collection and sets HasPlanCollection to false.

    Declaration
    public void RemoveAllTradeoffObjectives()

    RemovePlanCollection()

    [Availability of this method depends on your Eclipse Scripting API license] Removes the plan collection from the plan setup and database. Removing the plan collection sets HasPlanCollection to false.

    Declaration
    public void RemovePlanCollection()

    RemoveTargetHomogeneityObjective(Structure)

    [Availability of this method depends on your Eclipse Scripting API license] Removes the homogeneity trade-off objective of the given target structure. Removing the trade-off objective invalidates the current plan collection and sets HasPlanCollection to false.

    Declaration
    public bool RemoveTargetHomogeneityObjective(Structure targetStructure)
    Parameters
    Type Name Description
    Structure targetStructure

    Target structure for which the homogeneity objective is removed.

    Returns
    Type Description
    System.Boolean

    True if the objective was successfully removed.

    RemoveTradeoffObjective(Structure)

    [Availability of this method depends on your Eclipse Scripting API license] Removes the trade-off objective of the given structure. Removing the trade-off objective invalidates the current plan collection and sets HasPlanCollection to false.

    Declaration
    public bool RemoveTradeoffObjective(Structure structure)
    Parameters
    Type Name Description
    Structure structure

    Structure for which the trade-off objective is removed.

    Returns
    Type Description
    System.Boolean

    True if the trade-off objective for the structure was successfully removed.

    RemoveTradeoffObjective(TradeoffObjective)

    [Availability of this method depends on your Eclipse Scripting API license] Removes the given trade-off objective. Removing the trade-off objective invalidates the current plan collection and sets HasPlanCollection to false.

    Declaration
    public bool RemoveTradeoffObjective(TradeoffObjective tradeoffObjective)
    Parameters
    Type Name Description
    TradeoffObjective tradeoffObjective

    Trade-off objective to be removed.

    Returns
    Type Description
    System.Boolean

    True if the objective was successfully removed.

    ResetToBalancedPlan()

    [Availability of this method depends on your Eclipse Scripting API license] Resets the costs of a trade-off objective to correspond to the balanced plan. If HasPlanCollection is false, the call to ResetToBalancedPlan() is ignored.

    Declaration
    public void ResetToBalancedPlan()

    SetObjectiveCost(TradeoffObjective, Double)

    [Availability of this method depends on your Eclipse Scripting API license] A single trade-off objective specifies a one dimensional subspace of the Pareto surface. By adjusting the relative cost of the objective, it is possible to move in this one dimensional subspace. The difference between the current relative cost and the new relative cost specifies the direction of the movement. If the difference is negative, the movement is towards the extreme case where the given trade-off objective is emphasized at the cost of all other objectives. If the difference is positive, the movement is away from the extreme case. If HasPlanCollection is false, the call to SetObjectiveCost(TradeoffObjective, Double) is ignored.

    Declaration
    public void SetObjectiveCost(TradeoffObjective tradeoffObjective, double cost)
    Parameters
    Type Name Description
    TradeoffObjective tradeoffObjective

    Trade-off objective that specifies the one dimensional subspace.

    System.Double cost

    The relative cost is defined as an interval [0,1]. A smaller value gives more emphasis to the given trade-off objective.

    SetObjectiveUpperRestrictor(TradeoffObjective, Double)

    Sets an upper limit for a trade-off objective. The limits are normalized to the range [0,1]. If HasPlanCollection is false, the call to SetObjectiveUpperRestrictor(TradeoffObjective, Double) is ignored.

    Declaration
    public void SetObjectiveUpperRestrictor(TradeoffObjective tradeoffObjective, double restrictorValue)
    Parameters
    Type Name Description
    TradeoffObjective tradeoffObjective

    Optimization objective selected for trade-off exploration. This trade-off objective specifies the one dimensional subspace of the Pareto surface.

    System.Double restrictorValue

    New upper limit [0,1] of the given trade-off objective.

    In This Article
    Back to top