Sharing MRML between modules

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Sharing MRML between modules

lcoram
Hi Slicer developers,

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

Thanks, 
Louise

_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

pinter

Hi Louise,

 

The MRML scene is stored by the Slicer application, not individual modules. If a module creates a node, it is added to this central MRML scene. If another module wants to use that node, it just needs to know the node ID, and it can access and modify it freely.

 

Hth,

csaba

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: Tuesday, February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise


_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lasso2
In reply to this post by lcoram

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise


_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lcoram
In reply to this post by lcoram
I was not clear enough, I mean that we create our own specific types of MRML nodes - say "vtkMRMLResectionNode"  - and want to share that between modules.

On Tue, Feb 7, 2017 at 9:50 PM, Csaba Pinter <[hidden email]> wrote:

Hi Louise,

 

The MRML scene is stored by the Slicer application, not individual modules. If a module creates a node, it is added to this central MRML scene. If another module wants to use that node, it just needs to know the node ID, and it can access and modify it freely.

 

Hth,

csaba

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: Tuesday, February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise



_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lcoram
In reply to this post by lcoram
Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise



_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lcoram
In reply to this post by lcoram
You are right Andras, it would be more than MRML, it would at least also include the displayable managers. 

I guess the question could be made more generic: is there sensible way to share code between modules in an extension? (So as to not duplicate or have dependencies on one particular module)

Thanks for your help and input!

Louise

On Feb 7, 2017 9:54 PM, "Louise Oram" <[hidden email]> wrote:
Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise



_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lasso2
In reply to this post by lcoram

If a module uses classes defined in another module then there will be dependency between the modules (unless they are CLI or scripted modules). It’s not a problem at all, that’s how C++ works. If you specify that a module depends on another module (in your module cxx file) then Slicer makes sure that your module is initialized after all other modules that it depends on are initialized.

 

Andras

 

From: Louise Oram [mailto:[hidden email]]
Sent: February 7, 2017 16:42
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: Sharing MRML between modules

 

You are right Andras, it would be more than MRML, it would at least also include the displayable managers. 

 

I guess the question could be made more generic: is there sensible way to share code between modules in an extension? (So as to not duplicate or have dependencies on one particular module)

 

Thanks for your help and input!

 

Louise

 

On Feb 7, 2017 9:54 PM, "Louise Oram" <[hidden email]> wrote:

Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

 

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise

 


_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lasso2
In reply to this post by lcoram

Although you could create a hidden “utility” module (see for example DoubleArrays and Units modules in the Slicer core), I would not recommend dumping a bunch of more-or-less related MRML nodes without an associated GUI into a hidden module. Having separate modules (each with its own GUI, displayable manager, reader/writer, etc.), with clear, explicitly stated dependencies between them is much better, as it achieves high cohesion within a module and low coupling between modules. Typically you’ll have some low-level infrastructure modules that implement new nodes types, etc., and high-level modules that implement various processing on these new node types.

 

We could give you more specific advice if you send us the list of your modules and a few words about what they contain.

 

Andras

 

From: Louise Oram [mailto:[hidden email]]
Sent: February 7, 2017 15:55
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: Sharing MRML between modules

 

Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

 

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise

 


_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lcoram
In reply to this post by lcoram
We have 1 module (and likely more in the future) that creates segmentations. Then there is a planning module that needs to know what all the parts of the 3D model / segmentations actually are. We had thought to have nodes for each type of "part" for easy identification - for instance vtkMRMLTumorNode, vtkMRMLVeinXNode, etc. 
Then if the other modules wanted to use these nodes (for when the node is created during segmentation) we would have module dependencies. However, there are other ways we could handle this data "transfer" between modules - such as careful naming.  

Thinking its likely a good idea to use the vtkMRMLSegmentationNode to handle the segmentation together. Is it then best to try to rely on particular colours to be identified as specific "parts"?  

On Wed, Feb 8, 2017 at 7:38 AM, Andras Lasso <[hidden email]> wrote:

Although you could create a hidden “utility” module (see for example DoubleArrays and Units modules in the Slicer core), I would not recommend dumping a bunch of more-or-less related MRML nodes without an associated GUI into a hidden module. Having separate modules (each with its own GUI, displayable manager, reader/writer, etc.), with clear, explicitly stated dependencies between them is much better, as it achieves high cohesion within a module and low coupling between modules. Typically you’ll have some low-level infrastructure modules that implement new nodes types, etc., and high-level modules that implement various processing on these new node types.

 

