.NET 8.0 to upgrade a legacy EEG software
Services:
Project overview
Our client – an innovator in designing and manufacturing Electroencephalography (EEG) equipment and technology. By developing state-of-the-art devices and solutions for efficient neuro diagnostics, the company is redefining clinical standards.
Our work was focused on modernizing a program for accurate EEG capture and analysis.
Main goals
- Upgrade the existing codebase to the .NET framework’s version 8 to ensure better performance
- Remove the MS Sync as a legacy tool to enable future replacement with more modern alternatives
- Update LightningChart to a newer version
- Replace TVideoGrabber with GStreamer to address the challenge of long-duration video recordings
- Improve the system’s flexibility by supporting non-Microsoft databases
- Build a solid foundation for future feature expansion and integration
How the solution works
The program is used to record and review EEG studies full on-site by using stationary computers and amplifiers. It’s designed to store the studies on both the computer and amplifier, which allows data sharing and exporting for further clinical evaluation.
We migrated the software to provide a standalone desktop application, which provides critical features:
- Touch-optimized interface for convenient data acquisition and visualization
- USB and Bluetooth support for dual data storage
- Event annotation
- Audio and video recording (high-definition quality)
- Real-time monitoring, in particular battery status
- Session guidance
- Session logging for reimbursement
- Session locking for continuity
Our contribution
Initial state
The system was a WPF application built upon the older .NET framework (version 4.7) and several .NET libraries. Some libraries were designed for desktop use specifically and handled the communication between amplifiers, while others contained shared portal logic for acquisition and review.
The interface was using:
- LightningChart for EEG display, a rather old component and bonded to outdated .NET version
- TVideoGrabber for video capture, which causes some issues during long-time video recording
The system was synced with the Rendr API using outdated Microsoft Sync, which caused several bottlenecks. The system setup required SQL Server Compact Edition on the client side along with MS’ full-feature SQL Server on the server side.
Even though Entity Framework was used, you couldn’t choose different database engines for client and server on account of how sync works.
Current state – updates by Abto Software
In the first stage, our team:
- Upgraded to .NET 8
- Replaced the Entity Framework with the EF Core to support non-Microsoft databases
- Removed the Microsoft Sync
- Introduced a new structure to enable more efficient data storage
- Replaced TVideoGrabber with GStreamer, a robust multimedia engine
- Updated LightningChart version 6.5 to LightningChart version 12, which supports .NET 8
Main challenges
The integration of new multimedia technology
One challenge was replacing the TVideoGrabber with GStreamer, an open-source multimedia framework:
- The technology uses non-monolithic, pipeline-based architecture
- The engine lacks production-ready .NET bindings
- Early versions either crashed or leaked during long video recordings, complicating debugging.
- The interplay with webcams and other medical devices required testing, fallback logic, and alternations for smooth video capture
In brief, we resolved the challenge:
- By exploring the capabilities and limitations of GStreamer
- And adapting the GStreamer to specific project requirements in several project iterations
The handling of devices and cameras without disconnect
Another challenge was maintaining stable connectivity despite interruptions:
- To ensure smooth resumption without restart
- To ensure gap-free alignment after resumption
- To prevent video corruption in case of sudden mid-session disconnection
- And resolve the problem of failed amplifier signals and locked camera drivers
In short, we mastered the challenge:
- By designing a system to handle sudden disconnections
- And enable seamless recovery without crashes or forced session termination to enable data continuity
Tools and technology stack
- .NET 8.0
- EF Core
- WPF framework
Timeline:
- December 2024 – ongoing
Team:
- 1 project manager/requirements analyst/QA engineer
- 1 delivery manager
- 1 technical leader
- 1 GStreamer specialist
Value delivered to business
1. Future-proof technology
.NET capabilities – cross-platform support, clean architecture, faster runtime execution, lower memory usage – for future business growth and cheaper long-term maintenance.
2. Reliable performance
Stable operation even during long sessions – no disruptions and far less downtime in critical clinical settings.
3. A wide-range device compatibility
Easy integration with different EEG devices through USB & Bluetooth – better controlled clinical workflows.
4. Greater adaptivity and scalability
Quick adjustment to different clinical scenarios – more cases dynamically supported without realignment.