Data Ingestion · IT / System integrators
CuRE Conduit
The platform's external-adapter front door — every byte of inbound data enters here.
What it does
The platform's external-adapter front door — every byte of inbound data enters here. Single ingestion plane — there is no other way into the platform (ADR-PLT-040).
Key capabilities
- SMART-on-FHIR EHR connectivity
- Tabular ingestion (CSV / XLSX / ZIP)
- AI column classification (Claude) for tabular feeds
- SHA-256 idempotency + per-feed lineage
- ADT / encounter-event subscriptions
- AI feed-health / freshness-SLA / schema-drift monitoring
- DHT / wearable device-stream ingestion
What sets it apart
- Single ingestion plane — there is no other way into the platform (ADR-PLT-040).
- TEFCA/Carequality, ADT/encounter subscriptions, claims adapters, and non-US profiles ride the same lineage model, with real-time feed-health, freshness-SLA, and schema-drift monitoring.
- Connection management + feed monitoring built in; not just a parser library.
- AI classifier proposes column→OMOP mappings on demand for fast onboarding.
Classify a CSV's columns to OMOP, on the fly
Paste or pick a source CSV and watch Conduit's column classifier decide each column's OMOP disposition — structural (a specific table + field), terminology (free-text cells routed to a concept domain), or skip — with a confidence score, holding anything below the 80% threshold for human review. Rename a column or edit its values and the classification recomputes live.
A demographics extract — structural columns (subject id, sex, DOB, site, enrollment date) plus a free-text medical-history column that routes per-value to the Condition domain, and a blank filler the classifier skips.
Edit the header row or the cell values — rename a column, change its values — and the classification recomputes instantly. The classifier reads the header and the sample cells.
| Column | Disposition | OMOP target | Confidence |
|---|---|---|---|
SubjectID S-1001, S-1002, S-1003 | Structural | person.person_source_value A per-subject identifier — the natural key that becomes person_source_value. | 95% |
Sex F, M, F | Structural | person.gender_concept_id Sex/gender values resolve to an OMOP gender concept on person. | 95% |
DateOfBirth 1974-03-12, 1981-11-30, 1969-07-22 | Structural | person.birth_datetime Date of birth populates person.birth_datetime (year/month/day derived from it). | 96% |
SiteName Boston General, Austin Clinic, Boston General | Structural | care_site.care_site_source_value A site/center identifier maps to care_site. | 78% needs review |
EnrollmentDate 2023-02-01, 2023-02-04, 2023-02-05 | Structural | observation_period.observation_period_start_date Enrollment/observation start bounds the OMOP observation_period. | 90% |
MedicalHistory Type 2 diabetes, Hypertension; asthma, COPD | Terminology | → Condition concept (per value) Free-text clinical event terms — per-value classification to the Condition domain downstream. | 86% |
InternalRowSeq 1, 2, 3 | Skip | (dropped at load) Internal tracking / row-ordinal column — not clinical data to load. | 90% |
Comments ∅ | Skip | (dropped at load) Column is entirely blank in the sampled rows — dropped at load time. | 90% |
Terminology columns (free-text clinical terms) don't map to a single field — Conduit routes each cell VALUE to a concept domain (Condition / Drug / Measurement / Observation) for per-value OMOP concept resolution downstream in Conduct. Structural columns land on a specific omop table + field. Everything computes in your browser — no backend, no file leaves the page.
Why this is more than a toy
This mirrors Conduit's real column classifier, whose exact contract is ported dependency-free from the platform monorepo (apps/conduit/…/classification): the same three-way structural / terminology / skip taxonomy, the OMOP target-table/field vocabulary, the concept domains (Condition / Drug / Measurement / Observation), and the 0.8 confidence threshold that forces a human confirm in the review queue (per ADR-PLT-026 classifier execution stays in Conduit; ADR-CDT-010 routes terminology columns to per-value concept suggestions). One difference, stated honestly: in production the classifier is an AI model (Claude, via the Clarion gateway) that reads the header and sample values — an LLM can't run offline in your browser, so here a faithful heuristic (header + value-pattern rules) produces the identical decision shape. The AI generalizes far past these rules; the rules show you what it decides and why. Nothing calls a backend — no file leaves the page.
See CuRE Conduit in action
Every research ecosystem is unique. Let's discuss how CuRE can be configured for your needs.