Skip to main content

User biomarkers

A user biomarker is one value of a biomarker, read from the participant's phone health store. The apps record steps, heart rate, resting heart rate, heart-rate variability (SDNN on iPhone, RMSSD on Android: different measures, never comparable, both in milliseconds), sleep duration, flights climbed, body mass and active energy, once the participant has allowed it. A tenant's build of the apps can be made to record none at all.

Sync​

The phone is the source of truth for what it records; the server merges and never overwrites.

  • Readings are stored on the phone first and sent up in batches of at most 200 (syncUserBiomarkers), on opening the app (after 15 minutes since the last sync), after a reading is stored, and on a push.
  • Every reading carries an id the phone generates, and a resend is an upsert, so sending the same batch twice changes nothing.
  • Readings are refused with consent_required until the participant has consented.
  • Each reading arriving runs the participant's journeys, so a condition on a measure is looked at again.

A blood pressure typed into a blood_pressure atom is a response, not a biomarker.

Staff reading a participant's biomarkers need the participant's consent to stand, and each read is written to the audit trail.