private IEnumerable <WorkItem> GetWorkItems(List <string> types, WorkItemStatusFilter statusFilter, string studyInstanceUid, long?identifier) { IQueryable <WorkItem> query = from w in Context.WorkItems select w; if (identifier.HasValue) { query = query.Where(w => w.Oid == identifier.Value); } if (types != null && types.Count > 0) { if (types.Count == 1) { query = query.Where(w => types[0] == w.Type); } else { query = query.Where(w => types.Contains(w.Type)); } } statusFilter = statusFilter ?? WorkItemStatusFilter.NotDeleted; query = statusFilter.Apply(query); if (!string.IsNullOrEmpty(studyInstanceUid)) { query = query.Where(w => w.StudyInstanceUid == studyInstanceUid); } query = query.OrderBy(w => w.ProcessTime); query = query.OrderBy(w => w.Priority); return(query.AsEnumerable()); }
private IEnumerable<WorkItem> GetWorkItems(List<string> types, WorkItemStatusFilter statusFilter, string studyInstanceUid, long? identifier) { IQueryable<WorkItem> query = from w in Context.WorkItems select w; if (identifier.HasValue) query = query.Where(w => w.Oid == identifier.Value); if (types != null && types.Count > 0) { if (types.Count == 1) query = query.Where(w => types[0] == w.Type); else query = query.Where(w => types.Contains(w.Type)); } statusFilter = statusFilter ?? WorkItemStatusFilter.NotDeleted; query = statusFilter.Apply(query); if (!string.IsNullOrEmpty(studyInstanceUid)) query = query.Where(w => w.StudyInstanceUid == studyInstanceUid); query = query.OrderBy(w => w.ProcessTime); query = query.OrderBy(w => w.Priority); return query.AsEnumerable(); }
public IEnumerable<WorkItem> GetWorkItems(string type, WorkItemStatusFilter statusFilter, string studyInstanceUid, long? identifier = null) { List<string> types = !String.IsNullOrEmpty(type) ? new List<string>(new[] {type}) : null; return GetWorkItems(types, statusFilter, studyInstanceUid, identifier); }
public IEnumerable<WorkItem> GetWorkItems(WorkItemConcurrency concurrency, WorkItemStatusFilter statusFilter, string studyInstanceUid, long? identifier = null) { return GetWorkItems(concurrency.GetWorkItemTypes(), statusFilter, studyInstanceUid, identifier); }
/// <summary> /// Get the WorkItems scheduled before <paramref name="scheduledTime"/> for <paramref name="studyInstanceUid"/> /// and/or that are a higher priority and have not yet terminated (e.g. Waiting to run, or actively running). /// </summary> /// <param name="scheduledTime">The scheduled time to get related WorkItems for.</param> /// <param name="priority">The priority of the workitem to compare with.</param> /// <param name="statusFilter">A filter for the work item status.</param> /// <param name="studyInstanceUid">The Study Instance UID to search for matching WorkItems. Can be null.</param> /// <param name="workItemTypes">The work item type(s) of the items to be returned. Can be null.</param> /// <returns></returns> public IEnumerable<WorkItem> GetWorkItemsScheduledBeforeOrHigherPriority(DateTime scheduledTime, WorkItemPriorityEnum priority, WorkItemStatusFilter statusFilter, string studyInstanceUid, params string[] workItemTypes) { IQueryable<WorkItem> query = from w in Context.WorkItems select w; query = query.Where(w => w.ScheduledTime < Platform.Time); query = query.Where(w => (w.ScheduledTime < scheduledTime && w.Priority <= priority) || w.Priority < priority); statusFilter = statusFilter ?? WorkItemStatusFilter.Active; query = statusFilter.Apply(query); if (!string.IsNullOrEmpty(studyInstanceUid)) query = query.Where(w => w.StudyInstanceUid == studyInstanceUid); if (workItemTypes != null && workItemTypes.Length > 0) { if (workItemTypes.Length == 1) query = query.Where(w => workItemTypes[0] == w.Type); else query = query.Where(w => workItemTypes.Contains(w.Type)); } query = query.OrderBy(w => w.ScheduledTime); query = query.OrderBy(w => w.Priority); return query.AsEnumerable(); }
/// <summary> /// Get the WorkItems scheduled before <paramref name="scheduledTime"/> for <paramref name="studyInstanceUid"/> /// and/or that are a higher priority and have not yet terminated (e.g. Waiting to run, or actively running). /// </summary> /// <param name="scheduledTime">The scheduled time to get related WorkItems for.</param> /// <param name="priority">The priority of the workitem to compare with.</param> /// <param name="statusFilter">A filter for the work item status.</param> /// <param name="studyInstanceUid">The Study Instance UID to search for matching WorkItems. Can be null.</param> /// <param name="concurrency">The concurrency type of the items to be returned.</param> /// <returns></returns> public IEnumerable<WorkItem> GetWorkItemsScheduledBeforeOrHigherPriority(DateTime scheduledTime, WorkItemPriorityEnum priority, WorkItemStatusFilter statusFilter, string studyInstanceUid, WorkItemConcurrency concurrency) { return GetWorkItemsScheduledBeforeOrHigherPriority(scheduledTime, priority, statusFilter, studyInstanceUid, concurrency.GetWorkItemTypes().ToArray()); }
public IEnumerable<WorkItem> GetWorkItems(string type, WorkItemStatusFilter statusFilter, string studyInstanceUid) { string[] types = !String.IsNullOrEmpty(type) ? new[] {type} : null; return GetWorkItems(types, statusFilter, studyInstanceUid); }
public IEnumerable<WorkItem> GetWorkItems(WorkItemConcurrency concurrency, WorkItemStatusFilter statusFilter, string studyInstanceUid) { return GetWorkItems(concurrency.GetWorkItemTypes(), statusFilter, studyInstanceUid); }
public IEnumerable <WorkItem> GetWorkItems(WorkItemConcurrency concurrency, WorkItemStatusFilter statusFilter, string studyInstanceUid, long?identifier = null) { return(GetWorkItems(concurrency.GetWorkItemTypes(), statusFilter, studyInstanceUid, identifier)); }
public IEnumerable <WorkItem> GetWorkItems(string type, WorkItemStatusFilter statusFilter, string studyInstanceUid, long?identifier = null) { List <string> types = !String.IsNullOrEmpty(type) ? new List <string>(new[] { type }) : null; return(GetWorkItems(types, statusFilter, studyInstanceUid, identifier)); }
/// <summary> /// Get the WorkItems scheduled before <paramref name="scheduledTime"/> for <paramref name="studyInstanceUid"/> /// and/or that are a higher priority and have not yet terminated (e.g. Waiting to run, or actively running). /// </summary> /// <param name="scheduledTime">The scheduled time to get related WorkItems for.</param> /// <param name="priority">The priority of the workitem to compare with.</param> /// <param name="statusFilter">A filter for the work item status.</param> /// <param name="studyInstanceUid">The Study Instance UID to search for matching WorkItems. Can be null.</param> /// <param name="workItemTypes">The work item type(s) of the items to be returned. Can be null.</param> /// <returns></returns> public IEnumerable <WorkItem> GetWorkItemsScheduledBeforeOrHigherPriority(DateTime scheduledTime, WorkItemPriorityEnum priority, WorkItemStatusFilter statusFilter, string studyInstanceUid, params string[] workItemTypes) { IQueryable <WorkItem> query = from w in Context.WorkItems select w; query = query.Where(w => w.ScheduledTime < Platform.Time); query = query.Where(w => (w.ScheduledTime < scheduledTime && w.Priority <= priority) || w.Priority < priority); statusFilter = statusFilter ?? WorkItemStatusFilter.Active; query = statusFilter.Apply(query); if (!string.IsNullOrEmpty(studyInstanceUid)) { query = query.Where(w => w.StudyInstanceUid == studyInstanceUid); } if (workItemTypes != null && workItemTypes.Length > 0) { if (workItemTypes.Length == 1) { query = query.Where(w => workItemTypes[0] == w.Type); } else { query = query.Where(w => workItemTypes.Contains(w.Type)); } } query = query.OrderBy(w => w.ScheduledTime); query = query.OrderBy(w => w.Priority); return(query.AsEnumerable()); }
/// <summary> /// Get the WorkItems scheduled before <paramref name="scheduledTime"/> for <paramref name="studyInstanceUid"/> /// and/or that are a higher priority and have not yet terminated (e.g. Waiting to run, or actively running). /// </summary> /// <param name="scheduledTime">The scheduled time to get related WorkItems for.</param> /// <param name="priority">The priority of the workitem to compare with.</param> /// <param name="statusFilter">A filter for the work item status.</param> /// <param name="studyInstanceUid">The Study Instance UID to search for matching WorkItems. Can be null.</param> /// <param name="concurrency">The concurrency type of the items to be returned.</param> /// <returns></returns> public IEnumerable <WorkItem> GetWorkItemsScheduledBeforeOrHigherPriority(DateTime scheduledTime, WorkItemPriorityEnum priority, WorkItemStatusFilter statusFilter, string studyInstanceUid, WorkItemConcurrency concurrency) { return(GetWorkItemsScheduledBeforeOrHigherPriority(scheduledTime, priority, statusFilter, studyInstanceUid, concurrency.GetWorkItemTypes().ToArray())); }
private IEnumerable<WorkItem> GetStudyWorkItemsScheduledBeforeOrHigherPriority(WorkItem workItem, WorkItemStatusFilter statusFilter) { //Don't bother if the work item's not for a study. if (String.IsNullOrEmpty(workItem.StudyInstanceUid)) return new List<WorkItem>(); var broker = _context.GetWorkItemBroker(); var workItems = broker.GetWorkItemsScheduledBeforeOrHigherPriority(workItem.ScheduledTime, workItem.Priority, statusFilter, workItem.StudyInstanceUid); //Shouldn't get the same one back, but do this just to be safe. return workItems.Where(w => w.Oid != workItem.Oid); }
public IEnumerable <WorkItem> GetWorkItems(WorkItemConcurrency concurrency, WorkItemStatusFilter statusFilter, string studyInstanceUid) { return(GetWorkItems(concurrency.GetWorkItemTypes(), statusFilter, studyInstanceUid)); }
public IEnumerable <WorkItem> GetWorkItems(string type, WorkItemStatusFilter statusFilter, string studyInstanceUid) { string[] types = !String.IsNullOrEmpty(type) ? new[] { type } : null; return(GetWorkItems(types, statusFilter, studyInstanceUid)); }