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); } }
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); } }