Module Control Flow

Epina ImageLab provides the capability to start external programs, letting them perform some data processing and getting the processed data back zu Epina ImageLab. The message based data exchange between Epina ImageLab and user-supplied modules (USMs) is based on the following general operating scheme:

  1. The user writes a control script in ILabPascal which performs any required preprocessing steps. The control script should prepare the datasets to be used by the USM and store them in the scratch folder of Epina ImageLab. Alternatively, you can access the image hypercube directly by using the TMat4D component of the SDL Component Suite. The TMat4D class is also available within ILabPascal but for external programs you have to use this class from the SDL Suite (both Pascal/Delphi and C++ are supported).
  2. After the datasets have been prepared the function CallUSM prepares the communication structure and starts the USM.
  3. The USM processes the data and writes the results to the semaphore space using the message PushMat for each data matrix to be transfered back to Epina ImageLab. Note: During the processing phase the USM can send messages to ImageLab which are interpreted and executed immediately. These messages are used to provide status feedback, help support and data transfer.
  4. Finally the USM releases control of the data and exits.
  5. Epina ImageLab can now pick up the data and proceed according to the ILabPascal statements following the CallUSM statement. Normally data will be retrieved from the global variable MatStack.