We could give you more specific advice if you send us the list of your modules and a few words about what they contain.

 

Andras

 

From: Louise Oram [mailto:[hidden email]]
Sent: February 7, 2017 15:55
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: Sharing MRML between modules

 

Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

 

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise

 



_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

pinter

Segmentation node is indeed the intended way to store segmentations. Identifying segmented structures is possible by standard terminology. Using a recent nightly, double-click the color for a segment, and the terminology selector shows up. The terminology information is then stored in the segments as tags, and can be handled as a vtkTerminologyEntry object after deserialization.

 

Note that the details are still being refined such as user interface and interactions. The underlying infrastructure and the logic can be considered final though.

 

csaba

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: Friday, February 10, 2017 11:31
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: [slicer-devel] Sharing MRML between modules

 

We have 1 module (and likely more in the future) that creates segmentations. Then there is a planning module that needs to know what all the parts of the 3D model / segmentations actually are. We had thought to have nodes for each type of "part" for easy identification - for instance vtkMRMLTumorNode, vtkMRMLVeinXNode, etc. 

Then if the other modules wanted to use these nodes (for when the node is created during segmentation) we would have module dependencies. However, there are other ways we could handle this data "transfer" between modules - such as careful naming.  

 

Thinking its likely a good idea to use the vtkMRMLSegmentationNode to handle the segmentation together. Is it then best to try to rely on particular colours to be identified as specific "parts"?  

 

On Wed, Feb 8, 2017 at 7:38 AM, Andras Lasso <[hidden email]> wrote:

Although you could create a hidden “utility” module (see for example DoubleArrays and Units modules in the Slicer core), I would not recommend dumping a bunch of more-or-less related MRML nodes without an associated GUI into a hidden module. Having separate modules (each with its own GUI, displayable manager, reader/writer, etc.), with clear, explicitly stated dependencies between them is much better, as it achieves high cohesion within a module and low coupling between modules. Typically you’ll have some low-level infrastructure modules that implement new nodes types, etc., and high-level modules that implement various processing on these new node types.

 

We could give you more specific advice if you send us the list of your modules and a few words about what they contain.

 

Andras

 

From: Louise Oram [mailto:[hidden email]]
Sent: February 7, 2017 15:55
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: Sharing MRML between modules

 

Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

 

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise

 

 


_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lcoram
In reply to this post by lcoram
Thanks for clarifying Csaba. I had been wondering if there was a way to "tag" a part, will look more closely at it!



On Feb 10, 2017 17:53, "Csaba Pinter" <[hidden email]> wrote:

Segmentation node is indeed the intended way to store segmentations. Identifying segmented structures is possible by standard terminology. Using a recent nightly, double-click the color for a segment, and the terminology selector shows up. The terminology information is then stored in the segments as tags, and can be handled as a vtkTerminologyEntry object after deserialization.

 

Note that the details are still being refined such as user interface and interactions. The underlying infrastructure and the logic can be considered final though.

 

csaba

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: Friday, February 10, 2017 11:31
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: [slicer-devel] Sharing MRML between modules

 

We have 1 module (and likely more in the future) that creates segmentations. Then there is a planning module that needs to know what all the parts of the 3D model / segmentations actually are. We had thought to have nodes for each type of "part" for easy identification - for instance vtkMRMLTumorNode, vtkMRMLVeinXNode, etc. 

Then if the other modules wanted to use these nodes (for when the node is created during segmentation) we would have module dependencies. However, there are other ways we could handle this data "transfer" between modules - such as careful naming.  

 

Thinking its likely a good idea to use the vtkMRMLSegmentationNode to handle the segmentation together. Is it then best to try to rely on particular colours to be identified as specific "parts"?  

 

On Wed, Feb 8, 2017 at 7:38 AM, Andras Lasso <[hidden email]> wrote:

Although you could create a hidden “utility” module (see for example DoubleArrays and Units modules in the Slicer core), I would not recommend dumping a bunch of more-or-less related MRML nodes without an associated GUI into a hidden module. Having separate modules (each with its own GUI, displayable manager, reader/writer, etc.), with clear, explicitly stated dependencies between them is much better, as it achieves high cohesion within a module and low coupling between modules. Typically you’ll have some low-level infrastructure modules that implement new nodes types, etc., and high-level modules that implement various processing on these new node types.

 

We could give you more specific advice if you send us the list of your modules and a few words about what they contain.

 

