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