-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Empatica embraceplus #373
Empatica embraceplus #373
Conversation
18eca3f
to
ab4e225
Compare
ab4e225
to
521f84e
Compare
Hi @fschulting, thanks for this. This looks good. Regarding the biomarkers, I think adding the biomarkers as well would be useful.
From the manual here (https://www.empatica.com/website/manuals/), it looks like the sampling rate varies? Maybe we can check the data to be sure. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Please find some comments below. Thanks
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, | ||
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, | ||
{ "name": "activityCounts", "type": "int", "doc": "Activity counts (counts)." }, | ||
{ "name": "accelerometersStdG", "type": "float", "doc": "Standard deviation of the accelerometer magnitude (g)." }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can remove the G from the name
"fields": [ | ||
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, | ||
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, | ||
{ "name": "spo2Percentage", "type": "int", "doc": "SpO2 level (percentage)." }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similarly "percentage" can be removed from the name here. Units can be removed from the names as they are part of the docs.
"fields": [ | ||
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, | ||
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, | ||
{ "name": "pulseRateBpm", "type": "int", "doc": "Pulse rate in beats per minute (BPM)." }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
similar with Bpm
"fields": [ | ||
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, | ||
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, | ||
{ "name": "respiratoryRateBrpm", "type": "int", "doc": "Respiratory rate in breaths per minute (BRPM)." }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Brpm can be removed
"fields": [ | ||
{ "name": "time", "type": "double", "doc": "Device timestamp in UTC (s)." }, | ||
{ "name": "timeReceived", "type": "double", "doc": "Device receiver timestamp in UTC (s)." }, | ||
{ "name": "sleepDetectionStage", "type": "int", "doc": "Sleep stage." }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can be called "sleepStage"
data: | ||
- type: ACCELEROMETER | ||
sample_rate: | ||
frequency: 32 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
embrace has 64hz acc sensor
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusSystolicPeaks | ||
- type: TAGS | ||
sample_rate: | ||
frequency: 32 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i presume this would be dynamic as associated with button press on the device?
value_schema: .passive.empaticaembraceplus.EmpaticaEmbracePlusRespiratoryRate | ||
- type: SLEEP_DETECTION #Biomarker | ||
sample_rate: | ||
frequency: 32 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again not sure sleep biomarkers would be delivered with such high frequency. I would just change this to dynamic.
@mpgxvii the links lead to 404 Not found.
@fschulting i agree with pauline that these should be added (also useful in the future if we do a cloud integration with empatica care portal)
@fschulting I am also not sure about the frequency of each data type, but i have commented where i was aware. |
@yatharthranjan Ah here's the pdf link instead: https://s3.amazonaws.com/box.empatica.com/manuals/embraceplus/EmbracePlus-UserManual-UM-22-Rev%204.0.pdf Also maybe it would be good to rename to |
Thank you both for the comments, I've made the adjustments. Looking at the raw data, I indeed saw the acc was 64hz, but also that the temperature frequency was 1 instead of 4, so I changed that one as well. And I now indeed adjusted the name to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the changes. LGTM.
Just a heads up -- None of the fields atm in these schemas supports null or default values. Make sure that the data provided by the device always contains all the fields, otherwise the conversion to avro might fail (as the schema does not support null/missing fields).
@fschulting @yatharthranjan what should we do here? merge it for future support? Drop it? is there a way to archive the work? |
We can tag the branch with something like |
I made the schemes and specs for the EmbracePlus based on the documentation.
Two questions @mpgxvii and @yatharthranjan:
I'm not sure whether the schemas for the biomarkers (movement_intensity, oxygen_saturation, pulse_rate, pulse_rate_variability, respiratory_rate, sleep_detection and wearing_detection) are needed, or that I should have only made schemas for the raw data?
Also the sample_rate frequency I now mostly copied from the E4 where I could, but I'm not sure if that's correct.