
Working solo inside a Finnish wellbeing services county, as part of the national patient-safety reform, I built a proof-of-concept that prompts GPT-4o to turn free-text patient records into structured patient-safety incident reports. I ran the whole project end to end: research with clinicians and national authorities, a designed single-entry reporting process, and the model itself. A clinician rated the reports highly, with no hallucinations. The harder finding was that the model wasn't the bottleneck: Finland's incident data is fragmented and badly underreported, and a reporting culture where nothing comes back to the clinician is what needs fixing. The work was published in a peer-reviewed journal and fed into the Sitra-funded national pilot that followed.
Context & Stakes
Patient-safety incidents are inevitable in healthcare. Learning from them is not, and in Finland the data you would need to learn from was scattered across a dozen systems that don't talk to each other.
These incidents (the wrong dose, an avoidable infection, a complication that should have been caught) happen in every health system. Reporting them and learning from them is how you stop the avoidable harm from happening again. It's mandatory, but in practice often neglected. International figures put the cost of errors and harm at up to 13% of healthcare spending, and in Finland safety incidents are estimated to cost around a billion euros a year. Reforming incident reporting is a key metric in Finland's national Client and Patient Safety Strategy for 2022–2026.
The data needed to drive that learning barely exists in usable form. Mandatory adverse events flow into Hilmo, the national care registry, coded in ICD-10 and fed automatically from records, but near-misses never reach it. Voluntary reporting happens in local systems like HaiPro that stay at the level of a single organisation and never aggregate nationally. The result is incomplete, inconsistent, uncomparable data: enough to file, but not enough to learn from or to steer a wellbeing services county's funding or safety work. That was the situation I was asked to study.
Role & Approach
I ran the project end to end: the research and analysis, the process design, and the build. It was a research subproject inside Varha, the Wellbeing Services County of Southwest Finland, sitting under the national reform of incident reporting. Varha's data-services team provided the secure environment the work had to run inside, and a Varha surgeon evaluated the reports the system generated. Being one person across the whole thing is why it spans research, design and engineering.
I framed the work as design-science research, following the established six-stage model: identify the problem, define what a solution needs to do, design and build an artefact, demonstrate it, evaluate it, and communicate the result. In practice that meant interviewing my way to the requirements before I wrote a line of code, then building something working and putting it in front of a clinician to test.

The interviews ran to 14 people: six doctors at Varha, all in senior surgical or clinical-information roles, and eight people across the national authorities (the ministry, the national health institute, the social-insurance institution, and the agency running the national data platform). I analysed them with reflexive thematic analysis, then used what I learned to design the process and the proof-of-concept.
What I Found
Four requirements came up again and again: the systems need to integrate so the same event isn't reported five times; classification needs to be standardised so data is comparable; AI could cut the reporting burden; and clinicians need feedback so reporting feels worth doing. The first three are technical. The fourth turned out to explain the others.
The sharpest recurring theme was that reporting feels futile. Clinicians are overworked and skip reporting unless an incident is clearly serious, partly because nothing visibly comes back when they do. You file into a system, never see it change anything, and next time you don't bother. In the interviewees' telling, underreporting is mostly a feedback problem rather than a discipline one.
THL collects adverse events in Hilmo, but I have never seen any feedback.

