MiniPACS DICOM transfer-syntax fixture set (v3, 2026-08-31)
===========================================================

The exact fixtures behind the viewer decode matrix at
https://minipacs.net/dicom-transfer-syntax/ (matrix test run 2026-08-28),
extended with two bonus lossy encodings, reference renders and a
machine-readable manifest.

All pixel data comes from public, de-identified teaching studies
(the BRAINIX MR brain and the INCISIX dental CT, as distributed by the
Orthanc project's public demo server) and from the pydicom-data
repository (https://github.com/pydicom/pydicom-data). No patient data.

Contents
--------
13 DICOM files, one per transfer syntax (see manifest.csv for the full
table: syntax name, UID, size, MD5, SHA-256, expected decoded-pixel MD5
and provenance of every file):

  fx-explicit.dcm        1.2.840.10008.1.2.1       Explicit VR LE (MR source)
  fx-implicit.dcm        1.2.840.10008.1.2         Implicit VR LE
  fx-bigendian.dcm       1.2.840.10008.1.2.2       Explicit VR Big Endian (retired)
  fx-deflated.dcm        1.2.840.10008.1.2.1.99    Deflated Explicit VR LE
  fx-rle.dcm             1.2.840.10008.1.2.5       RLE Lossless (CT)
  fx-rle-src.dcm         1.2.840.10008.1.2.1       uncompressed twin of fx-rle
  fx-jpeg-baseline.dcm   1.2.840.10008.1.2.4.50    JPEG Baseline (lossy, 8-bit)
  fx-jpeg-extended.dcm   1.2.840.10008.1.2.4.51    JPEG Extended P2+4 (lossy) [bonus]
  fx-jpeg-lossless.dcm   1.2.840.10008.1.2.4.70    JPEG Lossless SV1
  fx-jpegls.dcm          1.2.840.10008.1.2.4.80    JPEG-LS Lossless
  fx-jpegls-near.dcm     1.2.840.10008.1.2.4.81    JPEG-LS Near-Lossless [bonus]
  fx-j2k.dcm             1.2.840.10008.1.2.4.90    JPEG 2000 Lossless Only
  fx-j2k-src.dcm         1.2.840.10008.1.2.1       uncompressed twin of fx-j2k

reference-mr.png / reference-ct.png: what a correct decode of the MR and
CT source looks like (min-max windowed, rendered with DCMTK dcm2pnm).

[bonus] files were NOT part of the published 2026-08-28 viewer matrix;
they are included for broader decoder testing.

How to verify a decoder objectively
-----------------------------------
The six lossless MR encodings (explicit, implicit, bigendian, deflated,
jpeg-lossless, jpegls) contain byte-identical pixels. After converting
any of them to Explicit VR Little Endian (DCMTK 3.7.0: dcmconv +te,
dcmdjpeg, dcmdjpls) the PixelData element bytes hash to

  MD5 e092a3ac4664bfb94e99c254f9c3385e

fx-rle must decode to the same pixels as fx-rle-src
(MD5 704e9902ed7dd4e52036c8be6c80b278), and fx-j2k to the same pixels
as fx-j2k-src (MD5 59be1c858534e8f388dd4f8e60bb9086; the J2K reference
comes from the uncompressed twin shipped by pydicom-data).

Lossy files (jpeg-baseline, jpeg-extended, jpegls-near) have
decoder-dependent output; compare them visually against the reference
PNGs instead of by hash.

Every file's TransferSyntaxUID (0002,0010) was re-verified with dcmdump
v3.7.0 before packaging on 2026-08-31.

Expected per-viewer behaviour (including known failures) for the nine
matrix syntaxes: https://minipacs.net/dicom-transfer-syntax/#viewer-matrix

Terms
-----
The compilation, manifest and this documentation: CC BY 4.0
(link https://minipacs.net/dicom-transfer-syntax/ and name the test date).
The BRAINIX and INCISIX studies are public de-identified teaching
datasets; the JPEG 2000 pair is redistributed from the pydicom-data
repository under its license. Intended use: interoperability and
decoder testing.

Contact: tim@minipacs.net
