Introducing the Pulse Physiology Engine: Open-Source Computational Models for Human Medical Simulation
Introduction
Kitware is happy to introduce the Pulse Physiology Engine, an open-source physiology engine with a public repository for community use, advancement, and collaboration in human physiology simulation research. Pulse is comprised of adult computational physiology models that can be used for research and pairing with simulation modalities for a complete training experience. This engine is a fork of the BioGears® Physiology Engine. Pulse addresses several deficiencies in the BioGears physiology engine, including:
- An active, community based, public repository
- Full Apache 2.0 License compliance
- Removed Code Synthesis FLOSS exception
- Improved and simplified CMake build procedure for all platforms
- Windows, Linux, Mac, AARCH64
- Removed the need for Ant and platform specific build scripts
- Expanded compiler support
- MSVC (2015+), GCC (4.8.1+), Clang (3.3+), and Ninja
- Improved large verification set management (hosted outside of the repository)
- Integrated with the build to reduce repository footprint
- Converted the Data Model to Google Protocol Buffers
- Provides a foundation for Data Distribution Systems (DDS) while expanding support for cross language interfaces and preserving a well-documented data dictionary
Methods
The Pulse Physiology Engine is comprised of lumped-parameter models, which use circuit analogues (e.g., resistors and capacitors) to estimate the behavior of a region of interest/system of the body (Fig. 1). Each lumped-parameter model is solved using circuit (fluid and thermal) and substance transport (liquid and gas) solvers. Incorporation of feedback behavior is accomplished by modeling the feedback mechanisms and applying the effects to the circuit components. It also includes pharmacokinetic (PK) and pharmacodynamic (PD) models, which use the physiologic properties of the patient and the physiochemical properties of the drug in differential equations to represent drug diffusion and distribution in the body. The Pulse Physiology Engine includes a cardiovascular, respiratory, nervous, endocrine, gastrointestinal, renal and PK/PD systems (Fig. 2). The engine also includes equipment used for treatment, such as an anesthesia machine and an inhaler.
A variety of injuries and treatments can be applied to the patient through engine actions, including hemorrhage, tension pneumothorax, airway trauma, intravenous (IV) fluid administration, drug administration, and airway management. For more information on the wide variety of actions available, see the documentation for actions. The patient loaded into the engine can be customized by defining various patient parameters. These parameters define the baseline patient for engine initialization, including height, weight, age, heart rate, blood pressure, respiration rate and total lung capacity. Initialization of the patient includes model parameter changes to ensure the patient outputs match the patient parameters provided. After initialization, the patient can be given chronic conditions, such as renal stenosis, anemia, and lobar pneumonia. The model parameters are tuned again to match the changes in outputs required for the disease condition.
Each system, action and condition in the engine is put through a verification and validation process to ensure the best and most reliable results are produced and maintained. Each system is validated at the clinical output level, such as heart rate, respiration rate, oxygen saturation and glomerular filtration rate, and with compartment level data, such as blood flow and pressure to specific organs and regions of the body. All outputs are validated against data found in the literature. Each action and condition is validated using data found in the literature for a limited set of relevant system level outputs. All validation results are included in the documentation and all scenarios are included in the verification suite downloaded as part of the build process for the engine. We run the verification suite on all changes submitted to the repository to ensure the models remain validated.
Scenario Example Results
The physiology engine is a powerful tool for training clinical skills via simulation scenarios. A wide variety of scenarios are included with the engine, such as combined and showcase scenarios. These scenarios demonstrate the ability to apply multiple actions and treatments to different patients and produce validated results. Many of these scenarios were defined by previous military applications and goals; however, these actions can easily be applied to the civilian trauma community, as well.
In Fig. 3, a patient is the victim of multiple gunshot wounds. Bleeding causes the blood volume to drop, the blood pressure to fall and the heart rate to increase. The bleeding is stopped using a tourniquet and packing the wounds. Morphine is administered for pain causing further drops to the blood pressure and heart rate. IV fluids are administered causing the vital signs to begin to recover with rising blood volume.
In Fig. 4, a patient in the hospital under observation suffers from an airway obstruction causing the oxygen saturation to begin falling, which leads to a feedback response that increases the cardiovascular response. The airway obstruction is cleared. Drugs are administered to sedate the patient and allow for intubation. After oxygen is restored to the patient, the vital signs begin to recover.
The physiology engine has also been combined with the Virtual Pediatric Airway Workbench (VPAW). This proof of concept is part of a larger goal to incorporate individualized physiology simulation into patient-specific surgical planning tools. For this workflow, the physiology engine was run in conjunction with a computational fluid dynamics simulation representing a stenosed trachea. The two models were linked via the airway resistance in the lumped-parameter model. The respiratory rate and oxygen saturation resulting from various degrees of tracheal stenosis are shown in Fig. 5. By calculating the respiration and oxygen saturation due to the stenosis, surgical planning can determine the optimal treatment for the overall physiologic health of the patient. This preliminary result was presented at SPIE Medical Imaging Conference in Orlando 11–16 Feb 2017 [1]. This is just one example of how Kitware is developing patient-specific surgical planning and training applications that incorporate physiological modeling.
These are just a few examples of the physiologic content that can be generated using the Pulse Physiology Engine.
Summary
The release of the Pulse Physiology Engine provides the modeling, research, clinical, and simulation communities an open-source, publically available repository for use, advancement, collaboration and contribution. Kitware plans further development of the Pulse Physiology Engine to advance patient-specific modeling, training applications, and clinical applications. We also plan to continue development of the Explorer analysis and visualization tool built using ParaView to provide intuitive and user-friendly interfaces to the research community. To learn more about Kitware’s open-source physiological modeling development efforts, please contact kitware@kitware.com.
References
[1] Potter L., Arikatla S., Bray A., Webb J., Enquobahrie A., “Physiology informed virtual surgical planning: a case study with a virtual airway surgical planner and BioGears”, Proc. SPIE 10135, Medical Imaging 2017: Image-Guided Procedures, Robotic Interventions, and Modeling, 101351T (March 3, 2017); doi:10.1117/12.2252510.