Monitoring vital signals in an ICU setting is essential for patient care. This desktop application, developed using Python and Qt, provides a multi-port, multi-channel signal viewer with the following features:
- Signal File Import: Users can browse their PC to open signal files, including samples of different medical signals such as ECG, EMG, EEG, etc., with examples of both normal and abnormal signals.
- Dual Graphs: The application contains two identical graphs, each with its own controls. Users can open different signals in each graph and run them independently or link both graphs together. When linked, the graphs display the same time frames, signal speed, and viewport settings.
- Cine Mode: Signals are displayed in cine mode, simulating real-time monitoring as seen in ICU monitors. Signals can be paused, played, rewound, and manipulated in real-time through various UI elements.
- Signal Manipulation: Users can manipulate running signals by changing color, adding labels/titles, showing/hiding signals, customizing cine speed, zooming, panning, and moving signals between graphs. Boundary conditions are enforced to prevent unintended manipulation beyond signal limits.
- Exporting & Reporting: Users can generate a report in PDF format containing snapshots of the graphs and data statistics for the displayed signals, including mean, standard deviation, duration, minimum, and maximum values.
- PyQt5: For building the desktop application GUI.
- pyqtgraph: For real-time plotting and visualization of signals.
- pandas: For data manipulation and statistics generation.
- matplotlib: For additional plotting capabilities.
- numpy: For numerical operations and signal processing.
This project was supervised by Dr. Tamer Basha & Eng. Abdallah Darwish, who provided invaluable guidance and expertise throughout its development as a part of the Digital Signal Processing course at Cairo University Faculty of Engineering.