Page MenuHomePhabricator

Noteworthy new features since MITK 2016.11
Closed, ResolvedPublic

Description

This task is for collecting all the noteworthy new features, that should definitely be mentioned in the release notes for MITK (2018-04). We should also note if a feature is API-breaking and therefore needs a migration guide or if a feature should be explained a bit in an extra "New features" section.

Event Timeline

kislinsk triaged this task as Wishlist priority.Mar 2 2018, 9:34 AM
kislinsk created this task.
kislinsk moved this task from Backlog to Release management on the MITK (2018-04) board.

T23721: Project "Astonishing Angelfish"

API changes by new mitk::WeakPointer and more subtle (and hence probably more dangerous) the new property look-up which includes the base data properties as fallback.

Dark theme (provide info how to switch back)

Also provide information for developers on how to use the styling for custom icons. Magic colors and berry::QtStyleManager, e.g.:

m_Controls.remeshPushButton->setIcon(berry::QtStyleManager::ThemeIcon(QStringLiteral(":/Remeshing/RemeshingIcon.svg")));

or

m_Controls.remeshPushButton->setIcon(QmitkStyleManager::ThemeIcon(QStringLiteral(":/Remeshing/RemeshingIcon.svg")));

Simplification of Remeshing plugin

Third-party toolkit upgrades (Most incisive is probably VTK 8 with its OpenGL2 backend: MITK doesn't run on very old computers anymore, just on old ones. 😄 I had issues on my 2012 notebook with combined Intel/Nvidia GPUs. Had to go into the Nvidia settings and add the Workbench to the applications that needs the NVidia GPU)

macOS support is back (No more optional MITK_USE_Qt5_WebEngine).

Even it is covered by Project Angelfish above: New MITK extension feature (we should really promote this as the new way to go, update tutorials, write a good get started guide and so on...)

Dark theme (provide info how to switch back)

Currently I think the dark theme is more like a regression ;). In its current condition I would definelty would not make it default. E.g. sometimes widgets overlap (e.g. big radio buttons) and you cannot read the text properly.

Currently I think the dark theme is more like a regression ;). In its current condition I would definelty would not make it default. E.g. sometimes widgets overlap (e.g. big radio buttons) and you cannot read the text properly.

It definitely needs to be fixed for the release. The overall contrast is too low at the moment. But I'm confident that this is something we are able to fix for the upcoming release.

DICOMRT data sets (RTSTRUCT, RTDOSE) can be read also without dicom plugin T19760
New RTPLAN reader T19783

T24521: Remove old DicomSeriesReader is done and T24522: Deactivate IO Service "MITK DICOM Reader v2 (classic config)" which is a Breaking change for everyone who explicitly used the classic config (e.g. in a PreferenceReaderListOptionFunctor). For details see task.

MitkChart is new.

See T24182. As well as for als deprecated stuff T23104.

Overview: Which compiler are recommended and supported?
See Tasks:
Visual Studio 2013 drop: T23868
Visual Studio 2017 support T24391 ,T23882, T23034
Support MSVC 19.11 T23276
GCC 7.2 Compatibility T23614
Mac support: T23248 T23985

MitkChart is new.

Die meisten Änderungen sind in T23104

Breaking change in mitk::IOUtil:

v2016.11
auto image = mitk::IOUtil::LoadImage("path");
auto surface = mitk::IOUtil::LoadSurface("path");
auto pointSet = mitk::IOUtil::LoadPointSet("path");
v2018.04
auto image = mitk::IOUtil::Load<mitk::Image>("path");
auto surface = mitk::IOUtil::Load<mitk::Surface>("path");
auto pointSet = mitk::IOUtil::Load<mitk::PointSet>("path");

All deprecated methods were removed, including SaveImage(), SaveSurface(), SavePointSet(), which can be simply changed to Save().

There's a new set of Load() methods with reader options / reader options callback as additional parameter. See mitkIOUtil.h for details.

MITK Simulation wasn't migrated to the VTK OpenGL backend update.

List of IGT related features can be found in T24059

Not sure if this was considered a feature (at least I am not aware of documentation): whitelisting modules changed, whitelisting plugins was added since 2016.11.

In 2016.11, you could provide a CMake list MITK_MODULES_TO_BUILD in the initial CMake cache. Only modules listed would be built.
In 2018.04 this changed to a system where you define the name of a a whitelist file that is searched in one of two directories (internal and external whitelist directory). This mechanism should be documented. Since internally, CMake functions modify the whitelist name to distinguish internal/external lists, there should ideally be an example for external projects (the internal version seems straightforward).

Not sure if this was considered a feature (at least I am not aware of documentation): whitelisting modules changed, whitelisting plugins was added since 2016.11.

In 2016.11, you could provide a CMake list MITK_MODULES_TO_BUILD in the initial CMake cache. Only modules listed would be built.
In 2018.04 this changed to a system where you define the name of a a whitelist file that is searched in one of two directories (internal and external whitelist directory). This mechanism should be documented. Since internally, CMake functions modify the whitelist name to distinguish internal/external lists, there should ideally be an example for external projects (the internal version seems straightforward).

This feature was introduced in MITK 2015.05 already. The CMake functions used for whitelisting are documented in https://github.com/MITK/MITK/blame/master/CMake/mitkFunctionWhitelists.cmake. A kind of user documentation is missing indeed. You already summarized it quite good:

  • MITK_WHITELISTS_EXTERNAL_PATH is by default the folder .mitk/Whitelists in your home directory but can be changed to any existing folder
  • Every whitelist that is found in the specified folder can be selected in MITK_WHITELIST
  • As far as I remember " (external)" is added as suffix to the external lists
  • Whitelists should be set on superbuild level for the initial build

An example whitelist is:

set(enabled_modules
  Core
  CppMicroServices
)

set(enabled_plugins
  ""
)

T22228 is a new plugin with a lot of beamforming functionality for photoacoustics and ultrasound

I compiled the final MITK-IGT release notes to be mentioned upon release:

@seitela noticed, that with Qt 5.11.1 we also have MSVC 2017 as minimum required compiler as QtWebEngine in Qt 5.11 is only available for MSVC 2017.

Propertylist has more strict behavior. Only none empty strings are allows as property key. Property list now also implements the PropertyOwner interface.
Introduced with T25441: Name DataNodes with DICOM data appropriately by using dicom tags

MITK_PP_ macros were replaced with their original BOOST_PP_ counterparts. Only mitkPPArgCount.h is left as it doesn't originate from Boost.

warnings as errors on by default: New CMake option WARNINGS_NO_ERRORS

kislinsk claimed this task.