Skip to content

Conversation

@westei
Copy link
Member

@westei westei commented Dec 16, 2025

This adds observation groups to the MORE study manager backend. It does not yet use observation groups in business logic (e.g. schedule calculation). It also does not yet provide support for observation groups for import and export of studies

  • Observation Groups as new Entity
    • does have a title and a purpose
    • Observation and Interventions can have an optional observation group (0..1)
    • Participants can be optionally assigned to observation groups (0..n)
  • New ObservationGroupsService with an API to CRUD Observation Groups
  • Extended API for Observation, Intervention and Participant for Observation Groups
    • it is now possible to include Observation Groups in Group based lookups for Observations and Interventions in a Study. The semantic is the same as for StudyGroups.
  • New /studies/{studyId}/observationGroups endpoint with full CRUD functionality
  • Extended endpoints for observation, intervention and participant to provide the observation group ids for the requested entities

This also include Component Tests for the Repository. Extends Repository Tests of Observation, Intervention and Participants for the new functionalities. Adds UnitTests for the new Controller and extends UnitTests for the Participant, Observation and Intervention Controller to validate the correct mappings of the new observation group properties

Open TODOs

  • Import/Export support for ObservationGroups
  • Enfroce ObservationGroups in BusinessLogic such as calculating the Shedule for Participants.

NOTE: Some of those changes will also need to be done in the Gateway Repository!

…ager backend. It does not yet use observation groups in business logic (e.g. schedule calculation). It also does not yet provide support for observation groups for import and export of studies

* Observation Groups as new Entity
    * does have a title and a purpose
    * Observation and Interventions can have an optional observation group (0..1)
    * Participants can be optionally assigned to observation groups (0..n)
* New ObservationGroupsService with an API to CRUD Observation Groups
* Extended API for Observation, Intervention and Participant for Observation Groups
    * it is now possible to include Observation Groups in Group based lookups for Observations and Interventions in a Study. The semantic is the same as for StudyGroups.
* New `/studies/{studyId}/observationGroups` endpoint with full CRUD functionality
* Extended endpoints for observation, intervention and participant to provide the observation group ids for the requested entities

This also include Component Tests for the Repository. Extends Repository Tests of Observation, Intervention and Participants for the new functionalities. Adds UnitTests for the new Controller and extends UnitTests for the Participant, Observation and Intervention Controller to validate the correct mappings of the new observation group properties
@westei westei self-assigned this Dec 16, 2025
…oups

* Participant Timelines now use the participants observation groups to query for relevant Observations and interventions
* Import/Export of study configuration now includes observation groups. ParticipantInfo also include ObservationGroup assignment

Extended all relevant tests to assert the changed and extended behavior
@github-actions
Copy link

github-actions bot commented Dec 17, 2025

Test Results

111 tests  +6   110 ✅ +6   1m 41s ⏱️ +2s
 46 suites +2     1 💤 ±0 
 46 files   +2     0 ❌ ±0 

Results for commit 0251c4b. ± Comparison against base commit b1ef991.

♻️ This comment has been updated with latest results.

westei and others added 2 commits December 17, 2025 09:50
Prefer use of Collections.empty**()

Co-authored-by: Jan Cortiel <[email protected]>
@westei westei merged commit 69e7f3e into develop Dec 17, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants