V 2.3 External Fetal Monitoring (Cardiotocography), Device Audio

Available for download on the Downloads page.

This release has been years in the making, with work beginning on the External Fetal Monitoring (EFM, cardiotocography) simulator in 2020, but then being placed on the backburner due to the pandemic and to make way for cross-platform porting… it’s finally complete and stable!

External Fetal Monitoring (EFM, Cardiotocography)

New features with the External Fetal Monitor include simulation of:

  • Fetal heart rate (FHR)
  • Fetal heart rate variability (baseline variability)
  • Uterine contractions via “toco”: set the frequency and the duration
  • Fetal heart rhythms (interval variability) including:
    • Baseline (minimal variability)
    • Accelerations
    • Early Decelerations
    • Late Decelerations
    • Variable Decelerations

All on the background of the standard cardiotocography strip! Just set the variables and let Infirmary’s patient modeling do the rest to create your simulation or educational materials (e.g. rhythm strips).

Additional features include:

  • Multiple “strip speeds” available on the EFM’s menu to fast-forward the simulation: 1:1, 1:10, 1:25 speeds are available.
  • Temporal smoothing implemented for obstetric rhythms: when you make changes to the “patient”, Infirmary smoothly transitions the changes into the future waveform drawings.

Device Audio (and Alarm improvements)

Improvements have also been made to the Cardiac Monitor, the Defibrillator, and the Intra-Aortic Balloon Pump simulators as well, mainly including audio enhancements!

  • Monitoring “beep” implemented for the Cardiac Monitor and the Defibrillator (sometimes called “anesthesia monitoring”)
    • Beeps a traditional tone on each heart beat, used to audibly keep track of heart rate and/or pulse oximetry in a busy environment
    • Can set to ECG mode: beeps on each QRS complex
    • Or can set to SpO2 mode: beeps on each SpO2 waveform and the tone changes depending on the SpO2 reading
    • Device alarms still sound in addition to the monitoring beep
  • Audio alarm for Intra-Aortic Balloon Pump’s augmentation alarm
    • A unique tone unmistakable among the cacophony of potential critical care alarms
  • Visual alarm improvement for Intra-Aortic Balloon Pump’s augmentation alarm

Screenshots

External Fetal Monitor (EFM) baseline tracing with moderate variability.
External Fetal Monitor (EFM) modeling early decelerations.
External Fetal Monitor (EFM) modeling accelerations.
Cardiac Monitor with options for audio monitoring via heart rate or pulse oximetry.

V 2.2.3 QRS/QT Morphology, Temporal Smoothing, Bugfixes

Available for download on the Downloads page.

In this minor release, a few subtle but important changes and fixes were implemented:

QRS/QT Morphology

  • QRS interval and QTc interval is now adjustable under “Cardiac Profile”
  • As you would expect, on all ECG tracings on all simulation devices, the QRS and ST segments are now drawn to those set intervals
  • Allows for advanced simulation of narrow or wide complex morphologies, or abnormally elongated or shortened QTc pathology

Temporal Smoothing

  • Changes made to vital signs, etc. (to the underlying digital patient model) are now applied synchronously with the cardiac and respiratory cycles
  • Changing cardiac vital signs or rhythms no longer creates artifact or “ectopic”-appearing beats on ECG waveforms
  • Changing respiratory vital signs or rhythms no longer creates artifact as well

Bugfixes

Some minor bugfixes were made to the Simulator interface for improved user experience. A bugfix was made to the Scenario Editor that fixed a feature-breaking bug. Specific details are in commit notes and issues logs.

V 2.2 Alarms, Scenario Editor Cross-Platform Port

Available for download on the Downloads page.

Multiple major improvements in this release, starting off with both visual and audio alarms in the Cardiac Monitor simulator. Many healthcare personnel are already overly familiar with alarms, so this probably does not need explaining… but I will:

Alarms (Visual and Audio!)

  • Alarm limits able to be enabled, high/low values set, and alarm priority (low, moderate, high) are all adjustable in the Scenario Editor, as well as a default set of alarms (appropriate for adult patients) being enabled by default. Future plans exist for adjusting alarm limits in the simulator, as well as including default limits for other age groups, but this is not currently implemented.
  • Alarms are present for all hemodynamic parameters (vital signs and advanced hemodynamics)

When alarms are active and set, if a physiologic parameter falls outside of an enabled alarm limit:

  • The number visually flashes in the cardiac monitor. The numbers flash at different speeds based on priority- low priority is slow flashing, high priority is fast flashing.
  • An audio alarm is sounded, and the audio alarm is selected based on alarm priority. Low priority alarms have a slow low-frequency beep and longer intermediary pause, high priority alarms have more rapid high-frequency beeping with slower pause.

