Version 1.0.0-alpha.28
Pre-release
Pre-release
·
550 commits
to master
since this release
This release primarily includes support to store data related to participants in study deployments.
Dependency upgrades:
- Kotlin 1.4.21
- kotlinx.serialization 1.0.1
Common
New features
- A
StudyProtocol
now containsexpectedParticipantData
which describes the 'profile'Data
participants or researchers need to fill out for participants in a study (ParticipantAttribute
s). Both standardized typesafe data and custom data can be requested;DefaultParticipantAttribute
andCustomParticipantAttribute
respectively. - To facilitate front-end development, developers do not need to be aware about concrete
Data
classes when uploading or retrieving participant data. An abstraction is introduced for requested user input which specifies a representation format and constraints (InputElement
). Using this abstraction input elements can be rendered (e.g.,Text
andSelectOne
), regardless of whether these are standardized input types or custom types defined by the researcher. - Default
InputDataType
s are registered in aInputDataTypeList
. The default one for CARP isCarpInputDataTypes
. This list needs to be passed to helper functions onParticipantAttribute
to perform data validation and to convert input data toData
classes for upload and vice versa.
Changes
InvalidConfigurationError
has been removed and should be replaced with defaultIllegalArgumentException
.
Deployment
ParticipationService
:
- Added
getParticipantData
andgetParticipantDataList
which returnsParticipantData
. - Added
setParticipantData
to set a singleInputDataType
in a deployment to specifiedData
.
Studies
ParticipantService
:
ParticipantGroupStatus
which is returned by various endpoints (e.g.,getParticipantGroupStatusList
) now contains participant data.- Added
setParticipantGroupData
to set data for a deployed participant group. This simply redirects tosetParticipantData
in the deployment subsystem'sParticipationService
.
Protocols
- Expected exceptions in
StudyProtocolRepository
changed slightly (e.g.,getBy
returnsnull
when not found rather than an exception). AddedInMemoryStudyProtocolRepository
as an example implementation and tests are fully updated inStudyProtocolRepositoryTest
.
ProtocolService
:
- Renamed
update
toaddVersion
. - Added
updateParticipantDataConfiguration
which allows updating the expected participant data for a specific protocol version. - Endpoints specifying a specific protocol now take a
StudyProtocol.Id
comprised of a ownerUUID
and protocol name.ProtocolOwner
no longer needs to be passed. getAllFor
should return an empty list rather thanIllegalArgumentException
when no protocols for the specified owner are found.
Multiplatform release accessible through Maven:
https://mvnrepository.com/artifact/dk.cachet.carp