XNAT Add-Ons: Modules, Plugins and Tools

In the XNAT Marketplace, you will find two major classes of downloads: Plugins and Tools. However, there is an important sub-class of what the site calls "Plugins" that are better referred to as "Modules." Indeed, in XNAT 1.6.x, that is the only kind of "plugin" available to you.

So what does each term mean?

Tools

A "Tool" in the XNAT Marketplace refers to something that accesses XNAT data, without directly affecting the XNAT application itself.

For example, DicomBrowser allows you to inspect and edit DICOM headers of files from your scanner, before sending those files to your XNAT archive. DicomBrowser, the application, does not change the way XNAT works - data is imported from DicomBrowser using the same method as by a direct connection between scanner and a DICOM receiver inside XNAT. So we classify DicomBrowser as a "Tool."

Marketplace Tools fall into three major categories:

  1. Apps - desktop or web-based applications that access data in your XNAT
  2. Integration - "middleware" that makes it possible to connect XNAT to another data storage system
  3. Scripts - bits of code (like a REST call or CURL command) that can be run (for example, from the command line) that will interact with XNAT data. 

For more information, see Using XNAT Tools.

Plugins

A "Plugin" in the XNAT Marketplace refers to something that directly modifies the functioning of your XNAT application. It might be as simple as a new CSS file that changes the color scheme of your XNAT. Or it might be as complex as a new bundle of functionality that allows you to store and query longitudinal data for your subjects, while changing menu options and appearance on the Project and Subject report pages.

Marketplace Plugins fall into four major categories:

  1. Admin - offers new functionality for Administrators only
  2. Datatype - extends the XNAT data schema, allowing you to enter and query a new type of data into your project that would have been previously unsupported. Contains an input form and an output report.
  3. Display - a catchall term for any modification to the XNAT layout template or CSS style (or, more commonly, both).
  4. Pipeline - a processing pipeline, to be used by the Pipeline Engine.

A word of warning: The "Plugin" term is a loaded one in the development world, implying an external resource that you can literally plug - or unplug - without fundamentally changing your core application. Unfortunately, the XNAT core does not support a true plugin environment at this time.

As of XNAT 1.6.x, we support a "Modular" architecture, which brings us to...

Modules

A "Module" offers the same ability to add functionality to your XNAT that a "Plugin" does. However, once that module is added, it cannot easily be removed. In this release of the Marketplace, all Modules are categorized as plugins, and can fall into any of the same classes as plugins do.