Example #1
0
        public void EditStudy(Study study, List <UpdateItem> updateItems, string reason)
        {
            Platform.Log(LogLevel.Info, String.Format("Editing study {0}", study.StudyInstanceUid));

            using (IUpdateContext ctx = PersistentStoreRegistry.GetDefaultStore().OpenUpdateContext(UpdateContextSyncMode.Flush))
            {
                IList <WorkQueue> entries = StudyEditorHelper.EditStudy(ctx, study.StudyStorageKey, updateItems, reason, ServerHelper.CurrentUserName, EditType.WebEdit);
                if (entries != null)
                {
                    ctx.Commit();
                }
            }
        }
Example #2
0
        //TODO: Consolidate this and DeleteStudy?
        public void DeleteSeries(Study study, IList <Series> series, string reason)
        {
            // Load the Partition
            ServerPartitionConfigController partitionConfigController = new ServerPartitionConfigController();
            ServerPartition partition = partitionConfigController.GetPartition(study.ServerPartitionKey);

            List <string> seriesUids = new List <string>();

            foreach (Series s in series)
            {
                seriesUids.Add(s.SeriesInstanceUid);
            }

            using (IUpdateContext ctx = PersistentStoreRegistry.GetDefaultStore().OpenUpdateContext(UpdateContextSyncMode.Flush))
            {
                StudyEditorHelper.DeleteSeries(ctx, partition, study.StudyInstanceUid, seriesUids, reason);
                ctx.Commit();
            }
        }
Example #3
0
        public bool MoveStudy(Study study, Device device, IList <Series> seriesList)
        {
            if (seriesList != null)
            {
                using (
                    IUpdateContext context = PersistentStoreRegistry.GetDefaultStore().OpenUpdateContext(UpdateContextSyncMode.Flush))
                {
                    ServerPartition partition = ServerPartition.Load(study.ServerPartitionKey);

                    List <string> seriesUids = new List <string>();
                    foreach (Series series in seriesList)
                    {
                        seriesUids.Add(series.SeriesInstanceUid);
                    }

                    IList <WorkQueue> entries = StudyEditorHelper.MoveSeries(context, partition, study.StudyInstanceUid, device.Key, seriesUids);
                    if (entries != null)
                    {
                        context.Commit();
                    }

                    return(true);
                }
            }
            WorkQueueAdaptor       workqueueAdaptor = new WorkQueueAdaptor();
            DateTime               time             = Platform.Time;
            WorkQueueUpdateColumns columns          = new WorkQueueUpdateColumns
            {
                WorkQueueTypeEnum   = WorkQueueTypeEnum.WebMoveStudy,
                WorkQueueStatusEnum = WorkQueueStatusEnum.Pending,
                ServerPartitionKey  = study.ServerPartitionKey,
                StudyStorageKey     = study.StudyStorageKey,
                FailureCount        = 0,
                DeviceKey           = device.Key,
                ScheduledTime       = time,
                ExpirationTime      = time.AddMinutes(4)
            };

            workqueueAdaptor.Add(columns);

            return(true);
        }