Internal:SlicerExtensions: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Angelos (talk | contribs)
Angelos (talk | contribs)
No edit summary
Line 13: Line 13:


== APBNRR Extension ==
== APBNRR Extension ==
Status: <span style="color:red">IMPLEMENTING LOCAL INTERMEDIARY MODULE UI</span>
Status: <span style="color:red">IMPLEMENTING LOCAL INTERMEDIARY MODULE LOGIC</span>


Due to the conflict of ITKDev and the ITK version of Slicer, creating a locally executable APBNRR module for Slicer is not conventionally possible.  
Due to the conflict of ITKDev and the ITK version of Slicer, creating a locally executable APBNRR module for Slicer is not conventionally possible.  
Line 27: Line 27:
* Implement intermediary "executor" Python scriptable module in Slicer for local execution of APBNRR
* Implement intermediary "executor" Python scriptable module in Slicer for local execution of APBNRR
** [<span style="color:green">DONE</span>] Design UI
** [<span style="color:green">DONE</span>] Design UI
** Implement UI
** [<span style="color:green">DONE</span>] Implement UI
** Implement logic
** Implement logic
** Test and debug
** Test and debug
Line 35: Line 35:
** Implement logic
** Implement logic
** Test and debug
** Test and debug
<div><ul>
<li style="display: inline-block;"> [[File:APBNRRLocalUI1.png|thumb|none|600px|'''APBNRR Local Intermediary Module UI on Slicer 4.8 (a)''']] </li>
<li style="display: inline-block;"> [[File:APBNRRLocalUI2.png|thumb|none|600px|'''APBNRR Local Intermediary Module UI on Slicer 4.8 (b)''']] </li>
<li style="display: inline-block;"> [[File:APBNRRLocalUI3.png|thumb|none|600px|'''APBNRR Local Intermediary Module UI on Slicer 4.8 (c)''']] </li>
</ul></div>

Revision as of 12:01, 18 August 2018

PBNRR Extension

Repository: https://github.com/aangelos28/PBNRR


Status: UPLOADED


  • PBNRR running on the upcoming Slicer 4.9 release.
  • PBNRR running on the current Slicer 4.8.1 release (compiled with Qt 5 and VTK 9).

APBNRR Extension

Status: IMPLEMENTING LOCAL INTERMEDIARY MODULE LOGIC

Due to the conflict of ITKDev and the ITK version of Slicer, creating a locally executable APBNRR module for Slicer is not conventionally possible.

But I have figured out another way to do this. I will create a scriptable Python module for Slicer that will act as an intermediary between a portable (that statically links all dependencies) pre-compiled APBNRR executable. This will create the illusion that the user actually uses a traditional external module, which is not the case. The intermediary module will pass around data between the APBNRR executable and Slicer, and because of the deep integration of the Python environment with Slicer, results can instantly be displayed, similarly to a standard external module.

The skeleton of the intermediary module can also be reused for the remote execution module to save time, modified to accommodate remote execution and communicate via SSH.

Checklist

  • [DONE] Create pre-compiled portable APBNRR executable.
 Note: Full portability may not be possible due to some system libraries like LIBC. If there are errors, the user can compile APBNRR themselves and the intermediary module should still work using it. I later plan to utilize the SuperBuild scripts I developed for the earlier design in this portion to create an automatic build system for APBNRR.
  • Implement intermediary "executor" Python scriptable module in Slicer for local execution of APBNRR
    • [DONE] Design UI
    • [DONE] Implement UI
    • Implement logic
    • Test and debug
  • Implement intermediary "executor" Python scriptable module in Slicer for remote execution of APBNRR and parameter optimization (reuse local module skeleton)
    • Design UI
    • Implement UI
    • Implement logic
    • Test and debug


  • APBNRR Local Intermediary Module UI on Slicer 4.8 (a)
  • APBNRR Local Intermediary Module UI on Slicer 4.8 (b)
  • APBNRR Local Intermediary Module UI on Slicer 4.8 (c)