Skip to content

Releases: marcodebe/dicom-ecg-plot

v1.4.1

27 Apr 22:42

Choose a tag to compare

Fixed

  • processor.py: ChannelSensitivityCorrectionFactor tag now accessed with a safe fallback (1.0) instead of a bare attribute access that would crash on non-standard DICOM files
  • processor.py: ChannelSensitivityUnitsSequence now handled with a fallback to 'uV' when the sequence is absent
  • plotter.py: ChannelSourceSequence now accessed safely; missing sequence falls back to a generic label (Ch{n})
  • plotter.py: PatientName tag now read via dicom.get() to avoid AttributeError on files where the tag is absent
  • plotter.py: invalid layout ID now raises a clear ValueError instead of a cryptic KeyError
  • reader.py: WADO requests now include a 30 s timeout and call raise_for_status(), with a readable error message on failure
  • ecg.py: added public close() method and context manager support (with ECG(...) as ecg:)
  • dicom-ecg-plot: removed Python 2 stdout fallback (project is Python 3 only)
  • i18n.py: locale path is now absolute and relative to the module file, independent of the working directory

v1.4.0

27 Apr 22:20

Choose a tag to compare

Major refactor: the monolithic ECG class has been split into focused modules and the scipy dependency has been removed.

Added

  • ecg/reader.py — DICOM reading and metadata extraction
  • ecg/processor.py — waveform signal extraction and scaling
  • ecg/plotter.py — Matplotlib rendering logic
  • ecg/dsp.py — pure-Python DSP (Butterworth lowpass filter), replacing scipy
  • --paper letter option in the CLI
  • Graceful error handling in the CLI (invalid files, missing tags)

Changed

  • Lead labels now resolved via DICOM CodeValue lookup instead of text manipulation
  • DICOM date and patient age parsing made more robust (handles missing or malformed tags)
  • All internal comments and docstrings translated from Italian to English

Removed

  • scipy dependency