carp_core_protocols library Null safety

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.
ConcurrentTask
A TaskDescriptor which specifies that all containing measures and/or outputs should start immediately once triggered and run indefinitely until all containing measures have completed.
CreateCustomProtocol
CustomProtocolDevice
A general-purpose master device for custom protols. Only used when downloading custom protocols from the CARP web service.
CustomProtocolTask
A TaskDescriptor which contains a definition on how to run tasks, measures, and triggers which differs from the CARP domain model.
DataTypeMeasure
Defines data that needs to be measured/collected from a data stream on a DeviceDescriptor, as part of a task defined by TaskDescriptor. [...]
DataTypeSamplingScheme
Specifies the sampling scheme for a String, including possible options, defaults, and constraints.
DataTypeSamplingSchemeList
A helper class to construct iterable objects which hold DataTypeSamplingScheme member definitions. This is similar to an enum, but removes the need for an intermediate enum type and generic type parameters are retained per member.
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 a specified amount of time has elapsed since the start of a study deployment. The start of a study deployment is determined by the first successful deployment of all participating devices. This trigger needs to be evaluated on a master device since it is time bound and therefore requires a task scheduler.
End
GetAllFor
GetBy
GetVersionHistoryFor
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
A Measure holds information about what measure to do/collect for a TaskDescriptor in a StudyProtocol. [...]
ParticipantAttribute
Describes expected data related to one or multiple participants in a study.
PhoneSensorMeasure
Defines data that needs to be measured/collected from a data stream on a DeviceDescriptor, as part of a task defined by TaskDescriptor. [...]
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.
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 TaskDescriptor holds a list of Measures to be done as part of this task. A TaskDescriptor is hence merely an aggregation of Measures.
TimeOfDay
A time on a day. 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
Frequency
Specify repeating events based on an interval of a chosen type or multiples thereof.