private void UpdateReindexing() { if (_activityMonitor == null || !_activityMonitor.IsConnected) { Reindexing = false; return; } var request = new WorkItemQueryRequest { Type = ReindexRequest.WorkItemTypeString }; IEnumerable <WorkItemData> reindexItems = null; try { Platform.Log(LogLevel.Debug, "Querying for a re-index work item that is in progress."); Platform.GetService <IWorkItemService>(s => reindexItems = s.Query(request).Items); Reindexing = reindexItems != null && reindexItems.Any(item => item.Status == WorkItemStatusEnum.InProgress); } catch (Exception e) { Reindexing = false; Platform.Log(LogLevel.Debug, e); } }
public WorkItemQueryResponse Query(WorkItemQueryRequest request) { try { return(WorkItemService.Instance.Query(request)); } catch (Exception e) { Platform.Log(LogLevel.Error, e); var message = SR.ExceptionErrorProcessingQuery; var exceptionMessage = String.Format("{0}\nDetail:{1}", message, e.Message); throw new WorkItemServiceException(exceptionMessage); } }
public WorkItemQueryResponse Query(WorkItemQueryRequest request) { var response = new WorkItemQueryResponse(); var dbList = IoC.Get <IWorkItemOperation>() .GetWorkItems(request.Type, request.Status, request.StudyInstanceUid, request.Identifier); var results = new List <WorkItemData>(); foreach (var dbItem in dbList) { results.Add(WorkItemDataHelper.FromWorkItem(dbItem)); } response.Items = results.ToArray(); return(response); }
public WorkItemQueryResponse Query(WorkItemQueryRequest request) { var response = new WorkItemQueryResponse(); using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); var dbList = broker.GetWorkItems(request.Type, request.Status, request.StudyInstanceUid); var results = new List <WorkItemData>(); foreach (var dbItem in dbList) { results.Add(WorkItemDataHelper.FromWorkItem(dbItem)); } response.Items = results.ToArray(); } return(response); }
public async Task <List <WorkItemReference> > GetWorkItems(string organization, string project, string team, List <Tuple <string, bool> > areaPaths) { if (!areaPaths.Any()) { return(new List <WorkItemReference>()); } var url = $"https://dev.azure.com/{organization}/{project}/{team}/_apis/wit/wiql?api-version=5.1"; var request = new WorkItemQueryRequest { query = GetWorkItemAreaPathQuery(project, areaPaths) }; var client = await GetClient(); var result = await client.PostAsJsonAsync(url, request); var resultData = await result.Content.ReadAsAsync <WorkItemQueryResult>(); return(resultData.workItems); }
public WorkItemQueryResponse Query(WorkItemQueryRequest request) { return(Channel.Query(request)); }
public void OpenStudy() { try { int numberOfSelectedStudies = Context.SelectedStudies.Count; if (Context.SelectedStudies.Count == 0) { return; } if (!PermissionsHelper.IsInRole(ImageViewer.AuthorityTokens.Study.Open)) { Context.DesktopWindow.ShowMessageBox(SR.MessageOpenStudyPermissionDenied, MessageBoxActions.Ok); return; } int numberOfLoadableStudies = GetNumberOfLoadableStudies(); if (numberOfLoadableStudies != numberOfSelectedStudies) { int numberOfNonLoadableStudies = numberOfSelectedStudies - numberOfLoadableStudies; string message; if (numberOfSelectedStudies == 1) { message = SR.MessageCannotOpenNonStreamingStudy; } else { if (numberOfNonLoadableStudies == 1) { message = SR.MessageOneNonStreamingStudyCannotBeOpened; } else { message = String.Format(SR.MessageFormatXNonStreamingStudiesCannotBeOpened, numberOfNonLoadableStudies); } } Context.DesktopWindow.ShowMessageBox(message, MessageBoxActions.Ok); return; } if (Context.SelectedServers.Count == 1 && Context.SelectedServers[0].IsLocal) { // TODO (CR Phoenix5 - Medium): Not so sure now about excluding failed items. // #10746: Workstation: the user must be warned when opening studies that are being processed // This implementation does not cover all the possible cases of when a study might be modified. // For example: if a study is being retrieved, WQI failed and deleted, the study is technically // not complete and user should be warned. The risk of such cases are mitigated by the fact the // user is warned about the failed WQI. This implementation is only meant to warn user if the // study is "being" or "about to" be modified before opening the study. try { Platform.Log(LogLevel.Debug, "Querying for a StudyUpdate work items that are in progress for the studies that are being opened."); var isStudyBeingProcessed = Context.SelectedStudies.Any(study => { var request = new WorkItemQueryRequest { StudyInstanceUid = study.StudyInstanceUid }; IEnumerable <WorkItemData> workItems = null; Platform.GetService <IWorkItemService>(s => workItems = s.Query(request).Items); return(workItems.Any(IsNonTerminalStudyUpdateItem)); }); var message = this.Context.SelectedStudies.Count > 1 ? SR.MessageLoadStudiesBeingProcessed : SR.MessageLoadStudyBeingProcessed; if (isStudyBeingProcessed && DialogBoxAction.No == Context.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo)) { return; } } catch (Exception e) { Platform.Log(LogLevel.Debug, e); } } var helper = new OpenStudyHelper { WindowBehaviour = ViewerLaunchSettings.WindowBehaviour, AllowEmptyViewer = ViewerLaunchSettings.AllowEmptyViewer, //The user has elected to ignore "in use" studies. StudyLoaderOptions = new StudyLoaderOptions(true) }; foreach (var study in Context.SelectedStudies) { helper.AddStudy(study.StudyInstanceUid, study.Server); } helper.Title = ImageViewerComponent.CreateTitle(GetSelectedPatients()); helper.OpenStudies(); } catch (Exception e) { ExceptionHandler.Report(e, Context.DesktopWindow); } }