Comments (7)
The draft changes in #330 address 1 and 2.
from dicom.
For missing metadata group length we do hav a flag for that, but can consider automatic fallback behavior:
Line 184 in 65259e5
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.
Edited the original comment to update current status, link to PRs, etc.
from dicom.
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.
For missing metadata group length we do hav a flag for that, but can consider automatic fallback behavior:
Line 184 in 65259e5
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.
Going through these in a little more detail, and adding some more notes:
- Easy fix (have working locally)
- Easy fix (have working locally)
- 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. - Bug/implementation needed with UN unknown sequences
- Needs more investigation, seems related to the UN sequences / tags possibly similar to 4.
- Also seems possible related to UN sequences / tag handling
- Same as 4/5/6 at first glance?
- Should parse fine with allowMissingMetaElementGroupLength but need to check
from dicom.
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)
- dicom.Write: The Pixel data only supports OW type HOT 2
- File with dicom seg throws an error - writing dicom file: unsupported BitsPerSample value
- Converting DICOM to Image results into "blacked" image HOT 4
- using dicom.Parse function ,unexpected EOF HOT 1
- Write element with sequence item or nested sequence HOT 2
- The reason why the converted DICOM displays as blank after converting from RAW format might be attributed to the following factors: HOT 1
- Rewrite & Update README
- Remove Mocks
- Refactor internal-only packages into internal/
- Refactor PixelDataInfo API
- Remove dicomio.Reader interface in favor of dicomio.Reader direct struct
- Consider deprecating top level bytesLimit in Parse() API in favor of always parsing until EOF.
- Write API: When using WriteElement API, ensure proper transfer syntax is used to encode the data (Write() works fine)
- Support deflate transfer syntax writes
- Add write benchmarks
- Consider Parse API refactor HOT 1
- write: option to override default missing transfer syntax in dicom (mostly useful for testing, since users could just update the uid in the dataset)
- For missing Transfer Syntax UID fallback, should we also try reading with a deflated syntax?
- Error when parsing with Little Endian Explicit transfer syntax HOT 1
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 dicom.