carp_protocols/carp_core_protocols library

Implements open standards which can describe a study protocol, i.e., defining how a study should be run. Essentially, this subsystem has no technical dependencies on any particular sensor technology or application as it merely describes why, when, and what data should be collected.

Contain the the core CARP domain classes like StudyProtocol, TaskDescriptor, and Measure.

See the carp.protocols definition in Kotlin.

Classes

Add
AddVersion
AltBeacon
A beacon meeting the open AltBeacon standard.
BackgroundTask
A task which specifies that all containing measures and/or outputs should immediately start running in the background once triggered. The task runs for the specified duration, or until stopped, or until all measures and/or outputs have completed.
BatteryAwareSamplingConfiguration
A sampling configuration which changes based on how much battery the device has left.
CreateCustomProtocol
CustomProtocolDevice
A general-purpose master device for custom protocols. Only used when downloading custom protocols from the CARP web service.
CustomProtocolTask
A task which contains a definition of a custom protocol which differs from the CARP domain model.
DataTypeSamplingScheme
Specifies the sampling scheme for a data type, including possible options, defaults, and constraints.
DeviceConnection
DeviceDescriptor
Describes any type of electronic device, such as a smartphone, wearable device, a sensor, or internet service (e.g. FitBit API) that collects data which can be part of a StudyProtocol configuration and which collects measures via probes.
ElapsedTimeTrigger
A trigger which starts a task after elapsedTime has elapsed since the start of a study deployment, i.e. when a protocol is deployed on the phone for the first time.
End
Specify how a RecurrenceRule ends.
GetAllFor
GetBy
GetVersionHistoryFor
GranularitySamplingConfiguration
A SamplingConfiguration which allows specifying a desired level of granularity, corresponding to expected degrees of power consumption.
ManualTrigger
A trigger initiated by a user, i.e., the user decides when to start a task.
MasterDeviceDescriptor
A device which aggregates, synchronizes, and optionally uploads incoming data received from one or more connected devices (potentially just itself).
Measure
Defines data that needs to be collected passively as part of a task defined by TaskConfiguration.
ParticipantAttribute
Describes expected data related to one or multiple participants in a study.
ProtocolFactoryService
Factory methods to create a StudyProtocol according to predefined templates.
ProtocolService
Application service which allows managing (multiple versions of) StudyProtocols.
ProtocolServiceRequest
Serializable application service requests to ProtocolService.
ProtocolVersion
Specifies a specific version for a StudyProtocol, identified by a tag.
RecurrenceRule
Represents the iCalendar RFC 5545 standard recurrence rule to specify repeating events: https://tools.ietf.org/html/rfc5545#section-3.3.10
SamplingConfiguration
Contains configuration on how to sample a data stream of a given type.
Scheduleable
An interface marking that a Trigger can be scheduled.
ScheduledTrigger
A trigger which starts a task according to a recurring schedule starting on the date that the study starts.
Smartphone
An internet-connected phone with built-in sensors. Typically this phone for a StudyProtocol running on this phone.
StudyProtocol
A description of how a study is to be executed, defining the type(s) of master device(s) (MasterDeviceDescriptor) responsible for aggregating data, the optional devices (DeviceDescriptor) connected to them, and the Triggers which lead to data collection on said devices.
StudyProtocolId
Uniquely identifies a study protocol by the ownerId and it's name.
TaskDescriptor
A TaskDescriptor holds information about each task to be triggered by a Trigger as part of a StudyProtocol. Each task holds a list of Measures to be done as part of this task. A TaskDescriptor is hence an aggregation of Measures.
TimeOfDay
A time on a day in 24-hour format. Used in a ScheduledTrigger.
Trigger
Any condition on a device (DeviceDescriptor) which starts or stops TaskDescriptors at certain points in time when the condition applies. The condition can either be time-bound, based on data streams, initiated by a user of the platform, or a combination of these.
TriggeredTask
Specifies a task which at some point during a StudyProtocol gets sent to a specific device.
UpdateParticipantDataConfiguration

Enums

EndType
Specify how a RecurrenceRule may end as specified in End.
Frequency
Specify repeating events in a RecurrenceRule based on an interval of a chosen type or multiples thereof.
Granularity
The level of detail a data stream should be sampled at, corresponding to expected degrees of power consumption.