Problem Definition
Could a commercial LLM write the reports? Yes, and that turned out to be the simple bit. What it couldn't fix was the data beneath it: fragmented, uncomparable and underreported.
The work lands here: the bigger lever is a shift in the reporting culture. A model that writes tidy structured reports on top of data that is still entered five times, in five formats, into systems that never aggregate, just produces nicer fragments. The leverage is in recording the event once, in the record where it already happens, auto-structuring it, and only then letting it flow somewhere it can be compared. The exact national report structure can't be settled by one project; that has to be defined with the authorities and clinicians, reusing international templates. But the shape of the fix was clear: change the process, and use the model inside it.
Key Decisions
A clinician's judgement over automated text metrics
Discarded: the convenient options. Automated NLP scores (BLEU, ROUGE, METEOR) measure textual overlap against a reference summary, not whether a clinical report is correct, and there is no established metric for structured output. Using another LLM as the judge is unreliable for factual medical knowledge.
Chosen: a clinician evaluating every generated report on a one-to-five scale across completeness, correctness, relevance and coherence, because that tells you whether the output is clinically sound.
Tradeoff: a single evaluator limits objectivity and reliability. I accepted that weakness over a metric that looked rigorous but measured the wrong thing.
GPT-4o off the shelf, inside the county's secure environment
Discarded: building or fine-tuning a domain-specific or self-hosted model, which would have been a project in itself and was out of scope for a feasibility study.
Chosen: GPT-4o, at a low temperature (0.1) tuned for consistent clinical output, running inside Varha's own secure data environment so real patient records never left it. That answered the question the study was asking: can an off-the-shelf model do this at all?
Tradeoff: general-purpose models may not be the right long-term answer for healthcare. Whether a domain-specific or self-hosted open model would do better is still open, and I flagged it for future work.
A reporting process with the model inside it
Discarded: treating the LLM as a standalone feature that summarises records on demand, which would have left the underlying duplicate-entry problem untouched.
Chosen: a single-entry reporting process with the model embedded in it and the clinician kept in the loop. Record the event once where care is documented, let the model generate a structured report, have the clinician review and sign it, then store it and send an anonymised copy onward.
Tradeoff: this only works if the national report structure gets defined centrally, which is beyond one project. Designing the process made that dependency visible; a standalone tool would have hidden it.
Solution & Deliverables
The proof-of-concept ran on real, pseudonymised records inside Varha's environment: 40 patients, each with at least 10 free-text entries over five years, of which 21 had adverse-event codes and were used for the test. Per patient that was anywhere from 20,000 to over 700,000 characters of messy clinical text. The pipeline extracts the records flagged with adverse-event ICD-10 codes, combines them into one timestamped narrative per patient, and prompts GPT-4o with that text plus the required report structure, returning a structured incident report per distinct event.
The designed artefact is the process the model belongs in: a single-entry reporting flow across three lanes (the clinician, the LLM, and the record system). The clinician records the event once as part of normal documentation; the system detects a likely incident; the model generates a prefilled, standardised report; the clinician reviews, edits if needed, and signs it; and the report is stored with the patient record while an anonymised copy is sent to a national database. Human oversight stays in; duplicate entry comes out.

What landed: a 113-page master's thesis; the single-entry process model; the working proof-of-concept and its clinical evaluation; and an international peer-reviewed publication of the interview insights and the PoC study.
Outcomes
The model held up clinically
Every generated report scored five out of five for coherence, with correctness and relevance consistently high, and there were no hallucinations or malformed structures. Completeness was the weak spot: on multi-faceted incidents the model sometimes missed details.
56 reports, 40 of them real
Across the 21 test patients the system generated 56 reports, of which 40 described genuine treatment-related adverse events and 16 didn't. The structured writing was strong; the weakness was telling a care-related adverse event apart from other clinical issues. That looked like a side effect of asking the model to find many incidents at once, which the one-incident-at-a-time process is designed to avoid.
A validated concept that fed a national pilot
To the stakeholders' knowledge this was the first time a commercial LLM had been run on real patient data in this setting. It was published in an international peer-reviewed journal, and it fed into the Sitra-funded national pilot that followed and into the national vision for intelligent incident reporting. No national system has shipped: this showed feasibility and set a direction; it wasn't a deployment.
Honest Reflection
The model did its job; the bottleneck was the system around it: the fragmented data, the missing comparable structure, and a reporting culture where nothing comes back to the person who reported. That's still true for public healthcare.
I'd intended two or three clinicians to evaluate the output; delays meant a single evaluator, and that's the reliability gap I'd close first. The research drew on one organisation and a narrow set of specialist surgeons, so the findings may not transfer cleanly to primary care or elsewhere. And a large share of the effort went not into the model but into permissions and data protection: running a commercial LLM on real patient records under rules that partly pull against each other.
This was 2024 into 2025, when doing this on real patient data was still close to uncharted, which is a big part of why that work was so heavy. A couple of years on it already looks almost routine, and nobody would reach for GPT-4o for it now. The model was always the part most likely to date; the fragmented data and the reporting culture beneath it haven't dated the same way.