private static NameValueCollection BuildFindQueryString(AimeSearchCriteria searchCriteria) { string annotationContainerUids = String.Empty; if (!String.IsNullOrEmpty(searchCriteria.AnnotationContainreUid)) { annotationContainerUids = "'" + searchCriteria.AnnotationContainreUid + "'"; } var keyValueCollection = new Collection <KeyValuePair <string, string> >(); if (!String.IsNullOrEmpty(searchCriteria.Username)) { keyValueCollection.Add(new KeyValuePair <string, string>("username", searchCriteria.Username)); } if (!String.IsNullOrEmpty(searchCriteria.AnatomicEntity)) { keyValueCollection.Add(new KeyValuePair <string, string>("anatomicalEntity", searchCriteria.AnatomicEntity)); } if (!String.IsNullOrEmpty(searchCriteria.AnatomicEntityCharacteristic)) { keyValueCollection.Add(new KeyValuePair <string, string>("anatomicEntityCharacteristic", searchCriteria.AnatomicEntityCharacteristic)); } if (!String.IsNullOrEmpty(searchCriteria.ImagingObservationEntity)) { keyValueCollection.Add(new KeyValuePair <string, string>("imagingObservationEntity", searchCriteria.ImagingObservationEntity)); } if (!String.IsNullOrEmpty(searchCriteria.ImagingObservationEntityCharacteristic)) { keyValueCollection.Add(new KeyValuePair <string, string>("imagingObservationEntityCharacteristic", searchCriteria. ImagingObservationEntityCharacteristic)); } if (!String.IsNullOrEmpty(searchCriteria.StudyInstanceUid)) { keyValueCollection.Add(new KeyValuePair <string, string>("studyInstanceUID", searchCriteria.StudyInstanceUid)); } if (!String.IsNullOrEmpty(searchCriteria.PatientName)) { keyValueCollection.Add(new KeyValuePair <string, string>("patientName", searchCriteria.PatientName)); } if (!String.IsNullOrEmpty(searchCriteria.PatientId)) { keyValueCollection.Add(new KeyValuePair <string, string>("patientID", searchCriteria.PatientId)); } if (!String.IsNullOrEmpty(searchCriteria.AnnotationName)) { keyValueCollection.Add(new KeyValuePair <string, string>("annotationName", searchCriteria.AnnotationName)); } if (!String.IsNullOrEmpty(annotationContainerUids)) { keyValueCollection.Add(new KeyValuePair <string, string>("annotationContainerUID", annotationContainerUids)); } return(BuildQueryString(keyValueCollection)); }
public static List<AimeAnnotationContainer> Find(string apiKey, AimeSearchCriteria searchCriteria) { using (var webClient = new WebClient()) { string url = SearchSettings.Default.AimDataServiceUrl; if (String.IsNullOrEmpty(url)) //url = "http://imaging.cci.emory.edu/rest/aime-test/middleware/services/AIME/AIME4"; return new List<AimeAnnotationContainer>(); if (!url.EndsWith("/")) url = url.Trim() + "/"; // Add encoded credentials to header as basic authentication webClient.Headers.Add("api_key", apiKey); webClient.Headers["Content-Type"] = "text/plain; charset=UTF-8"; NameValueCollection queryString = BuildFindQueryString(searchCriteria); Platform.Log(LogLevel.Debug, "Find on AIM Data Service: " + url + "query/find?" + queryString); using (var ms = new MemoryStream(webClient.DownloadData(url + "query/find?" + queryString))) { var serializer = new DataContractJsonSerializer(typeof (List<AimeAnnotationContainer>)); return (List<AimeAnnotationContainer>) serializer.ReadObject(ms); } } }
public static List <AimeAnnotationContainer> Find(string apiKey, AimeSearchCriteria searchCriteria) { using (var webClient = new WebClient()) { string url = SearchSettings.Default.AimDataServiceUrl; if (String.IsNullOrEmpty(url)) { //url = "http://imaging.cci.emory.edu/rest/aime-test/middleware/services/AIME/AIME4"; return(new List <AimeAnnotationContainer>()); } if (!url.EndsWith("/")) { url = url.Trim() + "/"; } // Add encoded credentials to header as basic authentication webClient.Headers.Add("api_key", apiKey); webClient.Headers["Content-Type"] = "text/plain; charset=UTF-8"; NameValueCollection queryString = BuildFindQueryString(searchCriteria); Platform.Log(LogLevel.Debug, "Find on AIM Data Service: " + url + "query/find?" + queryString); using (var ms = new MemoryStream(webClient.DownloadData(url + "query/find?" + queryString))) { var serializer = new DataContractJsonSerializer(typeof(List <AimeAnnotationContainer>)); return((List <AimeAnnotationContainer>)serializer.ReadObject(ms)); } } }
private List <AimeAnnotationContainer> Find() { var results = new List <AimeAnnotationContainer>(); AimeSearchCriteria searchCriteria = Coordinator.CriteriaComponent.SearchCriteria; ApiKeyCredentials credentials = AimDataServiceLoginTool.Credentials; if (!String.IsNullOrEmpty(credentials.ApiKey)) { results = AimeWebService.Find(credentials.ApiKey, searchCriteria); } return(results); }
public static string Retrieve(string apiKey, AimeSearchCriteria searchCriteria) { using (var webClient = new WebClient()) { string url = SearchSettings.Default.AimDataServiceUrl; if (String.IsNullOrEmpty(url)) { //url = "http://imaging.cci.emory.edu/rest/aime-test/middleware/services/AIME/AIME4"; return(null); } if (!url.EndsWith("/")) { url = url.Trim() + "/"; } // Add encoded credentials to header as basic authentication webClient.Headers.Add("api_key", apiKey); webClient.Headers["Content-Type"] = "text/plain; charset=UTF-8"; NameValueCollection queryString = BuildFindQueryString(searchCriteria); Platform.Log(LogLevel.Debug, "Retrieve on AIM Data Service: " + url + "query/retrieve?" + queryString); string results = webClient.DownloadString(url + "query/retrieve?" + queryString); // Remove results tag const string resultsTagOpen = "<results>"; const string resultsTagClose = "</results>"; if (results.Contains(resultsTagOpen) && results.Contains(resultsTagClose)) { results = results.Substring( results.IndexOf(resultsTagOpen) + resultsTagOpen.Length, results.IndexOf(resultsTagClose) - (results.IndexOf(resultsTagOpen) + resultsTagOpen.Length) ); } return(results); } }
private static NameValueCollection BuildFindQueryString(AimeSearchCriteria searchCriteria) { string annotationContainerUids = String.Empty; if (!String.IsNullOrEmpty(searchCriteria.AnnotationContainreUid)) { annotationContainerUids = "'" + searchCriteria.AnnotationContainreUid + "'"; } var keyValueCollection = new Collection<KeyValuePair<string, string>>(); if (!String.IsNullOrEmpty(searchCriteria.Username)) keyValueCollection.Add(new KeyValuePair<string, string>("username", searchCriteria.Username)); if (!String.IsNullOrEmpty(searchCriteria.AnatomicEntity)) keyValueCollection.Add(new KeyValuePair<string, string>("anatomicalEntity", searchCriteria.AnatomicEntity)); if (!String.IsNullOrEmpty(searchCriteria.AnatomicEntityCharacteristic)) keyValueCollection.Add(new KeyValuePair<string, string>("anatomicEntityCharacteristic", searchCriteria.AnatomicEntityCharacteristic)); if (!String.IsNullOrEmpty(searchCriteria.ImagingObservationEntity)) keyValueCollection.Add(new KeyValuePair<string, string>("imagingObservationEntity", searchCriteria.ImagingObservationEntity)); if (!String.IsNullOrEmpty(searchCriteria.ImagingObservationEntityCharacteristic)) keyValueCollection.Add(new KeyValuePair<string, string>("imagingObservationEntityCharacteristic", searchCriteria. ImagingObservationEntityCharacteristic)); if (!String.IsNullOrEmpty(searchCriteria.StudyInstanceUid)) keyValueCollection.Add(new KeyValuePair<string, string>("studyInstanceUID", searchCriteria.StudyInstanceUid)); if (!String.IsNullOrEmpty(searchCriteria.PatientName)) keyValueCollection.Add(new KeyValuePair<string, string>("patientName", searchCriteria.PatientName)); if (!String.IsNullOrEmpty(searchCriteria.PatientId)) keyValueCollection.Add(new KeyValuePair<string, string>("patientID", searchCriteria.PatientId)); if (!String.IsNullOrEmpty(searchCriteria.AnnotationName)) keyValueCollection.Add(new KeyValuePair<string, string>("annotationName", searchCriteria.AnnotationName)); if (!String.IsNullOrEmpty(annotationContainerUids)) keyValueCollection.Add(new KeyValuePair<string, string>("annotationContainerUID", annotationContainerUids)); return BuildQueryString(keyValueCollection); }
public static string Retrieve(string apiKey, AimeSearchCriteria searchCriteria) { using (var webClient = new WebClient()) { string url = SearchSettings.Default.AimDataServiceUrl; if (String.IsNullOrEmpty(url)) //url = "http://imaging.cci.emory.edu/rest/aime-test/middleware/services/AIME/AIME4"; return null; if (!url.EndsWith("/")) url = url.Trim() + "/"; // Add encoded credentials to header as basic authentication webClient.Headers.Add("api_key", apiKey); webClient.Headers["Content-Type"] = "text/plain; charset=UTF-8"; NameValueCollection queryString = BuildFindQueryString(searchCriteria); Platform.Log(LogLevel.Debug, "Retrieve on AIM Data Service: " + url + "query/retrieve?" + queryString); string results = webClient.DownloadString(url + "query/retrieve?" + queryString); // Remove results tag const string resultsTagOpen = "<results>"; const string resultsTagClose = "</results>"; if (results.Contains(resultsTagOpen) && results.Contains(resultsTagClose)) { results = results.Substring( results.IndexOf(resultsTagOpen) + resultsTagOpen.Length, results.IndexOf(resultsTagClose) - (results.IndexOf(resultsTagOpen) + resultsTagOpen.Length) ); } return results; } }
public void ResetSearchCriteria() { SearchCriteria = new AimeSearchCriteria(); }
internal AimDataServiceSearchCriteriaComponent(AimDataServiceSearchCoordinator coordinator) { _coordinator = coordinator; SearchCriteria = new AimeSearchCriteria(); }