2023 Week 11 (Mid March)
The following - possibly updated - changelog can be viewed as formatted
article at https://phabricator.mitk.org/w/mitk/changelog/2023.11/.
🛠 Third-party dependency changes
✨ New features
- MITK provides a CITATION.cff file (see What is a CITATION.cff file?)
- 2-d and 3-d interpolation of segmentations also work with multi-layer multi-label segmentations
- Double-clicking on a label in the Segmentation View moves the crosshair / views to the label's center of mass.
- The "Scan directory" button in the DICOM Browser no longer freezes the application on macOS
- Loading a segmentation after the Standard Display has been closed does no longer crash
- Segmentations cannot be saved as unsupported file formats anymore regarding the multi-layer feature
- Unsupported segmentation formats like legacy binary masks can no longer be selected by default as segmentations (right-click image in Data Manager and choose "Convert to Segmentation" instead)
🔥 API-breaking changes
Preferences moved from BlueBerry to MITK Core Services
The preferences core service completely replaces the previous preferences service of BlueBerry, making preferences finally available in modules.
Migration is straight forward, as the interface of the core preferences service is as equal as possible to the BlueBerry preferences service.
The only difference is the replacement of Qt types with std types, in particular the replacement of QString with std::string.
You may want to adapt your string types when migrating to the new service or use methods like QString::fromStdString() and QString::toStdString(). In other occasions where std strings have been used already, you can remove conversions like std::string::c_str() that are not necessary anymore.
While migrating the BlueBerry preferences we noticed that quite a few functionalities were never fully implemented, erroneous, or completely unused. We took the opportunity to remove them. In the uncertain case you miss such a previous "feature" that you assumed to work fine for you, give us a note so we can double check.
Retrieving and using the new core preferences service is easy:
auto* preferencesService = mitk::CoreServices::GetPreferencesService(); auto* preferences = preferencesService->GetSystemPreferences(); auto myPreference = preferences->Get("my preference", "default value"); // std::string
When you use the core preferences service in an MITK plugin, make sure that you initialize the CppMicroServices. The perfect location for this is in a plugin activator class:
Merged enums for view directions / plane orientations
Use the new AnatomicalPlane enum instead of the BaseRenderer::ViewDirection, SliceNavigationController::ViewDirection, or PlaneGeometry::PlaneOrientation enums.
Both ViewDirection::THREE_D and PlaneOrientation::None map to AnatomicalPlane::Original.
Other API-breaking changes
In an ongoing cleanup effort, many deprecated or unused classes, methods, and other code snippets were removed or refactored. Migration should be straight forward if necessary at all.
In case you experience any trouble while doing so, please do not hesitate to contact us.