The 0901 release of the HealthVault platform and SDK has been completed. It contains the following changes:

HealthRecordExporter

HealthRecordExporter is a helper class that provides a way to perform a client-side transform of health record items.

Here is an example of how it might be used:

    HealthRecordExporter exporter = new HealthRecordExporter(base.GetSelfRecord());

    HealthRecordFilter filter = new HealthRecordFilter();
    filter.TypeIds.Add(Medication.TypeId);
    filter.View.Sections = HealthRecordItemSections.Core | HealthRecordItemSections.Xml;
    exporter.Filters.Add(filter);

    XslCompiledTransform transform = new XslCompiledTransform();
    transform.Load(“ClientTransform.xsl");
    exporter.Transform = transform;

    string result = exporter.ExportItems();

Updated data types

Immunization data type

The following changes have been made to the Immunization type:

  • The Manufacturer property’s type has been changed from string to CodableValue.
  • The administration date is now optional.
  • HL7/CDC vocabularies have been added:
    • vaccine-manufacturers-mvx
    • vaccines-cvx

Procedure data type

The following changes have been made to the Procedure data type:

  • The When property is now of type approx-date-time, and is optional
  • The Title property has been renamed to Name, and is now required

LabTestResults data type

The following changes have been made to the LabTestResults data type:

  • For lab results where the result is only a textual value, a Note property has been added to the LabTestResultDetails class.

Exercise/Aerobic Session data types

The AerobicSession data type has been extensively revised, and renamed to Exercise. The two types are versioned together, but using them has some complexities.

See “Using the Exercise and AerobicSession data types” for more information.

PeakFlow/Spirometry data types

The existing Spirometry data type was insufficient to support a full spirometry report, but was too complex for simple peak flow measurements.

We have replaced it with a new PeakFlow data type that is designed to address the peak flow scenario only. Existing instances of the Spirometry data type will show up as PeakFlow instances.

See “Using the PeakFlow data type” for more information.

Wrapper class renaming

We have renamed the wrapper classes of older versions of types to conform to our current naming convention. As an example, the first version of Encounter was known as “Encounter”, but when we create a new version, the old version will then be renamed to “EncounterV1”.

Specific changes:

EncounterOld –> EncounterV1

MedicationOld –> MedicationV1

Debugging SDK Code

The 0901 release includes a set of PDB files for the .NET assemblies. In combination with the source to the assemblies, this can be used to debug into the .NET library code.

This is a useful capability when troubleshooting application code. Here’s what you need to use it.

  1. Expand the source archive (c:\program files\HealthVault\sdk\source\HealthVaultDllSource.zip) to the directory of your choice. I put it in the same directory as the zip file.
  2. Make sure your code is referring to the new assemblies (in ..sdk\dotnet\assemblies). When you add the reference to them in Visual Studio, VS will pick up the .pdbs as well.
  3. Start your project under the debugger, and set a breakpoint on a line that calls into the library.
  4. When the breakpoint is reached, choose "Step Into". The debugger will ask you the location of the source file you are stepping into - navigate to the directory where you expanded the source, and choose the appropriate file.
  5. Continue as you usually would.

Note that this does change exception catching behavior in the debugger - the debugger may break at the code that threw the exception in the library rather than your code.

Cookieless sessions

Using previous versions of the SDK, it was possible to run in cookieless mode. With this release, due to some security work that we did, this is no longer possible.

To disable cookieless sessions, make the following change in web.config.

From:
<sessionState mode="InProc" cookieless="true"/>

To:
<sessionState mode="InProc"/>

Please Note: The PB0901 release will be available in production environment later next week.