An open API service indexing awesome lists of open source software.

https://github.com/cascadepass/cpap-exporter

Export CPAP and BiLevel data to CSV
https://github.com/cascadepass/cpap-exporter

apnea bipap cpap csharp edf mvvm resmed sa sleep uars wpf

Last synced: about 1 month ago
JSON representation

Export CPAP and BiLevel data to CSV

Awesome Lists containing this project

README

        

# CPAP Exporter

CPAP Exporter is a flexible, open-source tool that helps users extract and analyze data from CPAP or BiPAP machines. It reads the files saved on the device's SD card and exports the data into **CSV files**, with planned support for **XML**, **JSON**, and other formats in the future.

The application features a **simple, intuitive user interface** that guides users through selecting:
- Which signals to export (e.g., flow rate, leak rate, pressure, etc.).
- Specific nights to pull data from.
- Output preferences (e.g., single file or multiple files).

This level of customization makes it easier for users to analyze their data in tools like Excel, combine it with data from other devices like sleep trackers, or share it with medical professionals.

## Features
- Extracts CPAP/BiPAP data and exports it as CSV files.
- (Planned support for XML, JSON, and more).
- Resample high resolution signals like *Mask Pressure* as needed, allowing users to export any data available in the EDF files.
- Analyzes wave form data to find periods when the user didn't fully stop breathing, but did not breathe well.
- Open source, free to use, with no ads or data collection.

## Usage
1. Insert your CPAP or BiPAP machine's SD card into your computer, or make the files from the SD card available eg over a network share.

2. Launch CPAP Exporter.

3. Follow the guided steps to:

4. Choose specific nights for data export.

5. Select desired signals (e.g., flow rate, leak rate, pressure, etc.).

6. Configure output file settings (eg one file per night or one file in total).

7. Export the data and analyze it in your favorite tools (e.g., Excel).

## Getting Started
### Prerequisites
#### End User
- CPAP-Exporter currently needs Windows and .NET 9 to run.

#### Developer
- [Visual Studio](https://visualstudio.microsoft.com/) is the easiest way to use the code.

### Getting the Code Base
1. Clone the repository:
```bash
git clone https://github.com/CascadePass/CPAP-Exporter

### Building and Debugging the Code

1. Open the .sln file in Visual Studio.

2. Build and run the project.

### Contributing
Contributions are welcome! There are usually some "[good first issues](https://github.com/CascadePass/CPAP-Exporter/labels/good%20first%20issue)" for new developers, and more challenging problems too. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.

## Screenshots

**Opening Files**: CPAP-Exporter keeps a history of the folders you've imported from recently.

![image](https://github.com/user-attachments/assets/37ad3576-5025-4029-8b0b-8b7cdd0c15d8)

**Choosing Nights**: Check each nights you want to include in your export.

![image](https://github.com/user-attachments/assets/b74de2e4-731b-4b32-aa6f-60e73be0ce24)

**Choose Signals**: Choose which columns you'd like to export. CPAP-Exporter can resample Flow Rate, Mask Pressure, and any other high resolution data to match everything else in the file.

![image](https://github.com/user-attachments/assets/866dfa66-6a62-49ed-b55b-552952c3c2bc)

**Options**: Choose whether you want column headers, columns like a session identifier, whether to combine all of the data into a single file or one per night, and whether to write events. Because CSV is *single table*, events will be written to a separate file.

![image](https://github.com/user-attachments/assets/54df86f8-9d52-4e16-ae79-b55bf04b9f67)

**Saved Files**: Once the files are saved, it's easy to manage them.

![image](https://github.com/user-attachments/assets/055f7f52-c187-4e19-8d9a-b693632c136c)

## Acknowledgments

CPAP-Exporter wouldn’t have been possible without the invaluable contributions of the open-source community. We want to acknowledge and express our gratitude to the developers and maintainers of the libraries that made this application a reality:

- [cpap-lib by EEGkit](https://github.com/EEGKit/cpap-lib), a complete application for viewing CPAP and BiPAP data. I've updated the code slightly to support more PAP machines.

- [StagPoint.EDF](https://github.com/EEGKit/StagPoint.EuropeanDataFormat.Net), a library for reading the EDF files generated by a CPAP/BiPAP machine.

- [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json), a library for json processing.

We deeply appreciate the time, effort, and expertise that went into creating and maintaining these libraries. If you find CPAP-Exporter helpful, consider also supporting the creators of these incredible tools!

## Data Privacy

CPAP-Exporter does not collect or store any of your data, except in the files you tell it to write.

- **Data Collection**: This application does not collect or store personal user data. All processing is conducted locally on your device, ensuring your data stays private.

- **Dependencies**: External libraries and dependencies used in this application are vetted to ensure they adhere to privacy standards.

### Security

All builds of CPAP-Exporter are made on a secure server, eliminating any risks associated with a compromised development machine. This ensures the integrity of the released application. To prevent malicious code from exfiltrating user data, dependency injection is disabled in release builds. This guarantees that the application operates securely and as intended.

## License
This project is licensed under the MIT License. See the [LICENSE file](https://github.com/CascadePass/CPAP-Exporter/blob/main/LICENSE) for details.