V 2.6: Clinical Realism, Stability, & Enhancements

Available for download on the Downloads page.

This update includes a number of improvements to clinical realism and program stability:

Enhancements

  • Keyboard shortcuts added for all windows
  • Hints visible in dropdown menu items (e.g. Ctrl+N for new simulation, Ctrl+S to save simulation)
  • Added “Toggle Fullscreen” option; toggles between Fullscreen and Normal window states.
  • Implemented in all devices (e.g. cardiac monitor, defibrillator, etc.)
    • Allows fast changing of color schemes, numerics & tracings shown, etc.

Clinical Realism

  • Improved the drawing algorithm for atrial fibrillation for realistic tracings (#189)
  • Included Tracing amplitude variations based on diastolic filling time
  • Implemented into SpO2 & ABP for decreased output with tachycardic runs (e.g. in atrial fibrillation)
  • Implemented into CVP as fluid backup with tachycardic runs
  • Early beats (SpO2, ABP, etc.) no longer “drop” reading to 0%/0mmHg before imposing next (early) beat (#190)
  • Now early beats now enter the Tracing as an additive replacement, not a complete superimposition
  • PA catheter placement in the right atrium now pulls pressure from CVP setting
  • PA pressure values get disabled (greyed out) when the catheter is at the CVP (RA) site
  • Multiple improvements to the Intra-Aortic Balloon Pump (IABP) including:
  • Reshaped how the buttons resize automatically (fixes text clipping/overrunning)
  • IABP balloon waveform timing adjusted for adaptability to irregular rhythms (#191)
    • Enhanced and adjusted the physiology model timer that the tracing was triggered by
    • Implemented trigger dynamic delays for enhanced timing accuracy using modeling (#195)
    • Implemented manual inflation timing adjustment via IABP console user interface
    • Proper deflation at the T wave and/or arterial inflection, inflation at dicrotic notch
  • Fixed ABP tracings not being drawn when IABP is running
    • Partly caused by Tracing autoscaling not being triggered properly in edge cases- fixed.
    • Tracing also triggered for ABP rhythm only provided by IABP (e.g. during VF) (#192)

Stability

  • Fixed program crashing on window resizing (#127)!
  • This was a longstanding problem that was difficult to identify, track down, and fix!
  • Affected the Cardiac Monitor, Defibrillator, and IABP- all fixed!
  • Implementation debugging (#204, #205, #206)
  • AvaloniaUI (foundational dependency) upgraded to 10.21 (from 10.18)

Mirroring Functionality Restored: Bugfix

As part of developing and maintaining Infirmary Integrated, I often come across bugs in the software that need patching. I am announcing a unique bugfix that repaired Infirmary’s “cloud” functionality today.

Infirmary Integrated’s server has been migrated to a new host. As part of the migration, access to the website and the server may be spotty for a day while DNS records update. Regardless, aggressive testing during the migration exposed a problem that Infirmary’s “mirroring” functionality had broken in the past several months when PHP upgraded recently. Since PHP is the language the server’s functions are written in, the issue cropped up and impacted Infirmary.

I tracked down and fixed the problem, restoring the “mirroring” functionality. Specifically, Infirmary Integrated can be used to mirror simulations. When you launch Infirmary Integrated’s simulator and set up a patient simulation, you can choose to “broadcast”, which sends the simulation to Infirmary’s server in the cloud. The bug that was fixed specifically broke this functionality!

Once a simulation is broadcast via the server, somebody running Infirmary Integrated’s simulator can “mirror” or receive the simulation, retrieving it from the cloud. Additionally, mirroring updates every few seconds so that any changes made by the broadcaster propagate to all mirrors almost immediately!

I am glad to announce this insidious problem was discovered through testing and resolved. Any bugs that are found by the community can also be reported via the Github repository in an issue or discussion for resolving.

Advancing Social Justice in Healthcare Education through Accessibility: Celebrating Infirmary Integrated’s Use in 50+ Countries

10 years ago, as a new nurse, I had dreams of improving healthcare around the world. While my positive impact in nursing was generally limited to the patients I cared for in the hospitals I worked at, I searched for a way to improve healthcare beyond my physical presence. When I stumbled onto the idea that eventually became Infirmary Integrated, I always aimed to make it accessible for healthcare educators around the world, regardless of borders, language barriers, or technology barriers.

When I first started developing Infirmary Integrated, I ensured that I published it with accessibility in mind. To that end, I licensed it as free and open source software, free to be used for healthcare education with no restrictions in the classroom: free to download, and free to use. While healthcare has accessibility barriers around the world, educational software can easily be democratized and can be used to improve healthcare delivery around the world. That was my underlying goal.

To track progress on that goal and Infirmary’s use around the world, the program does collect anonymized usage data that I also use to guide feature implementation such as language localization. Every time I see Infirmary used in a new area of the world, I am excited to know that a healthcare educator may have found the software that will satisfy a niche in their classroom to further their students’ education, just how I use Infirmary regularly in a variety of courses that I teach.

To celebrate 4 years since the full release of version 1.0 (and 5 years since its first published pre-release version), I am ecstatic to announce that Infirmary has been used in 54 countries around the world! While I can’t identify how Infirmary is being used, for what, or by who, I am satisfied knowing that healthcare educators around the world have free access to tools that can enrich their classrooms and further their students’ knowledge, ultimately improving patient care and patient outcomes!

With that in mind, I look forward to expanding Infirmary’s usage, functionality, and strength as an educational tool. Together, we can advance healthcare education!

Sincerely,

Ibi Keller, MSN, RN, CCRN, CEN

Map: Countries where Infirmary Integrated has been used are marked in green.
Countries where Infirmary Integrated has been used are marked in green.

ARM Hardware Support

To accommodate recently released hardware based on the ARM64 architecture, Infirmary Integrated is now packaged and published with installers and binaries to run on this architecture. Packages for newly supported hardware include support for:

  • Apple desktops and laptops with M1 or newer “Apple silicon” processors, including MacBook and Mac desktops built in 2020 or later
  • Microsoft Surface tablets or laptops with Qualcomm processors, including tablets with the SQ1 or newer chips built in 2020 or later
  • Linux devices running on ARM64 architecture (e.g. Raspberry Pi 4, although it may not meet the minimum necessary specifications to run Infirmary Integrated otherwise)

Installers and binaries can be found on the “Download & Install” page and on the GitHub repository’s list of Releases.

V 2.5: Defibrillator Enhancements, Stability

Available for download on the Downloads page.

This update is the culmination of many small enhancements and bugfixes implemented since version 2.4. While there is nothing newly groundbreaking, lots of fixes, implementations, and enhancements make version 2.5 a more realistic, stable, and effective simulator. Changes include:

Defibrillator Enhancements

  • Options to select maximum defibrillation energy and energy increments
    • Simulates Zoll (200 J) or LifePak (360 J)
    • Can increment at 10 J or 20 J such as to simulate institution preference/settings
  • Audio tones for “charging” and “charged” electricity states
    • Audio playback controlled by main window’s audio settings (on/off)
    • Audio options for defibrillator now include:
      • “Off”: device is muted
      • “Defibrillator”: only charging/charged tones will play
      • “Heart Rate/QRS” and “SpO2”: both charging/charged tones and QRS/SpO2 tones play
  • Color coded indicators for defibrillator state in Dark (colorful) color scheme
    • The “Defibrillator Settings” numeric entirely changes color based on defibrillator state
      • Charging: yellow; Charged: red
      • Analyzing rhythm: yellow-green
      • Pacing enabled: orange
      • All other discharged states return to light blue

General Enhancements

  • Numerous Avalonia UI (window manager) package updates merged into this build version
    • Includes numerous bugfixes for compatibility and functionality across supported operating systems
    • Should help with program speed and stability on all platforms

Minor releases since version 2.4.0 include:

  • Minor update 2.4.1: bugfixes
    • This update fixes several minor bugs
    • The biggest fix in this update is the ability to open an .ii simulation file by double-clicking on it from the desktop, launching the program directly into the simulation file.
  • Minor update 2.4.4: Signing Doses w/ MAR & Bugfixes
    • This update includes the ability to sign off doses of medications on the MAR and add comments
    • This update also includes the ability to edit comments and sign off via the Scenario Editor
    • This update fixes several additional bugs, including a functionality-breaking bug
      • On opening Infirmary with an update available, the program sometimes hangs or crashes- this fixes that problem
  • Minor update 2.4.5: QOL Improvements
    • This update fixes several quality-of-life issues improving Tracing responsiveness during vital sign changes
      • Including more responsive Tracings when loading files
    • ECG lead labels are now properly aligned to top-left for realism

V 2.4.5: Minor Update with Quality-of-Life Improvements

Available for download on the Downloads page.

This minor update fixes several “quality of life” issues that improve the performance and responsiveness of Infirmary Integrated in certain edge cases, especially when making on-the-fly simulations and presentations. Specifically, waveform tracings now respond more robustly to rate changes made to vital signs, including:

  • Vital sign rate changes now properly trigger responses in patient physiology and waveforms according to the “apply buffer” timer. This is most notable when simulating a heart rate < 20 bpm or a respiratory rate < 10. For example:
    • Before this fix: when simulating a profoundly bradycardic or bradypneic patient, changes to vital signs would take 1 cardiac or respiratory cycle (up to 60 seconds!) before reflected in waveform tracings.
    • After this fix: changes to vital signs will be reflected in waveform tracings in 5 seconds or less.
    • This does not include waveforms on the External Fetal Monitor (EFM) or Tocograph.
  • Loading a simulation file (.ii file) now starts waveform tracings immediately.
    • Before this fix: when loading a simulation file, it would take 1 cardiac or respiratory cycle to begin waveform tracings- this could be up to 60 seconds in a profoundly bradycardic or bradypneic patient!
  • 12-lead ECG tracings are now labeled in the top-left corner of their leads, simulating real-life 12-leads.

V 2.4.4: Functionality-Breaking Bug Fixed

This past week, a functionality-breaking bug was found and fixed in Infirmary Integrated. This bug does not pose any security risk. The bug occurred when a new update was made available for Infirmary and the program attempted to notify the user of the update- instead, the program experienced a “soft” crash and just stopped working. The bug only occurred if Infirmary detected a new update was available. Since the “update available” startup routine is rarely tested by the developers, this bug went unnoticed for some time and likely has been an annoyance.

The bug was partially fixed in v 2.4.3 by allowing Infirmary to finish loading and skipping the update notification.

The bug has been completely fixed in v 2.4.4 and the update notification has been fixed as well.

Updating to the latest version 2.4.4 will resolve this issue- along with giving you access to new features in the latest version of Infirmary!

V 2.4 Medication Administration Record (MAR)

Available for download on the Downloads page.

This is the first release bringing Infirmary Integrated into simulating the electronic health record (EMR). This release includes a moderately-featured electronic Medication Administration Record (MAR) that can display drugs ordered and doses to be given in a layout familiar to anybody that has used an electronic MAR. Doses are plotted on a time-grid and you can navigate forward and backwards in time to see future or past doses. This release also includes the ability to add patient demographic information, so patient identifiers are displayed on the MAR to allow students to complete all the rights of drug administration.

Major features with this release:

  • Add simulated patient demographics and drug orders in the Infirmary Integrated Scenario Editor
  • View and navigate the MAR in the Infirmary Integrated Simulator by loading a simulation file with the relevant data
  • In the Scenario Editor, each Step can have a different date/time set, so simulations can progress over time
  • Drug and dose data includes: drug, dose, units, route, frequency (prn, once, repeat), priority (routine, now, stat)
  • Administration and Indication fields can receive free-text: can enter hold parameters (“hold for SBP < 100”) or infusion instructions (“infuse over 60 minutes”)
  • Color coding: past-due doses (> 1 hour in the past per simulated time) are marked in red, scheduled doses marked in blue, prn doses marked in green
  • Automatic sorting of drug orders: scheduled doses present first, prn orders underneath, and all drugs are sorted alphabetically by name

Features that are not implemented, but are planned for future releases include:

  • Signing off drug doses after administering them
  • Marking past doses as being given or not given in the Scenario Editor

Minor update 2.4.1

  • This update fixes several minor bugs
  • The biggest fix in this update is the ability to open an .ii simulation file by double-clicking on it from the desktop, launching the program directly into the simulation file.

Minor update 2.4.4

  • This update includes the ability to sign off doses of medications on the MAR and add comments
    • This update also includes the ability to edit comments and sign off via the Scenario Editor
  • This update fixes several additional bugs, including a functionality-breaking bug
    • On opening Infirmary with an update available, the program sometimes hangs or crashes- this fixes that problem

A simulated MAR with sample (fake) patient identifiers for students to complete the rights of drug administration:

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.