Mayo Clinic · Research data platform
Getting decades of research data back within reach.
One system that will connect research teams and research labs to a single catalog, now being built from my prototype.
Getting decades of research databack within reach.
| Row | Catalog result | Lab project UID | Project title | Submitter email |
|---|---|---|---|---|
| 3 | Confirm match Decision needed · CAT-23996 Existing project match High confidence The catalog already has SPBC-0509 with the same project title (Renal fibrosis imaging). It was submitted Jul 2. Is this the same project, or are you creating a new one? Create new projectUse existing project | SPBC-0509 | Renal fibrosis imaging | okafor.c@org.edu |
| 6 | Confirm value Submitter and PI email are the same address. Edit row |
SPBC-0521 | Ovarian pilot | leon.alex@org.edu |
| Sample | Lab sample ID | Investigator sample ID | Acquisition date | Platform | Protocol | Result |
|---|---|---|---|---|---|---|
| 1 | SPBC-0442-S01 | MEL-2231-A | 2026-07-10 | Xenium | 5K panel | Ready |
| 2 | SPBC-0442-S02 | MEL-2231-B | 2026-07-10 | Xenium | 5K panel | Ready |
| 3 | SPBC-0442-S03 | missing | 2026-07-10 | Xenium | 5K panel | Fix required Investigator sample ID is required. Edit row |
| 4 | SPBC-0442-S04 | MEL-2231-D | missing | – | – | Fix required Acquisition date is required. Edit row |
Getting decades of research data back within reach.



* Screens updated for this portfolio. Names and data are not real.
Upload sample mappings
Confirm column header mappings
These mappings were suggested by AI. Verify each one before you confirm it. A suggestion can be wrong, and a column with no confident match is left for you to choose. Compare your header and the first three values with the field.
Four fields are required. They are the Key fields that connect samples to patients: Sample alias, Sample ID, Research participant ID, Medical record number.
Your column name: SA IDAI · High Sample alias (Required) Requires confirmationConfirmConfirmed Key | Your column name: S IDAI · High Sample ID (Required) Requires confirmationConfirmConfirmed Key | Your column name: SubjAI · Medium Research participant ID (Required) Requires confirmationConfirmConfirmed Key | Your column name: MRNAI · High Medical record number (Required) Requires confirmationConfirmConfirmed Key | Your column name: TissueNo match Please select Choose a field, or skip itConfirmed |
|---|---|---|---|---|
| CB-0042 | 192884101 | P-104 | 8-23-456-781 | Plasma |
| CB-0043 | 192884102 | P-105 | 8-23-456-793 | Serum |
| CB-0044 | 192884103 | P-106 | 8-23-456-802 | (blank) |
| Sample | Issue | Catalog value | Uploaded value | Action / status |
|---|---|---|---|---|
| CB-0213 | Participant ID differs from the catalog Both values are valid; choose which one to keep. | P-104 | P-140 | Decision needed Keep catalog valueReplace with uploaded |
| CB-0214 | Collection date differs from the catalog Both values are valid; choose which one to keep. | 2024-03-11 | 2024-03-18 | Decision needed Keep catalog valueReplace with uploaded |
| CB-0219 | Sample ID Does not match the expected format (9 digits). | – | INVALID-X | Error Fix in the downloaded file, then re-upload. |
The problem
The data existed. The link back to the patient didn’t.
Decades of genomic and imaging data sat in the catalog, but the sample-to-patient link lived in private spreadsheets. Without it, the data was invisible to researchers, and to the AI tools being built on top.
The turn
A prototype got a stalled project moving
I built a working prototype of the MVP so leadership could see the workflow, and they approved the build after seeing it run. When the scope grew to include the research labs, the labs signed on after seeing a prototype I built for them. The team now builds from it.
What I designed
One catalog, three audiences
Labs register and deliver the data, study leads decide what others can find, and a review group decides how long it stays private. The animation above follows the lab and the study lead. This is the review group’s view, where the stakes are highest.
Governance · keeping data private longer
Show the pattern, not just the request
Embargo extension for Melanoma panel
- Past 12 months. Would put the embargo 30 months past data generation, so it needs the committee chair’s sign-off.
- 5th request. This study has been extended repeatedly. Worth a look at the pattern, not just this request.
- Contracted. This study carries a contract restriction, so reuse may be limited regardless of the embargo.
| Submitted | Requested end | Reason | Decision | Decided by | Decided |
|---|---|---|---|---|---|
| Jan 12, 2026 | Aug 2026 | Grant or contract restriction | Approved | Catalog team | Jan 15, 2026 |
| Jul 08, 2025 | Feb 2026 | Publication pending | Approved | Catalog team | Jul 10, 2025 |
| Feb 03, 2025 | Sep 2025 | Primary analysis in progress | Approved | Catalog team | Feb 05, 2025 |
| Aug 19, 2024 | Mar 2025 | Primary analysis in progress | Approved | Catalog team | Aug 21, 2024 |
Approving sets the new embargo end date on the datasets in this request. Denying or sending it back requires a reason, which the PI sees and can reply to.
Send back for more detail
The request stays open and the PI is asked to reply. Nothing about the current embargo changes.
Key decisions
Four calls that shaped the product
Cut scope, keep the safeguards
When leadership asked for a faster turnaround, the engineering lead asked me to document what we could scale down. The team scaled the first build down and held one line: nothing reaches the catalog without validation.
- Validation before anything reaches the catalogKept
- Save and resumeKept
- In-app messagingEmail list instead
- AI column mappingDesigned, manual first
- Custom privacy periodsDefault only
- Full study-lead dashboardGaps only
AI that can wait until it is trusted
I designed AI column mapping with plain High, Medium and Low labels. The build starts without it, and the same screen works by hand, so AI can be added later without new screens.
One source of truth, one question per row
Four options made every reviewer a data owner. I cut it to one question, so the catalog stays the single source of truth and every decision can be audited.
Send problems back, never hold them
I built and tested the project-based model the team adopted. Each project is accepted or sent back on its own, with problems marked in the spreadsheet people already work in.
Design to build
The design became the source engineers build from
Tokens, components and written rules live in one repo, and engineers point their AI coding tools directly at it.
Where it stands
What’s next. The build is underway. The research labs’ intake and the AI mapping are designed and waiting for when people trust the workflow. Planned success measures: the share of uploads that pass validation on the first try, and time from upload to catalog.