Repository navigation
v1.1.0
Breaking changes
- Only stored values are reported: intervals, heart rate, QTc, end dates and derived leads are no longer computed, and pacemaker status or severity are no longer inferred from text. Missing fields stay empty.
- Stricter error handling: unknown files raise
UnsupportedFormatError, empty or damaged files raiseCorruptedFileError, and a missing optional dependency raisesImportError. - Processing input validation: NaN, infinite values and 2-D arrays raise
ValueError.clean_ecgrejects unknown keyword arguments and propagates backend errors. - Normalized leads are unitless: min-max and z-score outputs carry no physical unit and are not rescaled by
to_physical(). Lead.to_physical()raisesRawSamplesErrorwhen the file provides no physical unit.
Parsing
- Scaling contract:
FileParser.parse()returns leads in mV by default.auto_scale=Falsereturns the stored values together with the scale needed to convert them. - Interpretation source:
interpretation.sourcedistinguishes device statements ("machine") from physician statements ("confirmed","overread"). When both are present, the device statements are kept inannotations["machine_interpretation"]. - SCP-ECG and MFER rewritten according to EN 1064 and MFER Part 1.
- WFDB, EDF, DICOM, HL7 aECG, GE MUSE, Philips Sierra, Mortara ELI and ISHNE: numerous decoding and metadata fixes. Decoded signals match wfdb-python, pyedflib, pydicom, the FDA aECG reader and sierraecg on real recordings.
- EDAN ARC Holter marked experimental, as the format is undocumented.
- New fields:
ECGRecord.file_format,PatientInfo.has_pacemakerandPatientInfo.pacemaker_type. NewChecksumWarningfor checksum mismatches.
Signal processing
- R-peak detection: Pan-Tompkins (default) no longer stops after artifacts, ignores flat segments and no longer counts T waves. MIT-BIH: 99.5 % sensitivity, 98.1 % positive predictive value at 250 to 1000 Hz.
- Lead derivation, resamplingw and physical leads correctly.
- Signal quality and HRV are consistent across sampling rates, and warn on recordings
too short for frequency-domain - DeepFADE preserves input amplitude, refuses raw counts and is marked experimental.
Full Changelog: v1.0.2...v1.1.0