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