We have been doing some design work around storing body composition information, and would like your comments on the following types. Does the type make sense to you as a whole, do the field names and descriptions make sense, is there something missing, etc.?
Our initial scenario was to store the data that is collected by body composition scales – information like % body fat, muscle mass, bone mass, that sort of thing. As we normally do as part of our data type design, we look at other places this sort of data might come from, to make sure that the data type we come up with has enough flexibility to store the information from various sources.
That led us into an interesting exploration of the various technologies for measuring body composition.
After a fair bit of discussion about how to represent the data, we created a new type named Body Composition, where instances of the type store individual body composition measurements. This type different from types like Lab Test Results, where we bucket together a set of measurements into, well, a “set of measurements”. We think that it will be easier to find the information you’re looking for with this approach.
Here’s the type as it is currently defined. As usual, required fields are bold.
|
Field Name |
Data Type |
Description |
| when |
date-time |
The date and time of the measurement |
| measurement-method |
codable-value |
The technique used to obtain the measurement. Example: bioelectrical impedence, DXA, Skinfold (calipers) Vocabulary: body-composition-measurement-method |
| body-part |
codable-value |
The body part that is the subject of the measurement. Examples: Left arm, head, torso. Vocabulary: body-composition-body-parts |
| measurement-name |
codable-value |
The name of the measurement Examples: body fat, body muscle. Vocabulary: body-composition-measurement-names |
| value |
BodyCompositionValue |
The value of the measurement |
where BodyCompositionValue is a new complex type. It stores either a weight value (like bone mass), or a percentage value (like % fat).
|
Field Name |
Data Type |
Description |
| mass-value |
weight-value |
A body composition measurement stored as a mass. |
| percent-value |
percentage |
A body composition measurement stored as a percentage. |
In the body composition type, the measurement method stores the technology used. The vocabulary has the following entries:
- Near-infrared interactance
- Skinfold (calipers)
- Hydrostatic (underwater) weighing
- Bioelectrical impedence
- Air Displacement
- DXA/DEXA
Body part is an interesting ones. While most of the technologies only give an overall measurement, the DXA technology can give readings for individual parts of the body (ie the body fat % of your left arm is 8%). If this field is not present, the measurement is for the entire body.
Measurement name defines what quantity is being measured. The vocabulary currently defines the following entries:
- Body fat percentage
- Body fat mass
- Body lean percentage
- Body lean mass
- Bone mineral density
- Body bone percentage
- Body bone mass
- Body water percentage
- Body water mass
The actual measured value is stored in the value element. A weight-value is used for mass measurements, and a percentage for percentage measurements.
Calorie Profile
Some of the technologies used for body composition measurement also provide a guideline for how much someone might eat to maintain their current weight. We decided to add a type to store that information and similar information that might be generated through a calorie calculator or a skilled human.
This type is very simple – it just stores the kind of goal that you’re storing, and the calorie value.
|
Field Name |
Data Type |
Description |
| when |
date-time |
Date and time the goals were created |
| goal-area |
codable-value |
The goal. Examples: Maintain weight, lose weight slowly, gain weight. Vocabulary: calorie-profile-goal-areas |
| calories |
general-measurement |
The number of calories to support the goal. Examples: 2716 calories/day |
Not included
Some devices produce additional information (such as visceral fat rating), which we have omitted from the data type because we could not find an objective way to define the information.