HealthVault 1006 Release

HealthVault 1006 release is now available in the  HealthVault pre-production environment. This release will be available in the production environment next week.

The associated version of .NET SDK is available here. Please note the Assembly version of .NET SDK for this release is 1.1.2193.4712 and File Version is 1.4.2373.5429 . This is a functional release and doesn’t break the previous release.

Following are some of the features and improvements done in this release :

Enabling Spanish in HealthVault

HealthVault users in the US will now be able to choose between English and Spanish as their preferred language.  The language preference is stored with their HealthVault account and can be changed at any time by the user through the HealthVault account management page. HealthVault enabled applications can query for the language preference through the HealthVault platform and customize the user experience as needed.

New Vocabulary Authentication and Authorization Mechanism

The HealthVault platform allows applications to search vocabularies directly from web applications. To perform this operation, the application must specify a valid client service token in the script.

The client service token is created using the Application Configuration Center. Previously, applications needed to hard-code this value into their script code. In this release the token may be accessed through the ApplicationInfo.ClientServiceToken property.

In addition to the token Mechanism we are introducing a new Vocabulary Authentication and Authorization mechanism which provides better security for the licensed Vocabularies like SNOMED-CT and does not need tokens. The token negotiation is handled by the HealthVault APIs under-the-hood.


Fig 1. New Token Negotiation for HealthVault Vocabulary Search

This mechanism is available through the .NET SDK and can be used as follows:

VocabularyItemCollection results =

The token URLs can we identified using -  VocabularySearchHelper.CreateVocabularySearchRequestJsonAuthenticatedUrl for using with JSON.


Support for SNOMED-CT through HealthVault Vocabulary APIs

With this release we are enabling applications to access SNOMED-CT through HealthVault, particularly for provided a rich consumer search.  This feature is built on top of the new Vocabulary Authentication and Authorization mechanism outlined above. Developer can request access to this through Application Configuration center.


Fig 2. Applications can now request access to Search SNOMED-CT through HealthVault Application Configuration Center

Automated Workflow for HealthVault Application and Device Directory

With this release we are introducing an automated work-flow for applications and devices to get their marketing entries on Earlier this process was manual, now developer or product manager can manage their application and device directory entries through Application configuration center. Update for this process should show up on the Go-Live page shortly.


Fig 3. Ability to manage Application and Device directory entries through ACC for directories.


Fig 4. Application Directory Creation Screen in ACC (Application Configuration Center)

UPDATE: Application directory data is also used by HealthVault Shell to surface applications to a user in context of ViewItems page, i.e the listing of each data-type showcases the applications using that type!


Fig 5. Application using Blood Glucose Measurement surfaced on the ViewItems page for that type in HealthVault Shell.

In future, we do plan to enable more interesting uses of this data. Please leave a comment if you have suggestions for the same.

Support for International Address Format

HealthVault platform is collecting postal mailing address for several purposes. As HealthVault is being deployed internationally, it is important to support international mailing address format. In this release, Platform starts supporting (1) County and (2) Street address 3rd line in UI. The change in UI covers 2 places.

  • Create Record and Edit Record pages for record information
  • Emergency or Provider Contact data type, and any data types which embed contact type


Fig 6. Support for International address format.

Auto-population available for Medication controls

We are introducing an auto-populate feature in HealthVault Shell. Upon selecting the proper medication name and we appropriately auto populate the strength (in value and units) and route (How taken) fields to speed up the data entry for end user and maintain the data accuracy. The auto-population is based parsing of RxNorm medication vocabulary.


Fig 7. Medication Auto-population Feature

HealthRecordItem Serialization now available in the SDK

When an item is fetched from HealthVault, there are two kinds of XML that are returned by the platform.

There is the information that is specific to the that data type. For a height, that includes, the height in meters, a display value in inches, when it was recorded, etc.

There is also information that gives additional information about the value – the state of the item, whether it was up or down versioned, auditing information, etc.

In previous versions of the SDK, if an application wanted to serialize the value of an item and then deserialize it later, it could call GetItemXml() on the item to serialize it, and then call ItemTypeManager.DeserializeItem() to recreate the item, but the resulting object was missing all of the non-data-specific data.

The SDK now supports serialization and deserialization that preserves this information.

It can be used as follows:

Height height = … // fetch the height item…
string serializedItem = height.Serialize();

Height height2 = (Height) HealthRecordItem.Deserialize(serializedItem);

Applications should use use Serialize() if they want to save and restore the item from a string. They should use the existing GetItemXml() method to create the XML that would be sent to the platform for a new item.

HealthRecordItem.Deserialize() does the same thing as ItemTypeManager.DeserializeItem() – we added it to HealthRecordItem to make it more discoverable and to make the resulting code easier to understand.

Modification in the redirect behavior of HealthServiceActionPage

We have modified the way redirection happens in the HealthServiceActionPage. In previous versions of the HealthVault SDK, a redirection would happen to any url passed in the “actionqs” parameter.

In this release, there are checks to validate the target of the redirection before it takes place.

First, if the redirection is to a relative url, it is allowed.

Second, if the redirection is to an absolute url and the host part of that url is the same as the host of the application (specifically, the same as “Request.URL.Host”), it is allowed.

All other redirections are disabled by default. If you wish to enable redirection to sites that are different than the host of the application, specify the host of the sites in a comma-separated list using the WCPage_AllowedRedirectSites key in the web.config file. For example, setting the value of that key to “” will enable redirection to that host.

Update: CCR/CCD wrapper classes will be released shortly in an upcoming release.

Updated Troubleshooter application

The troubleshooter utility (found in the sdk at dotnet\websamples\troubleshooter) has been updated for this release.

Instead of entering the application id to troubleshoot an application, in the new version it performs analysis based on the web.config file for the application. The following enhancements were made:

1) It now supports applications that use certificate files instead of the certificate store for certificate storage.

2) It is better at troubleshooting proxy problems

3) It will validate that the application id and certificate can be successfully used to connect to the HealthVault PPE environment.

Enhancements to HealthVault Documentation in .NET SDK

We have significantly enhanced the help file for HealthVault .NET SDK. The conceptual documentation in HealthVault .NET SDK now contains detailed information on HealthVault .NET SDK Version history. The MSDN Version of this chm file will be updated shortly. After installing the 1006 HealthVault .NET SDK a developer can access this file from Start >  All Programs > Microsoft HealthVault > SDK > Microsoft.Health.chm.

Enhancements to HealthVault Labs

We have seen quite a few requests to enhance the utilities in our reference page. We collectively call these utilities HealthVault Labs. Shortly in this release we will be deploying an updated version  of these utilities which will allow developers to view data-type schemas in tabular form and view samples for some of the data-types which developers could use to test their applications.

We highly recommend HealthVault developers to use Get Real’s X-Ray tool as a compliment to the above utilities.