← All products
Cornea · Pentacam INI

Keratoconus Screener

Drop in Pentacam .ini exports. The screener resolves which Belin/Ambrósio version produced each BAD D before scoring it, runs the scan-quality gate first, and refuses to score anything whose provenance it cannot establish.

🔒 Parsed entirely in your browser. No file, name or DOB is ever uploaded.

Screening metrics

Six metrics from [Examination Data N]. Boundaries are inclusive — the threshold value itself counts as that level.

MetricDirectionSuspectAbnormalRole
BAD (version-resolved)higher worse1.6 (v3)2.6 (v3)drives verdict
Ele_B_BFS8mm_Thinnesthigher worse1216drives verdict
ArtMaxlower worse412339drives verdict
KMaxFronthigher worse47.248.0drives verdict
IHDhigher worse0.0140.016drives verdict
Pachy Minlower worse500470⚠ low-specificity — excluded

BAD is version-scoped. v3 uses the published 1.6 / 2.6. v4 cutoffs are intentionally unset, so v4 exams report unscored (v4, no calibrated cutoff) and the other five metrics still score. ISV, IVA, KI, CKI, IHA, IS are shown as context but never scored.

Why v4 is still unset. A calibration was attempted against a 76-exam bank carrying paired v3 and v4 values. It does not support a cutoff. The two are related but loosely (r = 0.84, residual SD 1.06 on cutoffs near 1.7–3.2), and the mapping is era-dependent — exports that actually display v4 imply 1.42 / 2.40, while older ones imply 1.71 / 3.28. Restricting to the exports that genuinely display v4 leaves 3 eyes at or above the v3 suspect line and 1 above the abnormal line. A threshold fitted to one event is not a calibration. Separately, tuning v4 to agree with v3 assumes v3 is the truth, which would discard whatever improvement v4 offers. A defensible v4 cutoff needs clinically-labelled eyes, not v3 concordance.

Verdict logic

  • Quality gate first. Status ≠ OK or StatusCode ≠ 0REJECTED with no risk verdict. A confident "normal" off a failed capture is worse than no output.
  • Any abnormal among the five verdict metrics → ABNORMAL
  • else any suspect → SUSPECT
  • else any missing or unscored → INCOMPLETE
  • else WITHIN NORMAL LIMITS
  • Pachy Min never drives a verdict. Thin normals are common and it is collinear with ArtMax. When it is the only flag the result is WNL plus a refractive-planning note.

The alias problem

BAD D is not a canonical measurement. It mirrors whichever Belin/Ambrósio Deviation variant the acquiring software was configured to display, and the variants disagree by more than on the same eye. The published 1.6 / 2.6 cutoffs are calibrated for the older v3 family, so a BAD D value is meaningless until you know which variant produced it.

  • If BADD_Version_Display is present it is authoritative for the major version. If BAD D matches no candidate of that version, that is a hard error (version_mismatch) — not a guess.
  • Otherwise BAD D is matched numerically against BADD_v4 / v4_myo / v4_hyp / v3_myp / v3_hyp at tolerance 0.005 (values print to 2 dp). Exactly one match → resolved. Several → ambiguous. None → unknown.
  • The provenance travels with the value into the table, the CSV and the JSON — you always see which key the number came from and how it was identified.
  • If the version cannot be established, BAD is refused rather than compared against the wrong scale. The other metrics still score.

Non-virgin cornea guard

Prior refractive surgery invalidates these cutoffs — the ablation profile alone drives the pachymetric-progression terms. The screener warns (never vetoes) when Asph Q Anterior (4.5mm) is oblate, or when BADDf < 0.5 while BADDb > 2. A decentered cone can also produce an oblate central Q, so this is a prompt to check history, not a conclusion.

What the headline means

The action band is a stated rule over the verdict, the quality gate and the treatment-history flag — not a probability. It deliberately outranks the risk verdict in two cases, because neither supports acting on the number:

  • Repeat the scan — the capture failed the quality gate, so nothing was computed that you should read.
  • Establish surgical history first — the non-virgin guard fired. This outranks even an ABNORMAL verdict, because the cutoffs assume a virgin cornea and a prior ablation reproduces the same pattern.
  • Refer for corneal evaluation — abnormal on a quality-passed, apparently virgin cornea.
  • Repeat and monitor — suspect band. Serial scans separate a stable cornea from a progressing one better than any single exam.
  • No action indicated — all five verdict metrics within normal limits.

There is deliberately no 0–100 risk score. Calibrating one needs a cohort with known outcomes; without that, a single number would imply a precision the underlying data does not carry, and would collapse "how abnormal" and "how much you can trust it" into one figure that hides the difference.

Fellow eyes

When both eyes of one patient are present they are grouped, and the inter-eye differences for every scored metric are shown above the pair. Pronounced asymmetry between fellow eyes is itself a keratoconus signal — but there is no validated inter-eye cutoff here, so the deltas are reported and left to you rather than thresholded.

Parsing

Pentacam exports are Windows-encoded with CRLF endings, repeat keys inside a single section, and distinguish ARTMin from ArtMax by case. A standard INI reader lowercases keys and rejects duplicates, so this uses a hand-written parser that preserves order, case, duplicates and raw values, and leaves all interpretation to the scorer. Every [Examination Data N] block is an independent measurement and gets its own row.