{
  "checkedOn": "2026-10-16",
  "timeZone": "Europe/Moscow",
  "finishedAtUTC": "2026-10-15T21:15:24.416000+00:00",
  "appVersion": "1.12.0",
  "developmentBuild": "9",
  "sourceCommit": "e52c69fcbd3c1a65f6296171487870d063a83141",
  "sourceVariation": "Application bundle identifier only, to isolate data from other installs.",
  "device": {
    "model": "iPhone 17 Pro",
    "osVersion": "27.0",
    "platform": "iOS Simulator"
  },
  "tests": {
    "passed": 7,
    "failed": 0,
    "skipped": 0,
    "methods": [
      "testCanonClassic",
      "testCanonEnhanced",
      "testGE",
      "testSiemensMosaic",
      "testSiemensXA30",
      "testToshiba",
      "testUnitedImaging"
    ]
  },
  "method": "Import each complete public archive; build the native study/series catalogue; require decoded raw pixels or a rendered fallback for every image context; open first/middle/last raster per series and require a nonempty image without an error.",
  "summary": [
    {
      "id": "Canon-Classic",
      "source": "https://github.com/neurolabusc/dcm_qa_canon",
      "archiveSHA256": "283fe430cedca46deac861537d559415e357524f64c7c6e254fe30b16b3f2312",
      "archiveObjects": 5720,
      "studies": 1,
      "decodedFrames": 5720,
      "selectedRasters": 33,
      "rasterErrors": 0,
      "supportingRawObjects": 0,
      "sourceReportSHA256": "2bff84e56d4edc5d09f7c611579230959ae5cfdc0715feb41bbf254aa89bf3b8"
    },
    {
      "id": "Canon-Enhanced",
      "source": "https://github.com/neurolabusc/dcm_qa_canon_enh",
      "archiveSHA256": "1353de0d92b936f541eb74ed7ac079b9d276e3b5fd4f9b7ed5f0727fb2d1a714",
      "archiveObjects": 11,
      "studies": 1,
      "decodedFrames": 5720,
      "selectedRasters": 33,
      "rasterErrors": 0,
      "supportingRawObjects": 0,
      "sourceReportSHA256": "295140d913e2499ce2cdbe5e170987631e5003d507e56397ed171022e88a8101"
    },
    {
      "id": "GE",
      "source": "https://github.com/neurolabusc/dcm_qa_ge",
      "archiveSHA256": "da801e3088f2fd5b8cbdbd003fd9b95e8230608156a81383b00f11a8e2fb94a4",
      "archiveObjects": 4360,
      "studies": 5,
      "decodedFrames": 4360,
      "selectedRasters": 87,
      "rasterErrors": 0,
      "supportingRawObjects": 0,
      "sourceReportSHA256": "dde1fa494f04e1ac876f5615d1d56c3392f790bf3389595962a184e677feb0d1"
    },
    {
      "id": "Siemens-Mosaic",
      "source": "https://github.com/neurolabusc/dcm_qa_mosaic",
      "archiveSHA256": "c5538695cb67931327266c7569ea6cf970f23099ca57699d30c23cf0cdaf188b",
      "archiveObjects": 48,
      "studies": 1,
      "decodedFrames": 48,
      "selectedRasters": 24,
      "rasterErrors": 0,
      "supportingRawObjects": 0,
      "sourceReportSHA256": "b50c27a00017210f690c51adf1bb657d68079418b7ad7508133e60c095a069d5"
    },
    {
      "id": "Siemens-XA30",
      "source": "https://github.com/neurolabusc/dcm_qa_xa30",
      "archiveSHA256": "90efd04e8274c4748c197f0b392dad5de8ef26b5eb2e597ab053aefce39650f5",
      "archiveObjects": 95,
      "studies": 1,
      "decodedFrames": 3087,
      "selectedRasters": 60,
      "rasterErrors": 0,
      "supportingRawObjects": 2,
      "sourceReportSHA256": "0223213b2e1fdc06d41232ee7f6f3f1f8eac53742ed2379a82ab54d4ef39df9f"
    },
    {
      "id": "Toshiba-5",
      "source": "https://github.com/neurolabusc/dcm_qa_toshiba",
      "archiveSHA256": "f90a713c20e7db874af90157cf7c90567bc0f64b78dd4df3931de6f0059554fd",
      "archiveObjects": 2600,
      "studies": 1,
      "decodedFrames": 2600,
      "selectedRasters": 15,
      "rasterErrors": 0,
      "supportingRawObjects": 0,
      "sourceReportSHA256": "43bf1df6a88d87485c83a65c132ee3f426b4ffa36bb92629d5bf8733f8a51763"
    },
    {
      "id": "United-Imaging",
      "source": "https://github.com/neurolabusc/dcm_qa_uih",
      "archiveSHA256": "9b0adbbe939b375567b6e3587e044baec37da8a680bdefe373472e81ed15c997",
      "archiveObjects": 388,
      "studies": 2,
      "decodedFrames": 388,
      "selectedRasters": 18,
      "rasterErrors": 0,
      "supportingRawObjects": 0,
      "sourceReportSHA256": "f98291c16755c082d36ce8223bec85a9ba7b91e7f72e0521a0511961863227bb"
    }
  ],
  "totals": {
    "archiveObjects": 13222,
    "studies": 12,
    "decodedFrames": 21923,
    "selectedRasters": 270,
    "rasterErrors": 0,
    "supportingRawObjects": 2
  },
  "runtimeWarningCount": 3,
  "runtimeWarnings": [
    {
      "type": "Runtime Warning",
      "message": "[Internal] Thread running at User-initiated quality-of-service class waiting on a lower QoS thread running at Utility quality-of-service class. Investigate ways to avoid priority inversions",
      "source": "MedScan/Core/Rendering/Metal/SliceDisplayPass.swift"
    },
    {
      "type": "Runtime Warning",
      "message": "[Internal] Thread running at User-initiated quality-of-service class waiting on a lower QoS thread running at Utility quality-of-service class. Investigate ways to avoid priority inversions",
      "source": "MedScan/Core/Rendering/Metal/SliceDisplayPass.swift"
    },
    {
      "type": "Runtime Warning",
      "message": "[Internal] Thread running at User-initiated quality-of-service class waiting on a thread without a QoS class specified (base priority 0). Investigate ways to avoid priority inversions",
      "source": "MedScan/Core/Rendering/Metal/SliceDisplayPass.swift"
    }
  ],
  "limitations": [
    "Local development build of 1.12.0, not the public App Store 1.11.2 binary or a physical-device run.",
    "Every native image context was checked for decodability; displayed raster selection is representative, not every frame.",
    "No independent comparison of native pixel values, displayed aspect ratio, windowing, MPR, measurements or temporal grouping.",
    "Siemens Mosaic means availability of the stored matrix, not validation of slice unpacking.",
    "Three thread-priority runtime warnings were retained. This is not a clean performance or thermal/memory acceptance result.",
    "Input archive hashes match the October 12 web check; original upstream revisions remain unknown.",
    "A software compatibility check does not establish clinical validation."
  ],
  "knownDisplayIssue": {
    "scenario": "Classic 2D display of a public derived DICOM frame with non-square PixelSpacing",
    "appVersion": "1.12.0 (9)",
    "sourceCommit": "e52c69fcbd3c1a65f6296171487870d063a83141",
    "sourceRaster": [
      460,
      160
    ],
    "controlRaster": [
      460,
      320
    ],
    "physicalSizeMM": [
      230.0,
      160.00039999999998
    ],
    "sourceFileSHA256": "c94aea0bcb8531fd4e4e90654ce0fb5d5104586af76649b54cfc802e5a32e45c",
    "result": "The original e52c69fc 1.12 runtime displays the non-square source vertically compressed; the square-pixel control displays the same anatomy at twice the height. See subsequent local fix verification below.",
    "control": "Duplicate each source row once and halve row spacing; exact equality of all stored pixel values, position and orientation verified.",
    "status": "Fixed in local development source; pending public App Store release.",
    "localFixVerification": {
      "checkedOn": "2026-10-16",
      "sourceCommit": "b1b86ff8",
      "status": "Fixed in local development source; not released on the App Store",
      "selectedTests": {
        "passed": 20,
        "failed": 0,
        "skipped": 0
      },
      "runtime": "Same two DICOM fixtures, iPhone17Pro Simulator/iOS27.0, slice1/1, WL237/WW471",
      "anatomyBounds": {
        "imageSize": [
          1206,
          2622
        ],
        "anisotropic": [
          180,
          983,
          1090,
          1822
        ],
        "squareControl": [
          180,
          983,
          1090,
          1822
        ],
        "beforeFixAnisotropic": [
          180,
          1193,
          1090,
          1612
        ]
      },
      "limits": "Display aspect and coordinate checks; not a complete independent pixel, device, lifecycle or all-tools acceptance. Square control duplicates rows, so screenshot pixels are not identical."
    }
  }
}
