public void AddNewDose(IDoseObject dose)
        {
            var wrapper = new DoseGridWrapper();

            wrapper.Dose           = dose;
            wrapper.LUTType        = LUTType.Contour;
            wrapper.LUT            = getNewLUT(wrapper.LUTType, dose);
            wrapper.RenderDoseWash = false;
            wrapper.RenderLines    = true;

            Doses.Add(wrapper);
            SelectedDose = wrapper;
            OnRenderDoseChanged(wrapper);

            wrapper.PropertyChanged += Wrapper_PropertyChanged;


            var options = new EgsPhantomCreatorOptions();

            options.Grid           = dose.Grid;
            options.OutputFileName = Path.Combine(Path.GetTempPath(), @"out.txt");
            options.XRange         = options.Grid.XRange;
            options.YRange         = options.Grid.YRange;
            options.ZRange         = options.Grid.ZRange;
            options.Dx             = 5;
            options.Dy             = 5;
            options.Dz             = 5;
            var creator = new EgsPhantomCreator();

            creator.Create(options);
        }
        public void RemoveDose(IDoseObject dose)
        {
            DoseGridWrapper wrapper = Doses.Where(b => b.Dose == dose).FirstOrDefault();

            if (wrapper != null)
            {
                wrapper.PropertyChanged -= Wrapper_PropertyChanged;
                Doses.Remove(wrapper);
            }
        }
Example #3
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool Validity = true;
            ReadRegimes();          //Populates List<Patient> with existing data
            if ( !pIsNew )
                RegimeList.RemoveAt(pIndex);

            Validator DoseVal = new Validator();

            if ( Validity )
            {
                List<Doses> TheDoses = new List<Doses>();
                if ( tbDose1.Text != "" && tbDose1.Text != "Dose" )
                {
                    int ErrCode = DoseVal.Check(1, 0, tbDose1.Text);
                    if ( ErrCode == 0 )
                    {
                        Doses d1 = new Doses(tbDrugName1.Text, float.Parse(tbDose1.Text), cbCalcMethod1.Text, cbAdmin1.Text, tbURL1.Text, D1Days);
                        TheDoses.Add(d1);
                        tbDose1.BackColor = Color.White;
                    }
                    else
                    {
                        Validity = false;
                        tbDose1.BackColor = Color.Red;
                        DoseVal.ErrorMessage(ErrCode);
                        return;
                    }
                }
                if ( tbDose2.Text != "" && tbDose2.Text != "Dose" )
                {
                    int ErrCode = DoseVal.Check(1, 0, tbDose2.Text);
                    if ( ErrCode == 0 )
                    {
                        Doses d2 = new Doses(tbDrugName2.Text, float.Parse(tbDose2.Text), cbCalcMethod2.Text, cbAdmin2.Text, tbURL2.Text, D2Days);
                        TheDoses.Add(d2);
                        tbDose2.BackColor = Color.White;
                    }
                    else
                    {
                        Validity = false;
                        tbDose2.BackColor = Color.Red;
                        DoseVal.ErrorMessage(ErrCode);
                        return;
                    }
                }

                if ( tbDose3.Text != "" && tbDose3.Text != "Dose" )
                {
                    int ErrCode = DoseVal.Check(1, 0, tbDose3.Text);
                    if ( ErrCode == 0 )
                    {
                        Doses d3 = new Doses(tbDrugName3.Text, float.Parse(tbDose3.Text), cbCalcMethod3.Text, cbAdmin3.Text, tbURL3.Text, D3Days);
                        TheDoses.Add(d3);
                        tbDose3.BackColor = Color.White;
                    }
                    else
                    {
                        Validity = false;
                        tbDose3.BackColor = Color.Red;
                        DoseVal.ErrorMessage(ErrCode);
                        return;
                    }
                }

                if ( tbDose4.Text != "" && tbDose4.Text != "Dose" )
                {
                    int ErrCode = DoseVal.Check(1, 0, tbDose4.Text);
                    if ( ErrCode == 0 )
                    {
                        Doses d4 = new Doses(tbDrugName4.Text, float.Parse(tbDose4.Text), cbCalcMethod4.Text, cbAdmin4.Text, tbURL4.Text, D4Days);
                        TheDoses.Add(d4);
                        tbDose4.BackColor = Color.White;
                    }
                    else
                    {
                        Validity = false;
                        tbDose4.BackColor = Color.Red;
                        DoseVal.ErrorMessage(ErrCode);
                        return;
                    }
                }

                if ( TheDoses.Count > 0 )
                {
                    RegimeData X = new RegimeData(tbRegName.Text, tbDesc.Lines, tbExtravasation.Text, tbComment.Lines, TheDoses, (int) numNoCycles.Value, (int) numDaysCycle.Value);//
                    XmlSerializer XSR = new XmlSerializer(typeof(List<RegimeData>));	//new instance of XML serialiser to store List PatientDataRecords
                    RegimeList.Add(X);	//Appends latest data to list
                    FileStream DataOut = new FileStream("Regimes.xml", FileMode.Create);	//Creates file object
                    XSR.Serialize(DataOut, RegimeList);   //Outputs data
                    DataOut.Close();	//Closes File
                    string MessageStr = pIsNew ? "Data Recorded" : "Data Updated";
                    MessageBox.Show(MessageStr, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Fields incomplete\nData not written", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            //else
            //    DoseVal.ErrorMessage(ErrorCode);
        }