Zapisuj dane o glukozie we krwi

Aplikacja może zapisywać dane o glukozie we krwi, zapisując dane typu com.google.blood_glucose. W tym typie danych każdy punkt danych reprezentuje jeden chwilowy odczyt poziomu glukozy we krwi. Punkt danych zawiera pola dotyczące stężenia glukozy we krwi, czasowych relacji z posiłkami i snem oraz źródła zmierzonej próbki. Wszystkie pola oprócz stężenia glukozy we krwi są opcjonalne.

  • Stężenie glukozy we krwi jest mierzone w mmol/L (1 mmol/l to odpowiednik 18 mg/dl).
  • Jeśli jest określony, relacja czasowa z posiłkiem musi mieć jedną z wartości wymienionych w polu FIELD_TEMPORAL_RELATION_TO_MEAL.
  • Typ posiłku musi mieć jedną z wartości wymienionych w polu FIELD_MEAL_TYPE. Jeśli rodzaj posiłku jest nieznany, użyj MEAL_TYPE_UNKNOWN.
  • Jeśli jest określony, stosunek czasowy do snu musi mieć jedną z wartości wymienionych w FIELD_TEMPORAL_RELATION_TO_SLEEP.
  • Jeśli źródło krwi do pomiaru glukozy we krwi musi mieć jedną z wartości wymienionych w polu FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE, musi mieć jedną z tych wartości.

Tworzenie źródła danych

Android

Aby zapisać punkt danych o glukozie we krwi, utwórz nowy element DataSource z TYPE_BLOOD_GLUCOSE, jak pokazano w tym przykładzie:

val bloodGlucoseSource = DataSource.Builder()
    .setDataType(TYPE_BLOOD_GLUCOSE)
    // ...
    .build()

REST

Aby zapisać punkt danych o glukozie we krwi, utwórz nowe źródło danych.

Metoda HTTP

POST

URL żądania

https://www.googleapis.com/fitness/v1/users/me/dataSources

Treść żądania

{
  "dataStreamName": "BloodGlucose",
  "type": "raw",
  "application": {
    "detailsUrl": "http://example.com",
    "name": "My Example App",
    "version": "1"
  },
  "dataType": {
    "name": "com.google.blood_glucose"
   }
}

Odpowiedź

Jeśli źródło danych zostanie utworzone, odpowiedź będzie kodem stanu 200 OK. Treść odpowiedzi zawiera reprezentację źródła danych w formacie JSON, w tym właściwość datasource.dataStreamId, której możesz użyć jako identyfikatora źródła danych w kolejnych żądaniach.

Polecenie 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

Dodawanie danych

Android

Aby dodać dane do utworzonego wyżej źródła, utwórz dla tego źródła danych punkt danych, który można wstawić za pomocą interfejsu History API:

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

Ten przykład pokazuje dodawanie danych o glukozie we krwi za pomocą źródła danych utworzonego powyżej.

Metoda HTTP

PATCH

URL żądania

https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000

Treść żądania

Dla jasności poniżej widoczna jest treść JSON oznaczona komentarzami, które pokazują korzystanie ze stałych pól dotyczących stanu zdrowia. Chociaż interfejs Fit API obecnie pomija komentarze, zdecydowanie zalecamy usunięcie ich z kodu, ponieważ JSON nie obsługuje oficjalnie komentarzy.

{
  "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
        }
      ]
    }
  ]
}

Odpowiedź

Jeśli dane o glukozie we krwi zostaną dodane, odpowiedź będzie miała kod stanu 200 OK. Treść odpowiedzi zawiera dodane dane glukozy we krwi w formacie JSON.

Polecenie 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