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

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

  • ריכוז הגלוקוז בדם נמדד ביחידות mmol/L (מילימול אחד לליטר שווה ל-18 מ"ג לד"ל).
  • אם צוין, יחס זמן לארוחה חייב להיות אחד מהערכים המופיעים ב-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 שמוצג למטה כולל הערות, כדי להראות את השימוש בקבועים של שדה הבריאות. למרות ש-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