fo-dicom supports asynchronous operations via the async
/await
pattern (or Task-based Asynchronous Pattern, TAP).
Asynchronous API
The public API has been extended with the following methods for asynchronous operation:
DicomFile
{
Task SaveAsync(string fileName)
static Task<DicomFile> OpenAsync(string fileName)
static Task<DicomFile> OpenAsync(string fileName, Encoding fallbackEncoding)
static Task<DicomFile> OpenAsync(Stream stream)
static Task<DicomFile> OpenAsync(Stream stream, Encoding fallbackEncoding)
}
DicomDirectory
{
static Task<DicomDirectory> OpenAsync(string fileName)
static Task<DicomDirectory> OpenAsync(string fileName, Encoding fallbackEncoding)
}
DicomClient
{
Task SendAsync(DicomClientCancellationMode cancellationMode, CancellationToken cancellationToken);
}
Usage
To read a DICOM file asynchronously using this API, you can make the call:
var dicomFile = await DicomFile.OpenAsync("some file name");
To save an existing file:
await dicomFile.SaveAsync("some other file name");
To asynchronously send a service request to some DICOM server:
var client = DicomClientFactory.Create("DICOMSERVER", 11112, false, "SCU", "ANY-SCP");
await client.AddRequestAsync(new DicomCEchoRequest());
await client.SendAsync();