Skip to content

Develop into main - #501

Merged
Gmasek merged 269 commits into
mainfrom
develop
Jul 20, 2026
Merged

Develop into main#501
Gmasek merged 269 commits into
mainfrom
develop

Conversation

@Gmasek

@Gmasek Gmasek commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Bringing main up to date

iaigner and others added 30 commits September 11, 2025 11:01
…develop/github-action-fcf46f46fd

Bump the github-action group across 1 directory with 3 updates
Bumps `spring-boot.version` from 3.5.3 to 3.5.5.

Updates `org.springframework.boot:spring-boot-dependencies` from 3.5.3 to 3.5.5
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](spring-projects/spring-boot@v3.5.3...v3.5.5)

Updates `org.springframework.boot:spring-boot-maven-plugin` from 3.5.3 to 3.5.5
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](spring-projects/spring-boot@v3.5.3...v3.5.5)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-dependencies
  dependency-version: 3.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-maven-plugin
  dependency-version: 3.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…pring-boot.version-3.5.5

Bump spring-boot.version from 3.5.3 to 3.5.5
Bumps [org.testcontainers:testcontainers-bom](https://github.com/testcontainers/testcontainers-java) from 1.21.2 to 1.21.3.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](testcontainers/testcontainers-java@1.21.2...1.21.3)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers-bom
  dependency-version: 1.21.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…rg.testcontainers-testcontainers-bom-1.21.3

Bump org.testcontainers:testcontainers-bom from 1.21.2 to 1.21.3
…fine content-disposition header in StudyManagerAPI.yaml
…webservice

Prehab2rehab/415 auditlog webservice
Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.13.1 to 2.13.2.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md)
- [Commits](google/gson@gson-parent-2.13.1...gson-parent-2.13.2)

---
updated-dependencies:
- dependency-name: com.google.code.gson:gson
  dependency-version: 2.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…om.google.code.gson-gson-2.13.2

Bump com.google.code.gson:gson from 2.13.1 to 2.13.2
Bumps the maven-plugin group with 1 update: [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire).


Updates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.3 to 3.5.4
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](apache/maven-surefire@surefire-3.5.3...surefire-3.5.4)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-version: 3.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: maven-plugin
...

Signed-off-by: dependabot[bot] <support@github.com>
…aven-plugin-a7a81bf0d1

Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.3 to 3.5.4 in the maven-plugin group
This adds a Repository to store occurred observations - observations of study participants that occurred during the study. It supports

* an upsert function intended to be used by a corn job that periodically checks the study configuration and create observation occurrences for its participants that are currently starting
* an update functionality intended to be used by an other cron job that checks for available data in the elastic index for current observation occurrences. The update allows to update the state for such OccurrentObservations
* an filter/list functionality that allows to stream OccurrentObservations by  any combination of participantId, obcervationId, data state and data validity.

This also adds an component test for the new repository and all its functionalities
Adds the OccurredObservationService intended to be used by the Cron-Jobs to create und update OccurredObservations

* added a functionality to the repository that allows to retrieve the Instant of the latest start time, as this will be needed by the Cron-Job that creates OccurredObservations
* Refactored some remaining `participantObservation` mentions to the new name `OccurredObservation` - this renaming was done as a PartiipantObservationProperties feature already existed for storing participant specific configurations for Observations
…es TS have only mikro-precision (10^-6) while Java uses nano-precision (10^-9)
* fix: configuration is now under `more.audit` (was under `audit`). Now the default in the application.yaml maps with the properties class
* fix: created is now mapped from the internal model to the webservice model. Extended UnitTest for created and id
* feature: the `username` of the token is now stored in the audit log and mapped to the web service. Added a user_name column to the database
…name-to-auditlog

AuditLog fixes and user_name extension
…nt-observation-service

Prehab2rehab/421/participant observation service
Users do not only have a role for the MORE system, but roles for the specific study. This extension to the audit log now also reports the study roles of the user at the time the action was logged
…-roles

Add study_roles information to the audit log
… on study participants timelines

* Corn runs all 5 minutes
* retrieves all active studies
* retrieves the timestamp of the latest `OccurredObservation` per study
* iterates over all participants of the study
* retrieves the Timeline for each participants
* creates `OccurredObservation` for all Observations that started after the latest and including the current time (minute resolution)

Changes:

