The analysis that would have taken months.
We build prediction models reported to TRIPOD+AI and extract structured variables from clinical free text, with a validation set you can audit. We also build imaging pipelines, federated learning across sites that cannot share data, and the registry-scale engineering beneath it all. Models are explainable, because a reviewer will ask.
Your institution has plenty of data, but little of it shares an identifier, a time axis and a definition of what counts as an event.
That is the actual bottleneck, and it is a data engineering problem. Once the spine exists, the modelling is the fast part, and it is not where studies go wrong.
Where they do go wrong is validation and reporting: a model with an impressive apparent AUC, no external validation, no calibration, and a reviewer who has read TRIPOD+AI. We plan for that on day one because we have been that reviewer.
We also build for the case where the data cannot move at all. There, federated learning is frequently the only architecture that gets approved.
Forty thousand notes nobody has time to read.
The variables your analysis needs are already written down, in a paragraph a registrar typed at eleven at night. Extraction turns that paragraph into columns, with a span you can click back to and a confidence you can threshold on. Every model of this kind gets a human-validated test set before anybody trusts a number from it.
Admitted via the emergency department with three days of progressive breathlessness and peripheral oedema. Known heart failure, NYHA class III, last echocardiogram LVEF 34% in November 2025. Also treated for type 2 diabetes and atrial fibrillation.
On admission NT-proBNP 4120 ng/L, creatinine 128 µmol/L. Diuresis with intravenous furosemide 40 mg twice daily, converted to oral on day three. Empagliflozin 10 mg daily started during admission.
Discharged 14 February 2026 in improved condition. Follow-up in the heart failure clinic in four weeks. No chest pain throughout the admission.
Watch the negation. “No chest pain” records an absent symptom and must not be extracted as one. Missing that one distinction has produced more retracted findings in clinical text mining than any modelling error.
From a spine to a published model.
Validated, calibrated, reportable
Diagnostic and prognostic models developed with sample size calculated for development, optimism corrected honestly, and calibration reported alongside discrimination.
- TRIPOD+AI checklist as generated output
- External or temporal validation designed in from the start
- Decision curve analysis, because AUC is not a clinical decision
Notes turned into columns
Entity and relation extraction from discharge summaries, pathology reports, radiology and nursing notes, in Danish and other Nordic languages as well as English.
- Negation, uncertainty and family history handled explicitly
- A human-annotated validation set with agreement statistics
- Every extracted value traceable to its span in the source
Pipelines that survive a second reader
Segmentation, classification and quantitative imaging biomarkers, with reproducible preprocessing and quality control that rejects failing images outright.
- DICOM handling, de-identification and quality gates
- Reader studies and inter-observer agreement
- Radiomics features tested for stability
Train across sites that cannot share
Models fitted locally at each site and combined centrally, so a consortium can produce one analysis without a single patient record leaving a hospital.
- Secure aggregation; differential privacy where the threat model needs it
- Site heterogeneity modelled explicitly
- Proven across eleven sites with zero records moved
Linking registries into one spine
Linkage across registries, one identifier scheme, one time axis, and event definitions written down once so that two analysts get the same cohort.
- Reproducible pipelines with lineage from source to table
- Cohort definitions kept as versioned code
- Hundreds of millions of rows without a supercomputer
GPUs, and knowing when you do not need them
Training infrastructure on your premises, in one of our datacentres, on partner hardware in Denmark or Germany, or in cloud — with an honest assessment of whether your problem needs any of it.
- NVIDIA Inception partner; HPE and Danoffice IT for the iron
- On-premise clusters for data that cannot leave
- Half of what gets called an AI problem is a SQL problem
The needle, and the proof it is one
Finding the handful of patients, records or documents that matter in a search space of millions, with an evidence trail your clinicians can argue with.
- Weak supervision where labelled examples barely exist
- Expert-in-the-loop review that retrains the ranking
- Precision reported at the review threshold you actually use
Model cards and the EU AI Act
Risk classification, technical documentation, logging, human oversight and post-deployment monitoring, built into the pipeline from the start.
- Model card generated from the training run
- Drift and subgroup performance monitoring
- Where the research exemption applies, and where it stops
Four unglamorous things that decide everything.
None of these is a model, but every model depends on them. Multi-site projects actually spend their first year here, so it is worth naming the work up front.
The price of entry
Converting hospital or registry data to OMOP CDM, so your site can join OHDSI and EHDEN-style federated studies instead of watching them.
- Extract, transform and load with lineage from source
- Data quality checks against the community suites
- Vocabulary mapping, with the unmapped share reported
Local codes, standard meanings
Mapping local codes to SNOMED CT, ICD-10 and 11, ATC, LOINC and NPU. Whether two hospitals' data can be combined at all depends on this mapping.
- Mappings reviewed by a clinician as well as by an automated matcher
- Ambiguous and unmappable codes flagged for a person to resolve
- Maintained as the source systems change their local codes
Labels somebody can defend
A workspace for labelling images, documents and signals: multiple readers, blinding, adjudication and agreement statistics — whether the labels are the study or the training set.
- Reader studies with blinding and randomised presentation order
- Inter- and intra-reader agreement as standard output
- Annotation provenance carried into model training
What happened outside the trial
Register-based outcome studies, comparative effectiveness and post-market surveillance, with confounding treated as the central problem in the study design.
- Target trial emulation where the question is causal
- Safety signal detection over time
- Written for regulators and payers as well as for journals
A model without a card is a rumour.
Every model we deliver arrives with this document, generated from the training run itself. It makes the model reviewable, and it makes the EU AI Act obligations manageable.
The card also makes a model reusable. When somebody asks two years later whether it applies to their population, the answer is in the card, and nobody has to search a former postdoc's inbox.
- Intended use, and the uses it is not for, stated at the top
- Performance by subgroup, including the ones where it is worse
- Known failure modes, listed because they exist either way
- Intended use
- 30-day readmission risk at discharge, adults admitted with heart failure, to prioritise follow-up. Not for triage, not for resource denial, not validated below age 40.
- Data
- Development: 9,712 admissions, two hospitals, 2019–2024. Validation: 3,104 admissions, third hospital, 2025. Prevalence 11.4% and 12.1%.
- Performance
- External AUC 0.79 (0.75–0.83), calibration slope 0.94, intercept −0.06. Net benefit positive between thresholds 8% and 34%.
- Subgroups
- AUC 0.81 men / 0.76 women; 0.74 in patients over 85. The gap in the oldest group is reported as a documented limitation.
- Failure modes
- Degrades where NT-proBNP is missing at admission (14% of cases); sensitive to coding practice changes; not evaluated during pandemic-era admissions.
- Oversight
- Clinician-facing score with contributing factors; no automated action. Monthly drift monitoring with an alert threshold and a named owner.
- Provenance
- Dataset v2.0.1, seed 7, container digest recorded, training run id and full hyperparameter log attached.
Six ways an AI paper gets rejected.
In our experience, these are the six comments that arrive most often on health-AI submissions, and all six are cheaper to prevent than to answer.
| The comment | What it means | How we prevent it |
|---|---|---|
| “No external validation.” | Performance measured only where the model was developed. | A validation site or a temporal split is agreed before development starts, and held out properly. |
| “Calibration not reported.” | Discrimination without calibration says nothing about whether the probabilities are usable. | Calibration slope, intercept and plot reported as standard, plus recalibration where it is needed. |
| “Sample size not justified.” | Events per candidate predictor too low for the model to be stable. | Sample size for prediction-model development calculated up front, with the shrinkage target stated. |
| “Possible data leakage.” | A feature that encodes the outcome, or preprocessing fitted before the split. | Pipelines fitted inside the resampling loop; a leakage audit on the feature list before any result is read. |
| “Comparison to a simple baseline?” | A gradient-boosted model that does not beat logistic regression is a liability. | A regression baseline is always reported. Sometimes it wins, and we publish that. |
| “Fairness across subgroups?” | Aggregate performance hiding a group where the model fails. | Pre-specified subgroup performance, reported whether or not it flatters the model. |
records searched in a single engagement
research papers screened in one afternoon
hospitals in one federated analysis, zero records moved
validated patient found in eight million national records
Every project starts with feasibility.
Feasibility
Is the signal there at all? A fast, cheap look at whether the data can answer the question — before anybody budgets a year.
- Data inventory and quality
- Events per predictor
- An honest go / no-go
The spine
Linkage, identifiers, time axis, cohort definition and event definitions — as versioned code with lineage.
- Reproducible pipeline
- Cohort as code
- Leakage audit on features
Develop
A regression baseline, then whatever beats it, with the resampling done correctly and the diagnostics kept.
- Baseline always reported
- Optimism corrected
- Calibration from the start
Validate
The held-out site or period, untouched until now, plus subgroup performance and decision curves.
- External or temporal
- Subgroups pre-specified
- Net benefit assessed
Report & govern
Model card, TRIPOD+AI checklist, reproducible supplement, and monitoring if the model goes anywhere near a clinic.
- Card generated from the run
- Drift monitoring configured
- Named owner assigned
The ones worth asking.
Do we actually need AI for this?
Frequently not, and we will say so in the first meeting. A large share of what arrives labelled as an AI project is a data engineering problem, a definitions problem, or a well-specified regression that nobody had time to run.
A modern model earns its place in unstructured data such as text, images and signals, and in problems with many weak predictors and enough events to support them. Everywhere else, the simpler method is easier to publish and defend, and cheaper to maintain.
How accurate is clinical text extraction, really?
It depends entirely on the field, and any single number quoted without that qualification should be distrusted. Explicit measurements and dates are extracted at very high accuracy. Medications with dose, route and frequency are good. Reasons, temporality and anything requiring clinical inference are materially harder.
So we do not quote a headline figure. We build a human-annotated validation set for your fields, in your notes, report per-field precision and recall with confidence intervals, and let you set the threshold. Fields that do not reach a usable level are reported as such and left out.
Does federated learning actually work, or is it a compliance story?
It works, with real caveats worth stating. For generalised linear models, survival models and many gradient-based methods, federated fitting reaches results that are statistically equivalent to pooling. For methods needing individual-level matching or rare-event pooling across sites, it is harder and sometimes not possible.
The operational cost is also real: eleven sites means eleven local deployments and eleven sets of people to coordinate. Before the consortium commits, we will tell you which of your analyses federate cleanly and which do not, usually in a two-page answer.
Where does the EU AI Act bite for a research project?
Scientific research and development has substantial exemptions, and most model development for a paper sits inside them. What ends the exemption is putting the model into use — a clinician seeing a score in a real workflow — at which point the high-risk obligations for medical systems become relevant, and possibly medical device regulation too.
Our advice is to build documentation, logging and oversight from the start, because they are cheap during development and expensive to retrofit. That is what our model card and training-run log are for.
Can you work on our GPU cluster, or do we need to buy one?
Both are fine, and we will tell you honestly which your problem needs. Tabular registry work of almost any size rarely needs a GPU. Imaging and language work does. Fine-tuning a language model for Danish clinical text needs a serious one for a short period, which is often better rented than bought.
Where data cannot leave your premises, we deploy on your hardware — with HPE and Danoffice IT where new iron is genuinely required, and as an NVIDIA Inception partner for the accelerated computing side.
Who owns the model?
You do — weights, code, training pipeline and documentation, delivered as source. We keep no rights over models trained on your data and we do not reuse them for other clients.
Where our own pre-existing components are involved — a Danish clinical language model, our extraction framework — you get a licence for the life of the project and beyond, and the interface is documented so a successor could replace it.
The model comes last.
Start with feasibility. It is the cheapest no you will ever buy.
In two weeks and for a fixed fee, you get a written answer on whether this data can support this claim. Roughly a third of the feasibility studies we run end in a recommendation not to proceed, and those are the ones clients thank us for later.