|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## [Unreleased] |
| 10 | + |
| 11 | +### Documentation |
| 12 | +- Rewrote README in English: added About section, Features list, options table, layout table, configuration section, and authors |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## [1.4.0] — 2026-03-14 |
| 17 | + |
| 18 | +Major refactor: the monolithic `ECG` class has been split into focused modules and the `scipy` dependency has been removed. |
| 19 | + |
| 20 | +### Added |
| 21 | +- `ecg/reader.py` — DICOM reading and metadata extraction |
| 22 | +- `ecg/processor.py` — waveform signal extraction and scaling |
| 23 | +- `ecg/plotter.py` — Matplotlib rendering logic |
| 24 | +- `ecg/dsp.py` — pure-Python DSP (Butterworth lowpass filter), replacing `scipy` |
| 25 | +- `--paper letter` option in the CLI |
| 26 | +- Graceful error handling in the CLI (invalid files, missing tags) |
| 27 | + |
| 28 | +### Changed |
| 29 | +- Lead labels now resolved via DICOM `CodeValue` lookup instead of text manipulation |
| 30 | +- DICOM date and patient age parsing made more robust (handles missing or malformed tags) |
| 31 | +- All internal comments and docstrings translated from Italian to English |
| 32 | + |
| 33 | +### Removed |
| 34 | +- `scipy` dependency |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## [1.3.5] — 2025-07-25 |
| 39 | + |
| 40 | +### Fixed |
| 41 | +- Plot area height calculation was incorrect in some layouts |
| 42 | +- 6×2 layout was rendering lead V1 twice instead of the correct lead pair |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +## [1.3.3] — 2022-01-28 |
| 47 | + |
| 48 | +### Fixed |
| 49 | +- Unknown or missing `VRate` tag no longer raises an unhandled exception |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +## [1.3.2] — 2021-04-13 |
| 54 | + |
| 55 | +### Fixed |
| 56 | +- Acquisition date/time missing or malformed in DICOM no longer causes a crash |
| 57 | + |
| 58 | +--- |
| 59 | + |
| 60 | +## [1.3.1] — 2020-11-11 |
| 61 | + |
| 62 | +### Fixed |
| 63 | +- `papertype` argument removed from `savefig` call (deprecated in Matplotlib) |
| 64 | +- `MaxNLocator` / `AutoMinorLocator` `numticks` argument coerced to `int` |
| 65 | +- WADO response decoded as binary string correctly |
| 66 | +- Broken pip package from previous release |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +## [1.3.0] — 2020-05-11 |
| 71 | + |
| 72 | +### Added |
| 73 | +- Ventricular rate read from the `VRate` DICOM tag |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## [1.2.0] — 2019-09-06 |
| 78 | + |
| 79 | +### Changed |
| 80 | +- Project renamed from `dicomecg_convert` to `dicom-ecg-plot` and published on PyPI |
| 81 | +- Migrated to `pydicom` (dropped the legacy `dicom` import) |
| 82 | +- Binary output to stdout handled correctly on Python 3 |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## [1.1.0] — 2018-02-26 |
| 87 | + |
| 88 | +### Changed |
| 89 | +- Full Python 2 → Python 3 migration |
| 90 | + |
| 91 | +--- |
| 92 | + |
| 93 | +## [1.0.0] — 2016-07-18 |
| 94 | + |
| 95 | +### Fixed |
| 96 | +- WADO `contentType` set to `application/dicom` |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## Earlier history (2013–2015) |
| 101 | + |
| 102 | +- **2015** — Strip microseconds from acquisition date; handle invalid DICOM gracefully |
| 103 | +- **2014** — Optional automated interpretation text (`--interpretation`); i18n/l10n support |
| 104 | +- **2013** — Initial release: DICOM waveform decoding, 3×4+1 / 3×4 / 6×2 layouts, WADO retrieval, Butterworth lowpass filter, configurable institution name, multiple output formats |
| 105 | + |
| 106 | +[Unreleased]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/compare/v1.4.0...HEAD |
| 107 | +[1.4.0]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/compare/v1.3.5...v1.4.0 |
| 108 | +[1.3.5]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/compare/v1.3.3...v1.3.5 |
| 109 | +[1.3.3]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/compare/v1.3.0...v1.3.3 |
| 110 | +[1.3.2]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/tags/v1.3.2 |
| 111 | +[1.3.1]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/tags/v1.3.1 |
| 112 | +[1.3.0]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/tags/v1.3.0 |
| 113 | +[1.2.0]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/tags/v1.2.0 |
| 114 | +[1.1.0]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/tags/v1.1.0 |
| 115 | +[1.0.0]: https://gitlab.galliera.it/debe/dicom-ecg-plot/-/tags/v1.0.0 |
0 commit comments