* feat(ecg): add DICOM ECG waveform extension
Introduce @ohif/extension-dicom-ecg for rendering DICOM waveform (ECG)
data. Register the extension in the basic mode and pluginConfig.json,
and remove ECG from NON_IMAGE_MODALITIES so waveform display sets are
handled by the new viewport.
* refactor(ecg): move ECG support into cornerstone extension per review feedback
- Remove standalone dicom-ecg extension; fold all ECG functionality into
the cornerstone extension as requested by reviewer
- Add ECG SOP class handler (DicomEcgSopClassHandler) to the cornerstone
extension getSopClassHandlerModule, registering ECG waveform metadata
via genericMetadataProvider on display set creation
- Move ECG helpers (buildEcgModule, decodeInt16Multiplex, base64ToArrayBuffer)
into extensions/cornerstone/src/utils/ecgMetadata.ts
- Handle ECGViewport in CornerstoneViewportService._setDisplaySets by
detecting ECGViewport instanceof and calling setEcg(imageId) directly,
so OHIFCornerstoneViewport can be used without a custom ECG viewport component
- Add ECG support to getCornerstoneViewportType utility
- Update basic mode to reference the cornerstone extension's ECG SOP handler
and use the base cornerstone viewport for ECG display sets
- Migrate ecgMetadata and getCornerstoneViewportType tests
* chore: revert bun.lock to upstream origin/master
---------
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>