داده های گلوکز خون را بنویسید

برنامه شما می‌تواند داده‌های قند خون را با نوشتن در نوع داده com.google.blood_glucose ثبت کند. در این نوع داده، هر نقطه داده نشان‌دهنده یک قرائت لحظه‌ای قند خون است. نقطه داده شامل فیلدهایی برای غلظت قند خون، روابط زمانی با وعده‌های غذایی و خواب و منبع نمونه اندازه‌گیری شده است. همه فیلدها به جز غلظت قند خون اختیاری هستند.

  • غلظت گلوکز خون بر حسب میلی‌مول در لیتر (mmol/ L) اندازه‌گیری می‌شود (1 میلی‌مول در لیتر معادل 18 میلی‌گرم در دسی‌لیتر است).
  • در صورت مشخص شدن، رابطه زمانی با meal باید یکی از مقادیر ذکر شده در FIELD_TEMPORAL_RELATION_TO_MEAL را داشته باشد.
  • نوع غذا باید یکی از مقادیر ذکر شده در FIELD_MEAL_TYPE را داشته باشد. اگر نوع غذا مشخص نیست، MEAL_TYPE_UNKNOWN استفاده کنید.
  • در صورت مشخص شدن، رابطه زمانی با خواب باید یکی از مقادیر ذکر شده در FIELD_TEMPORAL_RELATION_TO_SLEEP را داشته باشد.
  • در صورت مشخص شدن، منبع نمونه قند خون باید یکی از مقادیر ذکر شده در FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE را داشته باشد.

ایجاد منبع داده

اندروید

برای نوشتن یک نقطه داده گلوکز خون، یک DataSource جدید از TYPE_BLOOD_GLUCOSE ایجاد کنید، همانطور که در مثال زیر نشان داده شده است:

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

استراحت

برای نوشتن یک نقطه داده قند خون، یک منبع داده جدید ایجاد کنید.

روش HTTP

POST

درخواست آدرس اینترنتی

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

درخواست بدنه

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

پاسخ

اگر منبع داده با موفقیت ایجاد شود، پاسخ یک کد وضعیت 200 OK است. بدنه پاسخ شامل یک نمایش JSON از منبع داده، از جمله ویژگی datasource.dataStreamId است که می‌توانید به عنوان شناسه منبع داده برای درخواست‌های بعدی استفاده کنید.

دستور 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

افزودن داده

اندروید

برای افزودن داده به منبع ایجاد شده در بالا، یک نقطه داده برای این منبع داده ایجاد کنید که می‌تواند با استفاده از 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()

استراحت

این مثال، افزودن داده‌های قند خون با استفاده از منبع داده ایجاد شده در بالا را نشان می‌دهد.

روش HTTP

PATCH

درخواست آدرس اینترنتی

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

درخواست بدنه

برای وضوح بیشتر، بدنه JSON نشان داده شده در زیر با توضیحات حاشیه‌نویسی شده است تا استفاده از ثابت‌های فیلد سلامت را نشان دهد. اگرچه API Fit در حال حاضر توضیحات را حذف می‌کند، اکیداً توصیه می‌شود که آنها را از کد خود حذف کنید ، زیرا JSON رسماً از توضیحات پشتیبانی نمی‌کند.

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

پاسخ

اگر داده‌های قند خون با موفقیت اضافه شوند، پاسخ یک کد وضعیت 200 OK است. بدنه پاسخ شامل یک نمایش JSON از داده‌های قند خون اضافه شده است.

دستور 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