Beispiel #1
0
        public static string GetDescription(this WorkItemStatusEnum value)
        {
            switch (value)
            {
            case WorkItemStatusEnum.Pending:
                return(SR.WorkItemStatusEnumPending);

            case WorkItemStatusEnum.InProgress:
                return(SR.WorkItemStatusEnumInProgress);

            case WorkItemStatusEnum.Complete:
                return(SR.WorkItemStatusEnumComplete);

            case WorkItemStatusEnum.Idle:
                return(SR.WorkItemStatusEnumIdle);

            case WorkItemStatusEnum.Deleted:
                return(SR.WorkItemStatusEnumDeleted);

            case WorkItemStatusEnum.Canceled:
                return(SR.WorkItemStatusEnumCanceled);

            case WorkItemStatusEnum.Failed:
                return(SR.WorkItemStatusEnumFailed);

            case WorkItemStatusEnum.DeleteInProgress:
                return(SR.WorkItemStatusEnumDeleteInProgress);

            case WorkItemStatusEnum.Canceling:
                return(SR.WorkItemStatusEnumCanceling);
            }
            throw new NotImplementedException();
        }
Beispiel #2
0
        private IWorkItemProcessor InsertStudyDelete(DicomMessageBase msg, WorkItemPriorityEnum priority, WorkItemStatusEnum status)
        {
            var rq = new WorkItemInsertRequest
                         {
                             Request = new DeleteStudyRequest
                                           {
                                               Patient = new WorkItemPatient(msg.DataSet),
                                               Study = new WorkItemStudy(msg.DataSet),
                                               Priority = priority
                                           }
                         };
            var rsp = WorkItemService.Instance.Insert(rq);

            var updateRequest = new WorkItemUpdateRequest
            {
                Status = status,
                Identifier = rsp.Item.Identifier
            };

            WorkItemService.Instance.Update(updateRequest);

            using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex))
            {
                var broker = context.GetWorkItemBroker();

                var d = new DeleteStudyItemProcessor();
                d.Initialize(new WorkItemStatusProxy(broker.GetWorkItem(rsp.Item.Identifier)));
                return d;
            }
        }
Beispiel #3
0
        private IWorkItemProcessor InsertImportFiles(WorkItemPriorityEnum priority, WorkItemStatusEnum status)
        {
            var rq = new WorkItemInsertRequest
            {
                Request = new ImportFilesRequest()
                {
                    Priority = priority,
                    BadFileBehaviour = BadFileBehaviourEnum.Delete,
                    FileImportBehaviour = FileImportBehaviourEnum.Save,
                    FilePaths = new List<string>(),
                }
            };
            var rsp = WorkItemService.Instance.Insert(rq);

            var updateRequest = new WorkItemUpdateRequest
            {
                Status = status,
                Identifier = rsp.Item.Identifier
            };

            // TODO (CR Jul 2012): Can I actually force an item to "In Progress" this way? Probably shouldn't be able to do that.
            WorkItemService.Instance.Update(updateRequest);

            using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex))
            {
                var broker = context.GetWorkItemBroker();

                var d = new ImportItemProcessor();
                d.Initialize(new WorkItemStatusProxy(broker.GetWorkItem(rsp.Item.Identifier)));
                return d;
            }
        }
        private static IconSet GetProgressIcon(WorkItemProgress progress, WorkItemStatusEnum status)
        {
            if (progress == null)
            {
                return(null);
            }

            return(new ProgressBarIconSet("progress", new Size(80, 10), progress.PercentComplete * 100, ActivityMonitorProgressBar.GetColor(progress, status)));
        }
        internal static WorkItem CreateWorkItem(string type,
                                                string studyInstanceUid,
                                                WorkItemPriorityEnum priority = WorkItemPriorityEnum.Normal,
                                                WorkItemStatusEnum status     = WorkItemStatusEnum.Pending,
                                                int failureCount        = 0,
                                                DateTime?requestedTime  = null,
                                                DateTime?scheduledTime  = null,
                                                DateTime?processTime    = null,
                                                DateTime?expirationTime = null,
                                                DateTime?deleteTime     = null,
                                                string requestData      = null,
                                                string progressData     = null)
        {
            var requestedTimeValue  = requestedTime.GetValueOrDefault(DateTime.Now.Truncate());
            var scheduledTimeValue  = scheduledTime.GetValueOrDefault(requestedTimeValue);
            var processTimeValue    = processTime.GetValueOrDefault(scheduledTimeValue.AddSeconds(10));
            var expirationTimeValue = expirationTime.GetValueOrDefault(processTimeValue.AddSeconds(10));
            var deleteTimeValue     = deleteTime.GetValueOrDefault(expirationTimeValue.AddMinutes(10));

            return(new WorkItem
            {
                Type = type,
                StudyInstanceUid = studyInstanceUid,
                Priority = priority,
                Status = status,
                FailureCount = failureCount,
                RequestedTime = ConstrainSqlDateTime(requestedTimeValue),
                ScheduledTime = ConstrainSqlDateTime(scheduledTimeValue),
                ProcessTime = ConstrainSqlDateTime(processTimeValue),
                ExpirationTime = ConstrainSqlDateTime(expirationTimeValue),
                DeleteTime = ConstrainSqlDateTime(deleteTimeValue),
                Request = new MockRequest {
                    WorkItemType = requestData
                },
                Progress = new MockProgress {
                    StatusDetails = progressData
                }
            });
        }
 public static WorkItemStatusFilter StatusIsNot(WorkItemStatusEnum status)
 {
     return new WorkItemStatusFilter(q => q.Where(w => w.Status != status));
 }
		public static ProgressBarColor GetColor(WorkItemProgress progress, WorkItemStatusEnum status)
		{
			var hasFailures = progress.PercentFailed > 0;
			return _stateMap[status][hasFailures];
		}
