{
  "title": "April 2025 \u2192 September 2026 ankle CT comparison",
  "warning": "Registered, downsampled visualization. Acquisition, reconstruction kernel, positioning, metal and registration error can mimic change. Not diagnostic.",
  "series": {
    "previous_mar": {
      "label": "April 2025 CT (MAR)",
      "series_number": 303,
      "series_description": "MAR 1.25mm STD HD",
      "file_count": 161
    },
    "previous_standard": {
      "label": "April 2025 CT (standard)",
      "series_number": 301,
      "series_description": "1.25mm STD HD",
      "file_count": 161
    },
    "latest_mar": {
      "label": "September 2026 CT (MAR)",
      "series_number": 303,
      "series_description": "110 keV Bone MAR",
      "file_count": 257
    },
    "latest_standard": {
      "label": "September 2026 CT (standard)",
      "series_number": 302,
      "series_description": "110 keV Bone",
      "file_count": 257
    }
  },
  "registration": {
    "shaft": {
      "metric": "correlation",
      "correlation": 0.9644001748402997,
      "optimizer_stop_condition": "GradientDescentLineSearchOptimizerv4Template: Convergence checker passed at iteration 35.",
      "parameters": [
        0.002763136577199097,
        0.03173304880454944,
        -0.05263395330240819,
        9.128521194750869,
        -7.110337347538529,
        83.2441321471111
      ],
      "fixed_parameters": [
        -0.1600284999999957,
        -0.1600284999999957,
        52.5,
        0.0
      ],
      "anchor": "proximal 42% of the volume (distal tibia/fibula)"
    },
    "talus_refinement": {
      "metric": "correlation",
      "correlation": 0.7345297025676005,
      "optimizer_stop_condition": "GradientDescentLineSearchOptimizerv4Template: Convergence checker passed at iteration 30.",
      "parameters": [
        -0.16388648050481736,
        -0.047055047070297326,
        -0.04558234146439795,
        -0.6888541375826105,
        1.4713906359832907,
        1.1582312460540907
      ],
      "fixed_parameters": [
        11.837274690206982,
        -11.26301520361551,
        -26.59074482991025,
        0.0
      ],
      "anchor": "automatically isolated talus component",
      "talus_mask_voxels": 225528
    },
    "qa": {
      "shaft_bone_dice": 0.8269251571812644,
      "talus_bone_dice_before_local_refinement": 0.7947614579879653,
      "talus_bone_dice_after_local_refinement": 0.8523018846702706,
      "bone_threshold_hu": 300,
      "note": "Dice is a registration-QA heuristic, not a biological-change measurement.",
      "latest_coverage_fraction_shaft": 0.4722293830065994,
      "latest_coverage_fraction_talus": 0.46843013408021156
    },
    "reference_grid": "April 2025; September 2026 is rigidly resampled into this grid"
  },
  "exclusion": {
    "metal_threshold_hu": 2400.0,
    "mar_standard_disagreement_hu": 300,
    "dilation_mm": 4.0,
    "both_studies": true,
    "separate_masks_for_each_anchor": true,
    "outside_source_coverage_always_excluded": true,
    "coverage_interpolation_margin_voxels": 1
  },
  "volume": {
    "dtype": "uint8",
    "layout": "zyx",
    "shape_zyx": [
      161,
      256,
      256
    ],
    "spacing_xyz_mm": [
      0.640626,
      0.640626,
      1.25
    ],
    "window_hu": [
      -900.0,
      1700.0
    ],
    "previous": [
      "volume/previous_uint8_zyx.part00"
    ],
    "current_shaft": [
      "volume/current_shaft_uint8_zyx.part00"
    ],
    "current_talus": [
      "volume/current_talus_uint8_zyx.part00"
    ],
    "excluded_shaft": [
      "volume/excluded_shaft_uint8_zyx.part00"
    ],
    "excluded_talus": [
      "volume/excluded_talus_uint8_zyx.part00"
    ],
    "valid_shaft_bits": [
      "volume/valid_shaft_packbits.part00"
    ],
    "valid_talus_bits": [
      "volume/valid_talus_packbits.part00"
    ],
    "talus_mask_bits": [
      "volume/talus_mask_packbits.part00"
    ],
    "talus_mask_encoding": "numpy-packbits-big-endian",
    "coverage_mask_encoding": "numpy-packbits-big-endian",
    "planes": {
      "axial": {
        "count": 161,
        "width": 256,
        "height": 256
      },
      "coronal": {
        "count": 256,
        "width": 256,
        "height": 161,
        "flip_y": true
      },
      "sagittal": {
        "count": 256,
        "width": 256,
        "height": 161,
        "flip_y": true
      }
    }
  },
  "atlas": {
    "path": "comparison_atlas.png",
    "selected_indices": {
      "axial": 62,
      "coronal": 221,
      "sagittal": 292
    },
    "delta_threshold_hu": 250
  },
  "images": {
    "previous": {
      "size": [
        512,
        512,
        161
      ],
      "spacing_mm": [
        0.320313,
        0.320313,
        1.25
      ],
      "direction": [
        1.0,
        0.0,
        0.0,
        0.0,
        1.0,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    "latest": {
      "size": [
        512,
        512,
        257
      ],
      "spacing_mm": [
        0.25,
        0.25,
        0.625
      ],
      "direction": [
        1.0,
        0.0,
        0.0,
        0.0,
        1.0,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    }
  },
  "source_files_modified": false,
  "contains_identifying_dicom_metadata": false,
  "limitations": [
    "The 2025 MAR reconstruction uses a standard kernel; 2026 uses a 110 keV bone kernel. Absolute displayed intensities are not directly comparable measurements.",
    "Masks exclude metal and MAR disagreement in both studies, but cannot remove all artifact or registration error.",
    "Talus alignment is local and does not align every neighboring bone.",
    "The radiology report did not compare these studies; the viewer does not establish progression."
  ],
  "assets": [
    {
      "path": "volume/current_shaft_uint8_zyx.part00",
      "bytes": 10551296,
      "sha256": "f23a6c9c87bd276a120f170f92df6d3a2cf30e2bfa1f8ba270b2bed160733c84"
    },
    {
      "path": "volume/current_talus_uint8_zyx.part00",
      "bytes": 10551296,
      "sha256": "8f29c764db2b2354b28d1bdc5f163c562d1dc754c1d980b43320972b7ad2c5af"
    },
    {
      "path": "volume/excluded_shaft_uint8_zyx.part00",
      "bytes": 10551296,
      "sha256": "a5a0a8815684780d4d78cce019a87c77619140f59f80d0453c483a68ca3d26f6"
    },
    {
      "path": "volume/excluded_talus_uint8_zyx.part00",
      "bytes": 10551296,
      "sha256": "4fbbf5e89aa4151ee770f5d190f44ea506c6bdf9ce0077669f57703c4ae33313"
    },
    {
      "path": "volume/previous_uint8_zyx.part00",
      "bytes": 10551296,
      "sha256": "e9aa5dbc8f455d8d37d441524b316ca1da9145d52121c96090fbd80b1801efbf"
    },
    {
      "path": "volume/talus_mask_packbits.part00",
      "bytes": 1318912,
      "sha256": "67dcb31ca3a0803f643e877860dab159e14b83227b1f8913b84855f6ff8d670d"
    },
    {
      "path": "volume/valid_shaft_packbits.part00",
      "bytes": 1318912,
      "sha256": "7cf33b5e823bfa9224cf957139d14320a0489ce2a1903b32f57a0a473288c2ab"
    },
    {
      "path": "volume/valid_talus_packbits.part00",
      "bytes": 1318912,
      "sha256": "14b3bca0053f5b7492d7f85a13a7998a391416019d49ce1fb6f0838661ec7d10"
    }
  ]
}
