Coronary angiography read: vessels, SYNTAX segments and stenosis with QCA evidence.
What it does
Coronary Angiography reads a whole cath-lab study. Upload the patient CD, a DICOM folder or individual XA runs; the platform groups the runs, skips duplicates and non-image objects, and returns one structured result.
The result is organised in sections. Each section has a status, and a section that could not be produced says why (for example not in input: needs an RCA run). Sections marked planned join the run in later minor versions with no change to the API.
Intended use
Decision support for physicians reading coronary angiograms: a quantified second read for the fellow or on-call operator, and a structured summary for referring cardiologists who hold a CD with a one-line report. Stenosis findings are candidates with QCA evidence, not verdicts; the physician confirms every finding.
Who it is for
Interventional and general cardiologists, fellows, emergency physicians and heart-team members. Developers can call the same run from the API.
Accepted input
- XA cine runs: multi-frame X-Ray Angiographic Image objects (including Enhanced XA), or a zip of the single-frame instances of one run.
- Whole studies: a patient CD or study folder with DICOMDIR. Viewer software, duplicates and non-image objects (dose reports, secondary captures) are skipped.
- Up to 30 cine runs per study are analysed; the price is per study.
Requirements per run
| Requirement | Why |
|---|---|
| At least 16 frames | Key-frame selection needs the contrast curve |
| Not a rotational acquisition (gantry span ≤ 45°) | Rotational runs are rejected |
ImagerPixelSpacing with source distances |
Needed for mm values; without it, lengths are reported in pixels and flagged |
Frame rate (CineRate, RecommendedDisplayFrameRate or FrameTime) |
Timing of the contrast curve |
Files are processed as received
MedRun does not de-identify, rewrite UIDs or shift dates. DICOM outputs (SEG, SR, Secondary Capture) reference your own Study, Series and SOP Instance UIDs so they open next to the source images in your viewer.
The result
One JSON result (the MedRun result envelope) with sections[], findings[], measurements[], quality,
provenance and artifacts[]. Every number carries a trace to the measurement it came from.
| Section | Content |
|---|---|
| Views | Injected artery, positioner angles, key frames per run |
| Vessel segmentation | Coronary-tree mask on every frame (DICOM SEG + overlay video) |
| Coronary segments | SYNTAX segment labels on the key frames |
| Stenosis | Lesions per segment: QCA %DS, MLD, reference diameter, length (mm when calibrated) and an AI visual-equivalent grade |
| Quality | Flags such as a short contrast plateau or missing calibration |
| Draft report | Opt-in (options.report: true, +$0.02): findings, impression and limitations, every number validated |
Standard renderings
options.return selects DICOM SR (TID 1500 Measurement Report, one TID 1410 group per lesion), DICOM SEG, Secondary
Capture, PDF and FHIR R4. The default is JSON + SR + SEG + Secondary Capture.
Severity bands
%DS < 50 % mild, 50–69 % moderate, ≥ 70 % severe (left main: ≥ 50 % is significant). Bands are recomputed by a versioned rule from the measured value.
Known limitations
- Single-frame stenosis grading is hard. Public benchmarks put single-frame stenosis detection near F1 0.5. Treat lesions as candidates and confirm on the cine.
- Foreshortening and overlap can hide or exaggerate lesions in one projection; fusion across projections is on the roadmap.
- Side branches (diagonals, obtuse marginals, ramus) are outside the 11-segment vocabulary in v1.
- Calibration. Isocenter calibration can be off by 10–20 % when the vessel is far from the isocenter; catheter calibration is available in the QCA tool.
- Diffuse disease without a normal reference segment lowers %DS.
- Ostial and bifurcation lesions are under-segmented more often.
Not yet in the result
Dominance, TIMI flow, lesion features, SYNTAX score, stent sizing, PCI result and the LVEF estimate are planned sections; they appear as planned on this page until they ship.
Performance
No in-house benchmark has been run yet. Validated numbers will be published here only from our evaluation harness, with dataset, split and date.
Result sections
One run returns every section its input supports, at one price. Sections that cannot run say why (for example, not in input).
| Section | What it returns | Standards | Status |
|---|---|---|---|
Views #views | Each run's injected artery (LCA/RCA), positioner angles and projection, contrast and key frames.extensions | — | Since v1.0.0 |
Vessel segmentation #segment-vessels | Temporally consistent coronary-tree mask on every frame, as DICOM SEG and an overlay video.artifacts | DICOM Segmentation IOD (2026d) | Since v1.0.0 |
Coronary segments #segments | SYNTAX coronary segment labels (11 main segments) and the list of visible segments.artifacts · findings | SYNTAX segment definitions (Sianos 2005); DICOM CID 3014 Coronary Artery Segment (2026d) | Since v1.0.0 |
Stenosis #stenosis | Lesion list per segment with QCA %DS, MLD, reference diameter, length and an AI visual-equivalent grade; bands < 50 / 50–69 / ≥ 70 % (LM ≥ 50 %).findings · measurements · artifacts | DICOM SR TID 1500 / TID 1410 (2026d); QCA %DS bands (medrun-1) | Since v1.0.0 |
Draft report #report | Opt-in draft cath report (findings, impression, limitations) written from the structured result; every number is validated against it.report | — | Since v1.0.0 |
Quality #quality | Adequacy flags (short run, panned gantry, missing calibration, segmentation fallback) carried into the report's limitations.quality | — | Since v1.0.0 |
Dominance #dominance | Right, left or co-dominant circulation from the LCA and RCA runs. Requires: Both LCA and RCA runs.classifications | DICOM CID 3710 Coronary Dominance (2026d) | Planned · P1 |
TIMI flow #timi-flow | TIMI flow grade, corrected TIMI frame count and myocardial blush grade.scores | TIMI flow (1985); CTFC (Gibson) (1996) | Planned · P1 |
Lesion features #lesion-features | Calcification, thrombus, bifurcation (Medina), CTO, ostial location, tortuosity and ACC/AHA lesion type.classifications | — | Planned · P2 |
SYNTAX score #syntax-score | SYNTAX score with per-lesion breakdown and tertile.scores | SYNTAX score (Sianos 2005) | Planned · P2 |
Stent sizing #stent-sizing | Proximal and distal reference diameters, lesion length and a suggested stent size for a target lesion.measurements | — | Planned · P2 |
PCI result #pci-result | Pre/post-PCI comparison (residual %DS, acute gain, TIMI change, dissection). Requires: Pre- and post-PCI runs of the same vessel.changes | — | Planned · P2 |
LVEF estimate #lvef | Estimated LVEF from coronary runs when no LV gram or echo is available.measurements | — | Planned · P2 |
Validated performance
Numbers come only from MedRun's own evaluation harness (make eval (models/angio-coronary)), with dataset, split and date.
Evaluation pending
No in-house benchmark yet. Numbers will appear here only from `make eval` runs, with dataset, split and date.
Pricing
| Endpoint | Unit | Price |
|---|---|---|
| angio/coronary/interpret | request | $0.12 up to 600 frames · $0.24 up to 1,500 frames · $0.36 above 1,500 frames |
| angio/coronary/qca | call | $0.02 |
| Draft report (opt-in, options.report) | per run | +$0.02 |
- One price per study, set by the number of analysed cine frames (up to 30 runs). Sections never change the price.
- The top tier is held while the request runs; you are charged the tier of the frames actually analysed.
- Rejected inputs (for example, no XA cine runs) and failed runs are not charged.
- The QCA tool is a flat price per call.
Changelog
- v1.0.0Oct 6, 2026major
- First MedRun release of the coronary angiography read, with files[] input and sectioned results.
- QCA tool endpoint for a doctor-selected segment.