Merge upstream + 2025-update, add PR #280 UV support#4
Open
mj-heaton wants to merge 109 commits into
Open
Conversation
cornerstonejs#73 (comment) fixed the RangeError I and others seem to have encountered.
…ser or node.js environment (cornerstonejs#176)
[docs] pixelData Uint16Array has 2 bytes/pixel
…nejs#148). Also updated node check to be based off process so it properly detects within web workers. (cornerstonejs#182)
…nary-fixes Dump with data dictionary updates
Add support for new VRs OD, OL, UC, and UR.
* Guard the use of Buffer since we're no longer polyfilling it. * fix: Tell bundlers to ignore zlib when building for the browser (cornerstonejs#185)
* v1.8.6 * feat(dicom-parser):Parse non-Part 10 binary DICOM (raw) format * dropping back to older node to allow webpack build * Code inspection comments * Documented the raw dicom reading capability * Fixing the parser to handle raw dimse and raw file * Removed unneeded dimseTransfer syntax setup - was using wrong tsuid
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.4 to 1.14.8. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](follow-redirects/follow-redirects@v1.14.4...v1.14.8) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [karma](https://github.com/karma-runner/karma) from 6.3.4 to 6.3.16. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](karma-runner/karma@v6.3.4...v6.3.16) --- updated-dependencies: - dependency-name: karma dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
Add syntax highlighting for better readability
…m_and_yarn/follow-redirects-1.14.8 Bump follow-redirects from 1.14.4 to 1.14.8
…m_and_yarn/karma-6.3.16 Bump karma from 6.3.4 to 6.3.16
Dicom 2022a data dictionary
Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1. - [Release notes](https://github.com/terser/terser/releases) - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md) - [Commits](https://github.com/terser/terser/commits) --- updated-dependencies: - dependency-name: terser dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…m_and_yarn/terser-4.8.1 Bump terser from 4.8.0 to 4.8.1
…m_and_yarn/qs-6.5.3 chore(deps): bump qs from 6.5.2 to 6.5.3
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](json5/json5@v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…m_and_yarn/json5-1.0.2 chore(deps): bump json5 from 1.0.1 to 1.0.2
fix: Use latest semantic-release
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.31 to 0.7.33. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md) - [Commits](faisalman/ua-parser-js@0.7.31...0.7.33) --- updated-dependencies: - dependency-name: ua-parser-js dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…m_and_yarn/ua-parser-js-0.7.33 chore(deps): bump ua-parser-js from 0.7.31 to 0.7.33
… Node.js 16, otherwise we trigger a cascade of dependency updates.
…lease Roll semantic-release down to the most recent version that works with…
Link to GitHub pages
Bumps [engine.io](https://github.com/socketio/engine.io) and [socket.io](https://github.com/socketio/socket.io). These dependencies needed to be updated together. Updates `engine.io` from 6.2.1 to 6.4.2 - [Release notes](https://github.com/socketio/engine.io/releases) - [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md) - [Commits](socketio/engine.io@6.2.1...6.4.2) Updates `socket.io` from 4.5.4 to 4.6.1 - [Release notes](https://github.com/socketio/socket.io/releases) - [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md) - [Commits](socketio/socket.io@4.5.4...4.6.1) --- updated-dependencies: - dependency-name: engine.io dependency-type: indirect - dependency-name: socket.io dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 4.2.1 to 4.2.3. - [Release notes](https://github.com/socketio/socket.io-parser/releases) - [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md) - [Commits](socketio/socket.io-parser@4.2.1...4.2.3) --- updated-dependencies: - dependency-name: socket.io-parser dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…m_and_yarn/engine.io-and-socket.io-6.4.2 chore(deps): bump engine.io and socket.io
…m_and_yarn/socket.io-parser-4.2.3 chore(deps): bump socket.io-parser from 4.2.1 to 4.2.3
Update browser tools
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](jonschlinkert/word-wrap@1.2.3...1.2.5) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…m_and_yarn/word-wrap-1.2.5 chore(deps-dev): bump word-wrap from 1.2.3 to 1.2.5
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.17.0 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…m_and_yarn/babel/traverse-7.23.2 chore(deps-dev): bump @babel/traverse from 7.17.0 to 7.23.2
- Parse GE 1.2.840.113619.5.2 transfer syntax - Fix `broken_ct.dcm` - encapsulated pixel data with undefined length - Fix US00001 where private tag x8b6ab4cb with VR UN) declared a length which was past the end of hte datasegment. This is now truncated (i.e., reads to the end) and a warning issued. This seems acceptable for our use case but might not be the optimal handling - Throw Error objects and don't include the full input dataset so as to prevent logging memory issues
…nejs#280 UV support This brings the fork up to the latest cornerstonejs/dicomParser master while preserving the fork's tagStartOffset/tagEndOffset additions used by VoxelFlow for de-identification by tag exsection. Also incorporates upstream PR cornerstonejs#280 (Support for VR type "UV", Unsigned 64-bit Very Long, DICOM 2019a) - critical because without UV in the 4-byte-length VR list, a UV element silently desyncs the parser for the rest of the file. Changes: - Merged upstream/master (TypeScript fixes, Buffer-undefined guard, LEE/LEI exports, dataSet.Value short-circuit, modernized devDeps, etc.) - Added VR=UV support: readBigUint64 on both endian parsers, ByteStream.readBigUint64, DataSet.uint64, UV in the 4-byte-length list and elementToString, BigInt literal syntax avoided so the istanbul-instrumenter-loader's old parser doesn't choke - Fixed: file meta header elements (x0002xxxx) now get tagEndOffset assigned; previously they only got tagStartOffset, which would have made VF's exsectElement return [start, undefined] for any file meta tag - Added Element.tagStartOffset/tagEndOffset declarations to index.d.ts - New test files: test/voxelflowUsage_test.js covers VF's specific access patterns (offset invariants, identifier tag round-trips, in-place overwrite); test/dataSet_test.js gets a #uint64 block with an end-to-end UV element round-trip - Kept fork identity (@bioxydyn/dicom-parser, fork repo URLs); bumped version All 217 tests pass; webpack:prod build succeeds. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
origin/2025-update was the source of the currently-published @bioxydyn/dicom-parser@1.8.14 on npm. It branched off master before the upstream merge in this branch and accumulated substantial Bioxydyn-only work that never made it back to master. This merge brings that work in so the next release is a strict superset of 1.8.14, not a regression. Features picked up from 2025-update (in addition to the upstream merge and PR cornerstonejs#280 UV support already in this branch): - parseDicom.js: throws Error objects (with .dataSet/.originalError) instead of bare strings; recognises private GE Little Endian Implicit with Big Endian Pixel Data transfer syntax (1.2.840.113619.5.2); isExplicit/getDataSetByteStream use named constants (LEI/LEE/BEI); exports BEI alongside LEI/LEE. - readDicomElementImplicit.js: takes a transferSyntax argument and switches the pixel-data element parser to bigEndianByteArrayParser for the GE private syntax above. - readDicomElementExplicit.js: takes an optional maxPosition; truncates oversized element length safely, sets element.truncated, pushes a warning. Compatible with calls that don't pass maxPosition. - readPart10Header.js: falls back to implicit-VR meta header parsing when the first element's VR isn't a valid two-uppercase-letter token, using getMetaVRLittleEndian to provide VRs for the small standard set of File Meta Information tags. - findEndOfEncapsulatedPixelData.js: bounds checks before reading each fragment header; partial-data seek handling at EOF. - New test fixtures (broken_ct.dcm, undefined_length_un_vr.dcm, GE_DLX-8-MONO2-PrivateSyntax.dcm) and loadTestImages.js helper. Conflict resolutions: - src/version.js -> 1.8.15 (next after live 1.8.14). - package.json: kept fork identity, bumped to 1.8.15, kept the @babel/* rest-spread plugins from 2025-update, dropped the babel-6-era plugins (babel-plugin-transform-object-rest-spread, babel-preset-es2015) that 2025-update kept — the project is otherwise fully on babel 7. - .circleci/config.yml: took 2025-update's active config (production source of truth) over master's disabled-with-comments version. - index.d.ts: kept HEAD's uint64/readBigUint64 type additions and the Element.tagStartOffset/tagEndOffset declarations. - src/index.js / parseDicom.js: collapsed identical LEI/LEE/BEI exports. - src/readPart10Header.js: rewrote to drop duplicate if(!isPart10) block left by the auto-merge; kept 2025-update's implicit-meta-header fallback AND HEAD's element.tagEndOffset assignment. - package-lock.json: took 2025-update's then regenerated via npm install. All 217 tests pass; webpack:prod build succeeds. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges upstream cornerstonejs/dicomParser@7d20843, origin/2025-update (source of the currently-published 1.8.14), and incorporates PR cornerstonejs#280 from upstream (VR=UV support). Adds VoxelFlow regression tests and fixes a file-meta tagEndOffset gap. Version bumped to 1.8.15. All 217 tests pass; webpack:prod builds cleanly. See commit messages on ec87bea and f7a5717 for full conflict-resolution detail.
Test plan: