Esempio n. 1
0
        public override void OnSetActive(object sender, WizardCancelEventArgs e)
        {
            base.OnSetActive(sender, e);
            if (e.PreviousPage != null && e.PreviousPage.GetType() == typeof(RequestedProcedurePage))
            {
                RequestedProcedurePage p  = e.PreviousPage as RequestedProcedurePage;
                RequestedProcedure     or = _RequestedProcedure;
                ImagingServiceRequest  oi = _ImagingServiceRequest;


                _RequestedProcedure    = p.RequestedProcedure;
                _ImagingServiceRequest = p.ImagingServiceRequest;
                comboBoxId.Items.Clear(); // ***
                if (
                    (or == null) ||
                    (or.RequestedProcedureID != _RequestedProcedure.RequestedProcedureID) ||
                    (oi == null) ||
                    (oi.AccessionNumber != _ImagingServiceRequest.AccessionNumber) ||
                    string.IsNullOrEmpty(comboBoxId.Text)
                    )
                {
                    ProgressDialog      dlgProgresss = new ProgressDialog();
                    BrokerServiceClient client       = GetWizard().Tag as BrokerServiceClient;
                    List <string>       ids          = null;

                    UpdateUI(true);
                    comboBoxId.Items.Clear();
                    dlgProgresss.Title       = "Find";
                    dlgProgresss.Description = "Getting list of scheduled procedure step ids";
                    dlgProgresss.Action      = () =>
                    {
                        ids = client.GetScheduledProcedureStepIDs(_ImagingServiceRequest.AccessionNumber, _RequestedProcedure.RequestedProcedureID);
                    };

                    if (dlgProgresss.ShowDialog(this) == DialogResult.OK)
                    {
                        foreach (string id in ids)
                        {
                            comboBoxId.Items.Add(id);
                        }
                    }
                    if (dlgProgresss.Exception != null)
                    {
                        Messager.ShowError(this, dlgProgresss.Exception);
                    }
                }
            }
        }