/// <summary> /// Get a collection of observation given parameter /// </summary> /// <param name="para"> a string of content to be filtered </param> /// <returns> a collection of observation </returns> public async Task <IEnumerable <Observation> > GetObservationsAsync(Observation.ObservationType type, string para = "") { var responseString = await client.GetStringAsync(ObservationPage + para); var jObject = JObject.Parse(responseString); var observations = new List <Observation>(); // Some patients may not have observations if (jObject.ContainsKey("entry")) { var array = jObject["entry"].Children <JObject>(); foreach (var o in array) { ObservationParser observationParser = new ObservationParser(); var toParse = (JObject)o["resource"]; switch (type) { case Observation.ObservationType.Cholesterol: observations.Add(observationParser.ParseCholesterol(toParse)); break; case Observation.ObservationType.Tobacco: observations.Add(observationParser.ParseTobacco(toParse)); break; case Observation.ObservationType.BloodPressure: if (toParse["component"][0]["valueQuantity"] != null) { foreach (var b in observationParser.ParseBloodPressure(toParse)) { observations.Add(b); } } break; } } } return(observations); }
public ObservationParserTests() { _observationParser = new ObservationParser(); }