June 15, 2021By Lance Baily

Free Patient Lab Simulator

Resuscitate.io’s free patient lab simulator, SimLab, is an application for generating realistic lab test values and lab reports, representing various diseases, and for use in medical simulation cases. The need for such technology continues to grow as more undergraduate and postgraduate training programs include medical simulation within their curriculum. Developed as a free open source web application for clinical medical educators, this application is currently being used in simulation cases in the Royal College of Physicians of Canada’s Emergency Medicine program in Victoria, British Columbia.

According to a blog post on EM Sim Cases written by Dr. Tristan Jones, an emergency physician working in Victoria, BC, Canada, SimLab runs inside a web browser using a combination of modern web technologies. Lab results are then calculated as either normally-distributed values based on their generally accepted reference ranges, or as derived values. He explains that derived values are results that are linked to another lab result.

“For instance, hemoglobin and hematocrit vary together with a high correlation. Having a lab report with a hemoglobin of 65 g/L, but a hematocrit of 0.5 would be unrealistic. Instead, a hemoglobin is generated for the patient’s context, and the hematocrit is then derived from, or calculated on the basis of, the hemoglobin,” Jones writes.


Sponsored Content:


He added that lab results can also be manually modified by the user in order to override the generated defaults. This will update any results that depend on the edited result (for instance, if hemoglobin is changed, hematocrit will update) as well. This can be prevented by either locking a test result, or by overriding the derived test as well. The combination of these features allow any set of lab results to be created.

“When users sign in, the application allows lab reports to be saved and loaded, so that reports can be created for future use. They can also be shared with other users with a link, allowing collaboration between educators,” writes Jones.

He further shared that the application produces a formatted lab list that can be printed to paper or PDF and used in simulation cases. Results have flags such as high, low, critically high, critically low, or abnormal. They display appropriate units and decimal precision, increasing realism for trainees.

Ultimately, Jones emphasizes that the importance of such an application stems from the need to otherwise develop long lists of laboratory values for simulation cases, which is a tedious and error-prone task. He shared that, today, most clinicians do not memorize normal ranges for many laboratory tests, and instead rely on EMRs and lab reports to indicate out-of-range values.


Sponsored Content:


Disclaimer: SimLab is currently in an alpha state, meaning that bugs exist, crashes can occur, and results can be lost.

How SimLab Works

To create a simulated lab report, the first step is to navigate to the Lab Report page. This can be done by either selecting the Lab Report link from the top bar, or the Start a Lab Report button from the front page.

SimLab starts the learner off with a default lab report for a 45-year-old female patient named Annette Smith (her MRN is the very creative 1234-567-890). She is 170 cm tall and weighs 70 kg. She has no medical illness, and we have a lab report for her consisting of the Basic order set and a urine dip. This is all shown in the settings box.



The learner can alter patient information by clicking the Change Report Settings button at the bottom of the settings box. This will open the settings window, and which allows the learner to modify the Patient settings, the Tests settings, and the Diseases settings, selectable through the tabs at the top left of the settings window.

Not all lab results are created equal! In SimLab, some lab results are generated as normally-distributed, independent lab values, while others are derived from a combination of other lab values. Derived values are indicated with a calculator icon. Lab results lacking that icon are normally-distributed.

If the learner updates the lab result that a derived lab result depends on, the derived value will also update, unless locked. The process works like this:

  1. Click on the result (the number) for hemoglobin, The number should open and allow text to be selected.
  2. Change the value to ’40’, and press. The hemoglobin value will update, but so will the hematocrit (to about 0.12).
  3. This time, the learner will lock the hematocrit value. Click on the lock icon at the right end of the hematocrit result line.
  4. Again click on the result for hemoglobin, and this time change the number to 200. You will notice that the hematocrit does not change. It can be unlocked by clicking on the lock icon again.

The hematocrit value, despite being a derived value, can also be edited directly, and the derived value overridden. To do this, the learner would use the same process as changing the hemoglobin, except click on the hematocrit result and modify. Currently, derived results will not update the results that they depend on. This is a feature Resuscitate.io plans to add to SimLab in the future. Other new features in development include:

  • Improved ABG calculation – currently values are estimated and can occasionally result in unrealistic results.
  • Exporting lab reports in PDF, Excel, and Word formats.
  • Changeable units for lab results – for instance, able to switch between U.S. and Canadian units for tests such as glucose.
  • More lab tests.
  • More diseases.

All lab reports can be turned into a PDF or a paper-based lab report by printing it. To do so, learners should select the Print Report button on the right-sided command bar.

Learn More About SimLab


Sponsored Content: