Version A.0.8: Cross-platform Port (Preview)

Available for download on the Downloads page.

This is a preview release of upcoming major changes to Infirmary Integrated, including:

Cross-platform support for: Windows, Linux, and MacOS!

Infirmary Integrated is being ported from the Windows WPF interface built on .NET Framework to the Avalonia interface built on .NET 3.0. With this major rewrite comes the ability to run Infirmary Integrated on all platforms supported by Avalonia, including Windows, Linux, and MacOS!

The rewrite is not complete. This preview version is a pre-release and has limited functionality. Currently, only the Cardiac Monitor is functional- the remaining devices are still being ported. Additionally, some bugs or issues may exist that have not yet been noticed. If you notice any issues, feel free to leave a message for the developer!

Version 1.3.2: Code Signing, Minor Improvements

Available for download on the Downloads page.

A minor release meant to bring the most recent steady stream of behind-the-scenes improvements and bug fixes to you. The major implementation in this release is that the installation package is signed and verified by the developer, which will help keep Windows security notifications to a new minimum.

Another notable improvement in this release is the implementation of Cardiac Output as a patient parameter that can be set and displayed on the Cardiac Monitor for realistic simulations regarding advanced hemodynamics.

Infirmary Integrated Included in GitHub’s Arctic Code Vault

After a busy year of working in critical care and emergency nursing during the Covid-19 pandemic, during which time I was on hiatus from developing Infirmary Integrated due to time constraints… I logged into GitHub today to a very nice surprise.

I was notified that Infirmary Integrated was included in GitHub’s 2020 Archive Program, and is now in the Arctic Code Vault in Svalbard, Norway!!

For more information, you can read about GitHub’s Archive Program and the Arctic Code Vault. The following is a video with more details:

Version 1.3 Major UI Improvements, Clinical Realism, Performance Improvements

Available for download on the Downloads page.

Lots of additions and improvements in version 1.3, mainly focusing on improvements to the user interface, improvements in clinical realism, bug fixes, and massive program performance improvements.

User Interface Improvements

  • Auto-Apply feature is now implemented; it is a check-box right above the “Apply Parameters” button. If selected, will automatically apply changes made in the Patient Editor (e.g. changes to vital signs) once they are changed and you press “enter” or leave the entry box
  • A stripe runs as a column along the right side of the Patient Editor indicating whether you have unapplied changes, whether changes are applied, or whether you are in auto-apply mode.
    • Orange: Auto-Apply is active
    • Green: All changes have been applied (by pressing “Apply Parameters”)
    • Red: There are unapplied changes; press “Apply Paramaters” to apply.
  • Your setting for whether Auto-Apply is enabled will persist even when you close and reopen Infirmary Integrated
  • Infirmary Integrated now retains window size and position when closed and reopened
    • Allows your optimally organized workspace to persist between sessions.
  • Infirmary Integrated now offers a prompt to optionally automatically download and install updates
  • Ability to print the Device screen to the printer (e.g. print the 12 Lead ECG from your printer!)
  • Added this option to all Devices: Cardiac Monitor, 12 Lead ECG, Defibrillator, Intra-aortic Balloon Pump
  • Ability to save the Device screen to a .pdf file (e.g. save an ECG and add it to a presentation!)
  • Added this option to all Devices: Cardiac Monitor, 12 Lead ECG, Defibrillator, Intra-aortic Balloon Pump
  • Localization data for all languages updated with all new additions

Clinical Realism

  • Auto-scaling is now implemented for scaled pressure waveforms, and defaults to Auto (on) for Arterial Blood Pressures (ABP) waveforms.
  • Auto-scaling re-adjusts the scale every 10 beats to scale the waveform’s amplitude to maximize the user’s view of the waveform, while still indicating whether the waveform is dampened/flat or has a low pulse pressure.
  • Two scaling modes exist: Auto and Fixed. Auto will readjust the scale every 10 beats, and fixed will not readjust. Arterial lines default to Auto, and Pulmonary Arterial lines default to Fixed (e.g. for floating PA catheters)
    • Auto-scaling can be toggled on and off by right-clicking on the tracing, and selecting “Toggle Auto Scaling”
  • 12 Lead ECG color scheme and grid background implemented
  • Can display in light mode (black tracing on white “paper”) or dark mode (green tracing on black screen)
  • Can enable “Show Grid” to show the traditional pink grid with the tracing for measurements (25 mm/sec, 10 mm/mV)
  • Implemented new cardiac rhythms: CPR Artifact

