/// <summary> /// Anonymises every DICOM file in the specified folder path and saves locally to the /// correct dry run folder. /// </summary> /// <param name="anonymisationProtocolId">The anonymisation protocol unique identifier.</param> /// <param name="anonymisationProtocol">The anonymisation protocol.</param> /// <param name="uploadQueueItem">The upload queue item.</param> /// <param name="aETConfigType">Type of application entity title configuration.</param> /// <returns>The async task.</returns> private async Task AnonymiseAndSaveDicomFilesAsync( Guid anonymisationProtocolId, IEnumerable <DicomTagAnonymisation> anonymisationProtocol, UploadQueueItem uploadQueueItem, AETConfigType aETConfigType) { var dryRunFolder = DryRunFolders.GetFolder(aETConfigType); var resultFolderPath = Path.Combine(uploadQueueItem.RootDicomFolderPath, dryRunFolder, uploadQueueItem.AssociationGuid.ToString()); foreach (var filePath in EnumerateFiles(uploadQueueItem.AssociationFolderPath, uploadQueueItem)) { var dicomFile = TryOpenDicomFile(filePath, uploadQueueItem); // Not a DICOM file or is not a structure set file. if (dicomFile == null) { EnqueueMessage(new DeleteQueueItem(uploadQueueItem, filePath), _deleteQueuePath); continue; } var anonymizedDicomFile = _innerEyeSegmentationClient.AnonymizeDicomFile( dicomFile: dicomFile, anonymisationProtocolId: anonymisationProtocolId, anonymisationProtocol: anonymisationProtocol); await SaveDicomFilesAsync(resultFolderPath, anonymizedDicomFile).ConfigureAwait(false); // This item has been saved, we can now delete this file EnqueueMessage(new DeleteQueueItem(uploadQueueItem, filePath), _deleteQueuePath); } }
public DicomFile AnonymizeDicomFile(DicomFile dicomFile, Guid anonymisationProtocolId, IEnumerable <DicomTagAnonymisation> anonymisationProtocol) { return(_InnerEyeSegmentationClient.AnonymizeDicomFile(dicomFile, anonymisationProtocolId, anonymisationProtocol)); }