gerddie / ginkgocadx

Advanced DICOM viewer
131 stars 38 forks source link

ECG Waveform not displayed correctly #17

Closed vfandrea closed 8 years ago

vfandrea commented 8 years ago

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

gerddie commented 8 years ago

Some example data to replicate the bug would be helpful.

gerddie commented 8 years ago

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.

vfandrea commented 8 years ago

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.

gerddie commented 8 years ago

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.

vfandrea commented 8 years ago

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

gerddie commented 8 years ago

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.

vfandrea commented 8 years ago

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

gerddie commented 8 years ago

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

gerddie commented 8 years ago

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