ExtractVahti

Keep extracted study data, risk-of-bias decisions, and analysis-ready exports together.

Browser-local, no uploadv0.3κ / Krippendorff αRoB SVGlocal-firstDTA

What this is

What. ExtractVahti is the extraction-and-appraisal step of a diagnostic-test-accuracy review. For each included study you enter the 2×2 counts (it computes sensitivity, specificity, and overall agreement), record the study details, and rate risk of bias with QUADAS-2 / QUADAS-C / PROBAST-AI, then export tidy CSVs for meta-analysis in R.

Why. Extraction is where DTA reviews leak errors: a mis-transcribed 2×2, an inconsistent reference standard, a bias domain nobody appraised. Doing it once, in a structured form that computes the accuracy for you and keeps a risk-of-bias traffic-light, is what a reproducible review needs, and it hands the headline model straight to R.

How. Paste your included studies from MatchVahti (or load the example). For each study: enter the 2×2 per cutoff, note the decision impact, and rate each risk-of-bias domain, then Save and move on. Export extraction.csv / rob.csv and the traffic-light SVG. A second extractor’s file can be reconciled. Nothing uploads.

Is my data uploaded?

No. ExtractVahti runs entirely in your browser and saves to your device’s local storage — nothing leaves your machine, and there are no accounts or trackers.

What does it compute, and what stays in R?

From a 2×2 (TP/FP/FN/TN) it computes sensitivity, specificity, and overall percent agreement; with two or more extractors it computes Cohen’s κ (or Krippendorff’s α for 3+) on the judgments. The headline HSROC / bivariate model runs in R on the exported CSV (mada / metadta).

Which risk-of-bias tools?

QUADAS-2 and QUADAS-C by default; PROBAST-AI / TRIPOD-AI / CLAIM when the index test is AI (toggle it on in step 1). The reference-standard domain is high-concern by design when the reference standard is imperfect.

What do I get out?

extraction.csv and reclassification.csv for R, rob.csv, a risk-of-bias traffic-light SVG, and a de-identified validation file. All downloadable, reviewable, and local.

Can two people extract independently?

Yes. Load a second extractor’s extraction.jsonl in the Reconcile step — only beyond-tolerance mismatches surface for adjudication, and each person’s data stands alone.

1Included studies & protocol

Paste the included set from MatchVahti screening (JSON / JSONL: one object per study with record_id, pmid, doi, title, year, venue), or load the example. The corpus is your locked set — extraction is keyed to protocol_hash + record_id so it lines up with screening and reconciliation.

2Extract — study data

2bPer-cutoff accuracy — enter a 2×2 where reconstructable; sens/spec/OPA auto-compute

2cDecision impact — directional reclassification (AI vs manual)

3Appraise — risk of bias

Each domain: low · unclear · high. The reference-standard domain is high-concern by design here (an imperfect reference shares error with the comparator).

4Review & export

Completion + the risk-of-bias traffic-light. Export is downloadable, reviewable files — nothing uploads.

Risk-of-bias traffic-light

Feed extraction.csv / reclassification.csv to R (metadta / mada / meta) — HSROC where a 2×2 is reconstructable, agreement pooling otherwise.

5Reconcile — dual extraction

Load a second extractor's extraction.jsonl (from another ExtractVahti). Records join on record_id; judgments get Cohen's κ, counts an exact match, continuous values a tolerance. Only beyond-tolerance mismatches surface for adjudication — the human data source stands alone.

ASealed agent reconciliation aid — optional, guarded

Load an agent pre-extraction file (same jsonl; each record carries a model id). It is sealed — never shown and never entered into your data. After you commit a study (Save), the agent's values for that study are revealed only as discrepancy flags to re-check. Audited: human-commit before reveal.