Skip to content

v1.1.0

Choose a tag to compare

@fallahmad fallahmad released this 09 Oct 10:36
· 37 commits to main since this release

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 raise CorruptedFileError, and a missing optional dependency raises ImportError.
  • Processing input validation: NaN, infinite values and 2-D arrays raise ValueError. clean_ecg rejects 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() raises RawSamplesError when the file provides no physical unit.

Parsing

  • Scaling contract: FileParser.parse() returns leads in mV by default. auto_scale=False returns the stored values together with the scale needed to convert them.
  • Interpretation source: interpretation.source distinguishes device statements ("machine") from physician statements ("confirmed", "overread"). When both are present, the device statements are kept in annotations["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_pacemaker and PatientInfo.pacemaker_type. New ChecksumWarning for 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