Esempio n. 1
0
 public HttpResponseMessage GetInstance
 (
     [ModelBinder(typeof(RsObjectRequestModelBinder))]
     IWadoRsInstanceRequest request
 )
 {
     return(WadoService.RetrieveInstance(request));
 }
Esempio n. 2
0
 public HttpResponseMessage GetInstanceMetadata
 (
     [ModelBinder(typeof(RsObjectRequestModelBinder))]
     IWadoRsInstanceRequest request
 )
 {
     try
     {
         return(WadoService.RetrieveInstanceMetadata(request));
     }
     catch (Exception ex)
     {
         return(new HttpResponseMessage()
         {
             Content = new StringContent(ex.ToJson())
         });
     }
 }
Esempio n. 3
0
        public virtual HttpResponseMessage RetrieveInstanceMetadata(IWadoRsInstanceRequest request)
        {
            if (IsMultiPartRequest(request))
            {
                var subMediaHeader = MultipartResponseHelper.GetSubMediaType(request.AcceptHeader.FirstOrDefault( ));

                if (null == subMediaHeader || subMediaHeader != MimeMediaTypes.xmlDicom)
                {
                    return(new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest));
                }

                return(RetrieveMultipartInstance(request, request));    //should be an XML request!
            }
            else //must be json, or just return json anyway (*/*)
            {
                return(ProcessJsonRequest(request, request));
            }
        }
Esempio n. 4
0
        public virtual HttpResponseMessage RetrieveBulkData(IWadoRsInstanceRequest request)
        {
            //TODO: validation accept header is not dicom...

            return(RetrieveMultipartInstance(request, request));
        }
Esempio n. 5
0
 public virtual HttpResponseMessage RetrieveInstance(IWadoRsInstanceRequest request)
 {
     return(RetrieveMultipartInstance(request, request));
 }
        public virtual bool TryParse(HttpRequestMessage request, ModelBindingContext bindingContext, out T result)
        {
            var query = request.RequestUri.ParseQueryString( );

            result = null;

            if (typeof(T) == typeof(IWadoRsStudiesRequest))
            {
                IWadoRsStudiesRequest wadoReq = CreateWadoRsStudiesRequestModel( );

                FillStudyParams(bindingContext.ValueProvider, wadoReq);

                wadoReq.QueryLevel = ObjectQueryLevel.Study;

                result = wadoReq as T;
            }

            if (typeof(T) == typeof(IWadoRsSeriesRequest))
            {
                IWadoRsSeriesRequest wadoReq = CreateWadoRsSeriesRequestModel( );

                FillSeriesParams(bindingContext.ValueProvider, wadoReq);

                wadoReq.QueryLevel = ObjectQueryLevel.Series;

                result = wadoReq as T;
            }

            if (typeof(T) == typeof(IWadoRsInstanceRequest))
            {
                IWadoRsInstanceRequest wadoReq = CreateWadoRsInstanceRequestModel( );

                FillInstanceParams(bindingContext.ValueProvider, wadoReq);

                wadoReq.QueryLevel = ObjectQueryLevel.Instance;

                result = wadoReq as T;
            }

            if (typeof(T) == typeof(IWadoRsFramesRequest))
            {
                IWadoRsFramesRequest wadoReq = CreateWadoRsFramesRequestModel( );

                FillIFramesParams(bindingContext.ValueProvider, wadoReq);

                wadoReq.QueryLevel = ObjectQueryLevel.Instance;

                result = wadoReq as T;
            }

            if (null != result)
            {
                WadoRsRequestBase reqBase = result as WadoRsRequestBase;

                reqBase.Headers             = request.Headers;
                reqBase.AcceptHeader        = request.Headers.Accept;
                reqBase.AcceptCharsetHeader = request.Headers.AcceptCharset;
                reqBase.QueryLevel          = ObjectQueryLevel.Instance;

                return(true);
            }
            else
            {
                return(false);
            }
        }
        protected virtual void FillInstanceParams(IValueProvider valueProvider, IWadoRsInstanceRequest result)
        {
            FillSeriesParams(valueProvider, result);

            result.SOPInstanceUID = valueProvider.GetValue("SOPInstanceUID").RawValue as string;
        }