示例#1
0
        /// <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();
 }