Difference between revisions of "2011 Winter Project Week:Command line module logic redesign"

From NAMIC Wiki
Jump to: navigation, search
(Created page with '__NOTOC__ <gallery> Image:PW-SLC2011.png|Projects List Image:SEM_snippet.png </gallery> ==Key Investigators== * Isomics: Steve Pieper * GE:…')
 
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(4 intermediate revisions by one other user not shown)
Line 13: Line 13:
  
 
<h3>Objective</h3>
 
<h3>Objective</h3>
 +
Develop mechanisms for CommandLineModules to be
 +
 +
* More interactive
 +
** return intermediate results
 +
** steerable
 +
* More autonomous
 +
** automatically execute with changes in MRML
 +
* High level task oriented
 +
** chain modules together into workflows
 +
 +
while maintaining the simple conceptual model of SEM.
 +
 +
<!--
 +
 
Refactor the CommandLineModuleLogic for the Slicer Execution Model (SEM).  
 
Refactor the CommandLineModuleLogic for the Slicer Execution Model (SEM).  
  
Line 18: Line 32:
  
 
* builds a parameter list,
 
* builds a parameter list,
* writes temporary data  
+
* writes temporary data,
 
* orchestrates the execution of modules as shared libraries, executables, python code,  
 
* orchestrates the execution of modules as shared libraries, executables, python code,  
* monitors the status, progress, and abort of the module
+
* monitors the status, progress, and abort of the module,
* loads temporary data
+
* loads temporary data,
 
* garbage collection
 
* garbage collection
  
 
+
-->
  
 
</div>
 
</div>
Line 32: Line 46:
 
<h3>Approach, Plan</h3>
 
<h3>Approach, Plan</h3>
  
 +
* Develop more communication channels between Slicer and a Command Line Module
 +
* Develop a MRML-Observer-SEM pattern
 +
* Use Python interface to call command line modules, script modules to chain
 +
* Develop a workflow to manage a chain of command line modules and their UI
  
  
Line 39: Line 57:
  
 
<h3>Progress</h3>
 
<h3>Progress</h3>
 +
 +
Ideas:
 +
* Have GenerateCLP put parameters into an object
 +
* Have current variables be references to the object ivars
 +
* Have a mode in GenerateCLP to not generate the local variables, just the object of variables
 +
* Define standard API to report a change in a parameter value from harness to plugin and plugin to harness
 +
** Have GenerateCLP create a method called Update<ParameterName>?
 +
*** Have generated code call user function when changed?
 +
** Entry points in shared object
 +
** Message in stdin/stdout for executables
  
 
</div>
 
</div>
Line 57: Line 85:
  
 
==References==
 
==References==
* [http://www.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation Execution Model Documentation]
+
* [https://www.slicer.org/wiki/Slicer3:Execution_Model_Documentation Execution Model Documentation]
  
 
</div>
 
</div>

Latest revision as of 17:44, 10 July 2017

Home < 2011 Winter Project Week:Command line module logic redesign

Key Investigators

  • Isomics: Steve Pieper
  • GE: Jim Miller

Objective

Develop mechanisms for CommandLineModules to be

  • More interactive
    • return intermediate results
    • steerable
  • More autonomous
    • automatically execute with changes in MRML
  • High level task oriented
    • chain modules together into workflows

while maintaining the simple conceptual model of SEM.


Approach, Plan

  • Develop more communication channels between Slicer and a Command Line Module
  • Develop a MRML-Observer-SEM pattern
  • Use Python interface to call command line modules, script modules to chain
  • Develop a workflow to manage a chain of command line modules and their UI


Progress

Ideas:

  • Have GenerateCLP put parameters into an object
  • Have current variables be references to the object ivars
  • Have a mode in GenerateCLP to not generate the local variables, just the object of variables
  • Define standard API to report a change in a parameter value from harness to plugin and plugin to harness
    • Have GenerateCLP create a method called Update<ParameterName>?
      • Have generated code call user function when changed?
    • Entry points in shared object
    • Message in stdin/stdout for executables

Delivery Mechanism

This work will be delivered to the NA-MIC Kit as a (please select the appropriate options by noting YES against them below)

  1. ITK Module
  2. Slicer Module YES
    1. Built-in
    2. Extension -- commandline
    3. Extension -- loadable
  3. Other (Please specify) .

References