public IEnumerable<Patient> GetPatientsByName(string firstName, string lastName) { var searchParameters = new SearchParams(); searchParameters.Add("Given", firstName); searchParameters.Add("Family", lastName); var matches = new List<Patient>(); var result = _client.Search(searchParameters, ResourceType.Patient.ToString()); return result.Entry.Select(x => (Patient) x.Resource); }
public static Hl7.Fhir.Rest.SearchParams ToSearchParams(this Hl7.Fhir.Model.Identifier identifier) { var searchParams = new Hl7.Fhir.Rest.SearchParams(); searchParams.Add(SearchParam.Identifier.ToString(), identifier.ToSearchToken()); return(searchParams); }
public static Hl7.Fhir.Rest.SearchParams MatchOnAnyIdentifier(this Hl7.Fhir.Rest.SearchParams searchParams, IEnumerable <Hl7.Fhir.Model.Identifier> identifiers) { searchParams.Add(SearchParam.Identifier.ToString(), identifiers .Select(id => id.ToSearchToken()) .CompositeOr()); return(searchParams); }
public static Hl7.Fhir.Rest.SearchParams ForSubject <TResource>(this Hl7.Fhir.Rest.SearchParams searchParams, string subjectValue) where TResource : Hl7.Fhir.Model.Resource { EnsureArg.IsNotNull(searchParams, nameof(searchParams)); searchParams.Add(SearchParam.Subject.ToString(), $@"{typeof(TResource).Name}/{subjectValue}"); return(searchParams); }
public IEnumerable<AllergyIntolerance> GetAllergiesByName(string text) { var searchParameters = new SearchParams(); searchParameters.Add("name", text); var result = _client.Search(searchParameters, ResourceType.AllergyIntolerance.ToString()); return result.Entry.Select(s => (AllergyIntolerance)s.Resource); }
public IEnumerable<Observation> GetObservationsByName(string text) { var searchParameters = new SearchParams(); searchParameters.Add("name", text); var results = _client.Search(searchParameters, ResourceType.Observation.ToString()); return results.Entry.Select(s => (Observation)s.Resource); }
IEnumerable<Medication> GetMedicationsByName(string name) { var searchParameters = new SearchParams(); searchParameters.Add("name", name); var result = _client.Search(searchParameters, ResourceType.Medication.ToString()); return result.Entry.Select(s => (Medication)s.Resource); }
public static Hl7.Fhir.Rest.SearchParams MatchOnAllIdentifiers(this IEnumerable <Hl7.Fhir.Model.Identifier> identifiers) { var searchParams = new Hl7.Fhir.Rest.SearchParams(); searchParams.Add(SearchParam.Identifier.ToString(), identifiers .Select(id => id.ToSearchToken()) .CompositeAnd()); return(searchParams); }
private void FetchPatients() { FhirClient fhirClient = new FhirClient("https://fhir-open.sandboxcernerpowerchart.com/dstu2/d075cf8b-3261-481d-97e5-ba6c48d3b41f"); fhirClient.PreferredFormat = ResourceFormat.Json; fhirClient.UseFormatParam = true; try { EditText patientNameField = FindViewById<EditText>(Resource.Id.PatientNameField); string patientName = patientNameField.Text; SearchParams searchParams = new SearchParams(); searchParams.Add("name", patientName); searchParams.Add("_count", "50"); Hl7.Fhir.Model.Bundle patients = fhirClient.Search<Patient>(searchParams); Log.Info(TAG, "Retrieved patients: " + patients.Total); RunOnUiThread(() => { ListView pxListView = FindViewById<ListView>(Resource.Id.PatientListView); ArrayAdapter adapter = pxListView.Adapter as ArrayAdapter; Log.Debug(TAG, "Adapter: " + adapter.ToString()); adapter.Clear(); adapter.AddAll(patients.Entry); } ); } catch (Exception e) { Log.Warn(TAG, e.Message); RunOnUiThread(() => { Android.Widget.Toast.MakeText(this, e.Message, ToastLength.Long).Show(); } ); } finally { RunOnUiThread(() => { EnableInputs(); } ); } }
public void ManipulateParameters() { var q = new SearchParams(); q.Add("testX", "someVal"); q.Add("testX", "someVal2"); q.Add("testXY", "someVal3"); var paramlist = q.ToUriParamList(); var vals = paramlist.Values("testX"); Assert.AreEqual(2, vals.Count()); Assert.AreEqual("someVal", vals.First()); Assert.AreEqual("someVal2", vals.Skip(1).First()); Assert.AreEqual("someVal3", paramlist.SingleValue("testXY")); paramlist.Remove("testXY"); Assert.IsNull(paramlist.SingleValue("testXY")); Assert.AreEqual(2, paramlist.Values("testX").Count()); }
/// <summary> /// Conditionally add search parameter for the specified value to the parameter collection. /// </summary> /// <param name="searchParams">The search parameter collection to modify.</param> /// <param name="searchParam">Search parameter to add.</param> /// <param name="paramValue">The value of the parameter to add to the collection. If value is null no search parameter will be added.</param> /// <param name="searchPrefix">Optional prefix for value matching.</param> /// <returns>The modified search parameter collection.</returns> public static Hl7.Fhir.Rest.SearchParams WhenParamValue(this Hl7.Fhir.Rest.SearchParams searchParams, string searchParam, object paramValue, SearchPrefix searchPrefix = null) { if (searchParam == null) { throw new ArgumentNullException(nameof(searchParam)); } if (paramValue != null) { SearchPrefix prefix = searchPrefix ?? SearchPrefix.Empty; searchParams.Add(searchParam, $@"{searchPrefix}{paramValue}"); } return(searchParams); }
private void SearchAllergies(string PatientId) { WorkingMessage(); listAllergies.Items.Clear(); string FHIR_EndPoint = this.txtFHIREndpoint.Text.ToString(); var client = new Hl7.Fhir.Rest.FhirClient(FHIR_EndPoint); try { var p = new Hl7.Fhir.Rest.SearchParams(); p.Add("patient", PatientId); var results = client.Search <AllergyIntolerance>(p); this.UseWaitCursor = false; lblErrorMessage.Text = ""; while (results != null) { if (results.Total == 0) { lblErrorMessage.Text = "No allergies found"; } foreach (var entry in results.Entry) { var Alrgy = (AllergyIntolerance)entry.Resource; string Content = Alrgy.Code.Coding[0].Display + " / " + Alrgy.VerificationStatus.Coding[0].Code + " (" + Alrgy.ClinicalStatus.Coding[0].Code + ")"; listAllergies.Items.Add(Content); } // get the next page of results results = client.Continue(results); } } catch (Exception err) { lblErrorMessage.Text = "Error:" + err.Message.ToString(); } if (lblErrorMessage.Text != "") { lblErrorMessage.Visible = true; } }
public void ParseAndSerializeParams() { var q = new SearchParams(); q.Add("_query", "special"); q.Add("_count", "31"); q.Add("_summary", "data"); q.Add("_sort:desc", "sorted"); q.Add("_sort:asc", "sorted2"); q.Add("_include", "Patient.name"); q.Add("_include", "Observation.subject"); q.Add("image:missing", "true"); q.Add("_elements", "field1,field2"); var output = q.ToUriParamList().ToQueryString(); Assert.AreEqual("_query=special&_count=31&_include=Patient.name&_include=Observation.subject&_sort%3Adesc=sorted&_sort%3Aasc=sorted2&_summary=data&_elements=field1%2Cfield2&image%3Amissing=true", output); var q2 = SearchParams.FromUriParamList(UriParamList.FromQueryString(output)); Assert.AreEqual(q.Query, q2.Query); Assert.AreEqual(q.Count, q2.Count); Assert.AreEqual(q.Summary, q2.Summary); CollectionAssert.AreEquivalent(q.Sort.ToList(), q2.Sort.ToList()); CollectionAssert.AreEquivalent(q.Include.ToList(), q2.Include.ToList()); CollectionAssert.AreEquivalent(q.Parameters.ToList(), q2.Parameters.ToList()); CollectionAssert.AreEquivalent(q.Elements.ToList(), q2.Elements.ToList()); }
public static SearchParams FromUriParamList(IEnumerable<Tuple<string,string>> parameters) { var result = new SearchParams(); foreach (var parameter in parameters) result.Add(parameter.Item1, parameter.Item2); return result; }
public static SearchParams FromParameters(Parameters parameters) { var result = new SearchParams(); foreach (var parameter in parameters.Parameter) { var name = parameter.Name; var value = parameter.Value; if(value != null && value is Primitive) { result.Add(parameter.Name, PrimitiveTypeConverter.ConvertTo<string>(value)); } else if (value == null) throw Error.NotSupported("Can only convert primitive parameters to Uri parameters"); } return result; }
public void ParamOrderHasDefault() { var q = new SearchParams(); q.Add("_sort", "birthdate"); q.Add("_sort:asc", "name"); q.Add("_sort:desc", "active"); Assert.AreEqual(3, q.Sort.Count()); Assert.AreEqual(Tuple.Create("birthdate", SortOrder.Ascending), q.Sort.First()); Assert.AreEqual(Tuple.Create("name", SortOrder.Ascending), q.Sort.Skip(1).First()); Assert.AreEqual(Tuple.Create("active", SortOrder.Descending), q.Sort.Skip(2).First()); }
public void ParseAndSerializeParams() { var q = new SearchParams(); q.Add("_query", "special"); q.Add("_count", "31"); q.Add("_summary", "true"); q.Add("_sort:desc", "sorted"); q.Add("_sort:asc", "sorted2"); q.Add("_include", "Patient.name"); q.Add("_include", "Observation.subject"); var output = q.ToUriParamList().ToQueryString(); Assert.AreEqual("_query=special&_count=31&_include=Patient.name&_include=Observation.subject&_sort%3Adesc=sorted&_sort%3Aasc=sorted2&_summary=true", output); }
private void SearchPatients() { WorkingMessage(); listCandidates.Items.Clear(); string FHIR_EndPoint = this.txtFHIREndpoint.Text.ToString(); var client = new Hl7.Fhir.Rest.FhirClient(FHIR_EndPoint); client.OnBeforeRequest += (object sender, BeforeRequestEventArgs e) => { // Replace with a valid bearer token for the server // e.RawRequest.Headers.Add("Authorization", "Bearer ya29.QQIBibTwvKkE39hY8mdkT_mXZoRh7Ub9cK9hNsqrxem4QJ6sQa36VHfyuBe"); }; try { string patId = txtPatientID.Text.ToString(); string patName = txtPatientName.Text.ToString(); var p = new Hl7.Fhir.Rest.SearchParams(); switch (SearchOption) { case 1: p.Add("_id", patId); break; case 2: p.Add("name", patName); break; case 3: p.Add("name", patName); p.Add("birthdate", dateTimeDob.Text); break; } var results = client.Search <Patient>(p); this.UseWaitCursor = false; lblErrorMessage.Text = ""; while (results != null) { if (results.Total == 0) { lblErrorMessage.Text = "No patients found"; } btnShowAllergies.Enabled = true; foreach (var entry in results.Entry) { var Pat = (Patient)entry.Resource; string Fam = "", Giv = "", ideS = "", ideV = ""; if (Pat.Name.Count > 0) { Fam = Pat.Name[0].Family; Giv = Pat.Name[0].GivenElement[0].ToString(); } if (Pat.Identifier.Count > 0) { ideS = Pat.Identifier[0]?.System; ideV = Pat.Identifier[0]?.Value; } string Content = Fam + " " + Giv + " (" + ideS + "-" + ideV + ")"; ListViewItem l = new ListViewItem { Text = Content, Tag = entry.Resource.Id }; listCandidates.Items.Add(l); } // get the next page of results results = client.Continue(results); } } catch (Exception err) { lblErrorMessage.Text = "Error:" + err.Message.ToString(); } if (lblErrorMessage.Text != "") { lblErrorMessage.Visible = true; } }