Skip to content

Version 1.0.0-alpha.28

Pre-release
Pre-release
Compare
Choose a tag to compare
@Whathecode Whathecode released this 17 Dec 12:19
· 550 commits to master since this release
3b87cdb

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 contains expectedParticipantData which describes the 'profile' Data participants or researchers need to fill out for participants in a study (ParticipantAttributes). Both standardized typesafe data and custom data can be requested; DefaultParticipantAttribute and CustomParticipantAttribute 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 and SelectOne), regardless of whether these are standardized input types or custom types defined by the researcher.
  • Default InputDataTypes are registered in a InputDataTypeList. The default one for CARP is CarpInputDataTypes. This list needs to be passed to helper functions on ParticipantAttribute to perform data validation and to convert input data to Data classes for upload and vice versa.

Changes

  • InvalidConfigurationError has been removed and should be replaced with default IllegalArgumentException.

Deployment

ParticipationService:

  • Added getParticipantData and getParticipantDataList which returns ParticipantData.
  • Added setParticipantData to set a single InputDataType in a deployment to specified Data.

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 to setParticipantData in the deployment subsystem's ParticipationService.

Protocols

  • Expected exceptions in StudyProtocolRepository changed slightly (e.g., getBy returns null when not found rather than an exception). Added InMemoryStudyProtocolRepository as an example implementation and tests are fully updated in StudyProtocolRepositoryTest.

ProtocolService:

  • Renamed update to addVersion.
  • 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 owner UUID and protocol name. ProtocolOwner no longer needs to be passed.
  • getAllFor should return an empty list rather than IllegalArgumentException when no protocols for the specified owner are found.

Multiplatform release accessible through Maven:
https://mvnrepository.com/artifact/dk.cachet.carp