protected virtual IQidoRequestModel CreateModel( ) { IQidoRequestModel queryModel = new QidoRequestModel(); queryModel.Query = new QidoQuery(); return(queryModel); }
public void Web_SearchForStudies_SequenceTest( ) { QidoRequestModel requestModel = GetQueryRequest(); //Include a sequence on its own "PerformedProtocolCodeSequence" requestModel.Query.IncludeElements.Add("00400260"); //RequestAttributeSequence //Include a sequence with element "RequestAttributesSequence.ScheduledProcedureStepID" requestModel.Query.IncludeElements.Add("00400275.00400009"); var result = WebQueryService.SearchForStudies(requestModel); Assert.IsNotNull(result); Assert.IsTrue(result.IsSuccessStatusCode); }
private static QidoRequestModel GetQueryRequest() { HttpContext.Current = new HttpContext( new HttpRequest("", "https://localhost:3000", ""), new HttpResponse(new StringWriter()) ); QidoRequestModel requestModel = new QidoRequestModel(); var headers = new HttpClient().DefaultRequestHeaders; headers.Accept.Add(new MediaTypeWithQualityHeaderValue(MimeMediaTypes.Json)); requestModel.AcceptHeader = headers.Accept; requestModel.Headers = headers; requestModel.Query = new QidoQuery(); return(requestModel); }
public bool TryParse(HttpRequestMessage request, out IQidoRequestModel result) { QidoRequestModel wadoReq = new QidoRequestModel( ); wadoReq.Query = new QidoQuery( ); wadoReq.AcceptHeader = request.Headers.Accept; wadoReq.AcceptCharsetHeader = request.Headers.AcceptCharset; var query = request.RequestUri.ParseQueryString( ); foreach (var key in query) { string queryKey = ((string)key).Trim( ).ToLower( ); switch (queryKey) { case QidoRequestKeys.FuzzyMatching: { bool fuzzy; if (bool.TryParse(query[QidoRequestKeys.FuzzyMatching], out fuzzy)) { wadoReq.FuzzyMatching = fuzzy; } } break; case QidoRequestKeys.Limit: { int limit; if (int.TryParse(query[QidoRequestKeys.Limit], out limit)) { wadoReq.Limit = limit; } } break; case QidoRequestKeys.Offset: { int offset; if (int.TryParse(query[QidoRequestKeys.Offset], out offset)) { wadoReq.Offset = offset; } } break; case QidoRequestKeys.IncludeField: { string includeFields = query[QidoRequestKeys.IncludeField]; if (!string.IsNullOrWhiteSpace(includeFields)) { wadoReq.Query.IncludeElements.AddRange(includeFields.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } } break; default: { string matchingQuery = query[queryKey].Trim( ); //string[] matchingQueryValues = matchingQuery.Trim ( ).Split ( new char[] {','}, StringSplitOptions.RemoveEmptyEntries ) ; var matchingElements = wadoReq.Query.MatchingElements; //TODO: what if key exists //should return invalid request //foreach ( var matchingParam in matchingQueryValues ) { matchingElements.Add(queryKey, matchingQuery); } } break; } } result = wadoReq; return(true); }
public bool TryParse(HttpRequestMessage request, out IQidoRequestModel result) { QidoRequestModel wadoReq = new QidoRequestModel( ); wadoReq.Query = new QidoQuery( ); wadoReq.AcceptHeader = request.Headers.Accept; wadoReq.AcceptCharsetHeader = request.Headers.AcceptCharset; var query = request.RequestUri.ParseQueryString( ); foreach (var key in query) { string queryKey = ((string)key).Trim( ).ToLower( ); if (queryKey == "") { continue; } switch (queryKey) { case QidoRequestKeys.FuzzyMatching: { bool fuzzy; if (bool.TryParse(query[QidoRequestKeys.FuzzyMatching], out fuzzy)) { wadoReq.FuzzyMatching = fuzzy; } } break; case QidoRequestKeys.Limit: { int limit; if (int.TryParse(query[QidoRequestKeys.Limit], out limit)) { wadoReq.Limit = limit; } } break; case QidoRequestKeys.Offset: { int offset; if (int.TryParse(query[QidoRequestKeys.Offset], out offset)) { wadoReq.Offset = offset; } } break; case QidoRequestKeys.IncludeField: { string includeFields = query[QidoRequestKeys.IncludeField]; if (!string.IsNullOrWhiteSpace(includeFields)) { wadoReq.Query.IncludeElements.AddRange(includeFields.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); } } break; default: { string queryValue = query[queryKey].Trim( ); if (queryKey.StartsWith("_")) { wadoReq.Query.CustomParameters.Add(queryKey, queryValue); } else { wadoReq.Query.MatchingElements.Add(queryKey, queryValue); } } break; } } result = wadoReq; return(true); }