top | item 25250589

Show HN: Dicom Medical Image Library in Go

108 points| suyashkumar | 5 years ago |github.com

24 comments

order
[+] raphexion_|5 years ago|reply
Congratulation. Great work. It is such an ancient but important standard.

I just spent around one year writing Wolfpacs, a dicom load balancer in pure Erlang. (In my spare time).

Question: what is your take on the headers that are "undecided"? For example,the headers that have either signed short (ss) or unsigned short (us) value representation. Most of the parsing is "stateless" but a few headers require "rules". "If previous headers X is Y then VR=OW". I wished they could have made the standard better in that regard.

[+] suyashkumar|5 years ago|reply
Thanks for the kind words! I will definitely check out wolfpacs.

As for your question: I've run into a couple scenarios that require "lookback" into the parsed Dataset to parse correctly. For example, parsing Native PixelData correctly requires looking back for the Rows Element, Cols element, BitsAllocated element, etc in order to correctly parse the NativePixel data. The futzy thing is that these context "elements" need to come from the current Sequence (if parsing within a sequence). So, I do most of my parsing of sequences recursively, with each recursive frame holding pointers to the already parsed elements in this sequence (it's a stack essentially for nested sequences).

Not sure if that answers your question? For most generic elements though, as a parsing library I try to parse it generically and make the value payload available to the caller in case they need to apply any special logic to interpreting it. Though if you have a specific usecase that needs something that is missing here, please let me know or open an issue :).

[+] tecleandor|5 years ago|reply
Nice! I'll take a look to it.

Usually, for something like that, I would use Orthanc plus a bit of Python or Lua scafolding. What advantages does WolfPACS provides?

[+] social_quotient|5 years ago|reply
Unrelated: I’m trying to locate or acquire some X-ray or mri scans showing the progression or regression of various diseases( cancer etc) or even broken bones healing. But they need to be of a single patient for the purpose of comparing image sets. Any pointers on where this sort of anonymous data might be?
[+] danielheath|5 years ago|reply
Rare but you might find some on Radiopaedia. Difficult because people who have healed don’t usually get scans done.
[+] thakoppno|5 years ago|reply
are there publicly available datasets of dicom images?

my fathers a retired radiologists and ive wondered if making an app that could display images would potentially stave off any cognitive decline in the future.

thank you

[+] tannhaeuser|5 years ago|reply
Medical imaging, like everything medical, nuclear, and military, has somewhat high barriers to entry due to legal requirements, eg getting sued b/c of the proverbial amputation of the wrong leg due to flipped display. Also, from my limited experience in the field, software for radiology workflows and archival, viewing workstations etc. are often expected as part of a deal for the imaging devices (X ray, MRT, etc.) themselves rather than as separate products.
[+] viraptor|5 years ago|reply
dicomlibrary.com Or start with the interesting studies and filter those that reference dicom datasets.
[+] Raphmedia|5 years ago|reply
Any idea how one could anonymize their dicom images? I have a disk of a CT Scan of my skull laying around but my medical information seem to be strongly linked to it (opening it in an online viewer displays my name, id, etc.) If it wasn't for that fact, I'd love to be able to upload it somewhere and help science.
[+] cridenour|5 years ago|reply
I wrote a DICOM parser in Go for the Kaggle competition in 2017, and it was such a pain. It probably only worked for that sample so I never released it but this looks great. Thanks for sharing!
[+] paulhart|5 years ago|reply
Are there any good DICOM viewers for Linux? I had an excellent one for macOS a few years ago, but have migrated off that platform.
[+] bombastry|5 years ago|reply
I use MIPAV[1] which can run on Linux (or any OS with a new enough Java Runtime Environment). I don’t have a lot of experience with other DICOM viewers and have somewhat limited use cases for it, but it seems to have a good number of features.

It’s completely free, but accessing the download (or the source) requires (free) registration.[2] Filling out the form should take you straight to the download links (i.e. you should not have to wait for a manual approval to download).

[1] https://mipav.cit.nih.gov/ [2] https://mipav.cit.nih.gov/clickwrap.php

[+] tecleandor|5 years ago|reply
Ginkgo CADx evolved quickly for a while some years ago (while it was partly funded by the Spanish government and developed by a private company), but that project and company closed. The code was released as open source and it gets some commits every once in a while by volunteers.

It has a weird UX/UI, but it might be enough for you.

Also, it's packaged on most distributions.

https://github.com/gerddie/ginkgocadx

[+] jimis|5 years ago|reply
Aeskulap was the best one, I used it successfully a couple of years ago, despite the home page making it look like abandonware.

http://www.nongnu.org/aeskulap/

Unfortunately it seems it's no longer available in Fedora repositories.