PlusToolkit / PlusLib

Software library for data acquisition, pre-processing, and calibration for navigated image-guided interventions.
http://www.plustoolkit.org
Other
135 stars 103 forks source link

Add OpenIGTLink commands for changing ultrasound imaging parameters #168

Closed Sunderlandkyl closed 5 years ago

Sunderlandkyl commented 7 years ago

Allow setting of the imaging parameters through OpenIGTLink. Make it work for Interson first, but keep in mind that it should work for Ultrasonix and BK, too.

Also add a simple scripted Slicer module to change the imaging parameters from Slicer.

Migrated from https://app.assembla.com/spaces/plus/tickets/867/details

Sunderlandkyl commented 7 years ago

2014-11-27 11:42 Adam Rankin re #867 creating branch to experiment in Committed to: plus In plus:3862

2014-11-27 11:44 Adam Rankin re #867 checking out correct pluslib and plusapp for branch Committed to: plus In plus:3863

2014-11-27 11:45 Adam Rankin Hmm, commiting auto-assigns it. I am still experimenting!

2014-11-28 09:00 Adam Rankin re #867 experimental imaging parameters and making sonix use the revamped class Committed to: plus In plus:3873

2014-12-01 14:11 Adam Rankin re #867 Refactoring imaging parameters to be more flexible Committed to: plus Converting sonix video source to work with reworked imaging parameters, interson already operational with imaging parameters interface In plus:3878

2014-12-01 14:12 Adam Rankin re #867 Merged revision(s) 3862-3878 from trunk/PlusLib: Committed to: plus Merged revision(s) from trunk/PlusApp: In plus:3879

2014-12-03 12:19 Adam Rankin re #867 adding callback function to devices to handle new imaging parameters Committed to: plus implementing callback for sonix video source device In plus:3880

2014-12-03 12:29 Adam Rankin re #867 build fix Committed to: plus In plus:3881

2014-12-10 11:11 Adam Rankin re #867 Merged revision(s) 3862-3881 from trunk/PlusBuild: Committed to: plus Merged revision(s) from trunk/PlusApp: Merged revision(s) from trunk/PlusLib: In plus:3882

2014-12-10 11:17 Adam Rankin re #867 Why didn't this commmit! Committed to: plus In plus:3883

2014-12-10 13:23 Adam Rankin re #867 Creating interson ApplyNewImagingParameters Committed to: plus refactored interson code to support new functionality In plus:3884

2014-12-10 15:03 Adam Rankin re #867 enabling interface through data collector to apply the imaging parameters to device/devices Committed to: plus In plus:3885

2014-12-10 16:01 Adam Rankin Assigned to changed from Adam Rankin to -none-

2015-07-06 22:30 Andras Lasso People were interested in having this feature for Telemed, too. MITK-US group and UBC group were interested in having this for Ultrasonix.

2015-11-25 09:13 Adam Rankin This is possibly something that can come of the OpenIGTLink standardization discussion at NAMIC. I will keep it in mind.

2015-11-25 10:19 Andras Lasso Yes, we should include this in the discussions.

2017-01-10 09:53 Andras Lasso Summary changed from Add OpenIGTLink commands for changing ultrasound imaging parameters for Interson to Add OpenIGTLink commands for changing ultrasound imaging parameters

2017-01-10 09:54 Andras Lasso re #867: Added config file for testing imaging parameter changes with a simulated ultrasound device Committed to: plus In plus:5014

2017-01-10 16:25 Andras Lasso re #867: Moved config file to correct location Committed to: plus In plus:5016

2017-01-10 16:27 Andras Lasso re #867: Added probe motion simulation data file Committed to: plus In plus:5017

2017-08-29 16:11 Andras Lasso See this topic branch: https://github.com/cpinter/PlusLib/tree/set-us-parameters-command

More information: https://na-mic.org/wiki/Project_Week_25/Tracked-Ultrasound-Standardization-IV

jamesobutler commented 6 years ago

What's the status/plans for this issue? I noticed that @cpinter recently merged some commits into the master branch adding a vtkPlusSetUSParameterCommand.

