public async Task Invoke(HttpContext context, IDicomRequestContextAccessor dicomRequestContextAccessor)
        {
            HttpRequest request = context.Request;

            string baseUriInString = UriHelper.BuildAbsolute(
                request.Scheme,
                request.Host,
                request.PathBase);

            string uriInString = UriHelper.BuildAbsolute(
                request.Scheme,
                request.Host,
                request.PathBase,
                request.Path,
                request.QueryString);

            var dicomRequestContext = new DicomRequestContext(
                method: request.Method,
                uriString: uriInString,
                baseUriString: baseUriInString,
                requestHeaders: context.Request.Headers,
                responseHeaders: context.Response.Headers);

            dicomRequestContextAccessor.DicomRequestContext = dicomRequestContext;

            // Call the next delegate/middleware in the pipeline
            await _next(context);
        }
        public async Task Invoke(HttpContext context, IDicomRequestContextAccessor dicomRequestContextAccessor)
        {
            EnsureArg.IsNotNull(context, nameof(context));
            EnsureArg.IsNotNull(dicomRequestContextAccessor, nameof(dicomRequestContextAccessor));
            HttpRequest request = context.Request;

            var baseUri = new Uri(UriHelper.BuildAbsolute(
                request.Scheme,
                request.Host,
                request.PathBase));

            var uri = new Uri(UriHelper.BuildAbsolute(
                request.Scheme,
                request.Host,
                request.PathBase,
                request.Path,
                request.QueryString));

            var dicomRequestContext = new DicomRequestContext(
                method: request.Method,
                uri,
                baseUri,
                context.Request.Headers,
                context.Response.Headers);

            dicomRequestContextAccessor.RequestContext = dicomRequestContext;

            // Call the next delegate/middleware in the pipeline
            await _next(context);
        }