Note: Audio is played cross-platform using libraries provided by the LibVLC project, a subset of the VLC Media Player. These libraries are bundled into the Windows and MacOS versions of Infirmary Integrated, but require installation of VLC and its libraries on Linux platforms. If the LibVLC libraries are missing, Infirmary Integrated will simply run without audio.

Options/Settings

  • Alarms (includes both visual and audio) can be enabled and disabled in the Cardiac Monitor simulator via a newly-created menu option.
  • Audio can be enabled or disabled in the main Infirmary Integrated simulator window via a newly-created menu option. This option will be used to silence all audio from all simulated devices, as audio is integrated into other devices in future versions.
  • All changes localized into supported languages

Scenario Editor

This release brings back the Infirmary Integrated Scenario Editor as a cross-platform standalone tool used for creating simulation files that can be saved, shared, and then loaded into Infirmary Integrated and run in a stepwise manner. Simulation files created with the Scenario Editor can have multiple “steps” each with their own simulated patient’s parameters and vital signs. Steps can “progress” in different ways, depending on which progression is selected in the scenario player (which is part of Infirmary Integrated’s simulator). An example case for using simulation files created with the Scenario Editor would be for an educator to simulate a patient in a stable state, progressing to a deteriorating state, then depending on a student’s actions or response, could progress to an improved state or a declined state of hemodynamic parameters- all simulated with Infirmary Integrated.

While the Scenario Editor existed before in older releases of Infirmary Integrated, the following new features are part of this major release:

  • Cross-platform functionality (runs on Windows, Linux, and MacOS) for both the Simulator and the Scenario Editor.
  • Installer packages for Windows, Linux, and MacOS now include the Scenario Editor
  • Improved major re-design of the Scenario Editor for ease of use and improved workflow
  • Miscellaneous minor quality-of-life improvements and small features added

Additionally, some of the new features in the Scenario Editor blend into the Simulator when loading simulation files, including:

  • The ability to choose which devices automatically open when loading a simulation file (e.g. cardiac monitor, 12 lead ECG, etc.)

Stability and Testing

There were also tons of behind-the-scenes improvements made to the entire program suite, including a large effort of modernizing the code that powers Infirmary Integrated. Many advancements in the C# programming language and the frameworks that Infirmary Integrated are built on are now utilized thoroughly. The language and frameworks have had significant changes over the last 5 years, improving overall performance and stability of Infirmary Integrated!

Lastly, immense amounts of testing went into this release, ensuring that all features work as intended! Although all computer programs have “bugs” in them, large amounts of testing went into this release to ensure that all major bugs are fixed and that Infirmary Integration is “production-ready”. This is the main reason why the project went from version 2.0 to 2.2: by the time version 2.1’s updates were tested as being stable, half of the updates for version 2.2 were already being added!

Bugfixes

Some major bugfixes and issues resolved in this release are:

  • #139: Fixed atrial flutter drawing problems (out of phase synchronicity between A/V; A:V ratio)
  • Fixed pacemaker spikes from blocking atrial flutter and fibrillation on isoelectric line drawing
  • #143: Fixed “Reset Parameters” from unlinking patient model from device simulators (also disabled this button if auto-apply changes are enabled)
  • #140#137

V 2.0 Cross-Platform Port

Available for download on the Downloads page.

This is to announce a major release of Infirmary Integrated 2.0 with the following new features:

  • Cross-platform support for:
    • Windows
    • Linux
    • MacOS
  • Color schemes for every device
    • Light mode
    • Dark mode
    • Some additional modes e.g. Grid mode for ECGs
  • Interface Improvements
    • Mirroring now available from menu options
      • Interface is less cluttered
    • “Check For Updates” functionality from Help menu
    • Scenario controls only visible if loading a scenario
      • Interface is less cluttered
  • Bugfixes
    • 3rd degree AV block now draws properly
    • Transcutaneous pacemaker doesn’t cut off pulsatile rhythms (e.g. SpO2)
    • Transcutaneous pacemaker will only electrically capture if electrical organization is present
      • E.g. cannot capture in ventricular fibrillation, though spikes will still appear

Version 1.9.9 Cross-Platform Pre-Release

Available for download on the Downloads page.

This is a pre-release of the upcoming Infirmary Integrated 2.0. This means that the program is complete and is quite stable, but may be slightly buggy as the developer identifies and fixes small issues. The major update to Infirmary Integrated is cross-platform support for: Windows, Linux, and MacOS!

The entire program was re-written to support cross-platform functionality, which is quite a large undertaking. All major functionality from previous versions of Infirmary Integrated are available, including the Cardiac Monitor, Defibrillator, 12 Lead ECG, and the Intra-aortic Balloon Pump.

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 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)!