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.