Why trial matching belongs in the report, not in a separate tool
An oncologist sees the NGS report, forms a treatment plan, and — days later — remembers to check whether the patient qualifies for a trial. By the time they search, they've already committed mentally to standard-of-care. Trial enrollment rates suffer. Pharma partnerships that depend on referral volume suffer. And your lab loses the differentiation of offering “trial-aware” reporting.
A trial matching API, called at report-generation time, puts the shortlist on page 2 of the Actionable Insight. The oncologist sees treatment options and trial options together — at the exact moment they're deciding.
How the matching works
A single POST /v1/trials/match call with the variant profile returns ranked trials. Behind that single endpoint, three layers of matching:
| Eligibility criterion type | Matching approach | Match confidence |
|---|---|---|
| Variant-level (e.g., 'EGFR L858R') | Graph traversal — exact match or not | Deterministic |
| Disease / stage (e.g., 'Stage IV NSCLC') | Structured match against report metadata | High |
| Prior therapy history | Flagged for oncologist review — not in NGS report | Verification required |
| Performance status (ECOG) | Flagged for oncologist review | Verification required |
| Comorbidity exclusions | Flagged for oncologist review | Verification required |
| Geographic eligibility | Radius filter against enrollment site coordinates | Deterministic |
Example response structure
Each matched trial returns: NCT ID, phase, status, primary endpoint, sponsor, match score (0–1), list of verified criteria met vs. criteria requiring oncologist verification, enrolling site addresses within radius, and a deep link to the full trial record on ClinicalTrials.gov.
The full integration example — LIMS → UNMIRI API → 2-page report — is on the For Labs page.
Data freshness and registry coverage
ClinicalTrials.gov is refreshed nightly. Trials that move from “enrolling” to “not yet recruiting” or “completed” are caught in the next 24-hour cycle. Every match output includes the registry version timestamp so your audit trail shows exactly what was enrollable at the time of report generation.
Compliance and data flow are detailed on the security page. Our practical architecture is covered in Building a HIPAA-Ready Architecture for Clinical Decision Support, and the graph traversal approach is the same architecture explained in Why Vector RAG Fails for Oncology.
How UNMIRI actually does this
ClinicalTrials.gov eligibility criteria are parsed and stored as typed edges in UNMIRI's knowledge graph. Trial matching is a Cypher traversal from a patient's variant profile to actively enrolling trials — deterministic, not LLM-inferred. Free-text eligibility parsing happens once at ingestion; the runtime path is structured throughout. More on the architecture.