Giter Club home page Giter Club logo

Comments (7)

suyashkumar avatar suyashkumar commented on June 26, 2024 1

The draft changes in #330 address 1 and 2.

from dicom.

lnogueir avatar lnogueir commented on June 26, 2024 1

For missing metadata group length we do hav a flag for that, but can consider automatic fallback behavior:

dicom/read.go

Line 184 in 65259e5

if !r.opts.allowMissingMetaElementGroupLength {

I think originally the idea was the safest option is to force callers to be as explicit as possible about what loosened restrictions they may want in case there are any safety issues with fallback behavior or in case the fact the dicom is not compliant is something the user would want raised to them (in case that led to other concerns). That being said, recently I've been thinking it's more reasonable to just have more automatic fallbacks, at least ones that are "standard" in the industry for dicom non-compliance.

I agree. I think it's better to have these automatic fallbacks and just log warnings if non-compliant things are found. That's the behavior most libraries choose I believe.

from dicom.

suyashkumar avatar suyashkumar commented on June 26, 2024 1

Edited the original comment to update current status, link to PRs, etc.

from dicom.

suyashkumar avatar suyashkumar commented on June 26, 2024

Thanks @lnogueir! I agree that we can attempt some enhanced fallback behavior, particularly if that's standard practice in other parsers. Our current fallback behavior for no transfer syntax found in the Metadata is to proceed with little endian implicit but it shouldn't be too difficult to try a couple different transfer syntaxes speculatively.

from dicom.

suyashkumar avatar suyashkumar commented on June 26, 2024

For missing metadata group length we do hav a flag for that, but can consider automatic fallback behavior:

dicom/read.go

Line 184 in 65259e5

if !r.opts.allowMissingMetaElementGroupLength {

I think originally the idea was the safest option is to force callers to be as explicit as possible about what loosened restrictions they may want in case there are any safety issues with fallback behavior or in case the fact the dicom is not compliant is something the user would want raised to them (in case that led to other concerns). That being said, recently I've been thinking it's more reasonable to just have more automatic fallbacks, at least ones that are "standard" in the industry for dicom non-compliance.

from dicom.

suyashkumar avatar suyashkumar commented on June 26, 2024

Going through these in a little more detail, and adding some more notes:

  1. Easy fix (have working locally)
  2. Easy fix (have working locally)
  3. This appears to parse fine, but iiuc the problem is the PixelData is intentionally truncated? So the vl says 8192 but there aren't that many bytes left in the dicom. We treat this as an error, which seems reasonable imo but we can discuss more.
  4. Bug/implementation needed with UN unknown sequences
  5. Needs more investigation, seems related to the UN sequences / tags possibly similar to 4.
  6. Also seems possible related to UN sequences / tag handling
  7. Same as 4/5/6 at first glance?
  8. Should parse fine with allowMissingMetaElementGroupLength but need to check

from dicom.

suyashkumar avatar suyashkumar commented on June 26, 2024

Also, the changes in #331 address 6 (with SkipPixelData). They almost address 4 but some other changes are still needed for that.

from dicom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.