Page MenuHomePhabricator

NavigationDataPlayer should support tool storages
Closed, WontfixPublic

Description

when playing navigation data with the NavigationDataPlayer a tool storage may be used to visualize the tools. Add (optional) support of tool storages to the navigation data player.

Event Timeline

User makosch has pushed new remote branch:

bug-10304-NavigationDataPlayerWithToolStorage
cheray added a subscriber: makosch.

We wanted to include the navigation data player as tracking device in the tool storage. This should make the navigation data player available as a tracking device in the tracking tool box.

If you implemented the tool storage to be part of the NavigationDataPlayer, the IGT tutorial TrackingLab should be adapted, so that you can play a recorded file tracking the book without the need of a real tracking device.

Finally, the documentation has to be adapted: NavigationDataPlayer AND TrackingLab documentation.

suggestion (not tried yet...): if navigation data player is registered as microservice, the default tool storage is already available in the IGTNavToolManager. Also, the data player is available as microservice.

  1. Implement option, that the tracking toolbox can use any toolstorage available in the manager (at the moment you'll have to save/reopen the toolbox).
  2. Implement new trackingdevice, that uses the data player via microservice as data source. If no player is registered --> useful error message if "connect" in toolbox is clicked.
  3. Start/Stop of the data player should be possible via microservice (not only via the data player view). The tracking toolbox should only use all settings of the data player but not rely on their start/stop signal. Maybe this is already working? --> doublecheck..
  4. Add option, that this new device (and only this) can play with ANY toolstorage. This should allow to replay all data with the identical toolstorage the data was originally recorded with (e.g. polaris toolstorage to replay file wich was recorded with polaris and analogous for other devices).
  1. record data for example device...

First step done (select any available tool storage, especially the one created by the navigation data player)

The strategy:

  1. There is a new TrackingDevice in the TrackingToolbox, which is a NavigationDataPlayer to play recorded csv/xml files.
  2. The navigation data player view should not longer exist. All functionality will be integrated in the Tracking Toolbox.
  3. The NavDataPlayer Microservice will still be avilable (option in Tracking toolbox). Important for compability reasons, even though the same data will be available via two different Microservices (TrackingMS and NavDPlayerMS)
  4. The Widget of the NavDataPlayer should be moved 1:1 to the Tracking toolbox to set all options. Tracking and Recording are now in the same View.
  5. If no toolstorage is set for the NavigationDataPlayerTrackingDevice, a default Toolstorage with spheres (like in the current NavDataPlayer) should be created, so that it is still not necessary to load a tool storage to play Navigation Data. So it is still very simple to playback a previously recorded file.
  6. NavigationDataPlayer TrackingDevice is compatible with all toolStorages which contain the right number of tools. Therefore, an option exist to change the TrackingToolStorage to any toolStorage available via the TrackingToolManagerView.

If you have any concerns about this concept, please discuss :-)

Todo:

  1. In QMitkNavigationDataPlayerTrackingDeviceWidget: Time and SequentialWidget should share one widget
  2. Maybe mitkNavigationDataSequentialPlayer und mitkNavigationDataPlayer (time player) could be refactored
  3. TrackingToolbox in NavigationDataPlayer can be set as MicroService multiple times. Old references are not cleaned --> crash
  4. Start Tracking when NavigationDataPlayer is the Device Source does not function properly

Was never merged into master, what shall we do, @franza ?

Seems as if implementation was never finished.

Open TODOs from @rosst:

1.) In QMitkNavigationDataPlayerTrackingDeviceWidget: Time and SequentialWidget should share one widget
2.) Maybe mitkNavigationDataSequentialPlayer und mitkNavigationDataPlayer (time player) could be refactored
3.) TrackingToolbox in NavigationDataPlayer can be set as MicroService multiple times. Old references are not cleaned --> crash
4.) Start Tracking when NavigationDataPlayer is the Device Source does not function properly

I will have a detailed look on it and will decide what to do.

I had a look on it. The idea that time was to change the navigation data player in a way that in can be handled as any other tracking device. @rosst and @wildes invested a lot of work, but unfortunately we found out that there are some problems when doing this and it never fully worked. As far as I can remember we decided to keep the navigation data player as a separate view in the end. Anyway, thanks to @rosst and @wildes for their efforts. It would have been a nice feature, but is not that important in the end. I would agree to close the bug and not merge the changes.

kislinsk claimed this task.

Thank you for the feedback! 👍

Deleted branch T10304-NavigationDataPlayerAsTrackingDevice.

Deleted branch T10304-NavigationDataPlayerAsTrackingDevice_2017_01.