The group I'm with has been using a custom program around Plus to send ultrasound parameter commands to a vtkPlusCapistranoVideoSource device for awhile now. We frequently use it to update WobbleRate(frame rate), bidirectional/unidirectional mode, freeze/unfreeze etc. If we can start doing this through Plus directly that would be great.

adamrankin commented 6 years ago

That is the hope. We've wanted US parameter setting through Plus for a while, and it looks like Csaba has time to work on it.

On Wed, Dec 20, 2017 at 11:41 AM, James Butler notifications@github.com wrote:

What's the status/plans for this issue? I noticed that @cpinter https://github.com/cpinter recently merged some commits into the master branch adding a vtkPlusSetUSParameterCommand.

The group I'm with has been using a custom program around Plus to send ultrasound parameter commands to a vtkPlusCapistranoVideoSource device for awhile now. We frequently use it to update WobbleRate(frame rate), bidirectional/unidirectional mode, freeze/unfreeze etc. If we can start doing this through Plus directly that would be great.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/PlusToolkit/PlusLib/issues/168#issuecomment-353115164, or mute the thread https://github.com/notifications/unsubscribe-auth/ADD8npjvd_57AGPAm_rFY0vCGftHKPuqks5tCTiegaJpZM4PfvYd .

lassoan commented 6 years ago

@cpinter could you help @jamesobutler in applying your new developments for their project?

cpinter commented 6 years ago

@jamesobutler The plan is to have a device-invariant way of setting parameters. The devices can specify parameter constraints etc, and will be responsible for communicating device parameter changes (when somebody turns a knob for example). It seems we need to add new parameters to support your use case (all three you mention). I can add these while I work on the other aspects of this task.

jamesobutler commented 6 years ago

So is there a master list of parameters that is used by all devices, or does each device have its own list of parameters that can be changed?

For a Bidirectional/Unidirectional parameter, this would only be relevant for single element wobbler probes and not for say a linear array. Though I could see Freeze/Unfreeze being used by all probes.

Also @dzenanz is who I work with as he issues most commits on my behalf.

lassoan commented 6 years ago

The idea is to have as many common parameters as possible. It allows applications to switch between various ultrasound systems with minimal changes.

Of course, in addition to common parameters, devices can expose any number of custom, device-specific settings.

jamesobutler commented 6 years ago

Ok, makes sense. Is this limited to Ultrasound related parameters? Or can we send commands to other devices within PlusDataCollection? We will be adding support for an Andor CCD camera for BLI acquisitions to pair with Ultrasound. This will likely need to accept commands for changing settings like shutter, exposure, binning, etc. We also use our program to send/receive info to GenericSerialDevices and tracker devices(such as telling it to reset after a calibration).

lassoan commented 6 years ago

We have a common base class for ultrasound imaging devices, which enables common interface. At some point, it would probably make sense to implement a common interface for optical cameras, too.

Calibration reset and similar commands will most likely remain device-specific.

cpinter commented 6 years ago

Commits related to this ticket (these were not referenced when committing): https://github.com/PlusToolkit/PlusLib/commit/d6cf2463c624a7f9a65eb92ad6f9a914f3f03bd3 https://github.com/PlusToolkit/PlusLib/commit/c76f164f57a9a68d9bca3d5588d3a400b6b67b60 https://github.com/PlusToolkit/PlusLib/commit/42a0e452ad644f2427cf6d3ebb3a5b9f90c65a12 https://github.com/PlusToolkit/PlusLib/commit/fc7016278cefd1043854e07a7e7be63b3f29d115 https://github.com/PlusToolkit/PlusLib/commit/cf63074cfbf127f797a0740b19e00441b0ab8cab https://github.com/PlusToolkit/PlusLib/commit/86986225d43b6851e84acf36b0dc83c50147d316 https://github.com/PlusToolkit/PlusLib/commit/7ae493476667f1d73808d4846c246d3771161fa3

dzenanz commented 5 years ago

I this feature finished or abandoned?

Sunderlandkyl commented 5 years ago

OpenIGTLink commands for changing ultrasound parameters have been implemented (Command doccumentation).

Here is a commit showing how the Telemed device was adapted to process the commands: https://github.com/PlusToolkit/PlusLib/commit/9b2839d50ab149b474a1b6169d2e678053ab9d14#diff-7c710c753889a23ba95929686ec9a5c4