Ghi dữ liệu đường huyết

Ứng dụng của bạn có thể ghi dữ liệu đường huyết bằng cách ghi vào kiểu dữ liệu com.google.blood_glucose. Trong loại dữ liệu này, mỗi điểm dữ liệu đại diện cho một chỉ số đường huyết tức thời. Điểm dữ liệu này chứa các trường về nồng độ đường huyết, mối quan hệ tạm thời với bữa ăn và giấc ngủ, cũng như nguồn gốc của mẫu vật được đo. Tất cả các trường, ngoại trừ nồng độ đường huyết, đều không bắt buộc.

  • Nồng độ đường huyết được đo bằng mmol/L (1 mmol/L tương đương với 18 mg/dL).
  • Nếu được chỉ định, mối quan hệ tạm thời với bữa ăn phải có một trong các giá trị được liệt kê trong FIELD_TEMPORAL_RELATION_TO_MEAL.
  • Loại bữa ăn phải có một trong các giá trị được liệt kê trong FIELD_MEAL_TYPE. Nếu bạn không biết loại bữa ăn, hãy dùng MEAL_TYPE_UNKNOWN.
  • Nếu được chỉ định, mối quan hệ tạm thời với giấc ngủ phải có một trong các giá trị được liệt kê trong FIELD_TEMPORAL_RELATION_TO_SLEEP.
  • Nếu được chỉ định, nguồn mẫu đường huyết phải có một trong các giá trị được liệt kê trong FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE.

Tạo một nguồn dữ liệu

Android

Để ghi một điểm dữ liệu về đường huyết, hãy tạo một DataSource mới của TYPE_BLOOD_GLUCOSE, như trong ví dụ sau:

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

REST

Để ghi một điểm dữ liệu về đường huyết, hãy tạo một nguồn dữ liệu mới.

Phương thức HTTP

POST

URL yêu cầu

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

Nội dung yêu cầu

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

Đáp

Nếu nguồn dữ liệu được tạo thành công, thì phản hồi sẽ là mã trạng thái 200 OK. Phần nội dung phản hồi chứa một biểu thị JSON của nguồn dữ liệu, bao gồm cả thuộc tính datasource.dataStreamId mà bạn có thể dùng làm mã nhận dạng nguồn dữ liệu cho các yêu cầu tiếp theo.

Lệnh 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

Thêm dữ liệu

Android

Để thêm dữ liệu vào nguồn đã tạo ở trên, hãy tạo một điểm dữ liệu cho nguồn dữ liệu này. Bạn có thể chèn điểm dữ liệu bằng 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

Ví dụ này minh hoạ cách thêm dữ liệu về đường huyết bằng cách sử dụng nguồn dữ liệu đã tạo ở trên.

Phương thức HTTP

PATCH

URL yêu cầu

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

Nội dung yêu cầu

Để cho rõ ràng, phần nội dung JSON bên dưới được chú thích bằng các nhận xét, nhằm cho thấy cách sử dụng các hằng số trường sức khoẻ. Mặc dù Fit API hiện sẽ loại bỏ các nhận xét, nhưng bạn nên xoá các nhận xét này khỏi mã của mình, vì JSON không chính thức hỗ trợ nhận xét.

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

Đáp

Nếu dữ liệu đường huyết được thêm thành công, thì phản hồi sẽ là mã trạng thái 200 OK. Phần nội dung phản hồi chứa một bản trình bày JSON về dữ liệu đường huyết đã được thêm.

Lệnh 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