Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 42 additions & 0 deletions CHANGE-LOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,47 @@
# OpenStudyBuilder (OSB) Commits changelog

## V 2.8

New Features and Enhancements
============

### Fixes and Enhancements

- The rule for generating subpart study IDs is changed so this will be the main study ID concatenated with the study subpart acronym. Rule for study subpart acronym is changed to be in upper case, no blanks or special characters and a max length of 10. On the Studies, Study List an additional column is added displaying the main study ID.
- Creating placeholder activities is now much more streamlined - Users no longer need to choose whether they want to submit their placeholders or not, as we'll only have one type of placeholder activities going forward. It is now also possible to re-use placeholders with identical naming across studies. All placeholders can still be used in the SoA and will be processed by Standards Developers like they are today.
- Aligned naming of unscheduled study visits with SDTM standard
- On Studies, Manage Study, Study menu on Protocol Versions tab the distinct protocol document main versions are listed. This now include a column for the original first study definition version related to each protocol document version as well as the latest version. The modified dates and by columns are removed, as they do not reflect the protocol document version, and they are available on the study status tab for the study definition versions.

### New Feature

- Split of the activity instance model, to keep separate versioning of the instance groupings (activity, group, and subgroup), and all other properties. This will allow standards developers to only update the part that needs changes, like when adding a new grouping, while leaving everything related to the data specification unchanged. The result will be less time spent on maintaining the library, and a cleaner library with fewer versions of each instance.
- New slider switch added to Library - Concepts - Activities page with label Archived library off by default.

### Consumer API
- GET `/v1/library/activity-instances` endpoint: added information about activity instance class and activity items to response.
- GET `/v1/library/ct/codelist-terms` endpoint: added optional filtering by `codelist_uid`; added `codelist_uid`, `order` and `ordinal` fields to response.

### End-to-End Automated test enhancements

- Various code improvements to ensure easier maintenance and overall tests stability.
- Administration > Data Completness Tags: Defined and Implemented tests for adding, updating and removing data completness tags from studies.
- Library > Concepts > Activities: Adjusted tests to the Split of the activity instance model.
- Library > Syntax Templates: Moved generic checks on table level (table structure, search, filtering, pagination) to separate feature files.
- Library > Data Collection Standards > CRF Builder > CRF Items: Defined tests for Activity Instance linkage.
- Library > Data Collection Standards > CRF Builder > CRF Tree: Defined tests for Activity Instance linkage.
- Studies > Define Study > Study Activities: Adjusted and implemented new tests for Activity Placeholders.
- Studies > Define Study > Study Structure > Study Visits: Defined and implemented tests for unscheduled visits.
- Studies > Manage Study > Study Subparts: Defined and implemented tests for adding, updating and removing study subparts.

Solved Bugs
============

### Reports

**Activity Library Dashboard > ReadMe**

- laboratory_data_specification issues

## V 2.7

New Features and Enhancements
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,9 @@ docker compose down --remove-orphans --volumes # DESTROYS THE DATABASE volume
docker compose up -d # the database service re-creates the database volume on the first start
```

For hosted environments with database migrations and sequential upgrades,
see the [Environment Update Process](./update_process.md).

## Cleaning up the Docker environment

To clean up the entire Docker environment use the following commands:
Expand Down
2 changes: 1 addition & 1 deletion clinical-mdr-api/.pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ repos:
hooks:
- id: black
- repo: https://github.com/PyCQA/isort
rev: 8.0.1
rev: 5.13.2
hooks:
- id: isort
- repo: local
Expand Down
9 changes: 5 additions & 4 deletions clinical-mdr-api/Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ fastapi = "~=0.131.0"
uvicorn = "~=0.32.0"
pydantic = "~=2.12.5"
pydantic-settings = "~=2.7.1"
requests = "*"
requests = "~=2.33.0"
openpyxl = "~=3.1.5"
dict2xml = "~=1.7.6"
hypothesis = "~=6.115.6"
Expand Down Expand Up @@ -37,7 +37,8 @@ annotated-types = "~=0.6.0"
jinja2 = "*"
nh3 = "~=0.2.21"
neomodel = "==6.1.0"
deepdiff = "~=8.6.1"
deepdiff = "~=8.6.2"
pyasn1 = "~=0.6.3"

[dev-packages]
pytest = "~=8.4.1"
Expand Down Expand Up @@ -75,7 +76,7 @@ test = "pytest -s"
dist = "python setup.py bdist_wheel"
package = "pip wheel -r requirements.txt -w dist"
testunit = "pytest -s --cov-report html:reports/coverage-unit-html --cov-report xml:reports/coverage.xml --cov-append --cov --junitxml=reports/unit_report.xml clinical_mdr_api/tests/unit/ common/tests/unit"
testint = "pytest -s -n 4 --dist loadfile --cov-report html:reports/coverage-int-html --cov-report xml:reports/coverage.xml --cov-append --cov --junitxml=reports/int_report.xml clinical_mdr_api/tests/integration/"
testint = "pytest -s -n auto --dist loadfile --cov-report html:reports/coverage-int-html --cov-report xml:reports/coverage.xml --cov-append --cov --junitxml=reports/int_report.xml clinical_mdr_api/tests/integration/"
testauth = "pytest -s --cov-report html:reports/coverage-auth-html --cov-report xml:reports/coverage.xml --cov-append --cov --junitxml=reports/auth_report.xml clinical_mdr_api/tests/auth/ common/tests/auth extensions/tests/auth/"
test-telemetry = "pytest -s --cov-report html:reports/coverage-telemetry-html --cov-report xml:reports/coverage.xml --cov-append --cov --junitxml=reports/telemetry_report.xml clinical_mdr_api/tests/telemetry/"
testunitallure = "pytest -s --cov-report html:reports/coverage-unit --cov-report xml:reports/coverage.xml --cov-append --cov=clinical_mdr_api --junitxml=reports/unit_report.xml --alluredir reports/allure-results clinical_mdr_api/tests/unit/"
Expand All @@ -90,7 +91,7 @@ format = """sh -c "
&& python -m black clinical_mdr_api consumer_api common extensions \
"
"""
audit = "python -m pip_audit"
audit = "python -m pip_audit --ignore-vuln CVE-2026-4539"
openapi = "python generate_openapi_json.py"
schemathesis = """
schemathesis
Expand Down
Loading
Loading