Ejemplo n.º 1
0
        private HttpContent CreateResponseContent
        (
            WebStoreRequest request,
            WadoStoreResponse storeResult
        )
        {
            HttpContent content;

            //this is not taking the "q" parameter
            if (new MimeMediaType(MimeMediaTypes.Json).IsIn(request.AcceptHeader))
            {
                IJsonDicomConverter converter = GetJsonConverter();

                content = new StringContent(converter.Convert(storeResult.GetResponseContent()),
                                            System.Text.Encoding.UTF8,
                                            MimeMediaTypes.Json);
            }
            else
            {
                IXmlDicomConverter xmlConverter = GetXmlConverter();

                content = new StringContent(xmlConverter.Convert(storeResult.GetResponseContent()),
                                            System.Text.Encoding.UTF8,
                                            MimeMediaTypes.xmlDicom);
            }

            return(content);
        }
Ejemplo n.º 2
0
        private async Task <WadoStoreResponse> StoreStudy(WebStoreRequest request, string studyInstanceUID, GetDicomHandler getDicom)
        {
            WadoStoreResponse response = new WadoStoreResponse(studyInstanceUID);

            foreach (var mediaContent in request.Contents)
            {
                Stream dicomStream = await mediaContent.ReadAsStreamAsync();

                var dicomDs = getDicom(dicomStream);

                PublisherSubscriberFactory.Instance.Publish(this, new WebStoreDatasetProcessingMessage(request, dicomDs));

                try
                {
                    var result = _storageService.StoreDicom(dicomDs, CreateObjectMetadata(dicomDs, request));


                    response.AddResult(dicomDs);

                    PublisherSubscriberFactory.Instance.Publish(this, new WebStoreDatasetProcessedMessage(request, dicomDs));
                }
                catch (Exception ex)
                {
                    response.AddResult(dicomDs, ex);

                    PublisherSubscriberFactory.Instance.Publish(this, new WebStoreDatasetProcessingFailureMessage(request, dicomDs, ex));
                }
            }

            return(response);
        }