Federated validation client for NICU clinical decision support tools
Project description
nicu-validate
Federated validation for clinical decision support tools.
Lets NICU researchers validate an existing tool across multiple hospitals — without any raw patient data leaving any hospital. Each site runs a local evaluation script and returns only aggregate statistics (sensitivity, specificity, AUC). The coordinator pools results using DerSimonian-Laird random-effects meta-analysis and generates a publishable report.
Built for the BYU Technology Transfer Office.
The Problem
A NICU researcher builds a clinical decision support tool. It works on local data. To publish or get FDA clearance, they need multi-site validation. But HIPAA prevents raw patient data from leaving any hospital, and existing research networks (Vermont Oxford Network, CHNC) have 12–18 month approval timelines.
nicu-validate solves this in days, not months.
How It Works
Researcher Site A (NICU) Site B (NICU)
| | |
|-- registers study -----→ coordinator |
| | |
| pip install nicu-validate |
| nicu-validate run --input data.csv |
| |-- {sensitivity: 0.85, |
| | specificity: 0.90, |
| | n_patients: 80} ----→ coordinator
| |
| (same flow)
| |
|←-- GET /studies/{id}/report ---------------------- coordinator
D-L pooled sensitivity: 0.83 [0.76–0.90]
D-L pooled specificity: 0.89 [0.83–0.94]
Method: DerSimonian-Laird random-effects
No raw patient records leave any hospital. Ever.
Components
Coordinator Server (coordinator/)
FastAPI + SQLite server. Hosts the study registry, collects aggregate stats from sites, runs meta-analysis, and generates publishable reports.
Deploy:
cd coordinator
flyctl deploy # or any Python host (Railway, Render, etc.)
Endpoints:
POST /studies— create a validation studyPOST /studies/{id}/sites— register a participating NICU, receive API tokenPOST /results— submit aggregate stats (site-side, authenticated)GET /studies/{id}/report— D-L meta-analysis report
Safety features:
- Small-cell suppression: sites with N<10 positives are flagged and excluded from meta-analysis (re-identification protection for rare conditions)
- IRB expiration tracking: coordinator blocks submissions from sites with lapsed IRB approval
- Append-only audit log for every submission (21 CFR Part 11 baseline)
- HTTPS enforced at the edge
Site Package (site-package/)
Zero-dependency pip package. Runs locally at each participating NICU. Never sends raw records — computes stats locally, POSTs only JSON aggregate stats.
Install:
pip install nicu-validate
nicu-validate init --coordinator https://your-coordinator.fly.dev --token <token>
nicu-validate run --input your_data.csv
Input CSV format:
condition,prediction
1,0.92
0,0.13
1,0.87
...
condition: 0/1 ground truth (patient has the condition)prediction: 0/1 or continuous probability score (tool output)
Study Setup
python3 setup_study.py
Interactive script. Creates a study, registers participating sites, and prints the exact pip install command to send to each NICU.
HIPAA Compliance
Aggregate statistics (sensitivity, specificity, AUC) are not PHI under HIPAA Safe Harbor (45 CFR §164.514(b)). The nicu-validate package enforces small-cell suppression (N<10 positives suppressed) to prevent statistical re-identification of rare condition patients.
Note: For very rare conditions, consult a biostatistician to confirm the suppression threshold is appropriate for your specific condition's base rate before live site submissions.
Regulatory Notes
- Coordinator-level validation studies using aggregate-only outputs typically qualify as not-human-subjects research. Confirm with your institution's IRB.
- Each participating site handles their own local IRB authorization.
- If the underlying clinical decision support tool is subject to FDA 510(k) clearance, ensure the coordinator's audit log meets 21 CFR Part 11 requirements before using the validation data in a submission.
License
BYU Technology Transfer Office. Contact tto@byu.edu for licensing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nicu_validate-0.1.0.tar.gz.
File metadata
- Download URL: nicu_validate-0.1.0.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2476ee5cb6ea08cd498dccd655f0d60d4bab4b37eb9a7b92d403ba27d2877d2
|
|
| MD5 |
e5c3c31dba2c904064e78077ee42f88b
|
|
| BLAKE2b-256 |
79ae11b6a51934ff635ae0227d6e302a353538d5f5111346b3aa0c86faae69e6
|
File details
Details for the file nicu_validate-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nicu_validate-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a85daeca112177fd9b1261fcab673e2fe530eac9a55ba91e83d6eeb3504399ca
|
|
| MD5 |
de4ecb823a0647a3a599a9e4396d9c57
|
|
| BLAKE2b-256 |
539310e6f4695d31c872cb14c440338fb64b82f1d260abf06ea772264bb8bcb9
|