Hi Max,

Can you please look at my code and tell me where am going wrong?

Connect.java:
package health;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;

import com.google.gdata.client.Query;
import com.google.gdata.client.health.HealthService;
import com.google.gdata.data.Entry;
import com.google.gdata.data.Feed;
import com.google.gdata.data.TextContent;
import com.google.gdata.data.health.ProfileEntry;
import com.google.gdata.data.health.ProfileFeed;
import com.google.gdata.data.health.RegisterFeed;
import com.google.gdata.util.ServiceException;

public class Connect{
@SuppressWarnings("unused")
private static int idNum = 0;
@SuppressWarnings("unused")
private static final String PREFIX = "WPI Neuro";
private static final String VERSION = "alpha";
private List<String> profileIds = null;
@SuppressWarnings("unused")
private RegisterFeed feed;
private HealthService service1;
private Calendar dateOfBirth = null;

private static final String CCR_URL =
"https://www.google.com/health/feeds/profile/ui/";;
private static final String FEED_BASE_PATH =
"http://www.google.com/health/feeds/";;
private static final String PROFILE_FEED_PATH = FEED_BASE_PATH + "profile/";
private static final String REGISTER_FEED_PATH = FEED_BASE_PATH +
"register/";

private static final String PROFILE_LIST_URL_PATH = PROFILE_FEED_PATH +
"list";

/**
 * Creates a new instance with a given user name and password
 *
 * @param user username
 * @param pass password
 */
public Connect(String username, String password)
throws MalformedURLException, IOException, ServiceException
{
//Of the form [company-id]-[app-name]-[app-version]
String appName = "WPI-Total Neuro Placement-" + VERSION;
service1 = new HealthService(appName);

service1.setUserCredentials(username, password);

refeed();
}

/**
 * Refreshes notices
 */
private void refeed() throws IOException, ServiceException,
MalformedURLException
{
if (profileIds == null) {


profileIds = new ArrayList<String>();
Feed profileListFeed = service1.getFeed(
new URL(PROFILE_LIST_URL_PATH), Feed.class);
for (Entry profileListEntry : profileListFeed.getEntries()) {
profileIds.add(
((TextContent) profileListEntry.getContent()).
getContent().getPlainText());
//System.out.println(((TextContent) profileListEntry.getContent()).
// getContent().getPlainText());
}
}
feed = service1.getFeed(
new URL(REGISTER_FEED_PATH + "ui/" + profileIds.get(0)),
RegisterFeed.class);
dateOfBirth = refreshDob();
}

private Calendar refreshDob() {
Query query;
ProfileFeed result;
try {
query = new Query(new URL(CCR_URL + profileIds.get(0)));
query.addCustomParameter(new Query.CustomParameter("digest", "true"));
result = service1.getFeed(query, ProfileFeed.class);
} catch (MalformedURLException e) {
return null;
} catch (ServiceException e) {
return null;
} catch (IOException e) {
return null;
}

List<ProfileEntry> entries = result.getEntries();

// We used the digest=true parameter, so there should only
// be a single Atom entry that contains all of the CCR data in profile.
 for (ProfileEntry entry : entries)
{
/*
 * Look for the hierarchy:
 *  <Actors>...<Person>...<DateOfBirth>...<ExactDateTime>
 * It contains the time of birth in the format CCYY-MM-DDThh:mm:ssZ
 */
int read = 0;
String profile = entry.getContinuityOfCareRecord().getXmlBlob().getBlob();
read = profile.indexOf("<Actors>", read);
if(read == -1)
{
break;
}
read = profile.indexOf("<Actor>", read);
if(read == -1)
{
break;
}
read = profile.indexOf("<Person>", read);
if(read == -1)
{
break;
}
read = profile.indexOf("<DateOfBirth>", read);
if(read == -1)
{
break;
}
read = profile.indexOf("<ExactDateTime>", read);
if(read == -1)
{
break;
}
read += "<ExactDateTime>".length();
String date = profile.substring(read, read + 10); //Date datum
int day, month, year;
year = Integer.parseInt(date.substring(0,4));
month = Integer.parseInt(date.substring(5,7));
day = Integer.parseInt(date.substring(8,10));
Calendar birth = new GregorianCalendar(year, month, day);
return birth;
}
return null;
 }
/**
 * Returns the date of birth of the holder of the profile
 * @return the date of birth to the day or null if it could not be retrieved
 */
public Calendar getDoB()
{
return dateOfBirth;
}
}


Regards and Wishes,
Rajashree

--

You received this message because you are subscribed to the Google Groups 
"Google Health Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/googlehealthdevelopers?hl=en.


Reply via email to