Beispiel #8
0
 public static WorkItemStatusFilter StatusIsNot(WorkItemStatusEnum status)
 {
     return(new WorkItemStatusFilter(q => q.Where(w => w.Status != status)));
 }
		internal static WorkItem CreateWorkItem(string type,
		                                        string studyInstanceUid,
		                                        WorkItemPriorityEnum priority = WorkItemPriorityEnum.Normal,
		                                        WorkItemStatusEnum status = WorkItemStatusEnum.Pending,
		                                        int failureCount = 0,
		                                        DateTime? requestedTime = null,
		                                        DateTime? scheduledTime = null,
		                                        DateTime? processTime = null,
		                                        DateTime? expirationTime = null,
		                                        DateTime? deleteTime = null,
		                                        string requestData = null,
		                                        string progressData = null)
		{
			var requestedTimeValue = requestedTime.GetValueOrDefault(DateTime.Now.Truncate());
			var scheduledTimeValue = scheduledTime.GetValueOrDefault(requestedTimeValue);
			var processTimeValue = processTime.GetValueOrDefault(scheduledTimeValue.AddSeconds(10));
			var expirationTimeValue = expirationTime.GetValueOrDefault(processTimeValue.AddSeconds(10));
			var deleteTimeValue = deleteTime.GetValueOrDefault(expirationTimeValue.AddMinutes(10));
			return new WorkItem
			       	{
			       		Type = type,
			       		StudyInstanceUid = studyInstanceUid,
			       		Priority = priority,
			       		Status = status,
			       		FailureCount = failureCount,
			       		RequestedTime = ConstrainSqlDateTime(requestedTimeValue),
			       		ScheduledTime = ConstrainSqlDateTime(scheduledTimeValue),
			       		ProcessTime = ConstrainSqlDateTime(processTimeValue),
			       		ExpirationTime = ConstrainSqlDateTime(expirationTimeValue),
			       		DeleteTime = ConstrainSqlDateTime(deleteTimeValue),
			       		Request = new MockRequest {WorkItemType = requestData},
			       		Progress = new MockProgress {StatusDetails = progressData}
			       	};
		}
        public static ProgressBarColor GetColor(WorkItemProgress progress, WorkItemStatusEnum status)
        {
            var hasFailures = progress.PercentFailed > 0;

            return(_stateMap[status][hasFailures]);
        }
Beispiel #11
0
        private IWorkItemProcessor InsertReapplyRules(WorkItemPriorityEnum priority, WorkItemStatusEnum status)
        {
            var rq = new WorkItemInsertRequest
                         {
                             Request = new ReapplyRulesRequest
                                           {
                                               ApplyDeleteActions = true,
                                               ApplyRouteActions = true,
                                               Priority = priority
                                           }
                         };
            var rsp = WorkItemService.Instance.Insert(rq);

            var updateRequest = new WorkItemUpdateRequest
            {
                Status = status,
                Identifier = rsp.Item.Identifier
            };

            WorkItemService.Instance.Update(updateRequest);
            
            using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex))
            {
                var broker = context.GetWorkItemBroker();
                var d = new ReapplyRulesItemProcessor();
                d.Initialize(new WorkItemStatusProxy(broker.GetWorkItem(rsp.Item.Identifier)));
                return d;
            }
        }
Beispiel #12
0
        private IWorkItemProcessor InsertStudyProcess(DicomMessageBase msg, WorkItemPriorityEnum priority, WorkItemStatusEnum status, DateTime? processTime = null)
        {
            var rq = new WorkItemInsertRequest
                         {
                             Request = new DicomReceiveRequest
                                           {
                                               Patient = new WorkItemPatient(msg.DataSet),
                                               Study = new WorkItemStudy(msg.DataSet),
                                               SourceServerName = "TEST",
                                               Priority = priority
                                           }
                         };
            var rsp = WorkItemService.Instance.Insert(rq);

            var updateRequest = new WorkItemUpdateRequest
            {
                Status = status,
                Identifier = rsp.Item.Identifier,
                ProcessTime = processTime
            };

            WorkItemService.Instance.Update(updateRequest);

            using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex))
            {
                var broker = context.GetWorkItemBroker();
                var d = new StudyProcessProcessor();
                d.Initialize(new WorkItemStatusProxy(broker.GetWorkItem(rsp.Item.Identifier)));
                return d;
            }
        }