public async Task GivenStoredInstance_WhenRetrieveRequestForDifferentInstance_ThenServerShouldReturnNotFound() { (InstanceIdentifier identifier, DicomFile file) = await CreateAndStoreDicomFile(); DicomWebException exception = await Assert.ThrowsAsync <DicomWebException>( () => _client.RetrieveInstanceAsync(identifier.StudyInstanceUid, identifier.SeriesInstanceUid, TestUidGenerator.Generate())); Assert.Equal(HttpStatusCode.NotFound, exception.StatusCode); }
public async Task GivenRetrieveRequestForInstance_WhenResourceIsFound_ThenAuditLogEntriesShouldBeCreated() { InstanceIdentifier dicomInstance = await CreateDicomFileAndGetInstanceIdentifierAsync(); await ExecuteAndValidate( () => _client.RetrieveInstanceAsync(dicomInstance.StudyInstanceUid, dicomInstance.SeriesInstanceUid, dicomInstance.SopInstanceUid), AuditEventSubType.Retrieve, $"studies/{dicomInstance.StudyInstanceUid}/series/{dicomInstance.SeriesInstanceUid}/instances/{dicomInstance.SopInstanceUid}", HttpStatusCode.OK); }
public async Task WhenRetrievingWithPartitionName_TheServerShouldReturnOnlyTheSpecifiedPartition() { var newPartition1 = "partition1"; var newPartition2 = "partition2"; string studyInstanceUID = TestUidGenerator.Generate(); string seriesInstanceUID = TestUidGenerator.Generate(); string sopInstanceUID = TestUidGenerator.Generate(); DicomFile dicomFile = Samples.CreateRandomDicomFile(studyInstanceUID, seriesInstanceUID, sopInstanceUID); using DicomWebResponse <DicomDataset> response1 = await _instancesManager.StoreAsync(new[] { dicomFile }, partitionName : newPartition1); using DicomWebResponse <DicomDataset> response2 = await _instancesManager.StoreAsync(new[] { dicomFile }, partitionName : newPartition2); using DicomWebResponse <DicomFile> response3 = await _client.RetrieveInstanceAsync(studyInstanceUID, seriesInstanceUID, sopInstanceUID, partitionName : newPartition1); Assert.True(response3.IsSuccessStatusCode); using DicomWebResponse <DicomFile> response4 = await _client.RetrieveInstanceAsync(studyInstanceUID, seriesInstanceUID, sopInstanceUID, partitionName : newPartition2); Assert.True(response4.IsSuccessStatusCode); }
public static async Task <DicomWebResponse <DicomFile> > RetrieveInstanceAsync( this IDicomWebClient dicomWebClient, string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid, string dicomTransferSyntax = DicomWebConstants.OriginalDicomTransferSyntax, CancellationToken cancellationToken = default) { EnsureArg.IsNotNull(dicomWebClient, nameof(dicomWebClient)); return(await dicomWebClient.RetrieveInstanceAsync( new Uri(string.Format(DicomWebConstants.BaseInstanceUriFormat, studyInstanceUid, seriesInstanceUid, sopInstanceUid), UriKind.Relative), dicomTransferSyntax, cancellationToken).ConfigureAwait(false)); }
private static async Task Wado(Message message, CancellationToken token) { (string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid) = ParseMessageForUids(message); if (sopInstanceUid != null) { await client.RetrieveInstanceAsync(studyInstanceUid, seriesInstanceUid, sopInstanceUid, cancellationToken : token); } else if (seriesInstanceUid != null) { await client.RetrieveSeriesAsync(studyInstanceUid, seriesInstanceUid, cancellationToken : token); } else { await client.RetrieveStudyAsync(studyInstanceUid, cancellationToken : token); } return; }
private static void RetrieveInstance(string studyUid, string seriesUid, string instanceUid) { client.RetrieveInstanceAsync(studyUid, seriesUid, instanceUid).Wait(); }
private async Task VerifySopInstanceRemoval(string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid) { DicomWebException exception = await Assert.ThrowsAsync <DicomWebException>(() => _client.RetrieveInstanceAsync(studyInstanceUid, seriesInstanceUid, sopInstanceUid)); Assert.Equal(HttpStatusCode.NotFound, exception.StatusCode); }
private static void RetrieveInstance(string studyUid, string seriesUid, string instanceUid) { DicomWebResponse <DicomFile> response = client.RetrieveInstanceAsync(studyUid, seriesUid, instanceUid).Result; return; }