Andras

 

From: Louise Oram [mailto:[hidden email]]
Sent: February 7, 2017 15:55
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: Sharing MRML between modules

 

Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

 

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise

 

 


_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ
Reply | Threaded
Open this post in threaded view
|

Re: Sharing MRML between modules

lasso2
In reply to this post by lcoram

In addition to standard DICOM terminology, you can also identify segments based on segment ID (not shown to the user, must be unique within a segmentation) and segment name (shown to the user, user can change it on the GUI). You can also store any custom data in each segment using string key/value pairs (https://www.slicer.org/doc/html/classvtkSegment.html#a895cbc1917f372bdcd8a9542f90d1b8b).

 

Andras

 

From: Louise Oram [mailto:[hidden email]]
Sent: February 10, 2017 12:16
To: Csaba Pinter <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>; Andras Lasso <[hidden email]>
Subject: RE: Sharing MRML between modules

 

Thanks for clarifying Csaba. I had been wondering if there was a way to "tag" a part, will look more closely at it!

 

 

 

On Feb 10, 2017 17:53, "Csaba Pinter" <[hidden email]> wrote:

Segmentation node is indeed the intended way to store segmentations. Identifying segmented structures is possible by standard terminology. Using a recent nightly, double-click the color for a segment, and the terminology selector shows up. The terminology information is then stored in the segments as tags, and can be handled as a vtkTerminologyEntry object after deserialization.

 

Note that the details are still being refined such as user interface and interactions. The underlying infrastructure and the logic can be considered final though.

 

csaba

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: Friday, February 10, 2017 11:31
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: [slicer-devel] Sharing MRML between modules

 

We have 1 module (and likely more in the future) that creates segmentations. Then there is a planning module that needs to know what all the parts of the 3D model / segmentations actually are. We had thought to have nodes for each type of "part" for easy identification - for instance vtkMRMLTumorNode, vtkMRMLVeinXNode, etc. 

Then if the other modules wanted to use these nodes (for when the node is created during segmentation) we would have module dependencies. However, there are other ways we could handle this data "transfer" between modules - such as careful naming.  

 

Thinking its likely a good idea to use the vtkMRMLSegmentationNode to handle the segmentation together. Is it then best to try to rely on particular colours to be identified as specific "parts"?  

 

On Wed, Feb 8, 2017 at 7:38 AM, Andras Lasso <[hidden email]> wrote:

Although you could create a hidden “utility” module (see for example DoubleArrays and Units modules in the Slicer core), I would not recommend dumping a bunch of more-or-less related MRML nodes without an associated GUI into a hidden module. Having separate modules (each with its own GUI, displayable manager, reader/writer, etc.), with clear, explicitly stated dependencies between them is much better, as it achieves high cohesion within a module and low coupling between modules. Typically you’ll have some low-level infrastructure modules that implement new nodes types, etc., and high-level modules that implement various processing on these new node types.

 

We could give you more specific advice if you send us the list of your modules and a few words about what they contain.

 

Andras

 

From: Louise Oram [mailto:[hidden email]]
Sent: February 7, 2017 15:55
To: Andras Lasso <[hidden email]>
Cc: SPL Slicer Devel <[hidden email]>
Subject: Re: Sharing MRML between modules

 

Yeah - so there is no way to get around depending on other modules? for instance some sort of shared MRML library for the extension used by each module?

 

On Tue, Feb 7, 2017 at 9:51 PM, Andras Lasso <[hidden email]> wrote:

If you introduce a new MRML node then usually you implement displayable managers, reader/writer, logic classes, etc. All those go into a module. Then all your other modules that use this new MRML node will depend on this module.

 

Andras

 

From: slicer-devel [mailto:[hidden email]] On Behalf Of Louise Oram
Sent: February 7, 2017 15:46
To: SPL Slicer Devel <[hidden email]>
Subject: [slicer-devel] Sharing MRML between modules

 

Hi Slicer developers,

 

If you have an extension with several modules, but basically want a common MRML (particular nodes, storage nodes, etc. that all modules make use of)... is this possible? One way to do it is to have one module that contains the MRML, and have all the other modules depend on it - but this feels suboptimal. 

 

Thanks, 

Louise

 

 


_______________________________________________
slicer-devel mailing list
[hidden email]
http://massmail.spl.harvard.edu/mailman/listinfo/slicer-devel
To unsubscribe: send email to [hidden email] with unsubscribe as the subject
http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/FAQ