Miscellaneous Improvements

  • Scenario Editor now accepts dropping of files onto screen for quicker loading
  • Anonymous data collection now collects user’s country, user’s OS-installed language, and the language Infirmary Integrated is being run under
  • Used to help guide development in deciding whether more languages should be added!

Performance Improvements: Major improvements with speed and performance (warning: technical details included below)

  • Minor drawing routine optimization by removing unnecessary points for drawing
  • Moderate memory optimization by modifying array of points more efficiently and only intermittently
  • Major memory and CPU optimization by unsubscribing old events after Devices are closed
  • Proper garbage collection of memory resources allowing for less memory waste when Infirmary Integrated is open longer
  • Major performance improvement by drawing tracings to bitmaps in memory, and displaying the bitmaps on screen
  • Adding the bitmap as a middle-man utilizes much faster drawing routines than drawing directly to the screen
  • Lots of source code refactoring for platform-independence to prepare for potential OS ports (Linux, MacOS)

Bug Fixes

  • Pressure waveform scaling didn’t always resize as desired; this small mathematical error was fixed
  • Miscellaneous log error checking
  • Scenario editor resizing and overdrawing issue fixed
A sample screenshot of a 12 lead ECG .pdf of normal sinus rhythm
A screenshot of pressure waveform auto-scaling and corresponding pressures

Version 1.2: Clinical Realism Improvements, Optimizations

Available for download on the Downloads page.

Lots of improvements in this release, mainly improvements to clinical realism and optimizations across all simulated devices (cardiac monitor, defibrillator, intra-aortic balloon pump, and 12 lead ECG were all improved), with a few bugfixes and some polish as well. The highlights include:

  • All non-ECG (and some ECG) waveform tracings’ visual resolution and drawing were improved significantly, resulting in many of the waveforms being more clinically accurate. Notches, drop-offs, and step-ups on waveforms are significantly better. Most notable in SpO2, ETCO2, ABP, CVP, PA (RA, RV, PA, and PCW), IABP, pacemaker spikes (transcutaneous), and defibrillation waveform.
  • Fixed pressure scaling of waveforms for ABP and PA tracings to correlate realistically to actual pressures
    • Arterial line tracings scaled at 0 to 200 mmHg, and PA tracings scaled at -10 to 50 mmHg
    • Auto-scaling planned for implementation in a future release
  • Waveform timing was also improved regarding electromechanical delay compared between ECG and pressure waveforms.
  • Timing also improved compared between the IABP to ABP waveforms as well; proper inflation and deflation at all heart rates.
  • 12 Lead ECG marquee scrolling fixed for smooth transitioning from lead to lead
    • Displays as one waveform scrolling right to left, showing different views as it crosses into each lead’s region
  • Major CPU optimization made in drawing routines, most notably improving the speed and scroll quality of the 12 lead ECG (since it has the most tracings), but also optimizing all devices.
  • Miscellaneous bugs found and fixed, mostly regarding waveform tracings.
    • 12 Lead ECG timing fixed: was previously a 12 second (4 x 3) page, is now standard 10 second (4 x 2.5) page
  • Server-side security improvements (for anonymous data collection and mirroring functionality)
    • Infirmary now accesses its database via PHP web server, adding additional security authentication
      • Note: Server functions (e.g. mirroring) will no longer work with older versions of Infirmary (< 1.2)!

Version 1.1.2: Performance Improvements and Bug Fixes

Available for download on the Downloads page.

This is a maintenance release that improves behind-the-scenes functionality of Infirmary Integrated, improving performance and fixing a few lingering bugs, mainly:

  • Asystole now draws correctly; instead of turning into blank space, it correctly draws as a flat line
  • Running through large scenarios, especially back and forth through the steps, has faster performance

ACLS Megacode Practice Scenarios Added

In addition to the ACLS Practice Case #1 simulation scenario for Infirmary Integrated that was posted last week, 4 new scenarios for Infirmary Integrated simulating ACLS Practice Megacodes are available for download.

Advanced Cardiac Life Support (ACLS) Megacode Practice Case 49 by the American Heart Association (Instructor Manual, page 159). Anoxic event due to airway obstruction, scenario starts with patient being given rescue breaths via bag valve mask in symptomatic tachycardia, proceeds to cardiac arrest with multiple rhythms, results in return of spontaneous circulation.


Advanced Cardiac Life Support (ACLS) Megacode Practice Case 50 by the American Heart Association (Instructor Manual, page 161). Severe myocardiac infarct presenting with symptomatic tachycardia, progressing into cardiac arrest with multiple rhythms, results in return of spontaneous circulation.


