/// <summary>
        /// Constructor
        /// </summary>
        public DateTimeEntryComponentControl(DateTimeEntryComponent component)
            :base(component)
        {
            InitializeComponent();

            _component = component;

			_date.DataBindings.Add("Nullable", _component, "AllowNull");
			_date.DataBindings.Add("Value", _component, "DateAndTime", true, DataSourceUpdateMode.OnPropertyChanged);

			_time.DataBindings.Add("Nullable", _component, "AllowNull");
			_time.DataBindings.Add("Value", _component, "DateAndTime", true, DataSourceUpdateMode.OnPropertyChanged);
		}
Beispiel #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        public DateTimeEntryComponentControl(DateTimeEntryComponent component)
            : base(component)
        {
            InitializeComponent();

            _component = component;

            _date.DataBindings.Add("Nullable", _component, "AllowNull");
            _date.DataBindings.Add("Value", _component, "DateAndTime", true, DataSourceUpdateMode.OnPropertyChanged);

            _time.DataBindings.Add("Nullable", _component, "AllowNull");
            _time.DataBindings.Add("Value", _component, "DateAndTime", true, DataSourceUpdateMode.OnPropertyChanged);
        }
        private void StartModalityProcedureSteps()
        {
            try
            {
                var checkedItems = ListCheckedSummmaryTableItems();
                var firstItem    = CollectionUtils.FirstElement(checkedItems);

                if (CollectionUtils.Contains(
                        checkedItems,
                        item => item.ModalityProcedureStep.Modality.Id != firstItem.ModalityProcedureStep.Modality.Id))
                {
                    this.Host.ShowMessageBox("Cannot start procedure steps of different modalities at the same time.",
                                             MessageBoxActions.Ok);
                    return;
                }

                var checkedMpsRefs = CollectionUtils.Map <ProcedurePlanSummaryTableItem, EntityRef>(
                    checkedItems,
                    item => item.ModalityProcedureStep.ProcedureStepRef);

                if (checkedMpsRefs.Count > 0)
                {
                    DateTime?startTime = Platform.Time;
                    if (DowntimeRecovery.InDowntimeRecoveryMode)
                    {
                        if (!DateTimeEntryComponent.PromptForTime(this.Host.DesktopWindow, "Start Time", false, ref startTime))
                        {
                            return;
                        }
                    }

                    Platform.GetService <IModalityWorkflowService>(service =>
                    {
                        var request = new StartModalityProcedureStepsRequest(checkedMpsRefs)
                        {
                            StartTime = DowntimeRecovery.InDowntimeRecoveryMode ? startTime : null
                        };
                        var response = service.StartModalityProcedureSteps(request);

                        RefreshProcedurePlanSummary(response.ProcedurePlan);
                        UpdateActionEnablement();

                        _ppsComponent.AddPerformedProcedureStep(response.StartedMpps);
                    });
                }
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, this.Host.DesktopWindow);
            }
        }
        private void DiscontinueModalityProcedureSteps()
        {
            try
            {
                var checkedMpsRefs = CollectionUtils.Map <ProcedurePlanSummaryTableItem, EntityRef, List <EntityRef> >(
                    ListCheckedSummmaryTableItems(),
                    item => item.ModalityProcedureStep.ProcedureStepRef);

                if (checkedMpsRefs.Count > 0)
                {
                    if (this.Host.DesktopWindow.ShowMessageBox("Are you sure you want to discontinue the selected procedure(s)?", MessageBoxActions.YesNo) != DialogBoxAction.No)
                    {
                        DateTime?discontinueTime = Platform.Time;
                        if (DowntimeRecovery.InDowntimeRecoveryMode)
                        {
                            if (!DateTimeEntryComponent.PromptForTime(this.Host.DesktopWindow, "Cancel Time", false, ref discontinueTime))
                            {
                                return;
                            }
                        }

                        Platform.GetService <IModalityWorkflowService>(service =>
                        {
                            var request = new DiscontinueModalityProcedureStepsRequest(checkedMpsRefs)
                            {
                                DiscontinuedTime = DowntimeRecovery.InDowntimeRecoveryMode ? discontinueTime : null
                            };
                            var response = service.DiscontinueModalityProcedureSteps(request);

                            RefreshProcedurePlanSummary(response.ProcedurePlan);
                            UpdateActionEnablement();
                        });
                    }
                }
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, this.Host.DesktopWindow);
            }
        }
 public void SetComponent(IApplicationComponent component)
 {
     _component = (DateTimeEntryComponent)component;
 }
        private void DiscontinuePerformedProcedureStep()
        {
            // bail if no selected step (this shouldn't ever happen)
            if (_selectedMpps == null)
            {
                return;
            }

            // confirm with user that they really want to do this
            if (this.Host.DesktopWindow.ShowMessageBox(SR.MessageConfirmDiscontinueSelectedProcedures,
                                                       MessageBoxActions.YesNo) == DialogBoxAction.No)
            {
                return;
            }

            // if downtime recovery mode, need to get the time from the user
            DateTime?endTime = _selectedMpps.StartTime;

            if (DowntimeRecovery.InDowntimeRecoveryMode)
            {
                if (!DateTimeEntryComponent.PromptForTime(this.Host.DesktopWindow, SR.TitleDiscontinuedTime, false, ref endTime))
                {
                    return;
                }
            }

            try
            {
                SaveData();

                DiscontinueModalityPerformedProcedureStepResponse response = null;
                Platform.GetService <IModalityWorkflowService>(
                    service =>
                {
                    var request = new DiscontinueModalityPerformedProcedureStepRequest(_selectedMpps)
                    {
                        DiscontinuedTime = DowntimeRecovery.InDowntimeRecoveryMode ? endTime : null
                    };
                    response = service.DiscontinueModalityPerformedProcedureStep(request);
                });

                RefreshProcedurePlanTree(response.ProcedurePlan);

                _mppsTable.Items.Replace(
                    mpps => mpps.ModalityPerformendProcedureStepRef.Equals(_selectedMpps.ModalityPerformendProcedureStepRef, true),
                    response.DiscontinuedMpps);

                // Refresh selection
                _selectedMpps = response.DiscontinuedMpps;
                UpdateActionEnablement();
                _mppsTable.Sort();

                // notify pages that selection has been updated
                EventsHelper.Fire(_selectedMppsChanged, this, EventArgs.Empty);

                NotifyPerformedProcedureStepComplete();
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, this.Host.DesktopWindow);
            }
        }
        private void StopPerformedProcedureStep()
        {
            // bail if no selected step (this shouldn't ever happen)
            if (_selectedMpps == null)
            {
                return;
            }

            // bail on validation errors
            if (this.HasValidationErrors)
            {
                ShowValidation(true);
                return;
            }

            // if downtime recovery mode, need to get the time from the user
            DateTime?endTime = _selectedMpps.StartTime;

            if (DowntimeRecovery.InDowntimeRecoveryMode)
            {
                if (!DateTimeEntryComponent.PromptForTime(this.Host.DesktopWindow, SR.TitleCompletedTime, false, ref endTime))
                {
                    return;
                }
            }

            try
            {
                SaveData();

                CompleteModalityPerformedProcedureStepResponse response = null;
                Platform.GetService <IModalityWorkflowService>(
                    service =>
                {
                    var request = new CompleteModalityPerformedProcedureStepRequest(_selectedMpps)
                    {
                        CompletedTime = DowntimeRecovery.InDowntimeRecoveryMode ? endTime : null
                    };
                    response = service.CompleteModalityPerformedProcedureStep(request);
                });

                RefreshProcedurePlanTree(response.ProcedurePlan);

                _mppsTable.Items.Replace(
                    mppsSummary => mppsSummary.ModalityPerformendProcedureStepRef.Equals(_selectedMpps.ModalityPerformendProcedureStepRef, true),
                    response.StoppedMpps);

                // Refresh selection
                _selectedMpps = response.StoppedMpps;
                UpdateActionEnablement();
                _mppsTable.Sort();

                // notify pages that selection has been updated
                EventsHelper.Fire(_selectedMppsChanged, this, EventArgs.Empty);

                NotifyPerformedProcedureStepComplete();
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, this.Host.DesktopWindow);
            }
        }
Beispiel #8
0
 public void SetComponent(IApplicationComponent component)
 {
     _component = (DateTimeEntryComponent)component;
 }