Skip to content
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

Closed
wants to merge 3 commits into from
Closed

Empatica embraceplus #373

wants to merge 3 commits into from

Conversation

fschulting
Copy link

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.

@mpgxvii
Copy link
Member

mpgxvii commented Apr 2, 2024

  • 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?

Hi @fschulting, thanks for this. This looks good. Regarding the biomarkers, I think adding the biomarkers as well would be useful.

  • Also the sample_rate frequency I now mostly copied from the E4 where I could, but I'm not sure if that's correct.

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.

Copy link
Member

@yatharthranjan yatharthranjan left a 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)." },
Copy link
Member

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)." },
Copy link
Member

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)." },
Copy link
Member

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)." },
Copy link
Member

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." },
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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
Copy link
Member

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.

@yatharthranjan
Copy link
Member

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.

@mpgxvii the links lead to 404 Not found.

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?

@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)

Also the sample_rate frequency I now mostly copied from the E4 where I could, but I'm not sure if that's correct

@fschulting I am also not sure about the frequency of each data type, but i have commented where i was aware.

@mpgxvii
Copy link
Member

mpgxvii commented Apr 2, 2024

@mpgxvii the links lead to 404 Not found.

@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 empatica_embrace_plus_..?

@fschulting
Copy link
Author

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 empatica_embrace_plus_..

Copy link
Member

@yatharthranjan yatharthranjan left a 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).

@Bdegraaf1234
Copy link
Member

@fschulting @yatharthranjan what should we do here? merge it for future support? Drop it? is there a way to archive the work?

@yatharthranjan
Copy link
Member

yatharthranjan commented Jun 10, 2024

We can tag the branch with something like archive/empatica-embrace-plus. You can then close this PR and delete the branch. If in future we need to restart work on it we can recreate a branch from the tag git checkout -b empatica-embraceplus archive/empatica-embrace-plus.

@Bdegraaf1234 Bdegraaf1234 deleted the empatica-embraceplus branch July 11, 2024 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants