HealthVault 1109 Release

Content Updated: 9/30/2011 6:00pm PST

Welcome to another release and update of HealthVault!

We are very pleased to introduce new features such as Emergency Preparedness, Alternate ID APIs, the Health Event Data type, and more.

Fig 1. Oktoberfest tent, Spatenbräu, Munich, Germany (Courtesy Bing Images)

The HealthVault 1109 release is available in the HealthVault pre-production environment. These changes will be available in the production environment next week. The associated version of HealthVault .NET SDK is available here.

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

Emergency Preparedness

HealthVault has introduced a number of features centered around emergency preparedness scenarios.

1. Emergency Prep Signup Flow:  There is now an alternate sign-up flow for HealthVault that walks users through entering the data required to complete an emergency profile.  This sign-up flow can be accessed through a new eprep=true parameter on the Shell CREATEACCOUNT redirect target.  The sign-up flow can be co-branded by referring emergency preparedness sites.  If you’re interested in being a referring site, please contact hvbd@microsoft.com and we will assist you.

2. Emergency Profile:  There is a new “Emergency Profile” section in the HealthVault Shell.  The data in a user’s emergency profile consists of the following data types:

  • Allergies
  • Conditions
  • Contacts
  • Medications (Current, based on discontinued-date).
  • Medical Devices

A user’s emergency profile can be accessed be applications by requesting those data types through the standard Platform and SDK methods.

3. Wallet Cards & Profile Sheets:  Users are able to print wallet cards and full emergency profile sheets through the HealthVault Shell.  These can optionally contain an emergency access code that allows read-only access to a record’s emergency profile.  Refer to Emergency Access Codes for more information.

4. Sharing:  Users are able to share access to their emergency profile with others through the HealthVault Shell.  The Shell will generate an email containing an emergency access code that can be sent to the people the user wants to share their profile with.

5. Emergency Access Codes:  Users can generate emergency access codes for records through the HealthVault Shell.  These codes provide access to a read-only view of the record’s emergency profile when used at emergency.healthvault.com.  The codes can be printed on wallet cards or a profile sheet, or shared with others via email.  The user who created the code can revoke it at any time through the HealthVault Shell, and will be notified via email any time the code is used to access the emergency profile.

The documentation for these redirect targets and emergency profile data types can be found in the Help (CHM) file shipped with HealthVault SDK. The help file can be accessed as Start > All Programs > Microsoft HealthVault > SDK > Microsoft.Health.chm.

Alternate ID APIs

For current versions of HealthVault, offline applications must store the correspondence between the application’s concept of a user identity (typically some sort of id) and the HealthVault identity of a user (person id and record id). In many cases this is straightforward but some applications may not have a convenient place to store this information. Alternate ID support provides a way for applications to store this correlation in HealthVault.

Using alternate ids

Applications that are using PatientConnect or Offline can use the following code to create this association:

         void CreateNewAssociations(Guid applicationId, string healthServiceUrl)
        {
            OfflineWebApplicationConnection offlineConnection = new 
                 OfflineWebApplicationConnection(applicationId, healthServiceUrl, Guid.Empty);
            Collection<ValidatedPatientConnection> patientConnections = 
                 PatientConnection.GetValidatedConnections(offlineConnection);
            foreach (ValidatedPatientConnection patientConnection in patientConnections)
            {

                OfflineWebApplicationConnection personConnection =
                      new OfflineWebApplicationConnection(applicationId, 
                                  healthServiceUrl, patientConnection.PersonId);
                HealthRecordAccessor accessor = new HealthRecordAccessor(personConnection, 
                      patientConnection.RecordId);
                Collection<string> currentAssociatedIds = accessor.GetAlternateIds();
                if (currentAssociatedIds.Count == 0)
                {
                    accessor.AssociateAlternateId(patientConnection.ApplicationPatientId);
                }
            }
        }

Once the association is created, an application can easily go from an alternate ID to an accessor that can be used to perform operations on a record:

        HealthRecordInfo GetAccessorForAlternateId(ApplicationConnection connection, 
                        string alternateId)
       {
            HealthRecordInfo info = HealthRecordInfo.GetFromAlternateId(connection, 
                        alternateId);
            return info;
       }

The alternate id is up to 255 characters in length and is case sensitive. The id string must be unique for a given application, though multiple alternate ids may be registered for a single record.

Applications that wish to remove the association can use HealthRecordAccessor.DisassociateAlternateId().

The documentation for these APIs (GetPersonAndRecordForAlternateId, AssociateAlternateId, DisassociateAlternateId, GetAlternateId) can be found in the Help (CHM) file shipped with HealthVault SDK. For non-.NET partners, the schema details of these methods are available in HealthVault Method Browser.

HealthVault Data Type Updates

We are releasing the following data type updates --

New type – Health Events

A number of partner scenarios from tracking the developmental stages of a baby to managing stages of a surgery rehabilitation, have warranted our creation of a type which stores an occurrence of a Health event in a consumers life. You can read details of this type on the HealthVault data type blog, and understand the elements using the HealthVault type explorer.

Updated type – Medical Image Study

The HealthVault Medical Image Study data type enables our customers to store medical image studies in HealthVault.  Based on feedback from partners, we are updating this type to enable ingestion of larger set of medical image series’, and extend the type to make is more useful for consumer and enterprise usage. You can read details of this type on the HealthVault data type blog, and understand the elements using the HealthVault type explorer.

User Token Invalidation

As part of enhancing HealthVault security, we are adding invalidation of user token as part of the user sign-out process. This should be transparent to partners using .NET SDK. The APPSIGNOUT target is documented in the Shell redirect interfaces found in help file shipped with HealthVault SDK. Partners not using the latest .NET SDK need to pass the user token and application Id to HealthVault during the sign-out process.