I think the most important thing that the modern sensors and wearables offer us is really understanding the patient’s daily lived experience. I think we can all agree that even the most conscientious clinician struggles to truly understand in that 15-minute primary care visit, where you see the patient every 6 months, when they say, “I’m feeling tired,” what does that actually mean? These symptoms that are coming to us in episodic moments, and we have episodic assessments of them, but they’re lived throughout the day and throughout the 6-month or 1-year period. And the beauty of the sensors we now have is that there’s potentially an objective way to get a sense of how that patient’s doing.
Dr Kheterpal in “Tapping AI’s Strengths—From Operating Room Safety to Wearable Device Interpretation“, JAMA July 5, 2024 (our emphasis).
The Copenhagen Research Platform (CARP) is a family of open-source components for digital phenotyping.
Before reading on what CARP is, we recommend reading “Opportunities and challenges in the collection and analysis of digital phenotyping data” by Jukka-Pekka Onnela, which provides an excellent introduction to the concept of Digital Phenotyping and especially what type of data can be collected and for what purpose, as well as the many technical challenges associated with this methodology.
Purpose of CARP
CARP is designed to serve two purposes:
- It is a platform for digital phenotyping, i.e. the use of mobile and wearable sensor technology to collect longitudinal, ambulatory, contextual, and real-time data from study participants. This includes physiological data (e.g., ECG), contextual data (e.g., GPS), behavioral data (e.g., sleep or steps), patient-reported data (e.g., questionnaires), and cognitive assessments (e.g., reaction time assessment).
- It is a software architecture and a set of open-source software components for researchers and software engineers to build application-specific mobile health (mHealth) applications for specific diseases. For example, for context-aware behavioral therapy in mental health; for collection and analysis of ambulatory and contextual cardiovascular data incl. ECG; and for adaptive assessment of physiological and behavioral data in type 2 diabetes.
Components
Figure 1 shows the overall set of components of CARP, which roughly can be divided into 4 main families.
- CARP Domain Models – The domain model of CARP is defined in the CARP Core domain model. This model is written in Kotlin and reflects a domain-driven software architecture (aka “onion” model or “clean architecture”). The carp_core Flutter package is a Dart implementation of this domain model for mobile app development in Flutter/Dart.
- Server-side infrastructure – The server-side – or cloud-based – part of CARP consists of three components:
- The CARP Web Services (CAWS) runs the entire infrastructure and handles users (researcher and study participants), study protocols, studies, and data management. CAWS is the backbone of CARP.
- The CARP Web Portal is a web portal (user interface) for research to create, manage, and run studies, including enrolling participants.
- The CARP Gardener Service can collect data from other web services in a server-to-server setup. For example, the collection of Fitbit data from the online Fitbit API or Dexcom glucose data from the Dexcom server API.
- Mobile & Wearable Sensing – The CARP Mobile Sensing (CAMS) Framework is designed to enable researchers and software engineers to build cross-platform (iOS / Android) mobile and wearable sensing applications for mobile health (mHealth). As such, CAMS is a programming framework that can be embedded in domain-specific applications (mobile “apps”) and add sensing capabilities to them. CAMS is a whole suite of Flutter packages, consisting of:
- The core sensing framework
- A set of sampling packages that each collect different types of data from onboard sensors (e.g., GPS) or wearable sensors (e.g., Polar).
- A set of data backend packages that know how to store or upload data to different databases (e.g., SQLite) or cloud-based services (e.g., CAWS or Firebase).
- User-generated Data – The CARP family also comes with a set of components for collecting user-generated data from mobile health apps:
- The Research Package is a Flutter implementation of the Apple Research Kit and supports the creation and collection of informed consent on the phone (aka. “eConsent”) and issuing surveys (aka. questionnaires).
- The Cognition Package is a framework for creating and issuing cognitive assessment tasks to users on the phone and comes with 14 pre-made cognitive tests to be used as-is. Note, again that the Research and Cognition Packages are software frameworks designed to be embedded into domain-specific applications and are not, as such, end-user applications.
Background
The Copenhagen Research Platform is an open-source project managed by researchers at the Digital Health Section and the Department of Health Technology at the Technical University of Denmark.
The design and implementation of CARP began in 2017 at the Copenhagen Center for Health Technology (CACHET) as part of the “Biometric Healthcare Research Platform” (BHRP) project but has since then been used in many CACHET studies and applications.
The main system architect and owner is Jakob E. Bardram, but a wide range of fellow researchers and students have contributed over the years.