What does the split audit check?

It reads a clip-level CSV and compares the identifiers you supply. It flags duplicate clip IDs, missing required values, invalid split names, and case, source-video, or patient-group IDs that appear across partitions. It reports site and device coverage separately.

A report with no conflicts means none were found in those identifiers. It does not establish independence of the underlying footage, de-identification, clinical validity, or model performance. Missing patient grouping remains an explicit limitation.

Input → check → interpretation

The included example contains four invented rows: two views of one training operation, one validation operation, and one test operation. The two views share a case ID. None of the rows describes a real patient or available dataset.

A GROUP KEPT TOGETHER

Both eyes in training

clip        case       split
001-left    case-001   train
001-right   case-001   train

The example returns no_conflicts_found, with three case IDs. Site A and device A still appear in both training and validation. That coverage does not establish a site-held-out evaluation.

A DELIBERATE CONFLICT

Move the right eye to test

clip        case       split
001-left    case-001   train
001-right   case-001   test

In a copy of the CSV, change the right-eye row’s split to test. The checker flags its case and patient group across train/test and exits with code 1. The original source-video IDs differ by eye, so case grouping is what connects the views.

Identifiers above are shortened for readability. The full CSV uses synthetic- prefixes. A different export name cannot resolve a shared source; correct the assignment or document a different evaluation protocol.

Run the example on your computer

Download and extract the kit, review the source, then open a terminal in the extracted folder. Python is the only requirement.

python3 audit-surgical-splits.py surgical-split-example.csv > report.json
python3 -m json.tool report.json

Compare report.json with the included expected-report.json. The unmodified synthetic example should return code 0, four rows, three case IDs, and no conflicts or missing-group warnings. The expected report also shows site/device overlap.

For your own manifest, use project-approved pseudonymous grouping IDs. Keep names and direct patient identifiers out of the CSV. The script echoes IDs in its local report, so keep that report under your project’s access controls.

Exit codes: 0 means no supplied-ID conflicts were found, 1 means findings need review, and 2 means the input could not be audited. Review warnings even when the exit code is 0.

Inspect the release

The ZIP contains six files. Downloading it requires no email address. Individual source and example files are also available:

The release manifest lists the archive and file hashes. The archive is 14,763 bytes. SHA-256 identifies this exact download; it is an integrity check, not a security certification.

609c935e5c000d7afff8d05de41cb5b3eb4ead1e4cde019b39d1206136cf30e0

Where the check stops

This tool cannot find hidden visual duplicates, incorrectly assigned source IDs, unknown patient relationships, or pretraining footage omitted from the manifest. Site and device overlap are descriptive, because the relevant holdout depends on the study question. It loads the CSV in memory and is intended for clip-level manifests, not a frame-by-frame export of a large archive.

Use the dataset-quality guide to plan case, patient, site, and device separation. For public collections, consult the dataset comparison and original overlap mappings before combining releases.

Version, attribution, and corrections

v1.0 · October 18, 2026. First packaged release of the local CSV checker, synthetic example, expected output, and documentation. The checker’s behavior is unchanged from the initial v1.0 source download.

Suggested attribution:

Operavue (2026). Surgical Video Split Audit, version 1.0.
https://operavue.com/resources/surgical-video-split-audit

Prepared with AI assistance and tested with synthetic cases. See our editorial approach. Report a reproducible issue through the general inquiry form, using synthetic rows rather than patient information.

FROM AN EXAMPLE TO A DATA REQUIREMENT

Make the release inspectable.

Use the dataset-description template to document what exists, what remains unknown, and what a buyer can review before licensing. Operavue scopes existing footage and new capture against a research brief.

Discuss a data requirement ↗