We’ve been working on a new version of the Aerobic session type. We have the following goals:
We are proposing the following:
Exercise type
The detail information typically stores information that specific to the type of exercise activity and any device used to measure it.Examples: Average heart rate, total distance, average temperature, intensity.
The big changes here are that mode has been pulled out of the aerobic profile type and promoted to the top level, and the rest of the items from aerobic profile are now stored using a general exercise-detail type.
And, of course, samples are removed from this type. The exercise samples that are related to this instance are listed on the exercise’s related items list.
Exercise Detail sub type
This type stores an single item of detail about an exercise.
The name defines the unit to be used for the structured part of the value.
Additionally, the friendly version is stored in the display text. For example, a distance of 5.3 miles should be stored directly in the display text, and converted to meters and stored in the structured value with a unit of meters (from the exercise-units vocabulary)
All the items that used to be stored in aerobic profile are stored using this type.
Exercise Segment sub type
This type is used to store information about a portion of an overall exercise, such as separate laps in a race or individual events in a triathlon.
This is a simple refactoring of the lap session part of the aerobic session type. It stores details in the same manner as the overall exercise. Segments store both their offset and duration, which supports scenarios where segments are not contiguous.
Exercise Samples type
This type stores a collection of sample data, such as heart rate samples or position samples.
The kind of data that is stored and the units it is expressed in are defined through setting the name field. For example, if you want to store power, you would code the Power_watts key (exercise-sample-names vocab) for name, and then you would code Watts (exercise-units vocab) for the unit field.
The sample data is stored in the other-data section of the object, and stored using the HealthVault CSV data format (which will be covered in a post in the near future). HealthItemRecordSections.OtherData must be specified when fetching a sample instance to include the associated sample data. There will very likely be an SDK helper class to make it easy to read and write this data.
The HealthVault CSV data format supports escapes in the list of data values. The exercise sample type supports a single escape:
SamplingInterval=n
Which resets the sample interval to n seconds for all the samples that follow it.