Skip to content

DICOM-Decoder 1.3.1

Choose a tag to compare

@ThalesMMS ThalesMMS released this 03 Jun 19:56
· 9 commits to main since this release

Changes since 1.2.1.

Compare: 1.2.1...1.3.1

This release includes the 1.3.0 feature work plus the 1.3.1 public package cleanup. Compared with 1.2.1, it covers codec runtime diagnostics, transfer syntax support matrices, color conversion reporting, stricter sequence parsing, SR validation, DIMSE/DICOMweb/TLS helpers, SwiftUI example updates, and package-readiness changes for downstream public repositories.

Codec runtime and transfer syntax diagnostics

  • Added DicomCodecRuntimePreflight for optional CharLS and OpenJPEG runtime checks, including default library search paths, environment-variable overrides, symbol validation, and stable diagnostic statuses for missing libraries, invalid paths, and missing symbols.
  • Updated JPEG-LS and JPEG 2000 codec loading to use runtime preflight results and throw explicit unsupported-transfer diagnostics instead of relying on late missing-symbol failures.
  • Added compressed pixel support and writer support matrices in DicomTransferSyntaxRegistry, with explicit classifications for decoded, delegated, streamed-only, unsupported, and out-of-scope transfer syntaxes.
  • Expanded writer support reporting for native datasets, deflated datasets, encapsulated pass-through, referenced datasets, and unsupported writing paths.

Color and pixel decoding

  • Added a color display conversion matrix covering supported and unsupported photometric interpretation paths.
  • Extended color conversion diagnostics with DicomColorConversionContext, including photometric interpretation, samples per pixel, planar configuration, bit depth, and transfer syntax.
  • Added explicit handling and diagnostics for additional YBR variants such as YBR_PARTIAL_420, YBR_RCT, and YBR_ICT.
  • Tightened compressed-pixel diagnostics for multi-component JPEG-LS, JPEG Lossless, and JPEG 2000 paths, especially where bit depth or color layout is not currently supported.

Dataset parsing, writing, export, and SR validation

  • Hardened undefined-length sequence and item parsing with stricter delimiter validation, nested sequence handling, and clearer error cases for malformed SQ data.
  • Added DicomExportSupportMatrix to document and query support for image export, Secondary Capture, print management, waveforms, video, metadata preservation, transfer syntaxes, and unsupported export cases.
  • Added semantic validation support for structured reports through DicomStructuredReportValidation, including support matrices and stable validation errors for unsupported SOP classes, templates, value types, coding schemes, relationships, numeric units, graphic data, and evidence references.
  • Expanded dataset writer behavior and tests around native pixel data, deflated datasets, encapsulated pass-through, referenced-pixel metadata, and unsupported write paths.

DIMSE, DICOMweb, and TLS helpers

  • Added DicomTLSOptions and TLS profile/material support for client and server configuration, including trust anchors, local identity handling on Apple platforms, and profile-derived TLS minimums.
  • Expanded DIMSE SCU support with C-STORE request construction from Part 10 payloads, requested transfer syntax handling, operation cancellation, C-CANCEL support, association pooling primitives, and additional transport diagnostics.
  • Added DICOMweb client helpers for WADO-RS frame retrieval and BulkDataURI retrieval.
  • Expanded the in-memory DICOMweb server with a conformance matrix, stable error-code headers, deterministic QIDO pagination, and explicit unsupported-route responses for UPS, frame, and rendered-frame paths that are not implemented.

SwiftUI example and package readiness

  • Updated the SwiftUI series navigator with thumbnail-backed slice shortcuts and clearer unavailable states.
  • Updated the SwiftUI example package target to process app assets/resources and exclude app metadata/docs from compilation.
  • Updated documentation to describe optional codec runtime preflight, transfer syntax support, color conversion support, export support, DICOMweb conformance, DIMSE helpers, and related public repositories.
  • Removed tracked sibling-checkout path references from docs, scripts, and tests so public consumers can resolve downstream packages from remote tags instead of local repository paths.

Tests and fixtures

  • Added DCMTK parity fixtures and expanded clinical parity and documentation reconciliation checks.
  • Added coverage for codec runtime preflight, compressed codec support matrices, color conversion diagnostics, sequence parsing, SR validation, export support, DICOMweb client/server behavior, DIMSE SCU behavior, TLS material handling, SwiftUI preview/navigation behavior, and runtime trap hardening.

Notes

  • CharLS and OpenJPEG remain optional native runtimes. The package now reports their availability and failure modes more explicitly, but it does not bundle those libraries.
  • The DICOMweb server remains an in-memory helper/test server, with unsupported production routes returning stable diagnostics.
  • DIMSE helpers provide package-level workflow support and testable transport behavior; they are not a managed PACS service.