A Python GUI tool for researchers to securely extract and consolidate variables from distributed sources (SSH/PostgreSQL) like ProNET, PRESCIENT, PNL and DB. Supports variable search from multiple sources, asynchronous processing, and secure data management for psychiatry and neuroimaging research.
- Multi-Source Search: Query data from different research networks through a single unified interface.
- Support for Multiple Variables: Search for multiple variables simultaneously using comma-separated inputs.
- Asynchronous Processing: Utilizes threading to perform remote searches without freezing the GUI.
- Secure Credential Management: Uses the
keyringlibrary to securely store and retrieve user credentials in the system's native keychain. - Automated Formatting: Consolidates results from various files and events into a clean, readable report.
- Python 3.8+.
- Institutional VPN access (if required for server/DB access).
- SSH key authentication configured for remote servers.
- Clone the repository:
git clone https://github.com/your-username/variable-reader.git cd variable-reader - Install dependencies:
pip install -r requirements.txt (Ensure you have paramiko, psycopg2-binary, pandas, and keyring installed.)
- Configure Connection Details:
Note
Open variable_reader_engine.py and variable_reader_gui.py to configure your server settings. Replace the placeholders (e.g., YOUR_SERVER_IP, YOUR_DB_HOST) with your actual server and database configurations.
python variable_reader_gui.py- Global Search Parameters: Enter the Subject ID and the Variable Name(s).
- Authentication: Enter your credentials for the specific data source. Check "Remember" to save them securely via keyring.
- Execution: Click the "Find" button corresponding to the source and data type (Surveys, RPMS, or DB).
- Results: View the formatted output in the result box below each section.
Tip
Multiple Variables > You can search for multiple variables at once by separating them with commas (e.g., chrpsychs_fu_e27, chrscid_a30, chrbprs_bprs_somc).
Warning
This application uses the keyring library to store passwords securely. Never hardcode your actual passwords in variable_reader_engine.py or any other source files.