SORRY - Software for Open Research in Radiation therapY

SORRY sources

SORRY 1.8.1 (Faschiertes) is out now!

The latest SORRY code can be checked out from the SVN repository at

or specific release versions from[release]

Currently available tags:

To check out the repository use

svn co . 


The documentation of the current release is available at
Documentation of older releases will be listed here later on.

Need help?

If you need any help please refer to the specific mailing lists at
If you want to you can also circle us at Google+.

For copyright © information please refer to


Release 1.8.1 (r4069)


  • Added two new signals for registration handling in TCS RegistrationAtTCSSuccessful and RegistrationAtTCSFailed
  • IsRegistratedAtTcs function was added
  • Added two signals concerning the TCS connection (RegistrationAtTCSSuccessful / RegistrationAtTCSFailed)
  • Added a Signal which is emited when a tcs connections is established!
  • LookupTableHandler is able to hold either a direction independent LUT or two direction dependent ones.
  • Added ComputeAngularDifference() for computing angular gaps on circular trajectories (start,stop,direction) to math tools
  • Automatically update some values of the configuration if the files change
  • PluginCoreBase provides a templated method to update TCS values.
  • The siddon DRR filters now allow for restricting the casted rays through the volume by the source and the detector. This option is required for simulating DRRs of objects larger than the source/panel trajectories, e.g. a cube of air.
  • The "axis_piercing_offset_cm" key in geometric detector models can now be two-dimensional (in order to also support offsets in column direction).
  • Extended "DeriveDefaultPath"
  • Added automatic dose / plan referencing capability to radART-DICOM-Import.
  • Fixed System is now configurable and read by the ConfigurationManager.
  • A syncron communication (command forwarding) is now also from other threads than the initial connection thread possible
  • CLS: Update CLS Example Application to support more configuration options
  • Added a splash screen to the plugin template
  • Added DIG-F state to the data model
  • Added flag to determine whether an interlock is a test interlock
  • Qt translation is added to the PluginTemplate if the qm file is available in the translation dir.
  • RoomControlPointSequence can check whether it is completely time mapped or not
  • Time mapping of the RoomControlPointSequence can be cleared now
  • Joint got a new Clone() method which acts like a virtual copy constructor. It is possible to call Clone() on the base class now and get a copy of the actual object.
  • ora::SystemInformation and SystemParameterVerifier support now operating system architecture (32-bit vs. 64-bit) verification and extraction opportunities
  • ora::SystemInformation provides a method for a) retrieving the most important system parameters (OS version, service pack version, nominal CPU clockspeed, free harddisk space, RAM size) and b) for verifying specified system parameters in terms of exact match or minimum requirement (greater-than-or-equal); along with the ora::SystemInformation singleton there comes a lightweight command line tool (SystemParameterVerifier) in order to allow applications to completely outsource a) and b) into separate process - WARNING: currently the Linux-implementation is just a stub to satisfy the overall cross-platform framework (Linux implementation not needed at the moment), only the Windows version is really functioning and required now.
  • CLS: Add possibility to change directory of log files and temporary files


  • For synchrony TCS Forward Commands
  • Fix that for empty lines it was tried to access buffer[-1].
  • Grant const correctness for ConfigureProjectionGeometry() method of source and panel model classes and subclasses.
  • Prevented a possible NULL Pointer exception by accessing the image data of a 0x0 size image (is returned in case no images are there to be used to calculate the average image)
  • Fixed to also compile with MinGW (SORRY base)
  • CLS: Fix log rotation and add more debug output
  • Fixed memory leak in oraXRawImageIO.txx which can happen if an error occurs when deflating the image
  • Fixed path to DICOMDescriptions file
  • RadiationType in the VAA runfile is now dependent on the IonBeam's RadiationType and not on RadiationMassNumber
  • Fixed QTools bug concerning file listings on Unix systems.
  • Updated TestCommands due to the change that on ID overflow the next valid ID is 1 now and not 0 anymore.
  • On unregistering commands the command itself was deleted even though it was not allocated by the command parser. This caused a segmentation fault if the command to unregister is the same (the pointer not the ID) as the registered one. Now it is only removed from the map. A check for NULL was added as well.
  • Fixed severe bug which can cause an infinite loop with a configuration that refers to other objects which name is not known at the point of referencing.
  • String representation of RoomControlPoint is working again.
  • Fixed the 2D/3D registration render pipeline to correctly destroy and to free all render pipeline components. This should result in a minor performance shift (since the rendering of previous ray-cast mapper is not only aborted through the mapping-ID mechanism, but also prevented) and removes the memory leak emerging from still connected ray-cast mappers. Moreover, these changes make the mapping-ID workaround obsolete which is, however, preserved as reminder and quick-fix for future developments.
  • Typo in TestDIPCMessaging prevented test from succeeding
  • IniAccess unit tests fixed to point to ".no-cs-update" reference files in order to prevent to have the checksum of the **REFERENCE** INI files overwritten during ORAIFUTILSdata-export generation with integrated checksum updating

API Changes

  • oraLookupTableHandler was relocated to the math package and rewritten to get rid of Qt dependency.
  • TCSLinearInterpolation was removed.
  • Moved some parameters from ora::Treatment to ora::Plan and fixed some minor issues
  • Renamed ora::QFileTools::CopyFile to ora::QFileTools::CopyOrOverwriteFile due to a damn windows macro in winbase.h
  • IsocenterPosition is now solely a property of IsoEnergySlice