Decode Aspect/Covidien/Medtronic BIS Advance/Vista data-download files (processed trend, spectrogram, raw EEG) to tidy CSV/NumPy.
Project description
bisdecode
Decode Aspect / Covidien / Medtronic BIS Advance / Vista data-download files
into analysis-ready tables. The per-case DH export is a vendor-undocumented,
nine-file bundle; bisdecode reverse-engineers it into tidy CSV + NumPy.
⚠️ Unofficial / reverse-engineered. Not affiliated with or endorsed by the device manufacturer. Field mappings were validated against
BIS R2 4.1/BISx 1.15.2.22exports cross-checked with the official BIS PDF reports. Verify against your own device revision before relying on it. Raw EEG is stored as ADC counts; µV scaling needs the (not-exported) BIS R2 gain constant.
Install
pip install bisdecode
CLI
# decode one case (folder containing a DH*/ subfolder, or the DH folder itself)
bisdecode decode path/to/M-XXXX-... -o decoded
# batch every case under a root
bisdecode decode raw-data --all -o decoded
# anonymised export: per-case date-shift, output named by Case ID, key kept secret
bisdecode decode raw-data --all --anonymise -o decoded_anon --key-file KEY.csv
# one-row-per-case cohort summary from decoded trends
bisdecode cohort decoded -o cohort_summary.csv
Per case you get: *_trend.csv (per-second BIS / SR / SEF / median freq / total
power / EMG / SQI / impedance / artifact / burst, per channel), *_spectra.csv
(60-bin density spectral array), *_events.csv, *_messages.csv, *_meta.json,
and *_eeg.npy (raw EEG, int16, 2ch @ 128 Hz).
Python API
import bisdecode
meta = bisdecode.decode_case("path/to/M-XXXX-...", "decoded")
trend = bisdecode.parse_spa("…/L…spa") # -> pandas DataFrame
eeg = bisdecode.parse_eeg("…/L….r2a") # -> ndarray (n, 2) int16
row = bisdecode.summarize("decoded/X/X_trend.csv", channel="Ch1")
Anonymisation
--anonymise applies an independent random per-case offset (magnitude in
[--shift-min-days, --shift-days], random sign) to every timestamp —
including those embedded in message text — so dates and clock-times move while
all within-case intervals are preserved. Outputs are named by the monitor Case
ID. The key file maps source_base → offset_seconds; keep it secret (it reverses
the shift: real = shifted − offset). Re-runs reuse the key, so offsets are stable.
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bisdecode-0.1.1.tar.gz.
File metadata
- Download URL: bisdecode-0.1.1.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08d3f7fc84c8749b2c432face9e1afdd03913c76c233c1d859c4929ea7b8aedd
|
|
| MD5 |
6d0dcc837a28dc746a13b423c4b0d5f4
|
|
| BLAKE2b-256 |
19b61474b9cf3263adf28820ada08e3b992960dfcffc19ce366b0e41c401f10e
|
Provenance
The following attestation bundles were made for bisdecode-0.1.1.tar.gz:
Publisher:
publish.yml on bsharif/bisdecode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bisdecode-0.1.1.tar.gz -
Subject digest:
08d3f7fc84c8749b2c432face9e1afdd03913c76c233c1d859c4929ea7b8aedd - Sigstore transparency entry: 1837056758
- Sigstore integration time:
-
Permalink:
bsharif/bisdecode@32b01a09fe27756530e9928ef15c4b01196e75e4 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bsharif
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@32b01a09fe27756530e9928ef15c4b01196e75e4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file bisdecode-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bisdecode-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acf0624b8f6a5d27b4d17bb3265feeaf6ea29efb49f1b9cd22188c5f221d3f3c
|
|
| MD5 |
54f0ee29dacb40fd1bf5464a8ad10e8a
|
|
| BLAKE2b-256 |
acea4f7954c5e55177730e201f4bf112bfed606b5b760619680d0c2a0e3f546a
|
Provenance
The following attestation bundles were made for bisdecode-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on bsharif/bisdecode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bisdecode-0.1.1-py3-none-any.whl -
Subject digest:
acf0624b8f6a5d27b4d17bb3265feeaf6ea29efb49f1b9cd22188c5f221d3f3c - Sigstore transparency entry: 1837056843
- Sigstore integration time:
-
Permalink:
bsharif/bisdecode@32b01a09fe27756530e9928ef15c4b01196e75e4 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/bsharif
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@32b01a09fe27756530e9928ef15c4b01196e75e4 -
Trigger Event:
release
-
Statement type: