Changelog¶
All notable changes to this project will be documented here.
1.4.0 - 2026-04-26¶
Added¶
- Added a Terminology Browser page accessible from the sidebar to navigate all platform terminologies, search for coded concepts, and view detailed entry information (#224)
- Added a graph view to the vitals timeline showing all vital signs as stacked time-series sub-plots with equidistant date axis, reference range guides, and click-to-open data drawer per date column; defaults to graph when 3 or more entries exist, with a toggle to switch to list view (#224)
- Added a dedicated timeline entry design for lifestyle events in the case manager (#224)
- Added an edit button on the project management page (#224)
- Added structured error handling and validation feedback for case import (#221, fixes #196)
- Added tooltips to the export button in the case manager explaining why export is disabled when consent is invalid or missing (#187, closes #180)
- Added customized timeline event components for specialized case manager displays, including neoplastic entities, therapy lines, tumor markers, and multi-line entries (#179)
- Added 422 HTTP API error responses for terminology- and database-related errors (#203)
- Added a
CodedConceptDoesNotExistexception for clearer error messages when invalid coded concepts are referenced in many-to-many relations (#203, fixes #197) - Added versioning support to all terminology digestors, ensuring version information is propagated to generated
CodedConceptobjects for improved traceability and reproducibility (#226, fixes #223) - Added icons to the neoplastic entity relationship selector and context-sensitive help text to form fields (#173)
Changed¶
- Redesigned case manager timeline entries across all data categories (adverse events, genomic variants and signatures, performance status, systemic therapy lines, tumor markers) for improved readability (#224)
- Reorganized the case manager data drawer with a cleaner, more structured layout (#224, closes #171)
- Redesigned the project management page layout (#224)
- Improved general layout and styling across the application: sidebar menu, topbar, footer, typography, content area, and shared page header (#224)
- Upgraded
django-pghistoryfrom 3.5.5 to 3.9.2 and restricted audit context tracking to mutating HTTP requests only (POST,PUT,PATCH,DELETE), eliminating unnecessary database round-trips on read endpoints (#218, fixes #209) - Upgraded
fhircraftto v0.8.3 for improved performance and validation, and regenerated all FHIR profile models (#214) - Improved clinical text representations for systemic therapy, radiotherapy, surgery, adverse events, and family history models (#188)
- Improved the
Surgerymodel description to dynamically include body site, qualifier, and laterality, and replaced "Right and left" with "Bilateral" inLateralityQualifierdisplay (#205) - Refactored
TumorMarkermodel field placement, corrected analyte result type forFibroblast growth factor 23, and setng/mlas the default mass concentration unit (#178) - Optimized server Python dependencies, separated dev dependencies into a dedicated group, and added
poetry.lockfor reproducible builds (#174) - Updated
pyjwtdependency to include thecryptoextra, ensuring cryptographic operations are supported (#191) - Bumped
djangofrom 5.1 to 5.1.15, patching CVE-2025-64460 and CVE-2025-13372 (#175) - Bumped
werkzeugfrom 3.0.0 to 3.1.6 (#219) - Bumped
lucide-angularfrom 0.482.0 to 0.563.0 (#165) - Bumped
chartjs-chart-matrixfrom 2.1.1 to 3.0.0 (#167)
Fixed¶
- Fixed bundle ID resolution during import to be order-independent, preventing failures when referenced bundles appear later in the import file (#220, fixes #213)
- Fixed therapy lines not being updated when importing a patient case bundle (#220, fixes #211)
- Fixed events of specialized polymorphic resource instances not being returned by the API (#220, fixes #210)
- Fixed elevated cohort creation so that platform and system administrators can create cohorts for any project (#221, fixes #182)
- Fixed cohort name edit submission to correctly persist name changes on confirm (#221, fixes #183)
- Fixed
externalSourceIdserialization to ensure the field is correctly delivered over the API (#216, fixes #200) - Fixed NCIT antineoplastic expansion to more reliably include relevant drug concepts and parent categories, and corrected antineoplastic name capitalization (#215)
- Fixed period (de)serialization to ensure
DateRangeFieldmodel fields consistently use inclusive upper bounds (#212) - Fixed
PatientCaseBundlevalidation and resolver inconsistencies that caused stagings, tumor boards, genomic signatures, history, and completion data to be incorrectly imported (#208, fixes #207) - Fixed 422 HTTP error handling when a terminology concept is not found in a many-to-many relation (#206)
- Fixed incorrect LOINC code mappings for
Cancer Ag 125andCancer Ag 15-3tumor marker test codes in the FHIR interface (#201) - Fixed ICD-O-3 morphology digestor to expand codes to all possible behavior qualifiers, ensuring compliance with ICD-O-3 rule F (#199, fixes #198)
- Fixed population counter remaining stuck in a loading animation when the population size is exactly zero (#189, fixes #169)
- Fixed case resources being exportable when consent is not valid (#187)
- Fixed FHIR serialization bug causing snake_case serialization of FHIR resources instead of expected camelCase (#185)
- Fixed
NeoplasticEntityFormto exclude the current entity from selectable related primaries and to reset form state when switching relationship types (#176, fixes #172) - Fixed documentation deployment workflows to use
git pullinstead ofgit fetch, ensuring the latest changes are incorporated before deployment (#217) - Fixed multiple issues with GitHub CI workflows and Dependabot configuration (#162)
Full Changelog: https://github.com/onconova/onconova/compare/1.3.0...1.4.0
1.3.0 - 2025-12-12¶
Added¶
- Implemented a complete FHIR R4 mCODE-conform interface with
/fhir/endpoints supporting standard healthcare resource exchange, providing (#158, closes #73) - Full implementation of the Onconova FHIR Implementation Guide Capabilities
- mCODE (Minimal Common Oncology Data Elements) profile support
- Comprehensive validation rules and conformance requirements
- Full mapping between supported FHIR profiles and REST API schemas
- Closes #73
- Added
fhircraftas a dependency to handle the FHIR (de)serliazation, model code generation and validation (#158) - Added a
sourcefield to theGenomicVariantORM model to store the cytogenetic source of the variant (#158) - Added a
hgvsVersionto theGenomicVariantcore schema to publically document the HGVS version used internally (#158)
Changed¶
- Updated the permissions for the
update_userAPI route to allow either users withCanManageUsersor users who are the requesting user (IsRequestingUser) to update user information (#153) - Updated the public release installation steps to instruct users to download the correct
compose.ymlfile and added instructions to download thenginx.confreverse proxy configuration (#156) - Updated the
.env.samplefile to change the default Docker Compose file reference fromcompose.prod.ymlto a more genericcompose.ymlfor improved clarity for new users following the documentation and removed the section for documentation webserver address (ONCONOVA_DOCS_WEBSERVER_ADDRESS) and its related comments, since this configuration is no longer needed (#157) - Split the tumor marker analyte
Fibroblast growth factorinto more specialized analytesFibroblast growth factor 2,Fibroblast growth factor 23andFibroblast growth factor 21(#158) - Renamed the TNM category fields in
TNMStagingto properly use snake-case notation (#158)
Fixed¶
- Replaces the
jwtpackage (version 1.3.1) with thepyjwtpackage (version 2.0), ensuring the project uses the more widely adopted and actively maintained JWT library. The previous dependency was causing errors during the single sign-on (SSO) workflows (#152) - Fixed a bug leading to new users with base permissions not being able to submit their decision on the initial user data usage form, blocking access to the platform (#153)
- Fixed a bug when updating the access level of a user that has been provided by an SSO service (#153)
- Corrected the link for downloading the sample environment file in the installation instructions, ensuring users save
.env.sampleas.envinstead of downloading the wrong file (#156, fixes #155) - Added missing fields cytogeneticLocation and chromosomes to the GenomicVariant core schema (#158)
- Fixed the client reference documentation URL leading to a 404 error in the docs (#158)
- Fixed
default_factoryfordataConstraintsinProjectschema to avoid a500error when posting from the client (#159) - Added the missing
__orm_model__attribute to theUserProfileschema to avoid an error when updating user profiles over the API (#160)
Full Changelog: https://github.com/onconova/onconova/compare/1.2.1...1.3.0
1.2.1 - 2025-10-17¶
Fixed¶
- Fix the documentation deployment workflow for releases.
Full Changelog: https://github.com/onconova/onconova/compare/1.2.0...1.2.1
1.2.0 - 2025-10-17¶
Changed¶
- Migrated the source code to https://github.com/onconova/onconova.
- The Onconova FHIR IG source code has been migrated to a separate repo (https://github.com/onconova/fhir) for better maintainability.
- Replace dynamically-generated schemas by static definitions (#148). This will ensure that current and future API versions can be correctly frozen and maintained.
- Refactor code to new organization multi-repo strcuture (#149)
Full Changelog: https://github.com/onconova/onconova/compare/1.0.0...1.2.0
1.1.0 - 2025-10-09¶
Added¶
- Add a FHIR Implementation Guide for Onconova's FHIR Interface (provisional) by @luisfabib in https://github.com/onconova/onconova/pull/142
Fixed¶
- Freeze the
compodocversion to avoid error during build in workflow - Freeze
pydanticanddjango-ninjadependencies of the server to avoid bugs caused by newer release combinations - Refactor annotation check to use inspect.isclass in dataset.py to avoid error in server.
Full Changelog: https://github.com/onconova/onconova/compare/1.0.1...1.1.0
1.0.0 - 2025-09-03¶
🎉 First release!
runner