{
  "schemaVersion": 1,
  "testDate": "2026-10-01T22:14:12.641Z",
  "evidenceType": "current-web-wasm-decoding-audit",
  "runtime": "Node v26.8.1 darwin/arm64",
  "coreCommit": "ec4f637536d047ab753b51cd5e69e08846fb54af",
  "assets": {
    "ossidex-core.mjs": "9d99389c625f56dcc3c885bf2a63da497df3f6100fae821c4e2ab9e37501c8e7",
    "ossidex-core.wasm": "e9b681baf0ef028bcfd0f0ff17f17cb95814d80183391afe3c0598ca68734a0d"
  },
  "reference": "pydicom pixel_array with independent first-frame modality calibration",
  "referenceVersions": {
    "pydicom": "3.0.2",
    "numpy": "2.4.4"
  },
  "selection": "First/middle/last object per SeriesInstanceUID in sorted archive-name order; first/middle/last frame rendering per selected object.",
  "rows": [
    {
      "id": "Canon-Classic",
      "source": "https://github.com/neurolabusc/dcm_qa_canon",
      "archiveSHA256": "283fe430cedca46deac861537d559415e357524f64c7c6e254fe30b16b3f2312",
      "upstreamRevision": null,
      "archiveObjects": 5720,
      "imageObjects": 5720,
      "imageSeries": 11,
      "selectedObjects": 33,
      "framesDecoded": 33,
      "firstFramesCompared": 33,
      "pixelsCompared": 211200,
      "unsupportedEnhancedObjects": 0,
      "headerErrors": 0,
      "nonImageObjects": 0,
      "maxScalarDifference": 0,
      "differentScalarPixels": 0
    },
    {
      "id": "Canon-Enhanced",
      "source": "https://github.com/neurolabusc/dcm_qa_canon_enh",
      "archiveSHA256": "1353de0d92b936f541eb74ed7ac079b9d276e3b5fd4f9b7ed5f0727fb2d1a714",
      "upstreamRevision": null,
      "archiveObjects": 11,
      "imageObjects": 11,
      "imageSeries": 11,
      "selectedObjects": 11,
      "framesDecoded": 0,
      "firstFramesCompared": 0,
      "pixelsCompared": 0,
      "unsupportedEnhancedObjects": 11,
      "headerErrors": 0,
      "nonImageObjects": 0,
      "maxScalarDifference": null,
      "differentScalarPixels": 0
    },
    {
      "id": "GE",
      "source": "https://github.com/neurolabusc/dcm_qa_ge",
      "archiveSHA256": "da801e3088f2fd5b8cbdbd003fd9b95e8230608156a81383b00f11a8e2fb94a4",
      "upstreamRevision": null,
      "archiveObjects": 4360,
      "imageObjects": 4360,
      "imageSeries": 29,
      "selectedObjects": 87,
      "framesDecoded": 87,
      "firstFramesCompared": 87,
      "pixelsCompared": 1277952,
      "unsupportedEnhancedObjects": 0,
      "headerErrors": 0,
      "nonImageObjects": 0,
      "maxScalarDifference": 0,
      "differentScalarPixels": 0
    },
    {
      "id": "Siemens-Mosaic",
      "source": "https://github.com/neurolabusc/dcm_qa_mosaic",
      "archiveSHA256": "c5538695cb67931327266c7569ea6cf970f23099ca57699d30c23cf0cdaf188b",
      "upstreamRevision": null,
      "archiveObjects": 48,
      "imageObjects": 48,
      "imageSeries": 8,
      "selectedObjects": 24,
      "framesDecoded": 24,
      "firstFramesCompared": 24,
      "pixelsCompared": 4177920,
      "unsupportedEnhancedObjects": 0,
      "headerErrors": 0,
      "nonImageObjects": 0,
      "maxScalarDifference": 0,
      "differentScalarPixels": 0
    },
    {
      "id": "Siemens-XA30",
      "source": "https://github.com/neurolabusc/dcm_qa_xa30",
      "archiveSHA256": "90efd04e8274c4748c197f0b392dad5de8ef26b5eb2e597ab053aefce39650f5",
      "upstreamRevision": null,
      "archiveObjects": 95,
      "imageObjects": 86,
      "imageSeries": 20,
      "selectedObjects": 29,
      "framesDecoded": 0,
      "firstFramesCompared": 0,
      "pixelsCompared": 0,
      "unsupportedEnhancedObjects": 29,
      "headerErrors": 0,
      "nonImageObjects": 9,
      "maxScalarDifference": null,
      "differentScalarPixels": 0
    },
    {
      "id": "Toshiba-5",
      "source": "https://github.com/neurolabusc/dcm_qa_toshiba",
      "archiveSHA256": "f90a713c20e7db874af90157cf7c90567bc0f64b78dd4df3931de6f0059554fd",
      "upstreamRevision": null,
      "archiveObjects": 2600,
      "imageObjects": 2600,
      "imageSeries": 5,
      "selectedObjects": 15,
      "framesDecoded": 15,
      "firstFramesCompared": 15,
      "pixelsCompared": 61440,
      "unsupportedEnhancedObjects": 0,
      "headerErrors": 0,
      "nonImageObjects": 0,
      "maxScalarDifference": 0,
      "differentScalarPixels": 0
    },
    {
      "id": "United-Imaging",
      "source": "https://github.com/neurolabusc/dcm_qa_uih",
      "archiveSHA256": "9b0adbbe939b375567b6e3587e044baec37da8a680bdefe373472e81ed15c997",
      "upstreamRevision": null,
      "archiveObjects": 388,
      "imageObjects": 388,
      "imageSeries": 6,
      "selectedObjects": 18,
      "framesDecoded": 18,
      "firstFramesCompared": 18,
      "pixelsCompared": 2396160,
      "unsupportedEnhancedObjects": 0,
      "headerErrors": 0,
      "nonImageObjects": 0,
      "maxScalarDifference": 0,
      "differentScalarPixels": 0
    }
  ],
  "limitations": [
    "Node execution of shipped WASM; no browser UI, GPU, physical-device or native-app acceptance.",
    "Every archive header scanned, representative objects selected per series; not every object decoded.",
    "Exact local input archive hashes recorded; original upstream revisions unknown.",
    "Independent pixel comparison covers only the first frame of selected monochrome objects.",
    "First/middle/last rendered frames checked for size and opacity; no independent rendered-pixel comparison.",
    "Raw source matrix comparison does not validate Siemens mosaic unpacking, MPR or measurement tools.",
    "Enhanced functional-group objects are explicitly unsupported; matching rejection behavior does not mean successful decoding.",
    "Nonempty decoded images and numeric geometry checks do not establish clinical validation."
  ]
}
