Synspector
Synspector: Understanding and Analyzing Synthetic Patient Data
Synthetic patient data is being used increasingly often in medical research and software development. It makes it possible to generate and test clinical datasets without using real patient data. However, this also raises a question that did not exist before: How can we determine whether a synthetic patient generator produces plausible patients and populations?
This question led to the development of Synspector, a web application for exploring and analyzing synthetic patient data, designed primarily for datasets generated with Synthea.
I developed Synspector during my four years at ICCAS and continuously expanded it throughout that period. Most of the application was built independently, including the user interface, dataset processing, and the different analysis functions.

Two Perspectives on Synthetic Patient Data
Synspector examines a synthetic dataset on two levels: the individual patient and the entire population. For this purpose, the application is divided into two main sections: Patient Records and Population Analysis.
Patient Records: Understanding the Individual Synthetic Patient
The Patient Records view allows individual patient records within a synthetic dataset to be examined in detail.
Diagnoses, examinations, treatments, and other medical events are displayed along a timeline, providing a clear overview of the disease and treatment history of a synthetic patient.
The statistical properties of the overall dataset are not the main focus here. Instead, the central question is:
How exactly does the patient generator create an individual patient?
This perspective is particularly useful for more complex generation models. It shows which diseases occur in sequence and how different medical events are connected. It also helps determine whether the resulting disease course is medically and logically plausible.

Population Analysis: Examining the Entire Dataset
The second main view, Population Analysis, focuses on the dataset as a whole.
The goal is to determine whether the variables, probabilities, and dependencies defined in the patient generator are actually reflected in the generated population.
Synspector provides several analysis tools for this purpose. For different clinical variables and patient groups, users can perform analyses including:
- Frequency analyses
- Distribution analyses
- Correlation analyses
- Survival analyses
For example, users can investigate how frequently certain diagnoses occur, how variables are distributed within a population, or whether expected relationships between diseases, treatments, and outcomes are present in the generated dataset.

From the Patient Record to the Population
For me, the combination of these two perspectives is the most important part of Synspector.
A synthetic dataset can appear statistically plausible at the population level while still containing individual patients with illogical disease trajectories. Conversely, individual patients can appear entirely convincing while the distribution of certain variables across the population no longer matches the assumptions originally defined in the generator.
That is why Synspector enables both: a detailed examination of individual patient histories and a statistical analysis of the entire population.
This turns an otherwise difficult-to-navigate synthetic dataset into something that can be explored interactively. It also makes it much clearer how a synthetic patient generator works and what kind of population it ultimately produces.