Six Systems

How much of a complete patient file is usable data?

We simulated a Dutch hospital and scored every fact in every patient file.

%of facts have a file in the archiveA clinician opens the record and it looks complete.
%arrive as data that a computer can useThese facts need no extra work.
%are recovered by software of these values come from images or PDFs. A clinician must still check them.

All patients, values and organisations are synthetic.

The problem

Hospitals store every scan, result and report as a file for a person to read. Little of it arrives as data that a computer can use.

A result can be a photo of a screen, a fax or a PDF. Other results arrive with local codes, different units or no patient number.

We cannot use real patient data. This simulation has sending systems and synthetic patients. One program turns their files into data. We call it the assembler.

Read the story of one patient first. Then the four outcomes. Then what the tool does about each.

One patient, file by file

The four outcomes

The simulator writes the true values to a hidden answer key. The assembler never sees this key. The score counts how many true values are in the assembled data.

Each true fact ends in one of four outcomes.

Against the answer key, the assembler produced wrong values.

The percentages reflect how this simulation was built. They show the mechanism, not a measured rate at any hospital.

What the tool does about it

Each feature addresses one cause of the gap. The numbers come from the simulated case.

Missing-result alert

The clinician sees at once which expected results never arrived. One example is a faxed troponin that no system received.

results on fax, or in a file that matched no patient, across patients
See it in the clinical tool →

Origin of each document

The clinician sees who sent each document and through which connection. The record also shows the format and the repairs that the assembler applied.

documents from sources, each with its origin
See it in the clinical tool →

Code and unit conversion on arrival

The clinician sees each lab result with the hospital's own code and unit. The assembler converts local codes, units and decimal commas on arrival.

Input formats: HL7v2, EDIFACT and GP exports. Target code system: LOINC.

results converted on arrival
See it in the clinical tool →

Patient matching across organisations

The clinician sees results from other organisations in the correct patient record. The assembler matches on BSN, then hospital number, then name and birth date. A file without a match waits in the To file list.

files matched by hospital number; files not linkable
See it in the clinical tool →

Values from images and PDFs

The clinician sees values that exist only in an image or a PDF. Each value stays Unverified until a clinician checks it against the source.

Echo screen captures: OCR. PDF reports: pattern matching. A DICOM SR gives values without OCR.

values read from images and PDFs, from images
See it in the clinical tool →

Request a missing result

The clinician asks the sender for a missing result from inside the record. The request goes through the sender's connection or through a one-time upload link.

results exist only on fax or paper
See it in the clinical tool →

Management overview by sender

A manager sees how many results each sender delivers as data. The overview counts the four outcomes per sender and per department.

of sources deliver no result as data
See it in the clinical tool →

Research export

A researcher gets a data set without patient identity. The export replaces each patient by a pseudonym, shifts the dates per patient and checks the output for leaks.

The export runs in the browser. DICOM de-identification runs in the Python build.

patients and facts in the export
See it in The gap →

Two problems, two owners

The gap shows up in two places, and each has a different owner.

Care between organisations. Results from a neighbouring hospital or regional lab arrive with different codes and units, sometimes without a patient number, sometimes by fax. Doctors re-type, re-check or miss them. The Dutch exchange law (the Wegiz) is in force. Its rules for exchanging the patient summary now follow the dates of the EU's European Health Data Space (EHDS). The dates are 2029 for patient summaries and 2031 for lab results and images.

Research and AI. Researchers need thousands of cases as data. Key measurements sit inside images and PDFs, scanners discard raw data, and every study repeats the same manual export. European rules (the EHDS) are starting to require that this reuse is possible.

The prototype asks one question: which of the two problems costs more in practice? The answer decides what to build next.

Limits

Glossary

Assembler
The program in this prototype that turns the received files into data. It converts codes and units, matches files to patients and reads images and PDFs.
Archive
The system where hospitals store scans, reports and other files. PACS is the image part. It is built for viewing, not for extracting data.
Provenance
The record of where a value came from and what happened to it on the way.
HL7v2
A message standard from the 1990s that most hospital systems still use to send results.
EDIFACT
An older message format. Dutch labs use a variant called MEDLAB to send results to GPs.
LOINC
An international code system for lab tests and other observations.
DICOM
The standard file format for medical images.
Secondary Capture
A DICOM file that holds a picture of a screen, for example the measurement panel of an ultrasound machine.
DICOM SR
Structured Report: measurements stored as data. Newer echo machines can write one.
BSN
The Dutch citizen service number. Care providers use it to identify a patient. Some files arrive without it.
OCR
Software that reads text out of an image. It makes mistakes: here it read "cm" as "¢m".
Pseudonymise
Replace identity with a code. Records stay linkable for research and nobody can tell who they belong to.
EHDS
The European Health Data Space: EU rules for the exchange and reuse of health data.