Base Thing Type
Return to types list
Type Properties
Properties
| Property | Value |
| id | 3e730686-781f-4616-aa0d-817bba8eb141 |
| name | Base Thing Type |
| uncreatable | true |
| immutable | true |
| singleton | true |
| transforms | form, include, includedatetime, includenumber, includeunit, includeversion, includecontactform, includepersonform, mtt, stt, rss |
| allow-readonly | false |
|
Type Details
|
|
|
|
duration-value A pair of approximate date-times used to create a
range.
| Name | Type | IsRequired | Description |
| start-date | d:approx-date-time | Yes | The approximate start date and time for the duration range. |
| end-date | d:approx-date-time | No | The approximate end date and time for the duration range. The end-date is optional in order to support indefinite durations. |
|
double-range A pair of doubles used to create a
range.
| Name | Type | IsRequired | Description |
| minimum-range | double | Yes | The minimum value for the range. |
| maximum-range | double | Yes | The maximum value for the range. |
|
display-value A numeric value used for display purposes
and tagged with arbitrary units.
| Name | Type | IsRequired | Description |
|
weight-value A weight measurement.
| Name | Type | IsRequired | Description |
| kg | t:nonNegativeDouble | Yes | The weight measurement in kilograms. |
| display | t:display-value | No | The display value for the weight measurement. The display value contains the weight measurement
value stored in the user's preference of units. |
|
length-value A length measurement.
| Name | Type | IsRequired | Description |
| m | t:positiveDouble | Yes | The length measurement in meters. |
| display | t:display-value | No | The display value for the length measurement. The display value contains the length measurement
value stored in the user's preference of units. |
|
flow-value A flow measurement.
| Name | Type | IsRequired | Description |
| liters-per-second | t:positiveDouble | Yes | The flow measurement in liters per second (L/s). |
| display | t:display-value | No | The display value for the flow measurement. The display value contains the flow measurement
value stored in the user's preference of units. |
|
altitude-value An altitude measurement.
| Name | Type | IsRequired | Description |
| m | double | Yes | The altitude measurement in meters. A negative value indicates the measurement was
take below sea level. |
| display | t:display-value | No | The display value for the altitude measurement. The display value contains the altitude measurement
value stored in the user's preference of units. |
|
temperature-value A temperature measurement.
| Name | Type | IsRequired | Description |
| celsius | double | Yes | The temperature measurement in Celsius(C). |
| display | t:display-value | No | The display value for the temperature measurement. The display value contains the temperature measurement
value stored in the user's preference of units. |
|
pace-value A pace measurement.
| Name | Type | IsRequired | Description |
| seconds-per-hundred-meters | t:positiveDouble | Yes | The pace measurement in seconds per 100 meters. |
| display | t:display-value | No | The display value for the pace measurement. The display value contains the pace measurement
value stored in the user's preference of units. |
|
power-value A power measurement.
| Name | Type | IsRequired | Description |
| watts | t:positiveDouble | Yes | The power measurement in watts. |
| display | t:display-value | No | The display value for the power measurement. The display value contains the power measurement
value stored in the user's preference of units. |
|
torque-value A torque measurement.
| Name | Type | IsRequired | Description |
| newton-meters | t:positiveDouble | Yes | The torque measurement in newton meters. |
| display | t:display-value | No | The display value for the torque measurement. The display value contains the torque measurement
value stored in the user's preference of units. |
|
speed-value A speed measurement.
| Name | Type | IsRequired | Description |
| meters-per-second | t:positiveDouble | Yes | The speed measurement in meters per second (m/s). |
| display | t:display-value | No | The display value for the speed measurement. The display value contains the speed measurement
value stored in the user's preference of units. |
|
blood-glucose-value A blood glucose measurement.
| Name | Type | IsRequired | Description |
| mmolPerL | t:positiveDouble | Yes | The blood glucose measurement in millimoles per liter. |
| display | t:display-value | No | The display value for the blood glucose measurement. The display value contains the blood glucose measurement
value stored in the user's preference of units. |
|
insulin-injection-value A insulin injection measurement.
| Name | Type | IsRequired | Description |
| IE | t:positiveDouble | Yes | The insulin injeciton amount in IE units (1/100ml). |
| display | t:display-value | No | The display value for the insulin injection amount. The display value contains the insulin injection amount
value stored in the user's preference of units. |
|
goal Defines a health or fitness goal.
| Name | Type | IsRequired | Description |
| target-date | d:approx-date-time | No | The date upon which the person wants to complete
the goal. |
| completion-date | d:approx-date-time | No | The date on which the goal was completed. |
| status | t:goal-status | No | The current status of the goal. The status is not automatically updated. "Active"
goals may need to be evaluated to determine if they
have been "achieved". |
|
sample Defines a single sample.
| Name | Type | IsRequired | Description |
| time-offset | t:nonNegativeDouble | Yes | Offset is seconds from sample set base time. |
| note | string | No | Description of sample. |
| value | string | No | Value of sample. The value of the sample can be any string. The
value depends on the type of sample. Some sample
types will have a simple int or double as the
value. Others will have a comma separated list.
For example, a "position" sample may have
"25E,66N" (longitude,latitude) as the value. |
|
sample-set Defines a sample set.
| Name | Type | IsRequired | Description |
| base-time | d:date-time | Yes | Sample set base time from which samples are offset. |
| sample-unit | string | Yes | The unit that the value is stored in. Each sample contains a value. All samples in a
sample set should be stored using the same units.
This value is a text description of the units the
sample value is stored in. Use the
"sample-unit-code" to describe the units as a
dictionary code. |
| sample-unit-code | t:codable-value | Yes | The dictionary code for the unit that the value
is stored in. Each sample contains a value. All samples in a
sample set should be stored using the same units. |
| sample | t:sample | No | Sample set samples. |
|
aerobic-session Defines a lap within a single aerobic session.
| Name | Type | IsRequired | Description |
| mode | t:codable-value | No | The type of activity for the session. The mode is the type of activity for the session,
like biking, running, etc. The most common
activities are part the of the Microsoft Health
Lexicon and should be referenced using the code
retrieved by calling GetVocabulary with
"aerobic-activities" as the vocabulary name.
For activities that are not in the Microsoft
Health Lexicon you can add the value to the
text element of the codable value. |
| distance | t:length-value | No | The distance covered in the session. Distances are stored in meters. The application
must convert the distance entered by the user
into meters and should also store the distance
and units entered by the user in the display-value
so that it can be displayed to the user in their
preferred unit of measure when viewing the data. |
| minutes | t:positiveDouble | No | The duration of the session in minutes. |
| intensity | t:one-to-five | No | The subjective average intensity of the session. Intensity is measured on a scale from one to five
where one is easy and five is the most intense. |
| peak-heartrate | t:positiveInt | No | The highest heart rate reached during the session. The peak heart rate for a session differs from the
person's maximum heart rate in that a person most
likely will not reach their maximum heart rate
during an aerobic session. This measurement defines
the highest heart rate recorded during the session. |
| avg-heartrate | t:positiveInt | No | The average heart rate reached during the session. |
| min-heartrate | t:positiveInt | No | The minimum heart rate reached during the session. This is measured in beats per minute. |
| energy | t:positiveDouble | No | The food energy expended during the session. This is measured in kilojoules . |
| energy-from-fat | t:positiveDouble | No | The food energy burned from fat during the session. This is measured in kilojoules. |
| peak-speed | t:speed-value | No | The maximum speed achieved during the session. This is measured in meters per second. |
| avg-speed | t:speed-value | No | The average speed achieved during the session. This is measured in meters per second. |
| min-speed | t:speed-value | No | The minimum speed achieved during the session. This is measured in meters per second. |
| peak-pace | t:pace-value | No | The maximum pace achieved during the session. This is measured in seconds per 100 meters. |
| avg-pace | t:pace-value | No | The average pace achieved during the session. This is measured in seconds per 100 meters. |
| min-pace | t:pace-value | No | The minimum pace achieved during the session. This is measured in seconds per 100 meters. |
| peak-power | t:power-value | No | The maximum power achieved during the session. This is measured in watts. |
| avg-power | t:power-value | No | The average power achieved during the session. This is measured in watts. |
| min-power | t:power-value | No | The minimum power achieved during the session. This is measured in watts. |
| peak-torque | t:torque-value | No | The maximum torque achieved during the session. This is measured in newton meters. |
| avg-torque | t:torque-value | No | The average torque achieved during the session. This is measured in newton meters. |
| min-torque | t:torque-value | No | The minimum torque achieved during the session. This is measured in newton meters. |
| left-right-balance | t:percentage | No | The power output balance between left and right strokes. This is measured as a percentage (%) relating to the left.
For example, a value of 30 indicates that 30% of the power
came from the left, while 70% came from the right. |
| peak-cadence | t:positiveDouble | No | The maximum cadence achieved during the session. T his is measured in revolutions per minute (rpm). |
| avg-cadence | t:positiveDouble | No | The average cadence achieved during the session. This is measured in revolutions per minute (rpm). |
| min-cadence | t:positiveDouble | No | The minimum cadence achieved during the session. This is measured in revolutions per minute (rpm). |
| peak-temperature | t:temperature-value | No | The maximum temperature achieved during the session. This is measured in degrees Celsius (C). |
| avg-temperature | t:temperature-value | No | The average temperature achieved during the session. This is measured in degrees Celsius (C). |
| min-temperature | t:temperature-value | No | The minimum temperature achieved during the session. This is measured in degrees Celsius (C). |
| peak-altitude | t:altitude-value | No | The maximum altitude achieved during the session. This is measured in meters above mean sea level. |
| avg-altitude | t:altitude-value | No | The average altitude achieved during the session. This is measured in meters above mean sea level. |
| min-altitude | t:altitude-value | No | The minimum altitude achieved during the session. This is measured in meters above mean sea level. |
| elevation-gain | t:length-value | No | The gain in elevation achieved during the session. This is measured in meters. |
| elevation-loss | t:length-value | No | The loss in elevation achieved during the session. This is measured in meters. |
| number-of-steps | t:nonNegativeInt | No | Number of steps taken in this session. |
| number-of-aerobic-steps | t:nonNegativeInt | No | Total steps taken in the aerobic activity range. Total steps taken in the aerobic activity range. This will be less than or
equal to the total steps taken given that the participant may not remain
in the aerobic activity range for the entire session. |
| aerobic-step-minutes | t:nonNegativeDouble | No | Total duration spent in the aerobic activity range. This item will be recorded in units of minutes. |
|
aerobic-session-samples Defines sample sets for an aerobic session.
| Name | Type | IsRequired | Description |
| heartrate-samples | t:sample-set | No | Heart rate sample set for aerobic session. |
| distance-samples | t:sample-set | No | Distance sample set for aerobic session. |
| position-samples | t:sample-set | No | Position sample set for aerobic session. Positions are expected to be in either
longitude/latitude or UTM coordinates. |
| speed-samples | t:sample-set | No | Speed sample set for aerobic session. |
| pace-samples | t:sample-set | No | Pace sample set for aerobic session. |
| power-samples | t:sample-set | No | Power sample set for aerobic session. |
| torque-samples | t:sample-set | No | Torque sample set for aerobic session. |
| cadence-samples | t:sample-set | No | Cadence sample set for aerobic session. |
| temperature-samples | t:sample-set | No | Temperature sample set for aerobic session. |
| altitude-samples | t:sample-set | No | Altitude sample set for aerobic session. |
| air-pressure-samples | t:sample-set | No | Air pressure sample set for aerobic session. |
| number-of-steps-samples | t:sample-set | No | Number of steps taken during this sample. |
| number-of-aerobic-steps-samples | t:sample-set | No | Total steps taken in the aerobic activity range. Total steps taken in the aerobic activity range for the relevant sample.
This value will be less than or equal to the total steps taken given
that the participant may not remain in the aerobic activity range for
the entire sample. |
| aerobic-step-minutes-samples | t:sample-set | No | Total duration spent in the aerobic activity range. This item will be recorded in units of minutes. |
|
aerobic-lap-session One stage of the aerobic session.
| Name | Type | IsRequired | Description |
| name | string | No | Optional description for this lap, such as "lap 1". |
| seconds-into-session | t:nonNegativeDouble | No | The start time of the lap relative to the entire session. This is measured in seconds. |
| lap-session | t:aerobic-session | No | The lap session aerobic measurements. |
|
address Defines a physical or mailing address.
| Name | Type | IsRequired | Description |
| description | string | No | A description of the address. For example, a person may label the address as
"My home address" or "My mailing address". |
| is-primary | boolean | No | States if the addresses is the primary address
for contacting the person. If true, the address is the preferred address
for contacting the person. |
| street | string | Yes | The street portion of the address. The street address may be made up of one or more
lines and should adhere to the standard for the
locale in which the address resides. |
| city | string | Yes | The city portion of the address. |
| state | string | No | The state or province portion of the address. |
| postcode | string | Yes | The postal code portion of the address. The postal code should adhere to the standard
for the locale in which the address resides. |
| country | string | Yes | The country portion of the address. This should be a string representation of the
country as defined by the user. It is not used
for processing so it doesn't have to be an
ISO-3166 code. For example, a person could
refer to the United States of America as "US",
"USA", "United States", or "United States of
America". |
| county | string | No | The county portion of the address. The county should adhere to the standard
for the locale in which the address resides. |
|
phone A phone number.
| Name | Type | IsRequired | Description |
| description | string | No | A person's description of the phone number. This is used to describe the phone number. For
example, "home", "mobile", "work", etc. |
| is-primary | boolean | No | States if the phone number is the primary number
for contacting the person. If true, the phone number is the preferred number
for contacting the person. |
| number | string | Yes | The phone number. |
|
email An email address.
| Name | Type | IsRequired | Description |
| description | string | No | A person's description of the email address. This is used to describe the email address. For
example, "personal", "work", etc. |
| is-primary | boolean | No | States if the email address is the primary address
for contacting the person. If true, the email address is the preferred address
for contacting the person. |
| address | string | Yes | The email address. |
|
communication-type Defines what type of communication is used.
| Name | Type | IsRequired | Description |
| communication-medium | t:codable-value | Yes | Defines medium of communication used. |
| priority | t:positiveInt | No | Defines priority of communication medium. Preferred medium is lower value, such as phone-1, phone-2, etc. |
| class | t:codable-value | No | Defines class of communication used. |
| value | string | Yes | Detailed value of communication type. |
|
language Defines a spoken language.
| Name | Type | IsRequired | Description |
| language | t:codable-value | No | The language. The Microsoft Health Lexicon defines codes for
many of the common spoken languages. In most
cases the language should be specified by using
the code retrieved from the Microsoft Health
Lexicon by calling GetVocabulary with "languages"
as the vocabulary name. If the language doesn't
exist the Microsoft Health Lexicon the "text"
element of the codable value can be used to specify
the language. |
| is-primary | boolean | No | States if the language is the primary language
of the person. If true, the language is the preferred spoken
language of the person. |
|
name Defines a person's name.
| Name | Type | IsRequired | Description |
| full | string | Yes | The person's full name. |
| title | t:codable-value | No | The person's title. For example, "Mr.", "Ms.", "Mrs.", etc. |
| first | string | No | The person's given name. |
| middle | string | No | The person's middle name. |
| last | string | No | The person's family/sur name. |
| suffix | t:codable-value | No | The person's name suffix. For example, "Jr.", "Sr.", etc. |
|
person Information related to a contact.
| Name | Type | IsRequired | Description |
| name | t:name | Yes | The name of the contact person. |
| organization | string | No | The name of the organization the contact
belongs to. |
| professional-training | string | No | The person's professional training. |
| id | string | No | The identification number for the person
in the organization. |
| contact | t:contact | No | Information on how to contact the person. |
| type | t:codable-value | No | The type of the contact person. A person may be an emergency contact,
a health care provider, etc. The values
should be taken from the Microsoft Health
Lexicon vocabulary 'person-types'. |
|
contact Defines a set of contact information.
| Name | Type | IsRequired | Description |
| address | t:address | No | Physical or mailing addresses. |
| phone | t:phone | No | Telephone numbers such as home, work, or mobile. |
| email | t:email | No | Email addresses. |
|
coded-value Defines a value which has been coded in a Microsoft Health
Vocabulary.
| Name | Type | IsRequired | Description |
| value | string | Yes | The code value which identifies the item in the
vocabulary. Codes are unique to the vocabulary they reside in.
The codes for a particular vocabulary can be
enumerated using GetVocabulary. |
| family | string | No | The family of the vocabulary. The family of a vocabulary partially identifies the
vocabulary instance along with type and version. If
the value is missing the family is assumed to be
'wc' which is the Microsoft Health Lexicon.
For example, 'NCPDP' is the vocabulary family for
codes in the National Council for Prescription Drug
Programs. |
| type | string | Yes | The type of the vocabulary. This is the name that identifies the vocabulary in
the family of vocabularies.
For example, 'SCRIPT' is the vocabulary name for
medical prescriptions in the 'NCPDP' family of
vocabularies. |
| version | string | No | The version of the vocabulary. The version identifies which version of a vocabulary
identified by the 'type' element the code is in if
more than one version is present. |
|
codable-value A value that may have codes from one or more Microsoft
Health vocabularies associated with it.
| Name | Type | IsRequired | Description |
| text | string | Yes | The textual representation of the value. This may be the display value from one of the
coded-values or it may be the user entered
value. |
| code | t:coded-value | No | The codes representing the value from a
Microsoft Health vocabulary. Some values can be represented by codes in more
that one vocabulary. If appropriate add coded-values
from as many vocabularies as are relevant. |
|
lab-result-type A clinical value within a laboratory result.
| Name | Type | IsRequired | Description |
| value | double | No | The value of the laboratory result. |
| unit | t:codable-value | No | Units used to define laboratory result. |
| reference-range | t:double-range | No | The reference range for the laboratory result. |
| toxic-range | t:double-range | No | The toxic range for the laboratory result. |
| text-value | string | No | Free form text for laboratory results. |
| flag | t:codable-value | No | Flag for laboratory results. Example values are normal, critical, high and low. |
|
lab-test-type A laboratory test component, including the lab result value details.
| Name | Type | IsRequired | Description |
| when | d:date-time | Yes | The date of the laboratory test. |
| name | string | No | The name of the laboratory test. |
| substance | t:codable-value | No | The substance tested. |
| collection-method | t:codable-value | No | The collection method for the laboratory test. |
| abbreviation | string | No | The abbreviation for the laboratory test. |
| description | string | No | Free form description of the laboratory test. |
| code | t:codable-value | No | The clinical code for the laboratory test. |
| result | t:lab-result-type | No | A clinical value within a laboratory result. This type is define a clinical value within a laboratory result,
including value, unit, reference and toxic ranges. |
| status | t:codable-value | No | The status of the laboratory result. Examples of status include complete and pending. |
|
document-reference-type Defines a document reference.
| Name | Type | IsRequired | Description |
| title | string | Yes | The title of the document reference. |
| url | string | Yes | The URL for the document reference. |
| document-index | string | Yes | The index for the document reference. |
| version | string | Yes | The version of the document reference. |
|
Organization An organization entity.
| Name | Type | IsRequired | Description |
| name | string | Yes | The name of the organization. |
| contact | t:contact | No | The contact information for the organization. |
| type | t:codable-value | No | The type of the organization. |
| website | string | No | The url for the organization's website. |
|
condition Defines a single health or medical issue/problem.
| Name | Type | IsRequired | Description |
| name | t:codable-value | Yes | The name or description of the condition. |
| onset-date | d:approx-date | No | The date of onset or the first diagnosis. |
| resolution-date | d:approx-date | No | The date the condition resolved (or for
multiple acute episodes, the last date the
condition resolved). |
| resolution | string | No | A statement of how the condition was resolved. |
| occurrence | t:codable-value | No | How often the condition occurs. Examples: acute, chronic. |
| severity | t:codable-value | No | The severity for the condition |
|
structured-measurement A measurement using specific units.
| Name | Type | IsRequired | Description |
| value | double | Yes | The value of the measurement. |
| units | t:codable-value | Yes | The units for the measurement. A list of vocabularies may be found in the preferred vocabulary. |
|
general-measurement A coded measurement and a display representation.
| Name | Type | IsRequired | Description |
| display | string | Yes | A user-readable string. Applications typically display this string. |
| structured | t:structured-measurement | No | The coded value of the measurement Applications typically use this for calculations, charting, or graphing. |
|
group-membership-type A membership of the record owner in a specific group.
| Name | Type | IsRequired | Description |
| name | t:codable-value | Yes | The name of the group type. Examples: Organization, SpecialProgram, BargainingUnit. |
| value | string | Yes | The value the member has for the group type. For example, a name of BargainingUnit might have a value of HourlyWorkers. |
|
volume-value A volume measurement.
| Name | Type | IsRequired | Description |
| liters | t:nonNegativeDouble | Yes | The volume measurement in liters (L). |
| display | t:display-value | No | The display value for the volume measurement. The display value contains the volume measurement
value stored in the user's preference of units. |
|
pressure-value A pressure measurement.
| Name | Type | IsRequired | Description |
| pascals | t:nonNegativeDouble | Yes | The SI unit of measure for pressure. |
| display | t:display-value | No | The display value for the pressure measurement. The display value contains the pressure measurement
value stored in the user's preference of units. |
|
respiratory-rate-value A respiratory rate measurement.
| Name | Type | IsRequired | Description |
| breaths-per-minute | t:nonNegativeDouble | Yes | The number of breaths taken during one minute. |
| display | t:display-value | No | The display value for the respiratory rate measurement. The display value contains the respiratory rate measurement
value stored in the user's preference of units. |
|
concentration-value Concentration value (volume / volume).
| Name | Type | IsRequired | Description |
| mmolPerL | t:nonNegativeDouble | Yes | The concentration measurement in millimoles per liter. |
| display | t:display-value | No | The display value for the concentration measurement. The display value contains the concentration measurement
value stored in the user's preference of units. |
|
Schema
Open schema as a file
Verify XML against this schema
<?xml version="1.0" encoding="utf-16"?>
<schema xmlns:d="urn:com.microsoft.wc.dates" xmlns:wct="urn:com.microsoft.wc.types" xmlns:t="urn:com.microsoft.wc.thing.types" targetNamespace="urn:com.microsoft.wc.thing.types" xmlns="http://www.w3.org/2001/XMLSchema">
<import schemaLocation="dates.xsd" namespace="urn:com.microsoft.wc.dates" />
<import schemaLocation="types.xsd" namespace="urn:com.microsoft.wc.types" />
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">Types that are used across multiple thing types.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">For instance, a weight-value type is used for the weightthing type as well as the dietary-intake-daily thing type.</remarks>
</documentation>
</annotation>
<simpleType name="positiveDouble">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A number, including a decimal point, greater thanzero.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">This type derives from double and ensures that allvalues are greater than zero.</remarks>
</documentation>
</annotation>
<restriction base="double">
<minExclusive value="0" />
</restriction>
</simpleType>
<simpleType name="nonNegativeDouble">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A number, including a decimal point, greater than or equalto zero.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">This type derives from double and ensures that allvalues are greater than or equal to zero.</remarks>
</documentation>
</annotation>
<restriction base="double">
<minInclusive value="0" />
</restriction>
</simpleType>
<simpleType name="positiveInt">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A 32-bit number, excluding a decimal point, greater thanzero.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">This type derives from int and ensures that allvalues are greater than zero.</remarks>
</documentation>
</annotation>
<restriction base="int">
<minExclusive value="0" />
</restriction>
</simpleType>
<simpleType name="nonNegativeInt">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A 32-bit number, excluding a decimal point, greater than or equalto zero.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">This type derives from int and ensures that allvalues are greater than or equal to zero.</remarks>
</documentation>
</annotation>
<restriction base="int">
<minInclusive value="0" />
</restriction>
</simpleType>
<simpleType name="percentage">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A decimal number between zero and one.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">This type derives from double and ensures that allvalues are between zero and one inclusive.</remarks>
</documentation>
</annotation>
<restriction base="double">
<minInclusive value="0" />
<maxInclusive value="1" />
</restriction>
</simpleType>
<complexType name="duration-value">
<annotation>
<documentation>
<wrapper-class-name xmlns="http://www.w3.org/2001/XMLSchema">DurationValue</wrapper-class-name>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A pair of approximate date-times used to create arange.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">This type derives uses two approximate date-times toprovide a duration range.</remarks>
</documentation>
</annotation>
<sequence>
<element name="start-date" type="d:approx-date-time">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">The approximate start date and time for the duration range.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="end-date" type="d:approx-date-time">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">The approximate end date and time for the duration range.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">The end-date is optional in order to support indefinite durations.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="double-range">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A pair of doubles used to create arange.</summary>
</documentation>
</annotation>
<sequence>
<element name="minimum-range" type="double">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">The minimum value for the range.</summary>
</documentation>
</annotation>
</element>
<element name="maximum-range" type="double">
<annotation>
<documentation>
<summary xmlns="http://www.w3.org/2001/XMLSchema">The maximum value for the range.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="display-value">
<annotation>
<documentation>
<wrapper-class-name xmlns="http://www.w3.org/2001/XMLSchema">DisplayValue</wrapper-class-name>
<summary xmlns="http://www.w3.org/2001/XMLSchema">A numeric value used for display purposesand tagged with arbitrary units.</summary>
<remarks xmlns="http://www.w3.org/2001/XMLSchema">Microsoft HealthVault standardizes its storageof data like length, weight, and temperature so thatapplications can process the data more easily. So,in order to support the user's preference of unitsthe display value type is used to maintain the userentered value such that any application can displaythe value back to the user in the same form theyentered it even though the data is stored in a baseunit value. This prevents rounding errors on thedata when converting to and from the base unit ofmeasure.<br /><br />The display value should be set whenever data is takendirectly from the user through UI and it should beused to show data to the user when available.</remarks>
</documentation>
</annotation>
<simpleContent>
<extension base="double">
<attribute name="units" type="string" use="required">
<annotation>
<documentation>
<summary>An arbitrary string representing the unitsof measure for the value.</summary>
<remarks>For example, the base unit of measure forlength is meters, this display value maycontain a length in feet. The units attributewould contain "feet" or an appropriateabbreviation.</remarks>
</documentation>
</annotation>
</attribute>
<attribute name="units-code" type="string" use="optional">
<annotation>
<documentation>
<summary>The Microsoft Health Lexicon code for the unitof measure.</summary>
<remarks>If the unit of measure is available from one ofthe Microsoft Health Lexicon vocabularies, thisattribute is the code in the lexicon for thatunit.<br /><br />The advantage of using the units-code is thatthe unit can be easily translated for use byany application for the supported languages.</remarks>
</documentation>
</annotation>
</attribute>
<attribute name="text" type="string" use="optional">
<annotation>
<documentation>
<summary>A textual representation of the display value.</summary>
<remarks>If the display value cannot be properly expressed as "number units", this attribute can be used to express the display value. An example of this would be expressing a height as "5 feet 8 inches".Applications that use the Text property should still expressthe value in the "number units" format for applications that predate the introduction of this attribute.</remarks>
</documentation>
</annotation>
</attribute>
</extension>
</simpleContent>
</complexType>
<complexType name="weight-value">
<annotation>
<documentation>
<wrapper-class-name>WeightValue</wrapper-class-name>
<summary>A weight measurement.</summary>
<remarks>A weight measurement consists of the value in kilograms,which is the base unit of measurement for weight, andan optional display value. The display value is used tostore the weight measurement in the user's preference ofweight units. This avoids rounding errors whenconverting to and back from kilograms.</remarks>
</documentation>
</annotation>
<sequence>
<element name="kg" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>The weight measurement in kilograms.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the weight measurement.</summary>
<remarks>The display value contains the weight measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="length-value">
<annotation>
<documentation>
<wrapper-class-name>Length</wrapper-class-name>
<summary>A length measurement.</summary>
<remarks>A length measurement consists of the value in meters,which is the base unit of measurement for length, andan optional display value. The display value is used tostore the length measurement in the user's preference oflength units. This avoids rounding errors whenconverting to and back from meters.</remarks>
</documentation>
</annotation>
<sequence>
<element name="m" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The length measurement in meters.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the length measurement.</summary>
<remarks>The display value contains the length measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="flow-value">
<annotation>
<documentation>
<wrapper-class-name>FlowMeasurement</wrapper-class-name>
<summary>A flow measurement.</summary>
<remarks>A flow measurement consists of the value in liters persecond (L/s), which is the base unit of measurement forflow, and an optional display value. The display value isused to store the flow measurement in the user's preference of flow units. This avoids rounding errorswhen converting to and back from L/s.</remarks>
</documentation>
</annotation>
<sequence>
<element name="liters-per-second" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The flow measurement in liters per second (L/s).</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the flow measurement.</summary>
<remarks>The display value contains the flow measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="altitude-value">
<annotation>
<documentation>
<wrapper-class-name>AltitudeMeasurement</wrapper-class-name>
<summary>An altitude measurement.</summary>
<remarks>An altitude measurement consists of the value in metersabove sea level,which is the base unit of measurement for altitude, andan optional display value. The display value is used tostore the altitude measurement in the user's preference ofaltitude units. This avoids rounding errors whenconverting to and back from meters.</remarks>
</documentation>
</annotation>
<sequence>
<element name="m" type="double">
<annotation>
<documentation>
<summary>The altitude measurement in meters.</summary>
<remarks>A negative value indicates the measurement wastake below sea level.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the altitude measurement.</summary>
<remarks>The display value contains the altitude measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="temperature-value">
<annotation>
<documentation>
<wrapper-class-name>TemperatureMeasurement</wrapper-class-name>
<summary>A temperature measurement.</summary>
<remarks>A temperature measurement consists of the value in Celsuis(C), which is the base unit of measurement for temperature,and an optional display value. The display value is used tostore the temperature in the user's preference ofunits. This avoids rounding errors whenconverting to and back from Celsius.</remarks>
</documentation>
</annotation>
<sequence>
<element name="celsius" type="double">
<annotation>
<documentation>
<summary>The temperature measurement in Celsius(C).</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the temperature measurement.</summary>
<remarks>The display value contains the temperature measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="pace-value">
<annotation>
<documentation>
<wrapper-class-name>PaceMeasurement</wrapper-class-name>
<summary>A pace measurement.</summary>
<remarks>A pace measurement consists of the value in seconds per100 meters, which is the base unit of measurement forpace, and an optional display value. The display value isused to store the pace in the user's preference ofunits. This avoids rounding errors whenconverting to and back from seconds per 100 meters.</remarks>
</documentation>
</annotation>
<sequence>
<element name="seconds-per-hundred-meters" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The pace measurement in seconds per 100 meters.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the pace measurement.</summary>
<remarks>The display value contains the pace measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="power-value">
<annotation>
<documentation>
<wrapper-class-name>PowerMeasurement</wrapper-class-name>
<summary>A power measurement.</summary>
<remarks>A power measurement consists of the value in watts,which is the base unit of measurement forpower, and an optional display value. The display value isused to store the power in the user's preference ofunits. This avoids rounding errors whenconverting to and back from watts.</remarks>
</documentation>
</annotation>
<sequence>
<element name="watts" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The power measurement in watts.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the power measurement.</summary>
<remarks>The display value contains the power measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="torque-value">
<annotation>
<documentation>
<wrapper-class-name>TorqueMeasurement</wrapper-class-name>
<summary>A torque measurement.</summary>
<remarks>A torque measurement consists of the value in newton meters,which is the base unit of measurement fortorque, and an optional display value. The display value isused to store the torque in the user's preference ofunits. This avoids rounding errors whenconverting to and back from newton meters.</remarks>
</documentation>
</annotation>
<sequence>
<element name="newton-meters" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The torque measurement in newton meters.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the torque measurement.</summary>
<remarks>The display value contains the torque measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="speed-value">
<annotation>
<documentation>
<wrapper-class-name>SpeedMeasurement</wrapper-class-name>
<summary>A speed measurement.</summary>
<remarks>A speed measurement consists of the value in meters persecond (m/s), which is the base unit of measurement forspeed, and an optional display value. The display valueis used to store the speed in the user's preference ofunits. This avoids rounding errors whenconverting to and back from m/s.</remarks>
</documentation>
</annotation>
<sequence>
<element name="meters-per-second" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The speed measurement in meters per second (m/s).</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the speed measurement.</summary>
<remarks>The display value contains the speed measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="blood-glucose-value">
<annotation>
<documentation>
<wrapper-class-name>BloodGlucoseMeasurement</wrapper-class-name>
<summary>A blood glucose measurement.</summary>
<remarks>A blood glucose measurement consists of the value in millimoles per liter (mmol/L),which is the base unit of measurement for blood glucose, andan optional display value. The display value is used tostore the blood glucose measurement in the user's preference ofmeasurement units. This avoids rounding errors whenconverting to and back from mmol/L.</remarks>
</documentation>
</annotation>
<sequence>
<element name="mmolPerL" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The blood glucose measurement in millimoles per liter.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the blood glucose measurement.</summary>
<remarks>The display value contains the blood glucose measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="insulin-injection-value">
<annotation>
<documentation>
<wrapper-class-name>InsulinInjectionMeasurement</wrapper-class-name>
<summary>A insulin injection measurement.</summary>
<remarks>A insulin injection consists of the value in IE units (1/100ml),which is the base unit of insulin injections, andan optional display value. The display value is used tostore the insulin injection amount the user's preference ofunits. This avoids rounding errors whenconverting to and back from IE units</remarks>
</documentation>
</annotation>
<sequence>
<element name="IE" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The insulin injeciton amount in IE units (1/100ml).</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the insulin injection amount.</summary>
<remarks>The display value contains the insulin injection amountvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<simpleType name="dow">
<annotation>
<documentation>
<summary>The day of the week.</summary>
<remarks>1 = Sunday2 = Monday3 = Tuesday4 = Wednesday5 = Thursday6 = Friday7 = Saturday</remarks>
</documentation>
</annotation>
<restriction base="int">
<minInclusive value="1" />
<maxInclusive value="7" />
</restriction>
</simpleType>
<simpleType name="goal-status">
<annotation>
<documentation>
<summary>An enumeration of the possible goal states.</summary>
</documentation>
</annotation>
<restriction base="string">
<enumeration value="Active">
<annotation>
<documentation>
<summary>The goal is actively being worked toward.</summary>
</documentation>
</annotation>
</enumeration>
<enumeration value="Achieved">
<annotation>
<documentation>
<summary>The goal has been achieved.</summary>
</documentation>
</annotation>
</enumeration>
<enumeration value="Abandoned">
<annotation>
<documentation>
<summary>The goal has been abandoned.</summary>
</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<complexType name="goal">
<annotation>
<documentation>
<wrapper-class-name>Goal</wrapper-class-name>
<summary>Defines a health or fitness goal.</summary>
<remarks>A goal may be a short-term achievement like losingweight or a long-term goal like competing in a marathon.</remarks>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="target-date" type="d:approx-date-time">
<annotation>
<documentation>
<summary>The date upon which the person wants to completethe goal.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="completion-date" type="d:approx-date-time">
<annotation>
<documentation>
<summary>The date on which the goal was completed.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="status" type="t:goal-status">
<annotation>
<documentation>
<summary>The current status of the goal.</summary>
<remarks>The status is not automatically updated. "Active"goals may need to be evaluated to determine if theyhave been "achieved".</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<simpleType name="one-to-five">
<annotation>
<documentation>
<summary>An integer value from one to five.</summary>
<remarks>This type is used in rating something. For instance,an aerobic session intensity may be rated from oneto five where five is the most intense and one is theleast intense.</remarks>
</documentation>
</annotation>
<restriction base="int">
<minInclusive value="1" />
<maxInclusive value="5" />
</restriction>
</simpleType>
<complexType name="sample">
<annotation>
<documentation>
<wrapper-class-name>Sample</wrapper-class-name>
<summary>Defines a single sample.</summary>
</documentation>
</annotation>
<sequence>
<element name="time-offset" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>Offset is seconds from sample set base time.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="note" type="string">
<annotation>
<documentation>
<summary>Description of sample.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="value" type="string">
<annotation>
<documentation>
<summary>Value of sample.</summary>
<remarks>The value of the sample can be any string. Thevalue depends on the type of sample. Some sampletypes will have a simple int or double as thevalue. Others will have a comma separated list.For example, a "position" sample may have"25E,66N" (longitude,latitude) as the value.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="sample-set">
<annotation>
<documentation>
<wrapper-class-name>SampleSet</wrapper-class-name>
<summary>Defines a sample set.</summary>
</documentation>
</annotation>
<sequence>
<element name="base-time" type="d:date-time">
<annotation>
<documentation>
<summary>Sample set base time from which samples are offset.</summary>
</documentation>
</annotation>
</element>
<element name="sample-unit" type="string">
<annotation>
<documentation>
<summary>The unit that the value is stored in.</summary>
<remarks>Each sample contains a value. All samples in asample set should be stored using the same units.This value is a text description of the units thesample value is stored in. Use the"sample-unit-code" to describe the units as adictionary code.</remarks>
</documentation>
</annotation>
</element>
<element name="sample-unit-code" type="t:codable-value">
<annotation>
<documentation>
<summary>The dictionary code for the unit that the valueis stored in.</summary>
<remarks>Each sample contains a value. All samples in asample set should be stored using the same units.</remarks>
<preferred-vocabulary>Contact the HealthVault team to help define this vocabulary.</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" maxOccurs="unbounded" name="sample" type="t:sample">
<annotation>
<documentation>
<summary>Sample set samples.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="aerobic-session">
<annotation>
<documentation>
<wrapper-class-name>AerobicSession</wrapper-class-name>
<summary>Defines a lap within a single aerobic session.</summary>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="mode" type="t:codable-value">
<annotation>
<documentation>
<summary>The type of activity for the session.</summary>
<remarks>The mode is the type of activity for the session,like biking, running, etc. The most commonactivities are part the of the Microsoft HealthLexicon and should be referenced using the coderetrieved by calling GetVocabulary with"aerobic-activities" as the vocabulary name.<br /><br />For activities that are not in the MicrosoftHealth Lexicon you can add the value to thetext element of the codable value.</remarks>
<preferred-vocabulary>aerobic-activities</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="distance" type="t:length-value">
<annotation>
<documentation>
<summary>The distance covered in the session.</summary>
<remarks>Distances are stored in meters. The applicationmust convert the distance entered by the userinto meters and should also store the distanceand units entered by the user in the display-valueso that it can be displayed to the user in theirpreferred unit of measure when viewing the data.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="minutes" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The duration of the session in minutes.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="intensity" type="t:one-to-five">
<annotation>
<documentation>
<summary>The subjective average intensity of the session.</summary>
<remarks>Intensity is measured on a scale from one to fivewhere one is easy and five is the most intense.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-heartrate" type="t:positiveInt">
<annotation>
<documentation>
<summary>The highest heart rate reached during the session.</summary>
<remarks>The peak heart rate for a session differs from theperson's maximum heart rate in that a person mostlikely will not reach their maximum heart rateduring an aerobic session. This measurement definesthe highest heart rate recorded during the session.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-heartrate" type="t:positiveInt">
<annotation>
<documentation>
<summary>The average heart rate reached during the session.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-heartrate" type="t:positiveInt">
<annotation>
<documentation>
<summary>The minimum heart rate reached during the session.</summary>
<remarks>This is measured in beats per minute.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="energy" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The food energy expended during the session.</summary>
<remarks>This is measured in kilojoules .</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="energy-from-fat" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The food energy burned from fat during the session.</summary>
<remarks>This is measured in kilojoules.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-speed" type="t:speed-value">
<annotation>
<documentation>
<summary>The maximum speed achieved during the session.</summary>
<remarks>This is measured in meters per second.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-speed" type="t:speed-value">
<annotation>
<documentation>
<summary>The average speed achieved during the session.</summary>
<remarks>This is measured in meters per second.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-speed" type="t:speed-value">
<annotation>
<documentation>
<summary>The minimum speed achieved during the session.</summary>
<remarks>This is measured in meters per second.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-pace" type="t:pace-value">
<annotation>
<documentation>
<summary>The maximum pace achieved during the session.</summary>
<remarks>This is measured in seconds per 100 meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-pace" type="t:pace-value">
<annotation>
<documentation>
<summary>The average pace achieved during the session.</summary>
<remarks>This is measured in seconds per 100 meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-pace" type="t:pace-value">
<annotation>
<documentation>
<summary>The minimum pace achieved during the session.</summary>
<remarks>This is measured in seconds per 100 meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-power" type="t:power-value">
<annotation>
<documentation>
<summary>The maximum power achieved during the session.</summary>
<remarks>This is measured in watts.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-power" type="t:power-value">
<annotation>
<documentation>
<summary>The average power achieved during the session.</summary>
<remarks>This is measured in watts.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-power" type="t:power-value">
<annotation>
<documentation>
<summary>The minimum power achieved during the session.</summary>
<remarks>This is measured in watts.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-torque" type="t:torque-value">
<annotation>
<documentation>
<summary>The maximum torque achieved during the session.</summary>
<remarks>This is measured in newton meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-torque" type="t:torque-value">
<annotation>
<documentation>
<summary>The average torque achieved during the session.</summary>
<remarks>This is measured in newton meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-torque" type="t:torque-value">
<annotation>
<documentation>
<summary>The minimum torque achieved during the session.</summary>
<remarks>This is measured in newton meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="left-right-balance" type="t:percentage">
<annotation>
<documentation>
<summary>The power output balance between left and right strokes.</summary>
<remarks>This is measured as a percentage (%) relating to the left.For example, a value of 30 indicates that 30% of the powercame from the left, while 70% came from the right.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-cadence" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The maximum cadence achieved during the session. T</summary>
<remarks>his is measured in revolutions per minute (rpm).</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-cadence" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The average cadence achieved during the session.</summary>
<remarks>This is measured in revolutions per minute (rpm).</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-cadence" type="t:positiveDouble">
<annotation>
<documentation>
<summary>The minimum cadence achieved during the session.</summary>
<remarks>This is measured in revolutions per minute (rpm).</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-temperature" type="t:temperature-value">
<annotation>
<documentation>
<summary>The maximum temperature achieved during the session.</summary>
<remarks>This is measured in degrees Celsius (C).</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-temperature" type="t:temperature-value">
<annotation>
<documentation>
<summary>The average temperature achieved during the session.</summary>
<remarks>This is measured in degrees Celsius (C).</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-temperature" type="t:temperature-value">
<annotation>
<documentation>
<summary>The minimum temperature achieved during the session.</summary>
<remarks>This is measured in degrees Celsius (C).</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="peak-altitude" type="t:altitude-value">
<annotation>
<documentation>
<summary>The maximum altitude achieved during the session.</summary>
<remarks>This is measured in meters above mean sea level.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="avg-altitude" type="t:altitude-value">
<annotation>
<documentation>
<summary>The average altitude achieved during the session.</summary>
<remarks>This is measured in meters above mean sea level.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="min-altitude" type="t:altitude-value">
<annotation>
<documentation>
<summary>The minimum altitude achieved during the session.</summary>
<remarks>This is measured in meters above mean sea level.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="elevation-gain" type="t:length-value">
<annotation>
<documentation>
<summary>The gain in elevation achieved during the session.</summary>
<remarks>This is measured in meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="elevation-loss" type="t:length-value">
<annotation>
<documentation>
<summary>The loss in elevation achieved during the session.</summary>
<remarks>This is measured in meters.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="number-of-steps" type="t:nonNegativeInt">
<annotation>
<documentation>
<summary>Number of steps taken in this session.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="number-of-aerobic-steps" type="t:nonNegativeInt">
<annotation>
<documentation>
<summary>Total steps taken in the aerobic activity range.</summary>
<remarks>Total steps taken in the aerobic activity range. This will be less than orequal to the total steps taken given that the participant may not remainin the aerobic activity range for the entire session.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="aerobic-step-minutes" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>Total duration spent in the aerobic activity range.</summary>
<remarks>This item will be recorded in units of minutes.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="aerobic-session-samples">
<annotation>
<documentation>
<wrapper-class-name>AerobicSessionSamples</wrapper-class-name>
<summary>Defines sample sets for an aerobic session.</summary>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="heartrate-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Heart rate sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="distance-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Distance sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="position-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Position sample set for aerobic session.</summary>
<remarks>Positions are expected to be in eitherlongitude/latitude or UTM coordinates.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="speed-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Speed sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="pace-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Pace sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="power-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Power sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="torque-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Torque sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="cadence-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Cadence sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="temperature-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Temperature sample set for aerobic session.</summary>
<preferred-sample-value>double</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="altitude-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Altitude sample set for aerobic session.</summary>
<preferred-sample-value>double</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="air-pressure-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Air pressure sample set for aerobic session.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="number-of-steps-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Number of steps taken during this sample.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeInteger</preferred-sample-value>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="number-of-aerobic-steps-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Total steps taken in the aerobic activity range.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeInteger</preferred-sample-value>
<remarks>Total steps taken in the aerobic activity range for the relevant sample.This value will be less than or equal to the total steps taken giventhat the participant may not remain in the aerobic activity range forthe entire sample.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="aerobic-step-minutes-samples" type="t:sample-set">
<annotation>
<documentation>
<summary>Total duration spent in the aerobic activity range.</summary>
<preferred-sample-value>urn:com.microsoft.wc.thing.types.nonNegativeDouble</preferred-sample-value>
<remarks>This item will be recorded in units of minutes.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="aerobic-lap-session">
<annotation>
<documentation>
<wrapper-class-name>LapSession</wrapper-class-name>
<summary>One stage of the aerobic session.</summary>
<remarks>For example, one circuit of a running track or one length of a swimming pool.Usually indicated by the person pressing the stopwatch during exercise.This may occur multiple times in a session.</remarks>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="name" type="string">
<annotation>
<documentation>
<summary>Optional description for this lap, such as "lap 1".</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="seconds-into-session" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>The start time of the lap relative to the entire session.</summary>
<remarks>This is measured in seconds.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="lap-session" type="t:aerobic-session">
<annotation>
<documentation>
<summary>The lap session aerobic measurements.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="address">
<annotation>
<documentation>
<wrapper-class-name>Address</wrapper-class-name>
<summary>Defines a physical or mailing address.</summary>
<remarks>An address may be used for either a mailing address orphysical location.</remarks>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="description" type="string">
<annotation>
<documentation>
<summary>A description of the address.</summary>
<remarks>For example, a person may label the address as"My home address" or "My mailing address".</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="is-primary" type="boolean">
<annotation>
<documentation>
<summary>States if the addresses is the primary addressfor contacting the person.</summary>
<remarks>If true, the address is the preferred addressfor contacting the person.</remarks>
</documentation>
</annotation>
</element>
<element maxOccurs="unbounded" name="street" type="string">
<annotation>
<documentation>
<summary>The street portion of the address.</summary>
<remarks>The street address may be made up of one or morelines and should adhere to the standard for thelocale in which the address resides.</remarks>
</documentation>
</annotation>
</element>
<element name="city" type="string">
<annotation>
<documentation>
<summary>The city portion of the address.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="state" type="string">
<annotation>
<documentation>
<summary>The state or province portion of the address.</summary>
</documentation>
</annotation>
</element>
<element name="postcode" type="string">
<annotation>
<documentation>
<summary>The postal code portion of the address.</summary>
<remarks>The postal code should adhere to the standardfor the locale in which the address resides.</remarks>
</documentation>
</annotation>
</element>
<element name="country" type="string">
<annotation>
<documentation>
<summary>The country portion of the address.</summary>
<remarks>This should be a string representation of thecountry as defined by the user. It is not usedfor processing so it doesn't have to be anISO-3166 code. For example, a person couldrefer to the United States of America as "US","USA", "United States", or "United States ofAmerica".</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="county" type="string">
<annotation>
<documentation>
<summary>The county portion of the address.</summary>
<remarks>The county should adhere to the standardfor the locale in which the address resides.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="phone">
<annotation>
<documentation>
<wrapper-class-name>Phone</wrapper-class-name>
<summary>A phone number.</summary>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="description" type="string">
<annotation>
<documentation>
<summary>A person's description of the phone number.</summary>
<remarks>This is used to describe the phone number. Forexample, "home", "mobile", "work", etc.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="is-primary" type="boolean">
<annotation>
<documentation>
<summary>States if the phone number is the primary numberfor contacting the person.</summary>
<remarks>If true, the phone number is the preferred numberfor contacting the person.</remarks>
</documentation>
</annotation>
</element>
<element name="number" type="string">
<annotation>
<documentation>
<summary>The phone number.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="email">
<annotation>
<documentation>
<wrapper-class-name>Email</wrapper-class-name>
<summary>An email address.</summary>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="description" type="string">
<annotation>
<documentation>
<summary>A person's description of the email address.</summary>
<remarks>This is used to describe the email address. Forexample, "personal", "work", etc.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="is-primary" type="boolean">
<annotation>
<documentation>
<summary>States if the email address is the primary addressfor contacting the person.</summary>
<remarks>If true, the email address is the preferred addressfor contacting the person.</remarks>
</documentation>
</annotation>
</element>
<element name="address" type="string">
<annotation>
<documentation>
<summary>The email address.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="communication-type">
<annotation>
<documentation>
<summary>Defines what type of communication is used.</summary>
<remarks>This type is used to specify the communication medium(i.e. phone, email, pager, etc.), the priority of whichmedium is preferred and the class (i.e. home, office,mobile, etc.) of medium.</remarks>
</documentation>
</annotation>
<sequence>
<element name="communication-medium" type="t:codable-value">
<annotation>
<documentation>
<summary>Defines medium of communication used.</summary>
<preferred-vocabulary>communication-medium</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="priority" type="t:positiveInt">
<annotation>
<documentation>
<summary>Defines priority of communication medium.</summary>
<remarks>Preferred medium is lower value, such as phone-1, phone-2, etc.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="class" type="t:codable-value">
<annotation>
<documentation>
<summary>Defines class of communication used.</summary>
<preferred-vocabulary>communication-class</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element name="value" type="string">
<annotation>
<documentation>
<summary>Detailed value of communication type.</summary>
<summary>Examples are phone number, fax number, etc.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="language">
<annotation>
<documentation>
<wrapper-class-name>Language</wrapper-class-name>
<summary>Defines a spoken language.</summary>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="language" type="t:codable-value">
<annotation>
<documentation>
<summary>The language.</summary>
<remarks>The Microsoft Health Lexicon defines codes formany of the common spoken languages. In mostcases the language should be specified by usingthe code retrieved from the Microsoft HealthLexicon by calling GetVocabulary with "languages"as the vocabulary name. If the language doesn'texist the Microsoft Health Lexicon the "text"element of the codable value can be used to specifythe language.</remarks>
<preferred-vocabulary>iso:iso639-1</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="is-primary" type="boolean">
<annotation>
<documentation>
<summary>States if the language is the primary languageof the person.</summary>
<remarks>If true, the language is the preferred spokenlanguage of the person.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="name">
<annotation>
<documentation>
<wrapper-class-name>Name</wrapper-class-name>
<summary>Defines a person's name.</summary>
</documentation>
</annotation>
<sequence>
<element name="full" type="string">
<annotation>
<documentation>
<summary>The person's full name.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="title" type="t:codable-value">
<annotation>
<documentation>
<summary>The person's title.</summary>
<remarks>For example, "Mr.", "Ms.", "Mrs.", etc.</remarks>
<preferred-vocabulary>name-prefixes</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="first" type="string">
<annotation>
<documentation>
<summary>The person's given name.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="middle" type="string">
<annotation>
<documentation>
<summary>The person's middle name.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="last" type="string">
<annotation>
<documentation>
<summary>The person's family/sur name.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="suffix" type="t:codable-value">
<annotation>
<documentation>
<summary>The person's name suffix.</summary>
<remarks>For example, "Jr.", "Sr.", etc.</remarks>
<preferred-vocabulary>name-suffixes</preferred-vocabulary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="person">
<annotation>
<documentation>
<wrapper-class-name>PersonItem</wrapper-class-name>
<summary>Information related to a contact.</summary>
<remarks>A contact may be an emergency contact, contact informationfor a doctor, lawyer, etc.</remarks>
</documentation>
</annotation>
<sequence>
<element name="name" type="t:name">
<annotation>
<documentation>
<summary>The name of the contact person.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="organization" type="string">
<annotation>
<documentation>
<summary>The name of the organization the contactbelongs to.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="professional-training" type="string">
<annotation>
<documentation>
<summary>The person's professional training.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="id" type="string">
<annotation>
<documentation>
<summary>The identification number for the personin the organization.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="contact" type="t:contact">
<annotation>
<documentation>
<summary>Information on how to contact the person.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="type" type="t:codable-value">
<annotation>
<documentation>
<summary>The type of the contact person.</summary>
<remarks>A person may be an emergency contact,a health care provider, etc. The valuesshould be taken from the Microsoft HealthLexicon vocabulary 'person-types'.</remarks>
<preferred-vocabulary>person-types</preferred-vocabulary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="contact">
<annotation>
<documentation>
<wrapper-class-name>Contact</wrapper-class-name>
<summary>Defines a set of contact information.</summary>
<remarks>The contact information can consist of any number ofphysical/mailing addresses, phone numbers, or emailaddresses.</remarks>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" maxOccurs="unbounded" name="address" type="t:address">
<annotation>
<documentation>
<summary>Physical or mailing addresses.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" maxOccurs="unbounded" name="phone" type="t:phone">
<annotation>
<documentation>
<summary>Telephone numbers such as home, work, or mobile.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" maxOccurs="unbounded" name="email" type="t:email">
<annotation>
<documentation>
<summary>Email addresses.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="coded-value">
<annotation>
<documentation>
<wrapper-class-name>CodedValue</wrapper-class-name>
<summary>Defines a value which has been coded in a Microsoft HealthVocabulary.</summary>
<remarks>Microsoft HealthVault provides a set of vocabulariescontaining common health and fitness terms and codes.Vocabularies are identified by their family, type, andversion and contain values which identify an entry in thatvocabulary by code.<br /><br />For example, a prescriptionvocabulary may be identified by the family 'NCPDP', type'SCRIPT', and version '1.0' and contain a code of 10 whichidentifies a 'tablet' form of medication.</remarks>
</documentation>
</annotation>
<sequence>
<element name="value" type="string">
<annotation>
<documentation>
<summary>The code value which identifies the item in thevocabulary.</summary>
<remarks>Codes are unique to the vocabulary they reside in.The codes for a particular vocabulary can beenumerated using GetVocabulary.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="family" type="string">
<annotation>
<documentation>
<summary>The family of the vocabulary.</summary>
<remarks>The family of a vocabulary partially identifies thevocabulary instance along with type and version. Ifthe value is missing the family is assumed to be'wc' which is the Microsoft Health Lexicon.<br />For example, 'NCPDP' is the vocabulary family forcodes in the National Council for Prescription DrugPrograms.</remarks>
</documentation>
</annotation>
</element>
<element name="type" type="string">
<annotation>
<documentation>
<summary>The type of the vocabulary.</summary>
<remarks>This is the name that identifies the vocabulary inthe family of vocabularies.<br /><br />For example, 'SCRIPT' is the vocabulary name formedical prescriptions in the 'NCPDP' family ofvocabularies.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="version" type="string">
<annotation>
<documentation>
<summary>The version of the vocabulary.</summary>
<remarks>The version identifies which version of a vocabularyidentified by the 'type' element the code is in ifmore than one version is present.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="codable-value">
<annotation>
<documentation>
<wrapper-class-name>CodableValue</wrapper-class-name>
<summary>A value that may have codes from one or more MicrosoftHealth vocabularies associated with it.</summary>
<remarks>A codable value represents a value that may reference acoded value in one or more of the Microsoft Healthvocabularies. Though it does not require the value tobe in a vocabulary.<br /><br />For example, aerobic session data has a mode elementof type codable-value. Although many common forms ofaerobic session mode can be found in the MicrosoftHealth Lexicon using the 'aerobic-activities' vocabulary,not all possible activities can be found there. If theactivity does exist in the vocabulary it is recommendedthat applications add the coded-value for that code asa 'code' element and set the 'text' element to thedisplay value for that code. If the activity does notexist in the vocabulary the 'code' element should notbe specified and the 'text' element should contain thedata the user entered.<br /><br />By using the coded-value when available the data canbe easily localized by Microsoft HealthVault andcan also be utilized by applications that are mining thedata based on certain code values.</remarks>
</documentation>
</annotation>
<sequence>
<element name="text" type="string">
<annotation>
<documentation>
<summary>The textual representation of the value.</summary>
<remarks>This may be the display value from one of thecoded-values or it may be the user enteredvalue.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" maxOccurs="unbounded" name="code" type="t:coded-value">
<annotation>
<documentation>
<summary>The codes representing the value from aMicrosoft Health vocabulary.</summary>
<remarks>Some values can be represented by codes in morethat one vocabulary. If appropriate add coded-valuesfrom as many vocabularies as are relevant.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="lab-result-type">
<annotation>
<documentation>
<wrapper-class-name>LabResultType</wrapper-class-name>
<summary>A clinical value within a laboratory result.</summary>
<remarks>This type is define a clinical value within a laboratory result,including value, unit, reference and toxic ranges.</remarks>
</documentation>
</annotation>
<sequence>
<element minOccurs="0" name="value" type="double">
<annotation>
<documentation>
<summary>The value of the laboratory result.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="unit" type="t:codable-value">
<annotation>
<documentation>
<summary>Units used to define laboratory result.</summary>
<preferred-vocabulary>lab-results-units</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="reference-range" type="t:double-range">
<annotation>
<documentation>
<summary>The reference range for the laboratory result.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="toxic-range" type="t:double-range">
<annotation>
<documentation>
<summary>The toxic range for the laboratory result.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="text-value" type="string">
<annotation>
<documentation>
<summary>Free form text for laboratory results.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" maxOccurs="unbounded" name="flag" type="t:codable-value">
<annotation>
<documentation>
<summary>Flag for laboratory results.</summary>
<remarks>Example values are normal, critical, high and low.</remarks>
<preferred-vocabulary>lab-results-flag</preferred-vocabulary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="lab-test-type">
<annotation>
<documentation>
<wrapper-class-name>LabTestType</wrapper-class-name>
<summary>A laboratory test component, including the lab result value details.</summary>
<remarks>This type is used to define components without a larger clinical laboratory report.</remarks>
</documentation>
</annotation>
<sequence>
<element name="when" type="d:date-time">
<annotation>
<documentation>
<summary>The date of the laboratory test.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="name" type="string">
<annotation>
<documentation>
<summary>The name of the laboratory test.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="substance" type="t:codable-value">
<annotation>
<documentation>
<summary>The substance tested.</summary>
<preferred-vocabulary>Contact the HealthVault team to help define this vocabulary.</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="collection-method" type="t:codable-value">
<annotation>
<documentation>
<summary>The collection method for the laboratory test.</summary>
<preferred-vocabulary>Contact the HealthVault team to help define this vocabulary.</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="abbreviation" type="string">
<annotation>
<documentation>
<summary>The abbreviation for the laboratory test.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="description" type="string">
<annotation>
<documentation>
<summary>Free form description of the laboratory test.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" maxOccurs="unbounded" name="code" type="t:codable-value">
<annotation>
<documentation>
<summary>The clinical code for the laboratory test.</summary>
<preferred-vocabulary>LOINC</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="result" type="t:lab-result-type">
<annotation>
<documentation>
<summary>A clinical value within a laboratory result.</summary>
<remarks>This type is define a clinical value within a laboratory result,including value, unit, reference and toxic ranges.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="status" type="t:codable-value">
<annotation>
<documentation>
<summary>The status of the laboratory result.</summary>
<remarks>Examples of status include complete and pending.</remarks>
<preferred-vocabulary>lab-results-status</preferred-vocabulary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="document-reference-type">
<annotation>
<documentation>
<summary>Defines a document reference.</summary>
<remarks>This type is used to define a specific document reference, includingclassification, index and version.</remarks>
</documentation>
</annotation>
<sequence>
<element name="title" type="string">
<annotation>
<documentation>
<summary>The title of the document reference.</summary>
</documentation>
</annotation>
</element>
<element name="url" type="string">
<annotation>
<documentation>
<summary>The URL for the document reference.</summary>
</documentation>
</annotation>
</element>
<element name="document-index" type="string">
<annotation>
<documentation>
<summary>The index for the document reference.</summary>
</documentation>
</annotation>
</element>
<element name="version" type="string">
<annotation>
<documentation>
<summary>The version of the document reference.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="Organization">
<annotation>
<documentation>
<wrapper-class-name>Organization</wrapper-class-name>
<summary>An organization entity.</summary>
<remarks>An entity such as a hospital, a pharmacy, or a doctor's office.</remarks>
</documentation>
</annotation>
<sequence>
<element name="name" type="string">
<annotation>
<documentation>
<summary>The name of the organization.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="contact" type="t:contact">
<annotation>
<documentation>
<summary>The contact information for the organization.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="type" type="t:codable-value">
<annotation>
<documentation>
<summary>The type of the organization.</summary>
<preferred-vocabulary>Contact the HealthVault team to help define this vocabulary.</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="website" type="string">
<annotation>
<documentation>
<summary>The url for the organization's website.</summary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="condition">
<annotation>
<documentation>
<wrapper-class-name>Condition</wrapper-class-name>
<summary>Defines a single health or medical issue/problem.</summary>
<remarks>CCR qualifiers and other notes should go in thecommon/note section of the thing.</remarks>
</documentation>
</annotation>
<sequence>
<element name="name" type="t:codable-value">
<annotation>
<documentation>
<summary>The name or description of the condition.</summary>
<preferred-vocabulary>Contact the HealthVault team to help define this vocabulary.</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="onset-date" type="d:approx-date">
<annotation>
<documentation>
<summary>The date of onset or the first diagnosis.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="resolution-date" type="d:approx-date">
<annotation>
<documentation>
<summary>The date the condition resolved (or formultiple acute episodes, the last date thecondition resolved).</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="resolution" type="string">
<annotation>
<documentation>
<summary>A statement of how the condition was resolved.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="occurrence" type="t:codable-value">
<annotation>
<documentation>
<summary>How often the condition occurs.</summary>
<remarks>Examples: acute, chronic.</remarks>
<preferred-vocabulary>Contact the HealthVault team to help define this vocabulary.</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="severity" type="t:codable-value">
<annotation>
<documentation>
<summary>The severity for the condition</summary>
<preferred-vocabulary>condition-severity</preferred-vocabulary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="structured-measurement">
<annotation>
<documentation>
<wrapper-class-name>StructuredMeasurement</wrapper-class-name>
<summary>A measurement using specific units.</summary>
<remarks>Examples include 30 cc, 500 mg, 15 liters, 30 inches, etc.</remarks>
</documentation>
</annotation>
<sequence>
<element name="value" type="double">
<annotation>
<documentation>
<summary>The value of the measurement.</summary>
</documentation>
</annotation>
</element>
<element name="units" type="t:codable-value">
<annotation>
<documentation>
<summary>The units for the measurement.</summary>
<remarks>A list of vocabularies may be found in the preferred vocabulary.</remarks>
<preferred-vocabulary>measurement-unit-sets</preferred-vocabulary>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="general-measurement">
<annotation>
<documentation>
<wrapper-class-name>GeneralMeasurement</wrapper-class-name>
<summary>A coded measurement and a display representation.</summary>
<remarks>Examples include 30 cc, 500 mg, 15 liters, 30 inches, etc.</remarks>
</documentation>
</annotation>
<sequence>
<element name="display" type="string">
<annotation>
<documentation>
<summary>A user-readable string.</summary>
<remarks>Applications typically display this string.</remarks>
</documentation>
</annotation>
</element>
<element minOccurs="0" maxOccurs="unbounded" name="structured" type="t:structured-measurement">
<annotation>
<documentation>
<summary>The coded value of the measurement</summary>
<remarks>Applications typically use this for calculations, charting, or graphing.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="group-membership-type">
<annotation>
<documentation>
<wrapper-class-name>GroupMembershipType</wrapper-class-name>
<summary>A membership of the record owner in a specific group.</summary>
</documentation>
</annotation>
<sequence>
<element name="name" type="t:codable-value">
<annotation>
<documentation>
<summary>The name of the group type.</summary>
<remarks>Examples: Organization, SpecialProgram, BargainingUnit.</remarks>
<preferred-vocabulary>group-membership-type-name</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element name="value" type="string">
<annotation>
<documentation>
<summary>The value the member has for the group type.</summary>
<remarks>For example, a name of BargainingUnit might have a value of HourlyWorkers.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="volume-value">
<annotation>
<documentation>
<wrapper-class-name>VolumeMeasurement</wrapper-class-name>
<summary>A volume measurement.</summary>
<remarks>A volume measurement consists of the value in liters (L),and anoptional display value. The display value is used to storethe volume measurement in the user's preference of volumeunits. This avoids rounding errors when converting between units.</remarks>
</documentation>
</annotation>
<sequence>
<element name="liters" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>The volume measurement in liters (L).</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the volume measurement.</summary>
<remarks>The display value contains the volume measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<simpleType name="stringnz">
<annotation>
<documentation>
<summary>A string that is at least one character in length.</summary>
</documentation>
</annotation>
<restriction base="string">
<minLength value="1" />
</restriction>
</simpleType>
<simpleType name="stringnznw">
<annotation>
<documentation>
<summary>A non-zero length string that must contain non-whitespace characters.</summary>
</documentation>
</annotation>
<restriction base="string">
<minLength value="1" />
<pattern value="(\s*[^\s]+\s*)+" />
</restriction>
</simpleType>
<simpleType name="string255">
<annotation>
<documentation>
<summary>A string with max of 255 characters.</summary>
</documentation>
</annotation>
<restriction base="string">
<minLength value="1" />
<maxLength value="255" />
</restriction>
</simpleType>
<simpleType name="guid">
<annotation>
<documentation>
<summary>
</summary>
<remarks>
</remarks>
</documentation>
</annotation>
<restriction base="string">
<pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}" />
</restriction>
</simpleType>
<complexType name="pressure-value">
<annotation>
<documentation>
<wrapper-class-name>PressureMeasurement</wrapper-class-name>
<summary>A pressure measurement.</summary>
<remarks>A pressure measurement consists of the value in pascals (Pa),and an optional display value. The display value is used to storethe pressure measurement in the user's preference of pressureunits. This avoids rounding errors when converting between units.</remarks>
</documentation>
</annotation>
<sequence>
<element name="pascals" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>The SI unit of measure for pressure.</summary>
<preferred-vocabulary>pressure-units</preferred-vocabulary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the pressure measurement.</summary>
<remarks>The display value contains the pressure measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="respiratory-rate-value">
<annotation>
<documentation>
<wrapper-class-name>RespiratoryRateMeasurement</wrapper-class-name>
<summary>A respiratory rate measurement.</summary>
<remarks>A respiratory rate measurement consists of the value in breaths perminute and an optional display value. The display value isused to store the respiratory rate measurement in the user's preference of units. This avoids rounding errorswhen converting between units.</remarks>
</documentation>
</annotation>
<sequence>
<element name="breaths-per-minute" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>The number of breaths taken during one minute.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the respiratory rate measurement.</summary>
<remarks>The display value contains the respiratory rate measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="concentration-value">
<annotation>
<documentation>
<wrapper-class-name>ConcentrationMeasurement</wrapper-class-name>
<summary>Concentration value (volume / volume).</summary>
<remarks>Concentration measurement consists of the value in millimoles per liter (mmol/L),and an optional display value. The display value is used to store the measurement in the user's preference of measurement units.</remarks>
</documentation>
</annotation>
<sequence>
<element name="mmolPerL" type="t:nonNegativeDouble">
<annotation>
<documentation>
<summary>The concentration measurement in millimoles per liter.</summary>
</documentation>
</annotation>
</element>
<element minOccurs="0" name="display" type="t:display-value">
<annotation>
<documentation>
<summary>The display value for the concentration measurement.</summary>
<remarks>The display value contains the concentration measurementvalue stored in the user's preference of units.</remarks>
</documentation>
</annotation>
</element>
</sequence>
</complexType>
</schema>
Columns
Columns describe this type in the STT and MTT transformations.
Columns
| Tag | Label | Type | Width |
| summary | Summary | String | 100 |
| wc-type | Type | String | 100 |
| wc-date | Date | DateTime | 50 |
| wc-source | Source | String | 100 |
| wc-id | ID | String | 50 |
| wc-version | Version Stamp | String | 50 |
| wc-note | Note | String | 100 |
| wc-tags | Tags | String | 100 |
| wc-typeid | Type ID | String | 50 |
| wc-brands | Brands | String | 100 |
| wc-relatedthings | Related Items | String | 100 |
| wc-ispersonal | Is Personal | Boolean | 40 |
| wc-audit-personname | Changed by | String | 100 |
| wc-audit-date | Date | DateTime | 100 |
| wc-audit-action | Action | String | 100 |
| wc-audit-appname | App | String | 100 |
| wc-issigned | Signed | Boolean | 50 |
| wc-isdownversioned | Down Versioned | Boolean | 50 |
| wc-isupversioned | Up Versioned | Boolean | 50 |
| wc-state | Item State | String | 50 |
|