gerddie/ginkgocadx

ECG Waveform not displayed correctly

Closed this issue · 9 comments

When a modality ECG exam with 2 different waveform series is displayed (i.e. rhythm and median beat), the first series is displayed correctly, but second series still shows the waveforms from the first series.
As you can see on attached images, the waveforms of "median beat" are the same of rhythm.

rhythm

median beat

Some example data to replicate the bug would be helpful.

After a second look I have to admit that I don't know where exactly I have to look for the error, because my medical expertise w.r.t. ECG is close to zero, I am only trying to keep the code compiling. (You might have notes that the original authors no longer maintain the project).
That said, with some example data and an idea what the display should look like I will try to resolve the issue.

PS: For patient anonymity you might want to remove birth date and examination date from the screen shots.

To try to clarify I have created the same exam by inverting the order of rhythm and median beats. The first waveforms are always displayed correctly, the send waveforms are wrong. Please do not take care about patient and exam informations, they are all dummy and not real.

1: Rhythm then Median Beats
rhythmok
mediambeat wrong

  1. Median Beats then Rhythm:
    medianbeatok
    rhythm wrong

As you can see waveforms are very different.
Unfortunately I can't attach the original dicom files also if I zip them: github says the file type is not supported.

I see, it seems the new data is not used the second time, only the old series, and if this second series is shorter, then the remainder is filled with random data.

Well, you can send me the dicoms to gw.fossdev(at)gmail.com.

I have sent you an email. If you don't receive it please contact me.

Okay, I can confirm the bug. I'll see what I can do to fix it.

There's one problem though: from the screen shots I've seen that you use a Windows version of the software. Currently, I don't have access to a Windows development environment, and will probably only be able to fix the source code and provide means and to provide means for the software installation on Debian GNU/Linux and Gentoo Linux.

Ok thank you. When the bug will be fixed, please inform me so I can try to compile the code for Windows.

Currently, only the first tag 5400:1010 is found and used. DICOMManager needs an additional function that returns all elements with the same tag, so that one can then access the data via an index.

Key files: dicommanager.* and ecgstudy.cpp.
Use DcmItem::findAndGetElements

I've also tagged a new release 3.8.1 that contains the fix.