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

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

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