/// <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));
        }