Comments (4)
Hi - thanks for reporting and linking to your RPB work. Your uploader use case is exactly the kind of thing dcmjs is intended to support, but yes, the "real world" of dicom is complex and often frustrating.
The older commontk effort to cross compile dcmtk should still work, and in fact if it needs to be updated it is probably much easier to implement today than it was when we first did the experiment. The plan was exactly to take advantage of decades of battle hardening that the dcmtk team put into the package so it's probably the most robust solution. It's a fairly big package by javascript standards and slower so you could load it only if you run into problematic data that the pure js dcmjs can't handle.
That said, it's also probably not hard to fix the javascript code so that it works for this data. If you want to provide some code with tests that would be great.
I try to keep an eye on these projects but I'm not actively developing either one so they rely on community collaboration to keep them going.
from dcmjs.
Hi, thanks for your answer. We dig a little bit deeper and found a way how it could be fixed in the Javascript code. I added a pull request this.
It seems that we have sometimes some binary data in private tags in our data sets that have byte sequences which are similar to some tags that are used to detect the end of the sequence. The issue is gone by using tag and length, which are defined by the standard. Then we have 8 byte instead of 4 which we compare and it is more unlikely to match that sequence with binary data.
The "dcmconv" command line tool just calculated the item length and converted from undefined length items to defined length items that then did not pass the specific part of the code. That means at the end that the command line tool most likely also uses tag and length attributes for detection or it evaluates the "Sequence Delimitation Item", which is here just used in the outer while loop.
It would be great if someone could review and help getting the pull request merged.
from dcmjs.
I think, we can close the ticket, since the pull request has been merged to master. Thank you very much for the quick review.
It seems that the semantic release automation did not work (link to the failed job), because of the capitalized "F" in fix():. Could you please check that?
from dcmjs.
Okay, let me try another commit.
from dcmjs.
Related Issues (20)
- The saved image file is inconsistent with the source file. HOT 9
- private Tags take element wrong into account HOT 1
- Segmentation loading with wadors not working HOT 1
- dcmjs-imaging HOT 2
- Invalid tag in sequence : Unable to parse MR Dicom file in dcmjs. Cornerstone able to parse and works fine HOT 1
- Order of tags gets messed up when edition DICOM SEG HOT 7
- Length of Decimal String larger than 16 characters
- Lots of 'Invalid vr type... ' log messages in dcmjs release 0.29.11 HOT 4
- modifying dicom meta-data HOT 2
- Reading dicom file HOT 2
- Getting ERROR: Value exceeds max length for some DICOM tags HOT 2
- Write issue for JPEG2000Loseless images HOT 3
- Issue with pixel redaction for JPEGLoseless type HOT 1
- Change in PixelSequence value HOT 1
- Support for reading from a readable stream HOT 1
- Test failing due to missing image referenced by seg HOT 1
- PN tags interpretation as union between object and string breaks DIMSE functionality HOT 2
- Can use to load dicom segment? HOT 1
- Fail to denaturalize a sequence having private tags. HOT 1
- Netlify-deployed docs site (https://dcmjs.netlify.com/) is down HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dcmjs.