UnProcessed Thing Key Info

Apr 26, 2011 at 9:20 PM
Hi, I have some user data in HealthVault - which has a large number of records. When I request for all the records to be returned, I get the data in the following format (find below). Not sure why the entire content is not being returned. Part of the data has the entire record - while the remaining data has the format below. We are very close to going to production and would appreciate a quick response. Thanks Shyam <unprocessed-thing-key-info> <thing-id version-stamp="f8c2abcb-9527-496b-8bc1-d775c8f73e09"> a7395222-e247-4ff9-a7bc-09bd9172c9ce</thing-id> <type-id name="Weight Measurement">3d34d87e-7fc1-4153-800f-f56592cb0d17 </type-id> <eff-date>2011-02-18T00:00:00</eff-date> </unprocessed-thing-key-info>
Apr 27, 2011 at 2:56 PM

Hi Rob

I realized that there are only 120 records being returned with data (Maximum limit). The rest of the information is "unprocessed". I could not find any documentation about this anywhere. Did I miss this - or is there documentation about returning partial data returned available somewhere?

That said, I have a follow up question on this.

When we started working with this, we realized that if the user has 12000 records, then we will be making 100 + calls (and potentially have to wait for a long time). In order to avoid this, we are considering making a call to “GetUpdatedRecordsForApplication” method instead of the “GetThings” method.

However, since deleted records are never returned to the application, from the “GetUpdatedRecordsForApplication” method, we cannot identify if records have been deleted from MSHV. Is there an alternate mechanism to identify deleted records from MSHV?

Hope you can get back to us on this ASAP.

Thanks

Apr 27, 2011 at 3:18 PM

Hi Rob,

I just found from one of the postings on HealthVault Forum that we can control the MAX limit.

http://blogs.msdn.com/b/healthvaultfaq/archive/2009/10/19/healthvault-response-paging.aspx

Is there an equivalent mechanism in the JAVA JDK? Also can we set the maximum limit to return all rows?

Please let me know when you get a chance.

Thanks

Shyam

Apr 27, 2011 at 8:46 PM

Posting Rob's response....

Hi Shyam,
 
We have some unfortunate terminology.  I just want to define some terms so that we are on the same page.  When HealthVault says Record, it means a patient’s entire medical record.  A HealthVault Record comprises many Things.  The unfortunate part (I had this problem when I joined the group too), is that record means a row to database folks.
 
So…the number of complete Things returned from GetThings is defined in the public configuration maxFullThingResultsPerGroup.  You can read this configuration in the response to GetServiceDefinition.  The current configuration is 120.  The configuration maxPartialThingResultsPerGroup defines the number of partial things—currently 30000.
 
Documentation is pretty slim,  also unfortunately.  The method xsd’s may be the best place to go for authoritative information:  https://platform.healthvault-ppe.com/platform/XSD/response-getthings3.xsd.
 
When you say that the user has 12,000 records, are you talking HealthVault Records or Things?  Are you trying to read the entire record to maintain a local copy of the user’s record in your database?  Are you adding data to HealthVault as well?  Are you concerned about deleted Things?  or Records?  or both?
 
The Java SDK does not provide any helper methods for scrolling through the partial list.  It wouldn’t be hard to put an Iterator on top of it. 

--Rob

Apr 27, 2011 at 8:49 PM

Posting my question here on the board for others ......

You are right - I do get confused between Record and Things. In my case, I was indeed referring to Things and not whole records.
 
1.       Is there a way to increase the MAX number of records received in JAVA SDK (from 120 to NO LIMIT or atleast a large enough number that will work for us)? How can set the value for "maxFullThingResultsPerGroup" using the JAXB implementation classes? ------------- ThingRequestGroup has a method for setMaxFull() and setMax() ---------- That should work.


2.       Is it possible to get just the updated THINGS for a PARTICULAR user in OFFLINE mode (GetUpdatedRecordsForApplication – gets the record ids (????) for which data has been updated and then I would need to use GetThings to get all the THING data right)?

3.       If (2) is possible – how can we identify DELETED THINGS?

Please let me know when you get a chance.
 
Thanks.