Advanced Cardiac Life Support (ACLS) Megacode Practice Case 51 by the American Heart Association (Instructor Manual, page 163). Inferior myocardiac infarct presenting with symptomatic bradycardia with an ECG notable for ST changes in inferior leads, progressing into cardiac arrest with multiple rhythms, results in return of spontaneous circulation.


Advanced Cardiac Life Support (ACLS) Megacode Practice Case 52/55 by the American Heart Association (Instructor Manual, page 165). Symptomatic bradycardia with an ECG notable for ST changes in III and aVF, progressing into cardiac arrest with multiple rhythms, results in return of spontaneous circulation.

Version 1.1: Scenarios and the Scenario Editor

Available for download now at the Downloads page.

This release really expands Infirmary Integrated’s functionality as a simulator with the ability to play scenarios. Scenarios are patient simulations that can progress and change as you go step by step through the scenario. For example, a scenario could have a patient progress from being mildly unstable to drastically critical, or can progress from a lethal cardiac rhythm to stable rhythm if the proper intervention is chosen.

Creating scenarios is also simple with the new Scenario Editor that is included with Infirmary Integrated. Using the Scenario Editor, you can create scenarios using the visual designer that acts like a flowchart. It is simple to create steps for the scenario, plugging in what you want the patient’s parameters to be, and then add progressions from one step to the other, including optional progressions that can change the course of the scenario.

The possibilities are limitless with Infirmary Integrated and its included Scenario Editor. For example, scenarios could be easily created and played to simulate teaching points for critical care classes, and could be used as adjunct teaching aids for the American Heart Associations’s (AHA) courses including Advanced Cardiovascular Life Support (ACLS) and Pediatric Advanced Life Support (PALS).

Additionally, freely available scenarios will be available for download at Infirmary Integrated’s website, located at http://www.infirmary-integrated.com/simulations/ and some are posted below.

A scenario simulating the Advanced Cardiac Life Support (ACLS) Practice Case 1 by the American Heart Association (Instructor Manual, page 71) opened in the Infirmary Integrated Scenario Editor. Severe asthma attack, refractory to epinephrine administration, oxygen administration ineffective, no intervention leads to circulatory arrest; establishing advanced airway leads to hemodynamic recovery.

Version 1.0.5: Pulmonary Artery Catheter Placement/Insertion

Available for download now at Downloads page.

This release includes new features related to simulating pulmonary arterial (PA) catheters (also known as Swan-Ganz catheters). Now you can select where the PA catheter is, simulating insertion, placement, and wedging as the catheter travels through the superior vena cava, the right atrium, the right ventricle, through the pulmonic valve into the pulmonary artery, and lastly wedging against the pulmonary capillary bed. In Infirmary Integrated’s patient editor, if you select a PA catheter position and click “apply”, the PA catheter waveform and transduced PA pressures will update in the Monitor display.

Infirmary Integrated’s goal is to help students and clinicians advance their knowledge and practice of critical care concepts, and so this feature may be found useful for education and simulation in intensive care units and cardiac catheterization labs.

Major changes since last release (v 1.0):

  • Implemented pulmonary artery placement options, to simulate insertion
    • Placement options available under “Advanced Hemodynamics”
    • Added right ventricle and pulmonary capillary wedge waveforms
  • Miscellaneous bugfixes:
    • “Newer version available” message was triggering improperly
    • All Patient parameters now being saved and loaded properly

Version 1.0: Full Release; More Cardiac and Respiratory Rhythms Implemented

Available for download now at Downloads page.

Major changes since last release (v 0.99.03):

  • Implemented the following respiratory rhythms:
    • Agonal
    • Apneustic
    • Ataxic
    • Biot
    • Cheyne-Stokes
  • Implemented the following cardiac rhythms:
    • Sick Sinus Syndrome
    • Sinus Arrhythmia (non-pathologic)
    • Sinus Rhythm with Sinus Arrest
  • Numerics (ECG/SpO2/RR/ETCO) measure HR/RR as average of recent beats/breaths
    • Accurately reflects HR for sick sinus, sinus arrhythmia, etc.
    • Lag time realistic (ECG: average of 8 seconds, RR: 16 seconds)
  • Implemented timer for realistic delay on defibrillator charging and IABP priming
  • Updated IABP user interface: dynamic text colors on display for enhanced status indication
  • Source code: Improved comments for some II_Core class files
  • Localization updated
  • Security improvement: MD5 hashing algorithm replaced with SHA-2