/// <summary> /// Queries the Google Health Profile list feed. This is related to the /// ClientLogin queries using ClientLogin. /// </summary> /// <returns>The list of profiles for the authenticated client.</returns> public List <Profile> GetProfiles() { HealthFeed feed = this.Query(new HealthQuery(ProfileListFeed)); List <Profile> profiles = new List <Profile>(); foreach (AtomEntry entry in feed.Entries) { profiles.Add(Profile.FromAtomEntry(entry)); } return(profiles); }
/// <summary> /// Queries the Google Health Profile Register feed for the list of notices. This /// is for ClientLogin related queries. /// </summary> /// <param name="profileId">The profile to query against.</param> /// <returns>The list of notices available on this profile.</returns> public List <Notice> GetNotices(string profileId) { HealthQuery query = new HealthQuery(RegisterFeed + profileId); query.Digest = true; HealthFeed feed = this.Query(query); List <Notice> notices = new List <Notice>(); foreach (AtomEntry entry in feed.Entries) { notices.Add(Notice.FromAtomEntry(entry)); } return(notices); }
/// <summary> /// Queries the profile feed for the list of available CCR records. Available /// for ClientLogin related queries. /// </summary> /// <param name="profileId">The profile to query against.</param> /// <param name="digest">True to aggregate all CCR into a single CCR element, false otherwise.</param> /// <returns>The list of CCR records available.</returns> public List <ContinuityOfCareRecord> GetCareRecords(string profileId, bool digest) { HealthQuery query = new HealthQuery(ProfileFeed + profileId); query.Digest = true; HealthFeed feed = this.Query(query); List <ContinuityOfCareRecord> ccrs = new List <ContinuityOfCareRecord>(); foreach (AtomEntry entry in feed.Entries) { IExtensionElementFactory factory = entry.FindExtension("ContinuityOfCareRecord", "urn:astm-org:CCR"); if (factory != null) { XmlExtension extension = factory as XmlExtension; XmlSerializer serializer = new XmlSerializer(typeof(ContinuityOfCareRecord)); XmlTextReader reader = new XmlTextReader(new StringReader(extension.Node.OuterXml)); ccrs.Add(serializer.Deserialize(reader) as ContinuityOfCareRecord); } } return(ccrs); }