public async Task <IActionResult> GetStudyMetadataAsync([FromHeader(Name = IfNoneMatch)] string ifNoneMatch, string studyInstanceUid) { _logger.LogInformation("DICOM Web Retrieve Metadata Transaction request received, for study: {studyInstanceUid}.", studyInstanceUid); RetrieveMetadataResponse response = await _mediator.RetrieveDicomStudyMetadataAsync(studyInstanceUid, ifNoneMatch, HttpContext.RequestAborted); return(CreateResult(response)); }
public async Task GivenARequestWithValidInstanceIdentifierAndExpiredIfNoneMatchHeader_WhenRetrievingSopInstanceMetadata_ThenResponseMetadataIsReturnedSuccessfully(string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid, string ifNoneMatch, string eTag) { RetrieveMetadataResponse response = SetupRetrieveMetadataResponseForValidatingCache(false, eTag); _retrieveMetadataService.RetrieveSopInstanceMetadataAsync(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch).Returns(response); RetrieveMetadataRequest request = new RetrieveMetadataRequest(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch); await ValidateRetrieveMetadataResponse(response, request); }
public async Task GivenARequestWithValidInstanceIdentifierAndIfNoneMatchHeader_WhenRetrievingSopInstanceMetadata_ThenNotModifiedResponseIsReturned(string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid, string ifNoneMatch) { RetrieveMetadataResponse response = SetupRetrieveMetadataResponseForValidatingCache(true, ifNoneMatch); _retrieveMetadataService.RetrieveSopInstanceMetadataAsync(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch).Returns(response); RetrieveMetadataRequest request = new RetrieveMetadataRequest(studyInstanceUid, seriesInstanceUid, sopInstanceUid, ifNoneMatch); await ValidateRetrieveMetadataResponse(response, request); }
public async Task GivenRetrieveInstanceMetadataRequestForInstance_WhenIsSuccessful_ThenSuccessStatusCodeIsReturnedAsync() { VersionedInstanceIdentifier sopInstanceIdentifier = SetupInstanceIdentifiersList(ResourceType.Instance).First(); _metadataStore.GetInstanceMetadataAsync(sopInstanceIdentifier, DefaultCancellationToken).Returns(new DicomDataset()); string ifNoneMatch = null; RetrieveMetadataResponse response = await _retrieveMetadataService.RetrieveSopInstanceMetadataAsync(_studyInstanceUid, _seriesInstanceUid, _sopInstanceUid, ifNoneMatch, DefaultCancellationToken); Assert.Single(response.ResponseMetadata); }
public async Task GivenRetrieveInstanceMetadataRequestForSeries_WhenIsSuccessful_ThenSuccessStatusCodeIsReturnedAsync() { List <VersionedInstanceIdentifier> versionedInstanceIdentifiers = SetupInstanceIdentifiersList(ResourceType.Series); _metadataStore.GetInstanceMetadataAsync(versionedInstanceIdentifiers.First(), DefaultCancellationToken).Returns(new DicomDataset()); _metadataStore.GetInstanceMetadataAsync(versionedInstanceIdentifiers.Last(), DefaultCancellationToken).Returns(new DicomDataset()); string ifNoneMatch = null; RetrieveMetadataResponse response = await _retrieveMetadataService.RetrieveSeriesInstanceMetadataAsync(_studyInstanceUid, _seriesInstanceUid, ifNoneMatch, DefaultCancellationToken); Assert.Equal(response.ResponseMetadata.Count(), versionedInstanceIdentifiers.Count()); }
public async Task GivenARequestWithValidInstanceIdentifier_WhenRetrievingStudyInstanceMetadata_ThenResponseMetadataIsReturnedSuccessfully() { string studyInstanceUid = TestUidGenerator.Generate(); string ifNoneMatch = null; RetrieveMetadataResponse response = SetupRetrieveMetadataResponse(); _retrieveMetadataService.RetrieveStudyInstanceMetadataAsync(studyInstanceUid).Returns(response); RetrieveMetadataRequest request = new RetrieveMetadataRequest(studyInstanceUid, ifNoneMatch); await ValidateRetrieveMetadataResponse(response, request); }
public async Task GivenRetrieveMetadataRequestForStudy_WhenIsSuccessful_ThenInstanceMetadataIsRetrievedSuccessfully() { List <DicomDataset> datasetList = SetupDatasetList(ResourceType.Study); string ifNoneMatch = null; // Add metadata for all instances in the given list await _metadataStore.StoreInstanceMetadataAsync(datasetList.First(), version : 0); await _metadataStore.StoreInstanceMetadataAsync(datasetList.Last(), version : 1); RetrieveMetadataResponse response = await _retrieveMetadataService.RetrieveStudyInstanceMetadataAsync(_studyInstanceUid, ifNoneMatch, DefaultCancellationToken); ValidateResponseMetadataDataset(datasetList.First(), response.ResponseMetadata.First()); ValidateResponseMetadataDataset(datasetList.Last(), response.ResponseMetadata.Last()); }
private async Task ValidateRetrieveMetadataResponse(RetrieveMetadataResponse response, RetrieveMetadataRequest request) { RetrieveMetadataResponse actualResponse = await _retrieveMetadataHandler.Handle(request, CancellationToken.None); Assert.Same(response, actualResponse); }
private static IActionResult CreateResult(RetrieveMetadataResponse response) { return(new MetadataResult(response)); }
public MetadataResult(RetrieveMetadataResponse response) : base(EnsureArg.IsNotNull(response, nameof(response)).ResponseMetadata) { _response = response; }