/// <inheritdoc />
        public StoreResponse BuildResponse(string studyInstanceUid)
        {
            bool hasSuccess = _dataset?.TryGetSequence(DicomTag.ReferencedSOPSequence, out _) ?? false;
            bool hasFailure = _dataset?.TryGetSequence(DicomTag.FailedSOPSequence, out _) ?? false;

            StoreResponseStatus status = StoreResponseStatus.None;

            if (hasSuccess && hasFailure)
            {
                // There are both successes and failures.
                status = StoreResponseStatus.PartialSuccess;
            }
            else if (hasSuccess)
            {
                // There are only success.
                status = StoreResponseStatus.Success;
            }
            else if (hasFailure)
            {
                // There are only failures.
                status = StoreResponseStatus.Failure;
            }

            if (hasSuccess && studyInstanceUid != null)
            {
                _dataset.Add(DicomTag.RetrieveURL, _urlResolver.ResolveRetrieveStudyUri(studyInstanceUid).ToString());
            }

            return(new StoreResponse(status, _dataset));
        }
Esempio n. 2
0
 public StoreResponse(StoreResponseStatus status, DicomDataset responseDataset)
 {
     Status  = status;
     Dataset = responseDataset;
 }
 /// <summary>
 /// Converts from <see cref="StoreResponseStatus"/> to <see cref="HttpStatusCode"/>.
 /// </summary>
 /// <param name="status">The status to convert.</param>
 /// <returns>The converted <see cref="HttpStatusCode"/>.</returns>
 public static HttpStatusCode ToHttpStatusCode(this StoreResponseStatus status)
 => StoreResponseStatusToHttpStatusCodeMapping[status];
Esempio n. 4
0
 public void GivenStatus_WhenConvertedToHttpStatusCode_ThenCorrectStatusCodeShouldBeReturned(StoreResponseStatus status, HttpStatusCode expectedStatusCode)
 {
     Assert.Equal(expectedStatusCode, status.ToHttpStatusCode());
 }