アプリは、com.google.blood_pressure データ型に書き込むことで血圧データを記録できます。このデータ型では、各データポイントは 1 回の血圧測定値を表します。データポイントには、収縮期血圧と拡張期血圧、測定時の体の姿勢、測定を行った体の部位のフィールドが含まれます。
systolicフィールドとdiastolicフィールドは必須ですが、他のフィールドはすべて省略可能です。systolic(上の数値)とdiastolic(下の数値)の血圧は mmHg で測定されます。- 指定する場合、体の位置は次のいずれかの値にする必要があります。
1- 立っている2- 座っている3- 横になっている4- 半リクライニング
指定する場合、測定場所は次のいずれかの値にする必要があります。
1- 左手首2- 右手首3- 左上腕4- 右上腕
Android
血圧データポイントを書き込むには、次の例に示すように、TYPE_BLOOD_PRESSURE の新しい DataSource を作成します。
val bloodPressureSource = DataSource.Builder()
.setDataType(TYPE_BLOOD_PRESSURE)
// ...
.build()
val bloodPressure = DataPoint.builder(bloodPressureSource)
.setTimestamp(timestamp, TimeUnit.MILLISECONDS)
.setField(FIELD_BLOOD_PRESSURE_SYSTOLIC, 120.0f)
.setField(FIELD_BLOOD_PRESSURE_DIASTOLIC, 80.0f)
.setField(FIELD_BODY_POSITION, BODY_POSITION_SITTING)
.setField(
FIELD_BLOOD_PRESSURE_MEASUREMENT_LOCATION,
BLOOD_PRESSURE_MEASUREMENT_LOCATION_LEFT_UPPER_ARM)
.build()
REST
データソースの作成
血圧データポイントを書き込むには、新しいデータソースを作成します。
HTTP メソッド
POST
リクエスト URL
https://www.googleapis.com/fitness/v1/users/me/dataSources
リクエストの本文
{
"dataStreamName": "BloodPressure",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.blood_pressure"
}
}
レスポンス
データソースが正常に作成されると、200 OK HTTP レスポンス ステータス コードが返されます。レスポンスの本文には、datasource.dataStreamId プロパティを含むデータソースの JSON 表現が含まれます。この ID を dataSourceId として使用して、データを追加します。
血圧データを追加する
com.google.blood_pressure 型のデータポイントを作成してデータを追加します。
HTTP メソッド
PATCH
リクエスト URL
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000
リクエストの本文
明確にするために記すと、以下の JSON 本文には、健全性フィールド定数の使用を示すコメントが追加されています。
{
"dataSourceId": "datasource.dataStreamId",
"maxEndTimeNs": 1574159699023000000,
"minStartTimeNs": 1574159699023000000,
"point": [
{
"dataTypeName": "com.google.blood_pressure",
"endTimeNanos": 1574159699023000000,
"startTimeNanos": 1574159699023000000,
"value": [
{
"fpVal": 120.0 // systolic
},
{
"fpVal": 80.0 // diastolic
},
{
"intVal": 2 // Body position enum value for sitting
},
{
"intVal": 3 // Location enum value for left upper arm
}
]
}
]
}