Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Horos crashed with Philips HD-15 ultrasound studies #332

Closed
laichiwang opened this issue May 12, 2018 · 10 comments

Comments

Projects
None yet
6 participants
@laichiwang
Copy link

commented May 12, 2018

Horos crashed when loading Philips HD-15 ultrasound studies. It was fine when dicom images were pushed to Horos. However, it crashed whenever I opened the ultrasound studies. Initially Horos 3.0.0 was installed. I tried Horos 2.4.1 and 2.2.0 but they crashed as well. Horos 2k 2.2.0 worked with Philips ultrasound images. (Anyone knows what 2k means here?) Any ideas?

@aglv

This comment has been minimized.

Copy link
Contributor

commented May 16, 2018

Please provide one of your Philips HD-15 US DICOMs so we can inspect.

@laichiwang

This comment has been minimized.

Copy link
Author

commented Jun 2, 2018

Attached is the log file:

Process: Horos [864]
Path: /Applications/Horos.app/Contents/MacOS/Horos
Identifier: com.horosproject.horos
Responsible: Horos [864]
0 Horos 0x00000001035b4b10 std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_S_right(std::_Rb_tree_node_base*) + 16
1 Horos 0x00000001035b4a32 std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >) + 50
2 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >
) + 62
3 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >) + 62
4 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >
) + 62
5 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >) + 62
6 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >
) + 62
7 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >) + 62
8 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >
) + 62
9 Horos 0x00000001035b4a3e std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_M_erase(std::_Rb_tree_node<std::pair<gdcm::Tag const, gdcm::DictEntry> >) + 62
10 Horos 0x00000001035b49ce std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::_Rb_tree() + 46
11 Horos 0x00000001035b4995 std::_Rb_tree<gdcm::Tag, std::pair<gdcm::Tag const, gdcm::DictEntry>, std::_Select1st<std::pair<gdcm::Tag const, gdcm::DictEntry> >, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::
_Rb_tree() + 21
12 Horos 0x00000001035b4975 std::map<gdcm::Tag, gdcm::DictEntry, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::~map() + 21
13 Horos 0x00000001035b4955 std::map<gdcm::Tag, gdcm::DictEntry, std::lessgdcm::Tag, std::allocator<std::pair<gdcm::Tag const, gdcm::DictEntry> > >::~map() + 21
14 Horos 0x00000001035b4935 gdcm::Dict::~Dict() + 21
15 Horos 0x00000001035b2ec5 gdcm::Dict::~Dict() + 21
16 Horos 0x00000001035b25ef gdcm::Dicts::~Dicts() + 63
17 Horos 0x00000001035b2665 gdcm::Dicts::~Dicts() + 21
18 Horos 0x00000001035b76d4 gdcm::GlobalInternal::~GlobalInternal() + 68
19 Horos 0x00000001035b66d5 gdcm::GlobalInternal::~GlobalInternal() + 21
20 Horos 0x00000001035b5cf8 gdcm::Global::~Global() + 72
21 Horos 0x00000001035b5c05 gdcm::Global::~Global() + 21
25 Horos 0x0000000102cec01c -[AppController terminate:] + 1340
1 Horos 0x00000001032805e6 ASC_associationWaiting(T_ASC_Network
, int) + 134
2 Horos 0x0000000102f9721b DcmQueryRetrieveSCP::waitForAssociation(T_ASC_Network*) + 107
3 Horos 0x0000000102f7c456 -[DCMTKQueryRetrieveSCP run] + 3894
4 Horos 0x0000000102ce913c -[AppController startSTORESCP:] + 540
0x102cd5000 - 0x1046fbfff +Horos (1.1.7 - 20160210) /Applications/Horos.app/Contents/MacOS/Horos
0x105290000 - 0x1053c0fff +org.vafer.FeedbackReporter (1.3 - 1) <72C72762-817E-39D7-8978-2D23796AF66E> /Applications/Horos.app/Contents/Frameworks/FeedbackReporter.framework/Versions/A/FeedbackReporter
0x10554a000 - 0x1055a6ff7 +com.growl.growlframework (2.0.1 - 2.0.1) <6C20B93B-75B2-30A4-8267-8C81BF90872B> /Applications/Horos.app/Contents/Frameworks/Growl.framework/Versions/A/Growl
0x1055dc000 - 0x10570ffff +com.macrad.dcmframework (1.0) <28AAAF21-FB9D-377D-8233-36AB9F2088AE> /Applications/Horos.app/Contents/Frameworks/HorosDCM.framework/Versions/A/HorosDCM

@leonidaslillis

This comment has been minimized.

Copy link

commented Jun 29, 2018

I have the same issue with ultrasound studies created by my Philips CX50 machine. Studies are imported without any problem, but Horos crashes when clicking on the study. Horos works perfectly well with other DICOMs, say coronary angiographies etc. I have tried everything, installing latest version, unistalling and re-installing etc. Any ideas?

@air-h-128k-il

This comment has been minimized.

Copy link
Contributor

commented Jul 1, 2018

It is starnge that the open-sorce version of OsiriX (https://github.com/pixmeo/osirix) can read Philips US studies that Horos cannot read.

osirix-os-us

The both source code is almost same. But one can read, the other cannot.

Why?

REF:
Anyone can download the above version of OsiriX at https://phazor.info/HorliX-J/?page_id=63 , if you are interested in this issue.
It runs on OS X HighSierra.

@fvpolpeta

This comment has been minimized.

Copy link
Collaborator

commented Jul 1, 2018

Hi -

At first glance I do believe this may be related to the different image codecs that Horos and OsiriX uses. Perhaps, DICOM reader APIs too. When we decided to create Horos some APIs were removed as they were proprietary and not aligned to the license model we used. Papyrus and Kakadu as far as I remember. Later, a full update of libraries was made (VTK, ITK, GDCM, J2K CODEC, etc). From an API/internals perspective Horos and OsiriX should start to be seen as different products as they are not maintained or evolved in sync.

Please, provide us with a sample file and some further investigation can be taken.

Thanks for using Horos.

Fauze

@air-h-128k-il

This comment has been minimized.

Copy link
Contributor

commented Jul 2, 2018

Hi, fvpolpeta

You can download the DICOM file at https://phazor.info/HorliX/?page_id=105

I am too busy....

@brizolara

This comment has been minimized.

Copy link
Collaborator

commented Jul 4, 2018

Hi,

This should be fixed now. Tested at this moment with the images provided. @leonidaslillis, do you mind sharing a case for us to test? Or you can wait for the next Release Candidate.

Best and thanks for being part of our community,

Tiago

@air-h-128k-il

This comment has been minimized.

Copy link
Contributor

commented Jul 4, 2018

Hi,

I checked the DICOM file after fixing the source code as suggested the above.

horlix-us2

Great!
It looks work perfectly.

@fvpolpeta fvpolpeta closed this in de68480 Jul 4, 2018

fvpolpeta added a commit that referenced this issue Jul 4, 2018

Merge pull request #363 from horosproject/HOR-58_crashes_Phillips_HD-…
…15_ultrassound

Fixes #332. Problems were related to images having 16bit pixel depth …
@fvpolpeta

This comment has been minimized.

Copy link
Collaborator

commented Jul 4, 2018

Nightly build with the fix is here:

https://horosproject.org/horos-content/Horos3.1.2_Nightly20180704.dmg

Best

@leonidaslillis

This comment has been minimized.

Copy link

commented Jul 6, 2018

Everything seems to be working fine with the above fix. Thank you very much @brizolara & @fvpolpeta, really appreciate it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.