Apnea Board Forum - CPAP | Sleep Apnea
Can you provide example data file(s) for Viatom/Wellue, Somnopose or CMS0-50D? - Printable Version

+- Apnea Board Forum - CPAP | Sleep Apnea (https://www.apneaboard.com/forums)
+-- Forum: Public Area (https://www.apneaboard.com/forums/Forum-Public-Area)
+--- Forum: Software Support Forum (https://www.apneaboard.com/forums/Forum-Software-Support-Forum)
+--- Thread: Can you provide example data file(s) for Viatom/Wellue, Somnopose or CMS0-50D? (/Thread-Can-you-provide-example-data-file-s-for-Viatom-Wellue-Somnopose-or-CMS0-50D)



Can you provide example data file(s) for Viatom/Wellue, Somnopose or CMS0-50D? - HeyBigGuy - 10-23-2022

Hi everyone....

I'm interested in devising a way to import data from Wellue/Viatom's Checkme Doctor Pro units into Oscar.   If you use any of the devices/programs listed in the subject line here, would you mind sharing samples with me so that I can compare the format to that used by my device?

I'll either reformat my data to match an existing import method...  or maybe I'll even try to code an adaptation of an importer function to work with this device's format.

Basically, this Checkme Doctor Pro binary looks like a simple list of heart rate and SpO2 readings.  There is nothing but the readings, alternating between the two data points, so I'm guessing that they take the start time from the filename and then the data is sequential every 2 seconds.  "97 77 97 76 98 77 ..."

The file is stored in a similar location to the other programs listed on the Oscar wiki....
/Users/[username]/Library/Containers/cn.com.viatom.pc.checkmebrowserpro/Data/Library/Application\ Support/Checkme\ Browser\ Pro/DATA/

If it isn't possible to send your example data file privately on this forum, just let me know and I will PM you my email address.

Unfortunately, trying to use the existing Viatom import immediately causes Oscar to crash (MacOS M1).

I've seen some people suggest using the Somnopose CSV format to import alternative data but I'm not 100% clear on how that works.   Can you specify arbitrary data labels for different time series in that format, or are people just importing whatever data points of interest under Somnopose names?


RE: Can you provide example data file(s) for Viatom/Wellue, Somnopose or CMS0-50D? - kappa - 10-23-2022

The Somnopose import format for OSCAR is based on the Somnopose format described here. However there are some additional changes to make its use more flexible.

The format is simple CSV (ASCII, no Microsoft headers, no double quotes). The header line must contain a 'timestamp' label (case insensitive) and one or more of 'orientation', 'inclination' and 'movement'. Other fields may be present but are ignored. Timestamp is in seconds since Jan 1, 2001 00:00 GMT, with millisecond precision allowed, with other fields are floats. Multiple sessions may be present in a single file, separated by a row where the timestamp is "-" (without quotes). If a somnopose session with the same starting timestamp is already present in the OSCAR database it will be ignored.

I think it would be better to fix the Viatom/Wellue importer to handle the Checkme doctor pro format, as it's potentially similar (although the O2Ring/etc have 4 bytes per sample).


RE: Can you provide example data file(s) for Viatom/Wellue, Somnopose or CMS0-50D? - HeyBigGuy - 10-25-2022

Thanks, I'll check out the source code and see if one or the other jumps out as easier for my abilities.

Considering that I have seen a number of requests for a generic oximeter CSV import, I wonder if there would be more utility in going that route?  Could the Somnopose code be adapted by mostly swapping out 'orientation', 'inclination' and 'movement' for one or more of HR, Sp02 and PI?

[apologies for the thread keys below but I am not allowed to post links, even internal board xlinks, as a new member]

@2SleepBetta has used Somnopose import for other types of data, so seems like it may be straightforward to adapt the code: [Thread key: "Thread-OSCAR-SpO2-CSV-import" (pid 426140) ]

Such an importer might be useful for HR alone should someone have it via a watch, fitness tracker or other monitor.  Many trackers only do spot checks rather than continuous, but perhaps still interesting: [Thread key is: "Thread-Import-CSV-to-Oscar" ]

ALSO... I saw someone else post about the fancier type of Contec Apnea Screener (RS01 I think).... so if 'airflow' were another field option in the importer it could cover that device too.  (Maybe this one is a can of worms so maybe I'll skip.  I don't have a test device, and don't know anyway how Oscar would react to having airflow parameter without other data a CPAP would normally provide.)

This thread says that Zeo and Dream devices also use CSV so I'll check out those importers too.  [Thread key: "Thread-OSCAR-SpO2-CSV-import" ]

I did find a few purported Viatom binary files in the Oscar repository but mostly those that failed to import and posted for that reason.   If anyone has a confirmed working example, I'd love to have it as a reference if open to sharing.   The following thread does have a few details (cross linking for anyone pursuing this question in the future): Thread slug: "Thread-Added-a-new-pulse-oximeter-importer" ]

This thread has some details about Viatom data via the ViHealth app and binary export: [key: "Thread-ViHealth-2-65-0-App-for-Viatom-Wellue-Oximeters-Prevents-Binary-File-Creation" ]

Unfortunately, my Viatom device uses the Viatom "MyBeats" app which does have CSV but no binary export. I'll send Viatom a feature request for binary export in the same format in the MyBeats app.


RE: Can you provide example data file(s) for Viatom/Wellue, Somnopose or CMS0-50D? - Crimson Nape - 10-25-2022

The thread that you referred to, ViHealth(2.65.0) App for Viatom/Wellue Oximeters Prevents Binary File Creation, is almost a year and half old and is no longer a concern. Viatom/Wellue put the binary file creation back in their app beginning with version 2.68.  With that said, the underlying data storage is an SQL database.  We have SQL scripts available in several threads that allow the extraction of the data and create the binary file. They did jack around with the database and some table names, but it's not a biggie.

- Red


RE: Can you provide example data file(s) for Viatom/Wellue, Somnopose or CMS0-50D? - HeyBigGuy - 10-25-2022

Thanks for the details.  Yeah, I read that was resolved, but I found the thread helpful while trying to get my bearings.

I have not dug around in the iOS app much but now that we're talking about it maybe I'll check the Android app (my device uses Viatom's "MyBeats") to see if it by chance has a binary export.

On the desktop, my device uses the "CheckMe Browser" software and while there is a DB,  I could not find any time series data in it (at least for oximetry).  They have a tiny overview/summary table and I'm guessing just use this as an index to load from the binary. 

Code:
sqlite> .schema tb_slm
CREATE TABLE tb_slm(
flowid       varchar(40),
checktime    varchar(20),
totalTime    int,
lowOxiTime   int,
lowOxiCount  int,
lowestOxi    int,
averageOxi   int,
smile        tinyint,
primary key (flowid)
);

And this is the content of that table....  the last row corresponds to my overnight "sleep monitor" session.  The others are for quick oximeter checks.


Code:
sqlite> select * from tb_slm;
202210191727232011101254|20221019172723|51|0|0|97|97|0
202210192130482011101254|20221019213048|22|0|0|95|95|0
202210200033552011101254|20221020003355|31|0|0|97|97|0
202210200034592011101254|20221020003459|24554|154|6|86|95|1

I sure wish they would standardize their mobile/desktop apps, or at least allow access to the O2 Insight Pro for any Viatom oximeter (or at least those at the higher end of the range).  The CheckMe Pro is like a Swiss Army knife... two ways to take oximetry (finger in the device or external wired fingertip sensor), two ways to do ECG's (hand-held or sticky pads), bluetooth blood pressure cuff, bluetooth glucose tester, and even a pedometer.  Too bad it doesn't keep positional data, or at least movement, as part of the sleep test!  (It even comes with a "holter" for the ECG but the lead for the oximeter won't reach that.)