Simulated Hospital is a tool that generates realistic and configurable
hospital patient data in
HL7v2 format.
Disclaimer: This is not an officially supported Google product.
Overview
A hospital’s Electronic Health Record (EHR) system contains patients’ health
information. EHRs use messages to communicate clinical actions like the
admission of a patient, ordering a blood test, or getting test results. This
flow of messages describes the lifetime of a patient’s stay in a hospital.
Most EHRs use a message format called
HL7v2,
which is ugly and tedious to type. Simulated Hospital generates messages in
HL7v2 format from sequences of clinical actions. The generated HL7v2 messages
can be sent to an
MLLP
host, saved to a txt file, or printed to the console.
Simulated Hospital helps developers build and test clinical apps without access
to real data. It makes it easy to generate HL7v2 messages that reproduce
realistic situations in clinical settings.
Basic Concepts
The basic behavior of Simulated Hospital can be summarized as follows:
- Simulated Hospital creates patients at a configurable rate.
- When Simulated Hospital creates a patient, it associates the patient with a
pathway. - A pathway models the events that will occur to the patient.
- Simulated Hospital runs events when they are due, in real time.
- When events run, they generate HL7v2 messages.
Pathways
A pathway is a sequence of clinical actions or events that describe the lifetime
of a patient’s stay in a hospital. An example of a simple pathway could be: the
patient is admitted, a doctor orders an X-ray, the X-ray is taken, and the
patient is discharged. Each action typically generates one or more HL7v2
messages.
Simulated Hospital runs pathways. You can configure Simulated Hospital to run
the pathways that you want, including how frequently to run each one. The
application includes a few built-in pathways (see the folder
“config/pathways”) but most people will want to write their own.
Pathways are written using YAML or JSON and are human readable. The events are
defined with words that are common in clinical settings such as “admission”,
“discharge”, etc., and utility actions such as time delays.
Next steps
-
Get started by downloading & running Simulated Hospital.
-
See an example of the
messages that Simulated Hospital generates. -
Write pathways to create patients with specific
conditions, for instance, a patient with appendicitis that has sets of Vital
Signs taken periodically. -
Change the default behavior of Simulated Hos