Programming Microsoft HealthVault


Programming Microsoft HealthVault

Detailed Syllabus

Day 1 Morning:   Introduction, HealthVault Architecture

Lecture: Introduction to HealthVault. Problems addressed by HealthVault. Goals and non-goals of the HealthVault system. Common and uncommon usage scenarios. Basic architectural layout of the HealthVault system. Options for client applications to access it.

Lab: Installation of HealthVault SDK, Startup of Hello,World Application

Day 1 Afternoon:  Design of Web Applications Using HealthVault

Lecture:  Walkthrough of Hello, World sample application. Needs for creating your own HealthVault application.  Examination of the HealthServicePage class. Following the authentication process of both application and user. Selecting data from the user's HealthRecord. Use of HealthRecordItemDataGrid class. Allowing a user to edit data and a different user to view that data but not edit it.

Lab: Make modifications to Hello,World application, observe results.

Day 2 Morning:  HealthVault Data

Lecture:  Choices for the location of stored data, advantages and disadvantages of each.  What is a Health Record? Use of HealthRecordItem class. Serializing of data. Selecting items for a particular user: HealthRecordFilter class.  Auditing and versions of object instances – how it works, what you need to do to make sure you’re modifying the current version, how to fetch non-current versions. Use of HealthVault vocabularies. Modifying HealthVault data classes. Extending a data type with HealthRecordItemExtension class. Adding new private types of data to HealthVault storage. Petitioning Microsoft to add new public data types to HealthVault.

Lab: Work with sample application manipulating HealthRecord and HealthRecordItem objects.

 Day 2 Afternoon: User Experience Design for HealthVault Applications

Lecture: Platt's first, last, and only law of user experience design: Know Thy User, for He Is Not Thee. Importance of understanding the user population. Enumerating the benefits that the users will derive from their HV apps, comparing them against the amount of work users need to do, attempting to maximize the former and minimize the latter. Analysis of the types of errors that users can make while using HV apps, discussion of ways in which to detect and minimize their impact. Suggestions for tracking usages of various parts of the program to determine how users actually make their way through your app, instead of how you think the should or wish they would.

Lab: Begin user analysis and initial user interface design for your HealthVault application

Day 3 Morning: HealthVault Offline Operations, Interfacing with Clinical Systems

Lecture: Definition of term "disconnected operation" in the HealthVault world. Reasons and scenarios in which an application might reasonably need disconnected operations. How the privilege is request and either granted or denied for data to be accessed offline. Fetching data that is authorized for offline access.  Importing and exporting data to CCD and CCR  formats.

Lab: Work with sample application allowing offline access to data. Alternatively, work with sample program importing/exporting data in CCD and CCR formats.

Day 3 Afternoon: 

Lecture and Lab: Examination of topics requested by students based on the knowledge that they've gained in the class, and the design goals of their projects.