Skip to content

Dose rate changes to 600 MU/min when coping beam from an original plan to QA plan #168

Open
@leylaMoghaddasi

Description

@leylaMoghaddasi

I adapted the Create VerificationPlan code to work with both flat and FFF beams, but the beams copied to the verification plan have a different dose rate than the original plan. I put in debug print-outs and it appears the DR changes to 600 in the "ExternalBeamMachineParameters" method.

private static string CopyBeam(Beam originalBeam, ExternalPlanSetup plan, VVector isocenter, bool getCollimatorAndGantryFromBeam)
{

string eMode = originalBeam.EnergyModeDisplayName;
int DR = originalBeam.DoseRate;
 ExternalBeamMachineParameters MachineParameters;
 if (eMode.Split('-').Count() < 2)
 {
      MachineParameters=
         new ExternalBeamMachineParameters(originalBeam.TreatmentUnit.Id, eMode, DR, originalBeam.Technique.Id, string.Empty); }
 else
 {
     MachineParameters =
     new ExternalBeamMachineParameters(originalBeam.TreatmentUnit.Id, eMode.Split('-').First(), DR,
     originalBeam.Technique.Id, eMode.Split('-').Last());
 }
 // Create a new beam.
 var collimatorAngle = getCollimatorAndGantryFromBeam ? originalBeam.ControlPoints.First().CollimatorAngle : 0.0;
 var gantryAngle = getCollimatorAndGantryFromBeam ? originalBeam.ControlPoints.First().GantryAngle : 0.0;
 var couchAngle = getCollimatorAndGantryFromBeam ? originalBeam.ControlPoints.First().PatientSupportAngle : 0.0;
 var metersetWeights = originalBeam.ControlPoints.Select(cp => cp.MetersetWeight);
 var beam = plan.AddSlidingWindowBeam(MachineParameters, metersetWeights, collimatorAngle, gantryAngle, couchAngle, isocenter);
 
 System.Windows.MessageBox.Show("Beam" + beam.Id + "has a dose rate of " + beam.DoseRate.ToString());

 // Copy control points from the original beam.
 var editableParams = beam.GetEditableParameters();
 for (var i = 0; i < editableParams.ControlPoints.Count(); i++)
 {
     editableParams.ControlPoints.ElementAt(i).LeafPositions = originalBeam.ControlPoints.ElementAt(i).LeafPositions;
     editableParams.ControlPoints.ElementAt(i).JawPositions = originalBeam.ControlPoints.ElementAt(i).JawPositions;
 }
 beam.ApplyParameters(editableParams);
 return beam.Id;

}

Would appreciate any ideas to fix this issue. I am at my wit's end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions