This is not a very demanding update rate, so using the file system for data transfer would most likely not lead to significant overhead.
However, OpenIGTLink was been developed exactly for this application (MRI image acquisition and scan plane control for Siemens MRI scanners for robot-assisted interventions) and has several advantages over a basic file-based communication, including:
- Better performance: File reading would happen in the main thread, blocking the whole application for short periods of time, which can be quite annoying for users during continuous acquisition. In contrast, OpenIGTLink continuously reads data from the network in the background, without blocking the application GUI at all (and takes care of all the necessary synchronization between the main thread and background threads).
- Two-way communication: In addition to images (either 2D or 3D), OpenIGTLink also allows you to control scan plane (by sending transforms), start/stop acquisition, switch between imaging modes (using commands), etc.
- Simpler implementation: You can implement Philips XTC/OpenIGTLInk bridge in a few dozen lines of Python code, by adding a small OpenIGTLink frontend to matMRI using pyigtl. You don’t need to worry about multithreading, synchronization, debugging random delays in file systems, etc.
- Large ecosystem: There are many tools for real-time image-guided interventional applications based on OpenIGTLink (see for example SlicerIGT and PLUS toolkit). You can record, replay, mix, calibration, synchronize, simulate, broadcast OpenIGTLink data streams. There are many imaging and position tracking tools, various sensors, robotic positioning devices, etc. using OpenIGTLink, so it is easy to integrate all these devices into a system and it is easy to replace any component by another one (e.g., in the lab you can simulate some components just by changing configuration files, without changing any code in your application). You can easily distribute the processing work across several computers if needed and we have examples of how to apply real-time AI processing to image streams.