Tu app puede registrar datos de glucemia escribiendo en el tipo de datos com.google.blood_glucose. En este tipo de datos, cada dato representa una sola lectura instantánea de glucosa en sangre. El punto de datos contiene campos para la concentración de glucosa en sangre, las relaciones temporales con las comidas y el sueño, y la fuente de la muestra que se midió. Todos los campos, excepto el de concentración de glucosa en sangre, son opcionales.
- La concentración de glucemia se mide en mmol/L (1 mmol/L equivale a 18 mg/dL).
- Si se especifica, la relación temporal con la comida debe tener uno de los valores que se indican en
FIELD_TEMPORAL_RELATION_TO_MEAL. - El tipo de comida debe tener uno de los valores que se indican en
FIELD_MEAL_TYPE. Si no se conoce el tipo de comida, usaMEAL_TYPE_UNKNOWN. - Si se especifica, la relación temporal con el sueño debe tener uno de los valores que se indican en
FIELD_TEMPORAL_RELATION_TO_SLEEP. - Si se especifica, la fuente de la muestra de glucemia debe tener uno de los valores que se indican en
FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE.
Cómo crear una fuente de datos
Android
Para escribir un punto de datos de glucosa en sangre, crea un nuevo DataSource de TYPE_BLOOD_GLUCOSE, como se muestra en el siguiente ejemplo:
val bloodGlucoseSource = DataSource.Builder()
.setDataType(TYPE_BLOOD_GLUCOSE)
// ...
.build()
REST
Para escribir un punto de datos de glucemia, crea una nueva fuente de datos.
Método HTTP
POST
Request URL (URL de solicitud)
https://www.googleapis.com/fitness/v1/users/me/dataSources
Cuerpo de la solicitud
{
"dataStreamName": "BloodGlucose",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.blood_glucose"
}
}
Respuesta
Si la fuente de datos se crea correctamente, la respuesta es un código de estado 200 OK. El cuerpo de la respuesta contiene una representación JSON de la fuente de datos, incluida una propiedad datasource.dataStreamId que puedes usar como ID de la fuente de datos para solicitudes posteriores.
Comando CURL
$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request POST \ --header "Content-Type: application/json;encoding=utf-8" --data @blood-glucose-ds.json \ https://www.googleapis.com/fitness/v1/users/me/dataSources
Agrega datos
Android
Para agregar datos a la fuente creada anteriormente, crea un punto de datos para esta fuente de datos, que se puede insertar con la API de History:
val bloodGlucose = DataPoint.builder(bloodGlucoseSource)
.setTimestamp(timestamp, TimeUnit.MILLISECONDS)
.setField(FIELD_BLOOD_GLUCOSE_LEVEL, 5.0f) // 90 mg/dL
.setField(FIELD_TEMPORAL_RELATION_TO_MEAL, FIELD_TEMPORAL_RELATION_TO_MEAL_BEFORE_MEAL)
.setField(FIELD_MEAL_TYPE, MEAL_TYPE_BREAKFAST)
.setField(FIELD_TEMPORAL_RELATION_TO_SLEEP, TEMPORAL_RELATION_TO_SLEEP_ON_WAKING)
.setField(FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE, BLOOD_GLUCOSE_SPECIMEN_SOURCE_CAPILLARY_BLOOD)
.build()
REST
En este ejemplo, se muestra cómo agregar datos de glucemia con la fuente de datos creada anteriormente.
Método HTTP
PATCH
Request URL (URL de solicitud)
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000
Cuerpo de la solicitud
Para mayor claridad, el cuerpo JSON que se muestra a continuación está anotado con comentarios para mostrar el uso de las constantes de campos de salud. Aunque la API de Fit actualmente descarta los comentarios, se recomienda que los quites de tu código, ya que JSON no admite comentarios de forma oficial.
{
"minStartTimeNs": 1574159699023000000,
"maxEndTimeNs": 1574159699023000000,
"dataSourceId": "datasource.dataStreamId",
"point": [
{
"startTimeNanos": 1574159699023000000,
"endTimeNanos": 1574159699023000000,
"dataTypeName": "com.google.blood_glucose",
"value": [
{
// Blood glucose level, 90 mg/dL
"fpVal": 5.0
},
{
// FIELD_TEMPORAL_RELATION_TO_MEAL_BEFORE_MEAL
"intVal": 3
},
{
// MEAL_TYPE_BREAKFAST
"intVal": 1
},
{
// TEMPORAL_RELATION_TO_SLEEP_ON_WAKING
"intVal": 3
},
{
// BLOOD_GLUCOSE_SPECIMEN_SOURCE_CAPILLARY_BLOOD
"intVal": 2
}
]
}
]
}Respuesta
Si los datos de glucosa en sangre se agregan correctamente, la respuesta es un código de estado 200 OK. El cuerpo de la respuesta contiene una representación JSON de los datos de glucosa en sangre que se agregaron.
Comando CURL
$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request PATCH \
--header "Content-Type: application/json;encoding=utf-8" --data @blood-glucose-data.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000