כתיבה של נתוני הסוכר בדם

האפליקציה יכולה להקליט נתונים של רמת סוכר בדם על ידי כתיבה לסוג הנתונים com.google.blood_glucose. בסוג הנתונים הזה, כל נקודה על הגרף מייצגת קריאה מיידית של רמת סוכר בדם. נקודה על הגרף מכילה שדות של רמת סוכר בדם, קשרים זמניים לארוחות ולשינה ומקור הדגימה שנמדדה. כל השדות הם אופציונליים, למעט רמת סוכר בדם.

  • רמת הסוכר בדם נמדדת ב-mmol/L (1 mmol/L שווה ל-18 mg/dL).
  • אם מציינים את הערך הזה, הוא חייב להיות אחד מהערכים שמופיעים בFIELD_TEMPORAL_RELATION_TO_MEAL.
  • הערך של מאפיין סוג הארוחה צריך להיות אחד מהערכים שמפורטים בFIELD_MEAL_TYPE. אם סוג הארוחה לא ידוע, משתמשים בערך MEAL_TYPE_UNKNOWN.
  • אם מציינים את הקשר הזמני לשינה, צריך להשתמש באחד מהערכים שמפורטים בFIELD_TEMPORAL_RELATION_TO_SLEEP.
  • אם מציינים את המאפיין הזה, ערך המאפיין 'מקור הדגימה של רמת סוכר בדם' צריך להיות אחד מהערכים שמפורטים בFIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE.

יצירת מקור נתונים

Android

כדי לכתוב נקודת נתונים של סוכר בדם, יוצרים DataSource חדש מסוג TYPE_BLOOD_GLUCOSE, כמו בדוגמה הבאה:

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

REST

כדי לכתוב נקודת נתונים של רמת סוכר בדם, צריך ליצור מקור נתונים חדש.

שיטת HTTP

POST

כתובת ה-URL של הבקשה

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

הוספת נתונים

Android

כדי להוסיף נתונים למקור שנוצר למעלה, יוצרים נקודה על הגרף למקור הנתונים הזה, שאפשר להוסיף באמצעות 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

בדוגמה הזו מוצג איך מוסיפים נתונים של רמת הסוכר בדם באמצעות מקור הנתונים שנוצר למעלה.

שיטת HTTP

PATCH

כתובת ה-URL של הבקשה

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

גוף הבקשה

לשם הבהרה, גוף ה-JSON שמוצג בהמשך כולל הערות שמסבירות את השימוש בקבועי השדה health. למרות שממשק Fit API יסיר כרגע תגובות, מומלץ מאוד להסיר אותן מהקוד, כי 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