Releases: marcodebe/dicom-ecg-plot
Releases · marcodebe/dicom-ecg-plot
v1.4.1
Fixed
processor.py:ChannelSensitivityCorrectionFactortag now accessed with a safe fallback (1.0) instead of a bare attribute access that would crash on non-standard DICOM filesprocessor.py:ChannelSensitivityUnitsSequencenow handled with a fallback to'uV'when the sequence is absentplotter.py:ChannelSourceSequencenow accessed safely; missing sequence falls back to a generic label (Ch{n})plotter.py:PatientNametag now read viadicom.get()to avoidAttributeErroron files where the tag is absentplotter.py: invalid layout ID now raises a clearValueErrorinstead of a crypticKeyErrorreader.py: WADO requests now include a 30 s timeout and callraise_for_status(), with a readable error message on failureecg.py: added publicclose()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
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 extractionecg/processor.py— waveform signal extraction and scalingecg/plotter.py— Matplotlib rendering logicecg/dsp.py— pure-Python DSP (Butterworth lowpass filter), replacingscipy--paper letteroption in the CLI- Graceful error handling in the CLI (invalid files, missing tags)
Changed
- Lead labels now resolved via DICOM
CodeValuelookup 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
scipydependency