* Introduces an `ACTIVE_STATES` EnumSet in the `Study.Status` enumeration. The two active states where hard coded in several locations in the code
* The StudyRepository & Service now allows to iterate over all Studies in a set of `Study.Status`.
    * returns a `Stream` to avoid loading all Studies into memory
    * expanded the component test for the StudyRepository to validate this functionality
* `UpsertOccurredObservationsCron`: Implements the business logic of creating `OccurredObservations` for study participants as described above

Possible Improvements:

* The period of 5 minutes is currently hard coded. Making this configureable is not much work.

Notes:

First tried to use the `SchedulingServie` and an `Job` Implementation to schedule a job for every active study, but gave up this idea as this infrastructure seamed complex. Especially storing the id returned by each submitted job seamed like a big burden, as it requires persistence, what is somehow provided by the SDK, but really hard to understand. Having different Cron Jobs for separate Studies running at an offset would be nice. But the advantage seamed not worth the effort.
Rupert Westenthaler and others added 28 commits March 31, 2026 12:51
…ens_after_preview

Prehab2rehab/388 reset tokens after preview
…date-fix

#440: Fixed the lime survey submit date if empty
…-storage

#481: Reverted the limesurvey answer storage to the short id form
#15: Implemented tags into the pipeline to correctly tag new versions…
…a gateway. Added the functionality also to the OccurredObservation repo & service of the study manager backend so that it is possible to write component tests!
…observation-by-start-end

#280: OccurredObservation by start/end time
… observation and removed the token from being stored in the elastic
* Checks that only a single Survey is present for the Observation
* Checks that the `id` and `seed` data are present for the Observation

NOTE: Checks for actual Survey Data are not implemented as those would require API calls to the Lime Server and this is not feasible for periodic data health check. In addition their is no guarantee that a LimeSurvey is still available and unmodified on the server.
…de-fix

#24: Fixed an issue that prevented to change the lime survey id of an…
…th-lime-observation

#479: DataHealth for LimeObservation
…es and observations. It encodes the study, observation and participant in the givenname and adds more as lastname. It keeps backward compatibility for old/current studies by accepting the old format where the participantId was added as given and last name. It adds a UnitTest for the activate Method that checks if it performs the expected calls to the LimeServer and the SDK
Co-authored-by: Jan Cortiel <37823749+janoliver20@users.noreply.github.com>
…ey-mapping-study-observation-participant

#491: Multi Sudy/Observation LimeSurvey support
…n validation for all data types expect OBJECT
…tpage` property instead of `seed`. Updated the implementation so that the validation of INTEGER type properties is now supported by the `QuestionObservationUtils`. Adapted the UnitTest to provide Mock data for `lastpage` instead of `seed`
…y-datahealth-lastpage

#497 limesurvey datahealth lastpage
@github-actions

Copy link
Copy Markdown
Contributor

Test Results

187 tests  +91   186 ✅ +91   1m 38s ⏱️ +29s
 54 suites +15     1 💤 ± 0 
 54 files   +15     0 ❌ ± 0 

Results for commit e459cfe. ± Comparison against base commit 9aa0d0e.

This pull request removes 1 and adds 92 tests. Note that renamed tests count towards both.
io.redlink.more.studymanager.component.observation.lime.LimeSurveyRequestServiceTest ‑ responseTest
io.redlink.more.studymanager.component.observation.lime.LimeSurveyObservationTest ‑ testActivation
io.redlink.more.studymanager.component.observation.lime.LimeSurveyObservationTest ‑ testValidation
io.redlink.more.studymanager.component.observation.lime.LimeSurveyRequestServiceTest ‑ fixNullDateTest
io.redlink.more.studymanager.component.observation.lime.MultipleChoiceQuestionObservationTest ‑ testValidation
io.redlink.more.studymanager.component.observation.lime.QuestionObservationTest ‑ testValidation
io.redlink.more.studymanager.controller.studymanager.ApplicationsAPIV1ControllerTest ‑ testGetStudyApplications
io.redlink.more.studymanager.controller.studymanager.AuditLogControllerTest ‑ testExportAuditLogs
io.redlink.more.studymanager.controller.studymanager.AuditLogControllerTest ‑ testGetAuditlogMetadata
io.redlink.more.studymanager.controller.studymanager.ObservationGroupControllerTest ‑ testCreateObservationGroup
io.redlink.more.studymanager.controller.studymanager.ObservationGroupControllerTest ‑ testDeleteObservationGroup
…

@Gmasek
Gmasek merged commit 755293a into main Jul 20, 2026
8 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.

5 participants