/// <summary> /// Reads all dicom files in a directory. /// </summary> /// <param name="directoryPath">The directory path.</param> /// <param name="queueItemBase">Queue item base.</param> /// <returns>The collection of DICOM files.</returns> /// <exception cref="ArgumentException">directoryPath</exception> protected IEnumerable <DicomFile> ReadDicomFiles(string directoryPath, QueueItemBase queueItemBase) { if (string.IsNullOrWhiteSpace(directoryPath)) { throw new ArgumentException("The directory path is null or white space.", nameof(directoryPath)); } return(ReadDicomFiles(EnumerateFiles(directoryPath, queueItemBase), queueItemBase)); }
/// <summary> /// Shorthand for creating an association status log entry. /// </summary> /// <param name="associationStatus">Association status.</param> /// <param name="information">Freeform information about log item.</param> /// <param name="queueItemBase">Queue item base.</param> /// <param name="deleteQueueItem">Delete queue item.</param> /// <param name="downloadQueueItem">Download queue item.</param> /// <param name="downloadProgress">Download progress.</param> /// <param name="downloadError">Download error.</param> /// <param name="pushQueueItem">Push queue item.</param> /// <param name="uploadQueueItem">Upload queue item.</param> /// <param name="segmentationId">Segmentation id.</param> /// <param name="modelId">Model id.</param> /// <param name="destination">Destination.</param> /// <param name="path">Path.</param> /// <param name="failedDicomTags">String formatted list of failed DICOM tags.</param> /// <param name="dicomDataReceiverProgress">Receiver progress.</param> /// <returns>New LogEntry of type SegmentationStatus.</returns> public static LogEntry Create( AssociationStatus associationStatus, string information = null, QueueItemBase queueItemBase = null, DeleteQueueItem deleteQueueItem = null, DownloadQueueItem downloadQueueItem = null, int?downloadProgress = null, string downloadError = null, PushQueueItem pushQueueItem = null, UploadQueueItem uploadQueueItem = null, string segmentationId = null, string modelId = null, (string ipAddress, string title, int port)?destination = null,
/// <summary> /// Tries to open a dicom file and returns null if it fails. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="queueItemBase">Queue item base.</param> /// <returns>The DICOM file or null.</returns> protected DicomFile TryOpenDicomFile(string filePath, QueueItemBase queueItemBase) { if (string.IsNullOrWhiteSpace(filePath)) { throw new ArgumentNullException(nameof(filePath)); } try { return(DicomFile.Open(filePath)); } catch (Exception e) { LogError(LogEntry.Create(AssociationStatus.BaseOpenDicomFileError, queueItemBase: queueItemBase, path: filePath), e); } return(null); }
/// <summary> /// Enumerates all files in a directory. /// </summary> /// <param name="directoryPath">The directory path.</param> /// <param name="queueItemBase">Queue item base.</param> /// <returns>The collection of file paths in a directory.</returns> protected IEnumerable <string> EnumerateFiles(string directoryPath, QueueItemBase queueItemBase) { if (string.IsNullOrWhiteSpace(directoryPath)) { throw new ArgumentException("The directory path is null or white space.", nameof(directoryPath)); } try { return(Directory.EnumerateFiles(directoryPath)); } catch (Exception e) { LogError(LogEntry.Create(AssociationStatus.BaseEnumerateDirectoryError, queueItemBase: queueItemBase, path: directoryPath), e); } return(new string[0]); }
/// <summary> /// Tries to open a dicom file and returns null if it fails. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="queueItemBase">Queue item base.</param> /// <returns>The DICOM file or null.</returns> protected DicomFile TryOpenDicomFile(string filePath, QueueItemBase queueItemBase) { if (string.IsNullOrWhiteSpace(filePath)) { throw new ArgumentNullException(nameof(filePath)); } try { return(DicomFile.Open(filePath)); } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception e) #pragma warning restore CA1031 // Do not catch general exception types { LogError(LogEntry.Create(AssociationStatus.BaseOpenDicomFileError, queueItemBase: queueItemBase, path: filePath), e); } return(null); }
/// <summary> /// Enumerates all files in a directory. /// </summary> /// <param name="directoryPath">The directory path.</param> /// <param name="queueItemBase">Queue item base.</param> /// <returns>The collection of file paths in a directory.</returns> protected IEnumerable <string> EnumerateFiles(string directoryPath, QueueItemBase queueItemBase) { if (string.IsNullOrWhiteSpace(directoryPath)) { throw new ArgumentException("The directory path is null or white space.", nameof(directoryPath)); } try { return(Directory.EnumerateFiles(directoryPath)); } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception e) #pragma warning restore CA1031 // Do not catch general exception types { LogError(LogEntry.Create(AssociationStatus.BaseEnumerateDirectoryError, queueItemBase: queueItemBase, path: directoryPath), e); } return(Array.Empty <string>()); }
/// <summary> /// Reads all the DICOM files from a collection of file paths. /// </summary> /// <param name="filePaths">The file paths.</param> /// <param name="queueItemBase">Queue item base.</param> /// <returns>The collection of DICOM files.</returns> protected IEnumerable <DicomFile> ReadDicomFiles(IEnumerable <string> filePaths, QueueItemBase queueItemBase) { filePaths = filePaths ?? throw new ArgumentNullException(nameof(filePaths)); foreach (var filePath in filePaths) { var dicomFile = TryOpenDicomFile(filePath, queueItemBase); if (dicomFile != null) { yield return(dicomFile); } } }
/// <summary> /// Reads all the DICOM files from a collection of file paths. /// </summary> /// <param name="filePaths">The file paths.</param> /// <param name="queueItemBase">Queue item base.</param> /// <returns>The collection of DICOM files.</returns> protected IEnumerable <DicomFile> ReadDicomFiles(IEnumerable <string> filePaths, QueueItemBase queueItemBase) { foreach (var filePath in filePaths) { var dicomFile = TryOpenDicomFile(filePath, queueItemBase); if (dicomFile != null) { yield return(dicomFile); } } }