Hello Guest, Welcome to Apnea Board !
As a guest, you are limited to certain areas of the board and there are some features you can't use.
To post a message, you must create a free account using a valid email address.

or Create an Account


New Posts   Today's Posts

Garmin O2 oximetry import to Oscar
#1
Smile 
Garmin O2 oximetry import to Oscar
I'm happy with Oscar. However, it would be nice to import my oximetry sleep data as well, I have about a year of data. I can transform the data, but I don't know the format Oscar needs it. Now I have the data in one file per day in json format, the files look something like example below 20210318.json:

{
  "dailySleepDTO": {
    "_comment": "a lot of stuff removed here",
    "calendarDate": "2021-03-18",
    "sleepTimeSeconds": 28080,
    "sleepStartTimestampGMT": 1616015220000,
    "sleepEndTimestampGMT": 1616044020000,
    "sleepStartTimestampLocal": 1616022420000,
    "sleepEndTimestampLocal": 1616051220000,
    "deepSleepSeconds": 1260,
    "lightSleepSeconds": 19260,
    "remSleepSeconds": 7560,
    "awakeSleepSeconds": 720,
    "averageSpO2Value": 90,
    "lowestSpO2Value": 82,
    "highestSpO2Value": 100,
    "averageSpO2HRSleep": 55,
    "averageRespirationValue": 16,
    "lowestRespirationValue": 11,
    "highestRespirationValue": 21
  },
  "sleepMovement": [
    {
      "_comment": "a lot of stuff removed here",
    }
  ],
  "wellnessSpO2SleepSummaryDTO": {
    "userProfilePk": 00,
    "deviceId": 0000,
    "sleepMeasurementStartGMT": "2021-03-17T21:08:00.0",
    "sleepMeasurementEndGMT": "2021-03-18T05:06:00.0",
    "alertThresholdValue": null,
    "numberOfEventsBelowThreshold": null,
    "durationOfEventsBelowThreshold": null,
    "averageSPO2": 90,
    "averageSpO2HR": 55,
    "lowestSPO2": 82
  },
  "wellnessEpochSPO2DataDTOList": [
    {
      "userProfilePK": 00,
      "epochTimestamp": "2021-03-17T21:09:00.0",
      "deviceId": 0000,
      "calendarDate": "2021-03-17",
      "epochDuration": 60,
      "spo2Reading": 84,
      "readingConfidence": 2,
      "spo2Mode": null
    },
    {
      "userProfilePK": 00,
      "epochTimestamp": "2021-03-17T21:10:00.0",
      "deviceId": 0000,
      "calendarDate": "2021-03-17",
      "epochDuration": 60,
      "spo2Reading": 84,
      "readingConfidence": 2,
      "spo2Mode": null
    },
      
    ...
      
    {
      "userProfilePK": 00,
      "epochTimestamp": "2021-03-18T05:01:00.0",
      "deviceId": 0000,
      "calendarDate": "2021-03-18",
      "epochDuration": 60,
      "spo2Reading": 90,
      "readingConfidence": 13,
      "spo2Mode": null
    },
    {
      "userProfilePK": 00,
      "epochTimestamp": "2021-03-18T05:06:00.0",
      "deviceId": 0000,
      "calendarDate": "2021-03-18",
      "epochDuration": 60,
      "spo2Reading": 90,
      "readingConfidence": 11,
      "spo2Mode": null
    }
  ],
  "wellnessEpochRespirationDataDTOList": [
     ... removed a lot of data
  ],
  "sleepStress": [
     ... removed a lot of data
  ]
}
Post Reply Post Reply






Donate to Apnea Board  
#2
RE: Garmin O2 oximetry import to Oscar
Hi,

Nothing to do with your question, but data are recorded in which time interval?
Is there a mode to have more records?

thanks.
Post Reply Post Reply
#3
RE: Garmin O2 oximetry import to Oscar
The data looks like 1 minute samples. Average SpO2 of 90% seems pretty low - is this accurate/normal for you?

Currently there is no way to import this SpO2 data in to OSCAR. You could potentially convert it in to a format that OSCAR recognises such as the Viatom file format (which has 4 second samples). I don't know how useful 1 minute samples are but I guess it's better than nothing. We could potentially create a new importer for smart watch type data - could pull sleep stage, movement, HR and SpO2 data.

What mechanism have you used to get this json data from Garmin? I've done a bit of data extract from Garmin by means of downloading daily zip files using "Export Original" from the daily summary on connect.garmin and then extracting historical heart rate data from the .fit files. It's a bit clunky so a cleaner approach would be useful.

[Edit: looks like your data is coming from connect.garmin via /modern/proxy/wellness-service/wellness/dailySleepData/<user>?date=YYYY-MM-DD or similar?]
Post Reply Post Reply
#4
RE: Garmin O2 oximetry import to Oscar
Data is recorded once a minute, usually there are some slots missing in the data when e.g. the clock could not read the data for 20 min. It is always one minute, but today I guess a software update could change that any time.
For me 90% is about average for a night, seems to be 88-93 average per night. We should not trust too much the exact numbers but the trend seems to be trustable.
I used garmin-connect from github, it works fine but you need coding experience to use it (this package use connect.garmin as you suggested). I agree that the .fit file handling wasn't that fun so I tried this other way.
It would be great to be able to import those data you suggest directly to Oscar, we will definitely see more smart watches in the future.
I looked the web for the Viatom file format, some example files, but didn't find any, is there some good place to dig into that?
Post Reply Post Reply






Donate to Apnea Board  
#5
RE: Garmin O2 oximetry import to Oscar
The OSCAR code for the viatom loader is here:
https://gitlab.com/pholy/OSCAR-code/-/bl...loader.cpp
Post Reply Post Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  CMI PL-66 OE data import format HiTechHiTouch 3 78 Yesterday, 11:48 PM
Last Post: HiTechHiTouch
  Bug: Viatom data reappearing in OSCAR after deleting oximetry data Ratchick 2 129 04-19-2021, 10:10 PM
Last Post: Ratchick
  Hello Oscar ー Goodbye Oscar Hmm888 1 279 04-13-2021, 12:24 PM
Last Post: SarcasticDave94
  O2ring by Wellue Oscar Import gregoryalter 18 500 04-08-2021, 10:25 AM
Last Post: rufeman
  OSCAR - The Guide [Using & Interpeting OSCAR results] SuperSleeper 0 674 03-27-2021, 10:30 AM
Last Post: SuperSleeper
  OSCAR import of Dreem 2 CSV data slowriter 49 4,317 03-24-2021, 06:02 AM
Last Post: davidcmoors
  Weinmann Somnobalance E to OSCAR - import of dates and data not correct A KLERK 18 626 03-16-2021, 08:29 AM
Last Post: Sleeprider


New Posts   Today's Posts






About Apnea Board

Apnea Board is an educational web site designed to empower Sleep Apnea patients.