Reconstruction of submitted measurement data is done by executing Yarra reconstruction modules. Each reconstruction mode defines which reconstruction module should be called during processing of a task. In addition, optional pre- and post-processing modules can be defined. YarraServer will first execute the (up to 20) pre-processing modules, then call the reconstruction module, then execute the (up to 20) post-processing modules, and finally it will call one or multiple (up to 20) transfer modules, which are responsible for transferring the reconstructed images to target locations (usually a PACS node or network share).
YarraServer comes with a small set of “core” modules, e.g. for sending reconstructed image into PACS. Reconstruction algorithms or additional pre/post-processing modules (“user” modules) can be developed with only little effort, which enables rapid implementation new reconstruction algorithms and extending the functionality of Yarra. Yarra modules are, essentially, Linux executables with a defined command-line interface, which acts as application interface. Yarra modules can be developed either in compiled languages such as C or C++, scripting languages such as Python or shell scripts, or using higher-level languages such as Matlab. More information on the development of Yarra modules can be found here. A simple example for writing a reconstruction module in Matlab is provided here. Once a new module has been developed, it can be easily deployed to servers (or shared with other research centers) using the integrated packaging system.