/// Calculates the RTOG conformity index as isodose volume irradiated at reference dose (Body contour volume irradiated) /// divided by the target volume. Does not necessarily mean the volumes are coincident! /// </summary> /// <param name="s">the target structure</param> /// <param name="pi">the planning item containing the dose</param> /// <param name="referenceDose">the reference isodose (eg. prescription dose)</param> /// <returns>RTOG conformity index</returns> public static double GetCI_RTOG(ESAPIX.Facade.API.Structure s, ESAPIX.Facade.API.PlanningItem pi, DoseValue referenceDose) { var external = pi.GetStructureSet()?.Structures.FirstOrDefault(st => st.DicomType == DICOMType.EXTERNAL); if (external == null) { return(double.NaN); } var prescription_volIsodose = pi.GetVolumeAtDose(external, referenceDose, VolumePresentation.AbsoluteCm3); var target_vol = s.Volume; return(prescription_volIsodose / target_vol); }
public void RemoveStructure(ESAPIX.Facade.API.Structure structure) { if ((XC.Instance.CurrentContext) != (null)) { XC.Instance.CurrentContext.Thread.Invoke(() => { _client.RemoveStructure(structure._client); } ); } else { _client.RemoveStructure(structure); } }
public System.Boolean CanRemoveStructure(ESAPIX.Facade.API.Structure structure) { if ((XC.Instance.CurrentContext) != (null)) { var vmsResult = (XC.Instance.CurrentContext.GetValue(sc => { var fromClient = (_client.CanRemoveStructure(structure._client)); if (fromClient.Equals(default(System.Boolean))) { return(default(System.Boolean)); } return((System.Boolean)(fromClient)); } )); return(vmsResult); } else { return((System.Boolean)(_client.CanRemoveStructure(structure))); } }
public ESAPIX.Facade.API.DVHData GetDVHCumulativeData(ESAPIX.Facade.API.Structure structure, VMS.TPS.Common.Model.Types.DoseValuePresentation dosePresentation, VMS.TPS.Common.Model.Types.VolumePresentation volumePresentation, System.Double binWidth) { if ((XC.Instance) != (null)) { var vmsResult = (XC.Instance.GetValue(sc => { var fromClient = (_client.GetDVHCumulativeData(structure._client, dosePresentation, volumePresentation, binWidth)); if ((fromClient) == (null)) { return(null); } return(new ESAPIX.Facade.API.DVHData(fromClient)); } )); return(vmsResult); } else { return((ESAPIX.Facade.API.DVHData)(_client.GetDVHCumulativeData(structure, dosePresentation, volumePresentation, binWidth))); } }
public ESAPIX.Facade.API.OptimizationPointObjective AddPointObjective(ESAPIX.Facade.API.Structure structure, VMS.TPS.Common.Model.Types.OptimizationObjectiveOperator objectiveOperator, VMS.TPS.Common.Model.Types.DoseValue dose, System.Double volume, System.Double priority) { if ((XC.Instance.CurrentContext) != (null)) { var vmsResult = (XC.Instance.CurrentContext.GetValue(sc => { var fromClient = (_client.AddPointObjective(structure._client, objectiveOperator, dose, volume, priority)); if ((fromClient) == (null)) { return(null); } return(new ESAPIX.Facade.API.OptimizationPointObjective(fromClient)); } )); return(vmsResult); } else { return((ESAPIX.Facade.API.OptimizationPointObjective)(_client.AddPointObjective(structure, objectiveOperator, dose, volume, priority))); } }
public System.Double GetVolumeAtDose(ESAPIX.Facade.API.Structure structure, VMS.TPS.Common.Model.Types.DoseValue dose, VMS.TPS.Common.Model.Types.VolumePresentation requestedVolumePresentation) { if ((XC.Instance.CurrentContext) != (null)) { var vmsResult = (XC.Instance.CurrentContext.GetValue(sc => { var fromClient = (_client.GetVolumeAtDose(structure._client, dose, requestedVolumePresentation)); if (fromClient.Equals(default(System.Double))) { return(default(System.Double)); } return((System.Double)(fromClient)); } )); return(vmsResult); } else { return((System.Double)(_client.GetVolumeAtDose(structure, dose, requestedVolumePresentation))); } }
public VMS.TPS.Common.Model.Types.DoseValue GetDoseAtVolume(ESAPIX.Facade.API.Structure structure, System.Double volume, VMS.TPS.Common.Model.Types.VolumePresentation volumePresentation, VMS.TPS.Common.Model.Types.DoseValuePresentation requestedDosePresentation) { if ((XC.Instance) != (null)) { var vmsResult = (XC.Instance.GetValue(sc => { var fromClient = (_client.GetDoseAtVolume(structure._client, volume, volumePresentation, requestedDosePresentation)); if (fromClient.Equals(default(VMS.TPS.Common.Model.Types.DoseValue))) { return(default(VMS.TPS.Common.Model.Types.DoseValue)); } return((VMS.TPS.Common.Model.Types.DoseValue)(fromClient)); } )); return(vmsResult); } else { return((VMS.TPS.Common.Model.Types.DoseValue)(_client.GetDoseAtVolume(structure, volume, volumePresentation, requestedDosePresentation))); } }
public ESAPIX.Facade.API.OptimizationMeanDoseObjective AddMeanDoseObjective(ESAPIX.Facade.API.Structure structure, VMS.TPS.Common.Model.Types.DoseValue dose, System.Double priority) { if ((XC.Instance) != (null)) { var vmsResult = (XC.Instance.GetValue(sc => { var fromClient = (_client.AddMeanDoseObjective(structure._client, dose, priority)); if ((fromClient) == (null)) { return(null); } return(new ESAPIX.Facade.API.OptimizationMeanDoseObjective(fromClient)); } )); return(vmsResult); } else { return((ESAPIX.Facade.API.OptimizationMeanDoseObjective)(_client.AddMeanDoseObjective(structure, dose, priority))); } }
public System.Boolean RemoveTradeoffObjective(ESAPIX.Facade.API.Structure structure) { if ((XC.Instance) != (null)) { var vmsResult = (XC.Instance.GetValue(sc => { var fromClient = (_client.RemoveTradeoffObjective(structure._client)); if (fromClient.Equals(default(System.Boolean))) { return(default(System.Boolean)); } return((System.Boolean)(fromClient)); } )); return(vmsResult); } else { return((System.Boolean)(_client.RemoveTradeoffObjective(structure))); } }
public System.Boolean AddTargetHomogeneityObjective(ESAPIX.Facade.API.Structure targetStructure) { if ((XC.Instance) != (null)) { var vmsResult = (XC.Instance.GetValue(sc => { var fromClient = (_client.AddTargetHomogeneityObjective(targetStructure._client)); if (fromClient.Equals(default(System.Boolean))) { return(default(System.Boolean)); } return((System.Boolean)(fromClient)); } )); return(vmsResult); } else { return((System.Boolean)(_client.AddTargetHomogeneityObjective(targetStructure))); } }
public ESAPIX.Facade.API.DVHData GetStructureDvh(ESAPIX.Facade.API.Structure structure) { if ((XC.Instance) != (null)) { var vmsResult = (XC.Instance.GetValue(sc => { var fromClient = (_client.GetStructureDvh(structure._client)); if ((fromClient) == (null)) { return(null); } return(new ESAPIX.Facade.API.DVHData(fromClient)); } )); return(vmsResult); } else { return((ESAPIX.Facade.API.DVHData)(_client.GetStructureDvh(structure))); } }
public ESAPIX.Facade.API.OptimizationPointCloudParameter AddStructurePointCloudParameter(ESAPIX.Facade.API.Structure structure, System.Double pointResolutionInMM) { if ((XC.Instance.CurrentContext) != (null)) { var vmsResult = (XC.Instance.CurrentContext.GetValue(sc => { var fromClient = (_client.AddStructurePointCloudParameter(structure._client, pointResolutionInMM)); if ((fromClient) == (null)) { return(null); } return(new ESAPIX.Facade.API.OptimizationPointCloudParameter(fromClient)); } )); return(vmsResult); } else { return((ESAPIX.Facade.API.OptimizationPointCloudParameter)(_client.AddStructurePointCloudParameter(structure, pointResolutionInMM))); } }