/// <summary> /// Called after the specified <see cref="WorkQueueUid"/> has been processed /// </summary> /// <param name="item">The <see cref="WorkQueue"/> item being processed</param> /// <param name="uid">The <see cref="WorkQueueUid"/> being processed</param> protected virtual void OnProcessUidEnd(Model.WorkQueue item, WorkQueueUid uid) { Platform.CheckForNullReference(item, "item"); Platform.CheckForNullReference(uid, "uid"); if (uid.Duplicate) { String dupPath = ServerPlatform.GetDuplicateUidPath(StorageLocation, uid); // Delete the container if it's empty var f = new FileInfo(dupPath); if (f.Directory != null && DirectoryUtility.DeleteIfEmpty(f.Directory.FullName)) { DirectoryUtility.DeleteIfEmpty(ServerPlatform.GetDuplicateGroupPath(StorageLocation, uid)); } } }
void CreateDuplicateSIQEntry(WorkQueueUid uid, DicomFile file, List <DicomAttributeComparisonResult> differences) { Platform.Log(LogLevel.Info, "Duplicate SOP is different from existing copy. Creating duplicate SIQ entry. SOP: {0}", uid.SopInstanceUid); using (var processor = new ServerCommandProcessor("Create Duplicate SIQ Entry")) { var insertCommand = new InsertOrUpdateEntryCommand( uid.GroupID, StorageLocation, file, ServerPlatform.GetDuplicateGroupPath(StorageLocation, uid), string.IsNullOrEmpty(uid.RelativePath) ? Path.Combine(StorageLocation.StudyInstanceUid, uid.SopInstanceUid + "." + uid.Extension) : uid.RelativePath, differences); processor.AddCommand(insertCommand); processor.AddCommand(new DeleteWorkQueueUidCommand(uid)); processor.Execute(); } }