Skip to content

DICOM-Decoder 1.3.3

Latest

Choose a tag to compare

@ThalesMMS ThalesMMS released this 08 Jun 11:37
· 2 commits to main since this release

Comparison

Compared commit 9ae0851e134af274651b646519b8a7aaeee05f05 with the previous GitHub release baseline 1.3.1 at b0511213dcbccc36ad29ed9869b23ad104216b67.

Decoder and DIMSE changes

  • Corrected parser state handling after skipped sequence values. When a header parser skips a complete sequence, the tag parser now explicitly clears its sequence-tracking state before continuing. This fixes cases where subsequent scalar elements, including image dimensions, could be interpreted under stale sequence state.
  • Added a regression test for undefined-length sequence handling before dimension tags. The fixture exercises rows, columns, samples-per-pixel, photometric interpretation, and pixel data after an undefined-length sequence.
  • Corrected DIMSE PDV control-bit encoding and decoding. Command PDVs now use bit 0x01, and last-fragment PDVs use bit 0x02 consistently in both encoder and decoder paths.
  • Updated C-FIND, C-MOVE, and C-GET request command sets to populate the affected SOP Class UID with the query model UID. This aligns the query/retrieve command construction with the command field semantics used by the DIMSE service tests.
  • Annotated Storage SCP progress callbacks as @Sendable for the association handler, store path, and server start callback. Callers that capture mutable non-Sendable state in these progress closures may need to adapt that state before compiling with stricter concurrency checking.

dicomtool inspect privacy behavior

  • dicomtool inspect no longer emits PatientID in default JSON/text metadata output.
  • Explicit --tags PatientID requests still acknowledge the requested tag name, but the value is emitted as (redacted) rather than exposing the identifier.
  • Added command tests that capture stdout and verify both default omission and explicit-tag redaction.

Release-gate resources and fixture organization

  • Moved release-gate manifests and policy documents from the public-facing Roadmap location into Tests/DicomCoreTests/Resources/ReleaseGates.
  • Renamed the parity fixture surface from DCMTKParity to DecoderParity and moved parity DICOM files under Tests/DicomCoreTests/Fixtures/DecoderParity.
  • Added structured release-gate resources for clinical parity fixtures, performance budgets, optional runtime fixtures, and public API documentation policy.
  • Removed the internal implementation-gap audit from the public repository tree; public tests now depend only on releasable resource manifests.
  • Removed standalone JPEG lossless fixture download/validation scripts from the test tree and kept the conformance behavior covered through the Swift test target.

Documentation and maintenance

  • Updated benchmark, getting started, troubleshooting, migration, and conformance documentation to match the current test-resource layout and support scripts.
  • Simplified interop smoke-script path handling and package-directory resolution.
  • Added and updated tests around header parsing, PDV/DIMSE behavior, Storage SCP progress typing, parity fixtures, documentation policy, and inspect-command redaction.

Validation

Validation performed before publishing this release:

  • swift test --package-path DICOM-Decoder
  • Focused documentation/release-gate tests for DICOMWeb, documentation reconciliation, and public API documentation policy
  • Public-tree audit confirming no IMPLEMENTATION_GAPS.md or Roadmap content remains in the public DICOM-Decoder checkout

Full comparison: b051121...9ae0851