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!
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.
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!!
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
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
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)
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
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)!
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.
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).
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
“Newer version available” message was triggering improperly
All Patient parameters now being saved and loaded properly