+ All Categories
Home > Documents > Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is...

Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is...

Date post: 10-Jul-2020
Category:
Upload: others
View: 3 times
Download: 1 times
Share this document with a friend
16
MEDICINE Pulse Physiology Engine: an Open-Source Software Platform for Computational Modeling of Human Medical Simulation Aaron Bray 1 & Jeffrey B. Webb 1 & Andinet Enquobahrie 1 & Jared Vicory 1 & Jerry Heneghan 2 & Robert Hubal 2 & Stephanie TerMaath 3 & Philip Asare 4 & Rachel B. Clipp 1 Accepted: 4 February 2019 /Published online: 27 March 2019 # Springer Nature Switzerland AG 2019 Abstract The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time physiologic simulations for improved medical training and clinical decision-making tools. The platform includes a physiology engine comprised of well-validated lumped-parameter models, differential equations representing feedback mechanisms, and a pharmacokinetic/pharmacodynamic model. The platform also includes a common data model for standard model and data definitions and a common software interface for engine control and robust physics-based circuit and transport solvers. The Pulse Platform has been incorporated into a number of commercial, research, and academic tools for medical simulation. Significance: The Pulse Platform is an innovative, well-validated, open-source tool for medical modeling and simulation in the training and clinical decision-making field. Keywords Lumped-parameter . Medical modeling and simulation . Open-source software . Patient-specific modeling . Whole-body physiology Introduction Many areas of medicine have shown that clinicians lack the skills and confidence necessary to quickly and efficiently treat patients [1, 2]. This is particularly true for emergency, military trauma, and critical care medicine. Simulation has been wide- ly adapted in many areas of medicine, including anesthesia and trauma care and been shown to be highly effective in improving clinical confidence and skills [211]. Current train- ing techniques include traditional didactic materials, virtual training scenarios, manikin simulations with and without physiology, and live patient simulations. However, current training methodologies have signifi- cant limitations. Expert feedback is required before, dur- ing, and after the scenario to ensure accurate physiologic responses are supplied to the trainee. This style of instructor-driven scenarios significantly limits the number of trainees with access to high-quality training. Virtual physiology engines, both open-source [12, 13] and propri- etary [ 1416], provide a powerful alternative. Virtual physiology engines have been paired with manikin simu- lations and virtual training scenarios to create a more re- alistic training scenario that can react in real-time to a traineesactions without pre-scripting [1720]. High-fidelity models, such as LatticeBoltzmann, finite element, and computational fluid dynamic models, exist and are a key to improving diagnostics and predictive med- icine. Some of these tools, such as SimVascular [21] and OpenSim [ 22], are available as open-source toolkits. However, the computational requirements for these high- fidelity approaches do not lend themselves to the real-time whole-body physiologic responses required to power train- ing simulations. Best fit, empirical models, and state-based systems are used for many simulation scenarios. These This article is part of the Topical Collection on Medicine * Rachel B. Clipp [email protected] 1 Kitware, Inc, 101 E. Weaver St. Suite G4, Carrboro, NC 27510, USA 2 University of North Carolina, 210 Beard Hall 301 Pharmacy Lane, Chapel Hill, NC 27599, USA 3 University of Tennessee, 523 Dougherty Engineering Building, Knoxville, TN 37996, USA 4 Bucknell University, 336 Dana Engineering Bldg., Lewisburg, PA 17837, USA SN Comprehensive Clinical Medicine (2019) 1:362377 https://doi.org/10.1007/s42399-019-00053-w
Transcript
Page 1: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

MEDICINE

Pulse Physiology Engine: an Open-Source Software Platformfor Computational Modeling of Human Medical Simulation

Aaron Bray1 & Jeffrey B. Webb1& Andinet Enquobahrie1

& Jared Vicory1 & Jerry Heneghan2& Robert Hubal2 &

Stephanie TerMaath3& Philip Asare4

& Rachel B. Clipp1

Accepted: 4 February 2019 /Published online: 27 March 2019# Springer Nature Switzerland AG 2019

AbstractThe Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-timephysiologic simulations for improved medical training and clinical decision-making tools. The platform includes a physiologyengine comprised of well-validated lumped-parameter models, differential equations representing feedback mechanisms, and apharmacokinetic/pharmacodynamic model. The platform also includes a common data model for standard model and datadefinitions and a common software interface for engine control and robust physics-based circuit and transport solvers. ThePulse Platform has been incorporated into a number of commercial, research, and academic tools for medical simulation.Significance: The Pulse Platform is an innovative, well-validated, open-source tool for medical modeling and simulation inthe training and clinical decision-making field.

Keywords Lumped-parameter . Medical modeling and simulation . Open-source software . Patient-specific modeling .

Whole-body physiology

Introduction

Many areas of medicine have shown that clinicians lack theskills and confidence necessary to quickly and efficiently treatpatients [1, 2]. This is particularly true for emergency, militarytrauma, and critical care medicine. Simulation has been wide-ly adapted in many areas of medicine, including anesthesiaand trauma care and been shown to be highly effective inimproving clinical confidence and skills [2–11]. Current train-ing techniques include traditional didactic materials, virtual

training scenarios, manikin simulations with and withoutphysiology, and live patient simulations.

However, current training methodologies have signifi-cant limitations. Expert feedback is required before, dur-ing, and after the scenario to ensure accurate physiologicresponses are supplied to the trainee. This style ofinstructor-driven scenarios significantly limits the numberof trainees with access to high-quality training. Virtualphysiology engines, both open-source [12, 13] and propri-etary [14–16], provide a powerful alternative. Virtualphysiology engines have been paired with manikin simu-lations and virtual training scenarios to create a more re-alistic training scenario that can react in real-time to atrainees’ actions without pre-scripting [17–20].

High-fidelity models, such as Lattice–Boltzmann, finiteelement, and computational fluid dynamic models, existand are a key to improving diagnostics and predictive med-icine. Some of these tools, such as SimVascular [21] andOpenSim [22], are available as open-source toolkits.However, the computational requirements for these high-fidelity approaches do not lend themselves to the real-timewhole-body physiologic responses required to power train-ing simulations. Best fit, empirical models, and state-basedsystems are used for many simulation scenarios. These

This article is part of the Topical Collection on Medicine

* Rachel B. [email protected]

1 Kitware, Inc, 101 E.Weaver St. Suite G4, Carrboro, NC 27510, USA2 University of North Carolina, 210 Beard Hall 301 Pharmacy Lane,

Chapel Hill, NC 27599, USA3 University of Tennessee, 523 Dougherty Engineering Building,

Knoxville, TN 37996, USA4 Bucknell University, 336 Dana Engineering Bldg.,

Lewisburg, PA 17837, USA

SN Comprehensive Clinical Medicine (2019) 1:362–377https://doi.org/10.1007/s42399-019-00053-w

Page 2: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

options are based on data collected for specific scenarios andrely on the user selecting treatment and trauma from a lim-ited set of options. They do not provide a robust, well-validated modeling approach that can be used for a varietyof physiologic conditions. Lumped-parameter or zero-dimensional modeling is based on physics principles thatlink the body’s physiology responses to electrical analogues[23–28]. These relationships provide physics-based modelsthat can be validated and modified to cover a wide variety ofconditions, while still providing computational efficiency. Afew existing physiology engines use this methodology, in-cluding HumMod [29, 30], BioGears [31, 32], and the PulsePhysiology Engine. However, only BioGears and Pulse areopen-source.

Open-source development has several major advantagesthat have been previously published [33]. Some of these ben-efits include:

1. Encourage collaboration between academic, clinical,commercial, and government intuitions through a com-mon software platform and fostering a sense ofcommunity.

2. Save costs and resources by reusing and repurposing soft-ware solutions and investing in new research methods andcustom commercial applications.

3. Validation and verification algorithms and data are oftenincluded to provide a benchmark and ensure robust andvalidated software.

4. Permissive licenses allow for users to use technologywithout restrictions.

BioGears is a Department of Defense program with thegoal of lowering the barrier to entry for medical trainingand simulation content developers by supplying an open-source physiology engine that produces reliable, accurate,and validated physiologic responses to major physiologicconditions with military relevance. BioGears has somesignificant limitations, such as a licensing issue that maylimit the commercial use rights of third party applications,a lack of an active public repository, and a lack of com-munity contribution. The Pulse Physiology Engine is afork of BioGears. It was created by the original devel-opers of BioGears to address these concerns and continueto develop physiologic models with relevance to both themilitary and civilian communities. Pulse addresses the li-censing issues of BioGears and has a permissible Apache2.0 license. Pulse is also accessible via a public repositorythat has a number of users and outside contributors tofoster a true open-source community. The PulsePhysiology Platform has also been integrated into a num-ber of research, clinical, and commercial applications, asfurther discussed in the BCase Studies—CommunityAdoption^ section of the paper.

Methods

The Pulse platform supports the design, development, and useof physiologic modeling for buildingmedical training content.The architecture was specifically designed to reduce modeldevelopment time and increase the usability of the engine insimulations by creating a modular, extensible definition forhuman physiology. To accomplish these goals, the Pulse plat-form includes the Pulse Physiology Engine, a common datamodel (CDM), and a Software Framework, as shown in Fig. 1.Both the CDM and framework were designed to support com-putational physiology models in general by providing a stan-dardized data interchange between physiology models andusers. The Pulse Physiology Engine is one example of thesecomputational physiology models.

Pulse Physiology Engine

The Pulse Physiology Engine is comprised of numericalmodels that represent the different systems of the body, thefeedback mechanisms and interactions between the systems,pharmacokinetics/pharmacodynamics, and medical equipment.These numerical models are designed, implemented, and vali-dated to provide consistent and accurate physiologic output/feedback across a wide-range of medical training applications.The differential equations contained in each system are calcu-lated through transient analysis with a shared time step. Thenumerical models currently execute with a time step of 20 msto ensure all physiology features of interest are captured, whilemaintaining real-time execution for the simulation.

Lumped-Parameter Models

The major systems are modeled using lumped-parametermodels, which are circuit analogs to represent the dynamicbehavior of the physiologic systems. The circuit analogs useresistors to represent the resistance to flow through blood ves-sels, airways, and equipment and capacitors to represent theability of those same components to dilate and constrict. Thenumerical evaluation of these circuit results in pressure, flow,and volume predictions for specific organs/regions of interest ofthe body.While lumped-parameter models have been common-ly used to model different physiologic functions and behavior[23–28, 34], it is rare for them to be linked to create a whole-body physiology model. This novel implementation uses theflexibility of these models to create varying fidelities acrossdifferent systems to model not only the physiologic functionon individual system, but the ability of those systems to interactwith each other (Fig. 2). For example, the cardiovascular sys-tem models the vasculature of the specific organs in the body,while the respiratory system models the different componentsof the lung airways. These two systems then interact across thepulmonary capillary–alveoli barrier to allow for gas transfer.

SN Compr. Clin. Med. (2019) 1:362–377 363

Page 3: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

This extension incorporates partial pressure diffusion between aliquid (blood) and a gas (air) by leveraging the multi-fidelitylumped-parameter model results for pressure and volume in thecapillaries and airways. Medical equipment can also be incor-porated by linking lumped-parameter models. The anesthesiamachine model is linked to the respiratory system via the mouthand the mask/endotracheal tube to represent assisted breathing/intubation (Fig. 2).

The individual parameters of the lumped-parametermodel can also be modified and scaled based on themodeling needs of a specific condition or disease. Forexample, in renal stenosis, the resistance associated withthe renal artery is increased to represent the constrictionof the stenosed blood vessel. The resulting renal pressureand flow are then affected by this change. This causesadditional effects within the renal system, such as changesin glomerular filtration rate. Similarly, feedback mecha-nisms can affect individual parameters providing a means

for incorporating drug effects and baroreceptor function-ality into the whole-body physiology engine.

Feedback Mechanisms—Baroreceptors

Avariety of feedback mechanisms are modeled and integratedwith the lumped-parameter models, such as baroreceptors andchemoreceptors. These models calculate a response based onparameters from different physiologic systems, including thecardiovascular and respiratory systems, then apply the re-sponse back to the system.

The baroreceptor mechanism provides rapid negative feed-back control of arterial pressure. A drop in arterial pressure issensed by the baroreceptors and leads to an increase in heartrate, heart elastance, and vessel distensibility. These changesoperate to maintain mean arterial pressure (MAP) at itshealthy resting level. The Pulse model, adapted fromOtteson, et al. [35], drives the mean arterial pressure towards

Fig. 1 The Pulse Platformincludes a common softwareinterface, a common data model,and the Pulse Physiology Engine.This platform supports a modular,extensible architecture for real-time simulations of the humanphysiology

364 SN Compr. Clin. Med. (2019) 1:362–377

Page 4: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

the resting set-point by calculating the sympathetic (1) andparasympathetic (2) response.

ηs Pað Þ ¼ 1þ Pa=Pa;setpoint

� �ν� �−1 ð1Þ

ηp Pað Þ ¼ 1þ Pa=Pa;setpoint

� �−ν� �−1 ð2Þ

Where, ν is the response slope of the baroreceptors; Pa

is the MAP, and Pa, setpoint is the MAP setpoint. Theseresponses are then used to calculate the changes to theheart rate (3) and elastance (4) and systemic vascular re-sistance (5) and compliance (6).

dHRdt

¼ −1

τHR−HRþ αHRηs Pað Þ þ βHRηp Pað Þ þ γHR

� �ð3Þ

dEdt

¼ −1

τE−E þ αEηs Pað Þ þ γHRð Þ ð4Þ

dRdt

¼ −1

τR−Rþ αRηs Pað Þ þ γRð Þ ð5Þ

dCdt

¼ −1

τC−C þ αCηs Pað Þ þ γCð Þ ð6Þ

Where, HR, E, R and C are the relative values of heart rateand elastance, and vascular resistance and compliance, respec-tively; τ represents the time constants for each value, and α, β,and γ are tuning variables used to achieve the pressure shiftsrequired to accurately model the baroreceptors. More infor-mation on how the tuning parameters were set can be found in[36]. These time-dependent changes are then applied to thecardiovascular system by modifying the lumped-parametercomponents, including scaling the resistors associated with

Brain

Heart

Arms

Legs

Core

LiverGut

Kidneys

Core

Lungs

Cardiovascular

Upper

AirwayR

ight

Lun

g

Lef

t

Lun

gMuscle

Driver

Respiratory

Anesthesia Machine

Fig. 2 The Pulse Physiology Engine is comprised of lumped-parameter models, circuit analogs, that represent the systems of the body and medicalequipment

SN Compr. Clin. Med. (2019) 1:362–377 365

Page 5: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

the arteries, the capacitor associated with the vena cava, andthe rate and elastance of the heart driver.

Pharmacokinetic/Pharmacodynamic Models

Physiologically based pharmacokinetic (PBPK) modeling is atechnique that mathematically models the distribution, uptake,metabolism, and clearance of a drug with consideration of therelevant physiological processes [37]. Pulse has both pharma-cokinetic (PK) and pharmacodynamic (PD) models. The PKmodel matches the fidelity of the cardiovascular and respira-tory systems because it is linked to the blood and air transportand tissue models. The PD model is currently a lower-fidelitymodel based on a direct relationship between the plasma con-centration and maximum effect for a system level response,such as heart rate, respiration rate, and blood pressure.

A drug enters the body through either injection or inhala-tion and moves through the body using the substance transportmethodology discussed in the BCommon SoftwareFramework^ below and shown in Fig. 4. Drugs move fromthe bloodstream into the tissues using perfusion-limited diffu-sion. The physicochemical properties of the drug are used tocalculate the partition coefficient, which describes the affinityfor the particular drug to diffuse across the barrier between thecardiovascular and tissue spaces. The details of this calcula-tion can be found in [38].

The diffusion of the drug is calculated using (7).

ΔM ¼ QT � CV−QT*CT

KPð7Þ

Where, ΔM is the change in mass due to diffusion; QT is theblood flow to the organ;CVand CT are the concentration of thedrug in the organ vasculature and tissue, respectively, and KP

is the partition coefficient for each drug and organ. An exam-ple of this calculation for a very weak base, acid, or neutraldrug is shown in (8), details of these calculations and the dataused can be found in [37, 39–42].

KP ¼ f EW þ X þ f IWY

þ P þ f INL þ 0:3� P þ 0:7ð Þ � f NPY

þ 1

f u−1−

P � f NL 0:3� P þ 0:7ð Þ � f NPY

� � PRT

PRB

ð8ÞWhere, X and Y are different relationships based on the ionicstate of the drug (acid, base, etc.); fIWand fEWare the fraction ofintracellular and extracellular water, respectively; fNP and fNLare the fraction of neutral phospholipids and lipids in the tis-sue, respectively; P is the octanol:water partition coefficientfor the drug; fu is the fraction of the drug unbound in plasma,

and PRTPRB

is the tissue to plasma ratio of the binding protein.

The drug clearance is specified by the user in the drugproperties with an intrinsic, renal, and systemic clearance.

The total drug cleared from the body is a total of these threeclearance types. After diffusion and clearance have been cal-culated, the plasma concentration is calculated.

With accurate plasma concentration, the effects of the drugon different system level parameters can be calculated. Therelationship between the maximum expected effect of the drugand the plasma concentration is shown in (9). This does notaccount for activity outside of the expected drug behavior,such as overdose responses.

ΔE ¼ Eb*Em*C

ηP

ECη50 þ Cη

Pð9Þ

Where,ΔE is calculated effect; Eb is the current value for theeffect (i.e., heart rate); Em is the expected (or maximum) ef-fect; EC50 is the concentration associated with a 50% effectresponse; CP is the plasma concentration for the drug, and η isthe slope factor of the response [43]. The effects are thenapplied in the individual systems. The EC50 value is calculatedusing (10).

EC50 ¼ Cmax

32ð10Þ

Where, Cmax is the maximum concentration for a standarddose. These calculations are completed for each physiologic ef-fect per drug. The effects are then applied in the individual sys-tems, i.e., blood pressure changes are implemented bymodifyingthe systemic vascular resistors in the cardiovascular system.

Common Data Model

The CDM is an implementation agnostic specification of thedata and relationships associated with physiology simulationsoftware. A conceptual model to define and scope all of thedefinitions and relationships needed to simulate physiologywas created. Based on the conceptual model, a logical modelcomprised of data structures was implemented. After a com-parison and review of multiple interface definition languages(IDL), Google Protocol Buffers (Protobufs) was chosen toimplement the logical model. Protobufs provides a small,platform-neutral mechanism for efficient serialization of struc-tured data and supports a wide range of languages, includingC++, Java, Python, C#, and JSON. Multi-language communi-cation is necessary for communicating data between applica-tions that use different languages. This was deemed a criticalrequirement for encouraging wide user adoption. Protobufsalso supports object-oriented design style concepts, such asencapsulation, nesting, and packages. Protobufs inherentlyprovide a method to define lightweight data structures thatare easily adapted to many common communication messag-ing protocols. This allows the CDM to easily be leveraged bya simulation in both a local and distributed data system (DDS)environment. The CDM also promotes modular and

366 SN Compr. Clin. Med. (2019) 1:362–377

Page 6: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

extensible designs by providing a means of data interchangebetween models within a physiology engine and between anyapplication and a physiology engine.

The CDM defines the scope and data required for physio-logic simulation with the following concepts: patient, condi-tions, actions, substances, systems, and compartments.

Patient

The patient data object contains the parameters used to definea patient, including age, sex, weight, height, and baseline heartrate and blood pressure. The majority of these parameters canbe user-defined to provide patient variability across medicalsimulations. The patent data is then accessed by the physio-logic models to accurately represent a specific patient.

Conditions

Patient conditions are persistent or recurring chronic condi-tions. They cause the body to enter an altered stabilized state,a level of homeostasis, that will alter the continual feedbackmechanisms that take place in a healthy body. These conditiontypes are typically defined by a severity scale in the CDM andphysiologic systems alter their models accordingly. A fewexamples of chronic conditions are anemia, chronic obstruc-tive pulmonary disease, and renal stenosis.

Actions

Actions are the only means to introduce input into an initial-ized engine. Actions generally apply an acute traumatic event(e.g., hemorrhage or pneumothorax) or a treatment step (e.g.,intravenous fluid and/or drug administration or needle decom-pression.) Each action is defined as a Protobuf message in theCDM. On introduction of an Action, a physiology engine candynamically apply any changes to its models during its exe-cution for real-time, dynamic physiologic responses.

Substances

A substance object is defined by a number of chemical andphysical properties, including molar mass, density, and rela-tive diffusion coefficient. Substances circulating in the systemcan include basic gases, such as oxygen, defined by a mini-mum number of parameters, and complex drug substances,such as succinylcholine that are defined with PK/PD proper-ties. A list of active substances is maintained, and the calcu-lated substance parameters, such as plasma and tissue concen-trations, are stored on the substance object.

Systems

A system encapsulates the data needed to describe a specificphysiology system, piece of medical equipment, or externalenvironmental condition. System data is also the calculatedoutput of a physiology engine. It is not required that all systemproperties be calculated by an engine. They are also intendedto be used as a means of data interchange between modelswithin a physiology engine. An example of some systemsand their properties are listed in Table 1.

Compartments

A compartment is another way to get output from a physiol-ogy engine. They represent the physics-based dynamics of ananatomical organ or region of interest (e.g., kidney, skin, oraorta), the environment, or an equipment component (e.g.,anesthesia machine ventilator or inhaler chamber). Everyphysiology engine can define and discretize their own uniqueset of compartments to represent their models. The compart-ment types and physics-based properties are shown in Table 2.Compartments can be combined to create parent/child rela-tionships, as shown in Fig. 3. Parent compartments aggregatedata from their children, such as the parent compartment vol-ume is simply the sum of each of its children’s volume.

Common Software Framework

The common framework library was designed to reduce devel-opment time by providing a place to implement common reus-able algorithms to ensure consistent fundamental functionalitybetween programs. Implementation of these common algorithmsprovides reusable, validated, and supported algorithms that re-duce model development time and provide consistent results.

These algorithms include the physics-based solvers andvarious data manipulation routines. The framework also in-cludes a control interface, which standardizes simulation in-puts, outputs, and execution of the physiology engine. As thePulse Physiology engine is implemented in C++, the founda-tion library is also implemented in C++. Secondary frame-works are implemented in both Java and C# to provide limiteddata access and control of the physiology engine.

Physics-Based Circuit Solver

A generic circuit solver was implemented to centralize andsolve the lumped-parameter circuit math. This generalized cal-culation ensures an accurate and consistent solution that can bereused for any models using circuit analogues. Because Pulsecalculates the state of the patient at each time step, the circuitsolver must function with dynamic circuits. This dynamic im-plementation of the circuit solver provides additional modeling

SN Compr. Clin. Med. (2019) 1:362–377 367

Page 7: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

flexibility by allowing the addition, removal, and/or modifica-tion circuit elements during simulations.

The requirements for solving the lumped-parameter modelsinclude adherence to an Apache 2.0 license, C++ compatibility,and the dynamic implementation of circuits. Prior to implemen-tation, variations of the SPICE general purpose circuit simula-tion program [44, 45] were evaluated. However, these solutionshad significant drawbacks, including slow execution time andmemory leaks that led to issues as simulation length increased.Due to these limitations and the licensing requirements, anopen-source, robust, validated, and closed loop general circuitsolver was developed and implemented. The circuit solver isdesigned to allow for extraction out of the Pulse architecture foruse as a standalone application. The circuit definitions and solv-er methodology allow for unlimited scaling.

Circuits are defined in the CDM through paths connectedby source and target nodes. C++ templates were leveraged toallow the circuit solver to operate with generic variable andelement types using native electrical, fluid, and thermal units,as shown in Table 3 [46]. The circuit solver uses modifiednodal analysis to determine all circuit values each time step.This technique leverages branch constitutive equations (i.e.,voltage-current characteristics) and Kirkoff’s Laws [47]. Thekey feature of modified nodal analysis is assuming the sum ofall path fluxes connected to each node is zero—inflows equaloutflows. To achieve this balance, the solver iterates over allnodes contained in the circuit to generate a set of linear equa-tions in the matrix form Ax = b. The flux equations are shownin Table 4. Switches, valves, and polarized elements havestates with required behavior criteria, as shown in Table 4.These element states cannot be directly determined, but mustbe assumed and iteratively solved until a valid combinationthat meets all criteria is found. The matrix form of the solutioncan be further defined by (11).

G BC D

�vj

�¼ i

e

�ð11Þ

Where,G is the interconnection between passive elements;B and C are the connections between potential sources; D iszero because only independent sources are considered; v and jare the potentials and fluxes, respectively; i is the sum offluxes through passive elements, and e is the independentpotential sources.

The Eigen template library for linear algebra was used tosolve the matrix equation. A number of algorithms withinEigen were tested for efficient and accurate matrix calcula-tions. The SparseLU factorization for general matrices wasfound to be the most efficient; however, the Pulse CircuitSolar is designed to shift to the slower, but more robustFullPivLU linear solver when the SparseLU factorization failsto ensure accurate results. The quantities associated with pathswith capacitance are incremented using (12).

Q ¼ Q0 þ Fdt ð12ÞWhere, Q is the flow; Q0 is the flow at the previous time step;F is the flux, and dt is the time step.

Physics-Based Transporter

Contained within the fluids (i.e., blood, air, and urine) of thehuman body are substances that must move throughout a circuit.The requirements for the transporter were computationally effi-cient, dynamic, robust, generic, and extensible. The transportermust also conserve mass in all forms with an indefinite numberof upstream and downstream bifurcations, and be able to handlepotentially large flows with significantly more volume movedeach time step than instantaneously exists in a given compart-ment. As this was unavailable for integration, the design andimplementation of a generic substance transport methodologythat could be applied across multiple systems were needed.

Unlike the Pulse Circuit methodology, the PulseTransporter methodology is implemented on a compartmentbasis rather than the circuit basis. Compartments as defined

Table 1 System data structuredefinition System object Data example

Environment Altitude, air temperature, humidity

Cardiovascular Heart rate, mean, arterial, diastolic, and systolic blood pressure

Renal Glomerular filtration rate, osmotic pressure

Respiratory Respiration rate, tidal, and lung volume

Table 2 Compartment types andproperties Type Properties

Liquid/gas Volume, pressure, flow, substance, mass/concentration, volume/volume fraction

Thermal Heat, temperature, transfer

Tissue Tissue to plasma ratio

368 SN Compr. Clin. Med. (2019) 1:362–377

Page 8: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

in the CDM are linked via a flow and volume component.These links form a complete description of the identified re-gion known as a graph. An example of a graph portion isshown in Fig. 3.

The transporter is implemented generically for both liquidand gas systems using the same high-level definitions for sub-stance properties: the extensive property, which is proportionalto the amount of material in the system (i.e., mass and volume)and the intensive property, which is not dependent on the sys-tem size or the amount of material in the system (i.e., concen-tration and volume fraction) [48]. The transporter assumes thatfluid movement (i.e., convection) has already taken place. Tocalculate the resulting compartment substance values each timestep, the transporter iterates over all compartments present inthe given graph and completes a mass balance (13).

Δm ¼ ∑min−∑mout ð13ÞWhere, m is the mass on the current compartment and min andmout are determined from the graph links to adjoining compart-ments. This mass balance can be further defined as (14).

E ¼ IV−∑ISQI t þ ∑IQOdt ð14Þ

Where, E is the extensive property (mass, substance volume); Iis the intensive property (concentration, volume fraction); Sdenotes the source compartment; QI is the inlet flow; QO isthe outlet flow, and dt is the time step. By combining thisequation for all compartments in a graph, the linear equationscan then be written in the matrix form Ax = b to solve for theintensive properties.Where,A is thematrix of constants; x is thevector of all intensive properties, and b is the vector of knownprevious time-step extensive properties. Each row representsthe final mass balance equation for each compartment in thegraph. As with the Pulse Circuit Solver, the Eigen templatelibrary was used to determine the solution. The same techniqueleveraging the Eigen template library described in the circuitsolver section is used to determine a solution. The result is theentire advective transport by bulk flow for the graph.

General Data Manipulation and Support

Every CDM object has a matching implementation in theframework. These objects provide access to the CDM dataand the supporting functionality, as outlined in Table 5.

Common Physiology Interface

A single interface defines all methods for inputs, outputs, andphysiology engine controls. Various utility methods are sup-plied to query timing of the engine, such as the simulation timestep of the engine and the current simulation time. Methods arespecified to initialize an engine with either a patient and condi-tions or with a previously serialized state of an engine instance.

Fig. 3 Compartments have parent child relationships. An example of this structure is shown for the heart and its child compartments, including the rightand left hearts, the myocardium, and the pericardium

Table 3 Circuit typesand elements Type Properties

General Potential, flux, quantity

Electrical Voltage, current, charge

Fluid Pressure, flow, volume

Thermal Temperature, heat flux, heat

SN Compr. Clin. Med. (2019) 1:362–377 369

Page 9: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

After this initialization, the interface can accept input from theuser. Input is provided by either advancing time or by providingaction message. The physiology engine dynamically calculatesall of its models per time step; therefore, time must be explicitlyadvanced. At the end of each simulated time step, the enginepopulates the data in various CDM systems and compartments,which is then available for user access. The interface also pro-vides methods to save its state, or load a new state after advanc-ing time. This state is physiology engine specific, because anengine may contain more data than is defined in the commondata. Because the CDM is populated after each time step, pro-cessing of actions and data retrieval should not be requestedduring engine execution.Multi-threaded systemsmust be awareof this limitation to prevent an engine failure due to both ad-vancing time and requesting input/output data, simultaneously.

Software Process

Our software process focuses on creating interfaces andmodels that provide end users with easy access to an accurate,validated physiology engine. By providing a common soft-ware framework, the focus is on developing consistent modelsthat can easily be understood and trusted by medical experts.Pulse also supports a simple and intuitive interface for

software developers with little medical knowledge that willallow them to easily integrate Pulse into a wide variety ofmedical simulation applications.We follow a software processthat ensures production quality software.

Version Control System

Pulse uses the public Git repository, GitLab. Git is a versioncontrol repository for managing the complete history of a codebase. GitLab is a cloud-based server where multiple partiescan share a Git repository. Having Pulse in a public GitLabrepository allows users to communicate, collaborate, and con-tribute to the development of the software. This approach alsoprovides transparency and trust as anyone can view and com-ment on changes to the code base.

Build and Release Management System

Configuring and managing the build process of a project withmultiple target platforms is a challenging task in softwaredevelopment. The Pulse build process is reliant on CMake[49], an open-source tool that manages the build process in aplatform- and compiler-independent manner.

Table 4 Element types and flux equations

Elements Flux equation (F)

None Solve directly

Resistance F ¼ PS−PTR

Capacitance F ¼ C PS−PTdt

Inductance F ¼ PS−PTL dt þ F0

Potential source Solve directly

Flux source F given

Switch State: open criteria: user defined F= 0 State: closed criteria: user defined solve directly

Valve (i.e., diode) State: open criteria F ≥ 0 F = 0 State: closed criteria PS − PT < 0 solve directly

Polarized element State: open criteria F ≥ 0 F =∞ State: closed criteria PS − PT < 0 element equation

Table 5 Common softwareframework functionality Functionality Description

Serialization Each object can serialize their associated Protobuf object.

Unit conversion All scalar data is defined by a double and a unit and is capable of convertingany value to any unit of the scalar quantity (i.e., volume, mass).

Reflection Objects can return the associated scalar data based on a given string containingthe CDM property name (i.e., BHeartRate,^ BRespirationRate^) allowingapplications the ability to dynamically access CDM Data.

Validation Objects are able to validate their contents to ensure realistic values(i.e., limits and bounds such as fraction groups summing to one).

Stabilization Executes the engine for a specified time and checks that specified data(such as heart rate, tidal volume) stay stable within a specified percent fora specified amount of time. When the engine has reached this convergencepoint, it is considered to be stable.

370 SN Compr. Clin. Med. (2019) 1:362–377

Page 10: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

Git provides the ability to tag a certain version of the codeas a release. As new features are completed, tested, and vali-dated, the Pulse team will add a version tag to the repositorythat will allow users pull a completed version of the enginethat has passed the rigorous testing process. Release informa-tion is posted on the Pulse documentation site (https://pulse.kitware.com/).

Verification and Validation Suite

Verification and validation are critical to maintaining the qual-ity of open-source software. Pulse provides a comprehensiveset of unit tests for all of the algorithms provided by the com-mon software framework, including the circuit solver andsubstance transport algorithm. It is imperative that these fun-damental algorithms are tested to provide the necessary foun-dation for our physics-based models.

The majority of testing for the Pulse engine is completed viascenario integration tests. A scenario is a predetermined set ofactions over time and a set of requested system and compart-ment outputs. Each of the validation scenarios/cases used tovalidate the models and behavior of the engine must be testedto ensure the validated results are maintained when changes areimplemented in the software. The validated results are used as abaseline Bgold standard^ set of results. The Pulse test suite canread in a set of ~ 70 scenarios and execute them in parallel Pulseengines to output a file of comma separated values (CSV) of therequested outputs for every time step for every scenario. Thissuite of scenarios is executed prior to accepting a pull request ofa contributor wanting to add their modification to the PulseGitLab repository. The test suite automatically compares theresulting CSV files to the gold standard results. If the resultsvary by more than 2%, a flag is set noting a scenario failure. Allscenario failures or deviations are reviewed by the Pulse soft-ware team to determine if the changes are acceptable, resultingin a new gold standard file, or not. The test suite is downloadedas part of the Pulse build process and instructions for use areprovided in the documentation.

Hardware Integration

Many simulation technologies that use or plan to use the PulsePhysiology Engine execute on single-board computers(SBCs) that can be portable and small for optimal interationin their simulation framework. The Pulse software was testedon a variety of these systems to ensure that real-time executionof the physiology could be achieved. Boards using an ARMCortex-A series core were tested, including a BeagleBoneBlack, ASUS Tinker Board, ODROID XU4 with both anA15 and A7 processor, Raspberry Pi 3B, Dragonboard 410c,and a Firefly RK3399. The Pulse engine was compiled oneach board, and a basic scenario was executed. The run timefor 10 s of simulation time was recorded for each test.

Results

Pulse Physiology Engine

Model Validation

For the healthy (baseline) system models, both compartmentlevel (pressure, flow, and volume for each organ or region ofinterest) and clinical system level values (heart rate, respiratoryrate, cardiac output, tidal volume, and oxygen saturation) arevalidated by comparing to published values in the literature.The healthy models are quantitatively validated, and the erroris reported using a good (< 10%), fair (10–30%), poor (> 30%)scale. An example of the reported charts associated with theadult cardiovascular and respiratory systems can be found in[50, 51]. Similarly, the injury, disease, and treatment models arequantitatively validated at the system level, but not the compart-ment level because of a lack of available data at this level.

Feedback Mechanisms—Baroreceptors

The lumped-parameter models were executed for a basic hem-orrhage scenario. After 30 s, a hemorrhage was simulated at1000 mL/s for 30 s. The loss of 500 mL of blood causes theblood pressure to drop, which triggers the baroreflex response.The systemic vascular resistance and cardiac output increaseto drive up the blood pressure, as shown in Fig. 4. Thismatches the expected trends for a hemorrhage and baroreflexresponse [35, 52].

Pharmacokinetic/Pharmacodynamic Models

The PK/PD response for over ten drugs was validated usingdata from the literature. The calculated plasma concentrationwas compared to experimental plasma concentration found inthe literature. The comparison was completed across severalhours of simulation time for each drug, example results forFentanyl and Ketamine are shown in Fig. 5. The drugs werevalidated using data found in [53, 54]. The physiologic re-sponse to the drugs was also validated for each of the drugs.The body’s response to the drug was validated by comparingto data found in the literature. One example of the calculationafter a morphine injection is shown in Fig. 5. This matches theexpected trends as found in [55].

Hardware Integration

The results for the SBC simulation time are shown in Table 6.Only the BeagleBone Black was unable to complete the sim-ulation faster than real time.

SN Compr. Clin. Med. (2019) 1:362–377 371

Page 11: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

Case Studies—Community Adoption

Eshelman School of Pharmacy—nXhuman

TheUniversity of North Carolina Eshelman School of Pharmacyhas embarked on a project to develop a transformative, cutting-edge technology platform for virtual patients (Fig. 6). The intentis to accelerate students’ abilities to manage real-world patientcare, from pharmacologic and therapeutic knowledge to clinicaldecision-making and patient interaction skills. The project, la-beled nXhuman and funded by the Eshelman Institute forInnovation, relies on research-based best practices and thus seeksto involve the most recent innovative, openly available tools asits intelligence core. For modeling patient physiology, UNC hasselected the Pulse Physiology Engine.

nXhuman allows for complex parameters to be pro-grammed into each virtual patient (e.g., disease state, patho-physiology, environmental influences, and lifestyle choices)and also for showing how these patients present over timebased on disease progression, age, course of therapy, and ad-herence to treatment. A robust but adaptable physiology en-gine is thus critical to the successful use of the platform.Outcomes may occur at multiple levels depending on the sce-nario, including clinical outcomes (e.g., cure, clinical events,death), physiologic outcomes (e.g., blood pressure, heart rate),and biochemical outcomes (e.g., cholesterol levels). nXhumanscenarios are progressive, so that clinical decisions require in-creasingly complex reasoning as students gain knowledge andpractice skills. The platform facilitates analytics and reportingon student performance, thereby identifying gaps in knowl-edge and demonstrating changes in application of skills.

VPAW

The Virtual Pediatric AirwayWorkbench (VPAW) is a surgicalplanning tool for subglottic stenosis that incorporates threemajor components [56]. First, VPAW initiates with a CT scanof the patient and obtains a geometrical model through seg-mentation and surface reconstruction. Second, it employs acomputational fluid dynamics (CFD) engine based on aLattice–Boltzmann formulation, where fluid is modeled as par-ticles traveling in discrete directions. Exchanges of momentumand energy occur during collisions between particles and theboundary. This formulation is used to compute the airflow inthe nasal cavity. Finally, it also provides real-time geometricauthoring tools that allow surgeons to edit the tracheal geom-etry using a haptic device as part of the surgical planning. As aproof of concept, the open-source physiology engine wasinterfaced with VPAW [57]. The respiratory system of thephysiology engine is linked to the CFD model in VPAW viathe tracheal resistance in the lumped-parameter model. By cal-culating the respiration and oxygen saturation due to the ste-nosis, surgical planning can determine the optimal treatmentfor the overall physiologic health of the patient. This not onlyshows a strong proof of concept, but also exposes the possibil-ities and opportunities in advancing patient-specific surgicalplanning factoring in individualized physiology.

Pulse Explorer

Kitware has developed a new visualization tool built on theParaView platform to use and display the results of the PulsePhysiology Engine. The Pulse Physiology Engine Explorerallows the user to execute the anaphylaxis demo by beginningthe simulation with a healthy patient. Anaphylaxis is then sim-ulated by applying an airway obstruction that represents theblocked airways caused by swelling. The tidal volume dropsdue to a lack of airflow into the lungs. The lack of oxygen leads

0.94

0.96

0.98

1

1.02

1.04

5.1

5.2

5.3

5.4

5.5

5.6

5.7

0 50 100 150 200 250S

yst

emic

Vad

cula

r R

esis

tance

em

ulo

V d

ool

B

Time (sec)

BloodVolume(L)

SystemicVascularResistance(mmHg_s/mL)

5

5.1

5.2

5.3

5.4

5.5

5.6

5.7

5.8

72

74

76

78

80

82

84

86

88

0 50 100 150 200 250

Car

dia

c O

utp

ut

etaR trae

H

Time (sec)

HeartRate(1/min) CardiacOutput(L/min)

90

91

92

93

94

95

0 50 100 150 200 250

erusser

P d

ool

B

Time (sec)

MeanArterialPressure(mmHg)

Fig. 4 The baroreceptor response increases systemic vascular resistancein response to low blood pressure causing an increase in heart rate andblood pressure

372 SN Compr. Clin. Med. (2019) 1:362–377

Page 12: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

to falling oxygen saturation levels. This is visualized boththrough plotting the information and changing the color ofthe lungs to represent the change from pink healthy oxygenat-ed lungs to blue oxygen-deprived tissue. Epinephrine is thenadministered to the patient in the scenario. The vital signsrapidly recover in response to the drug. This is shown in theplots and the return of the healthy pink tone of the lungs. Thisdemo (Fig. 7) shows one example the physiologic modelingcapabilities of the engine and the meaningful information thatcan be communicated via the Explorer. Kitware plans furtherdevelopment of both the Pulse Physiology Engine and theExplorer to advance patient-specific modeling, training appli-cations, and clinical applications using physiologic models.

Closed-Loop Physiology Management System

Bucknell University has integrated the Pulse PhysiologyEngine into a system for investigating closed-loop physiologymanagement for critical care. The closed-loop systems beinginvestigated, known as Closed-Loop Assistants (CLAs) aredesigned to leverage medical device interfaces to add

computers/algorithms to the clinical care loop to aid indecision-making and to implement the automatic applicationof interventions. CLAs are intended to help clinicians managethe cognitive load that can arise as the complexity of patientmanagement increases. By incorporating patient physiologyinto the testbed, it is possible to perform early testing andvalidation of proposed interventions across a small patientpopulation [58]. This collaboration will further develop a pat-ent population that can be used for further testing of the inter-and intra-patient variability found in the initial studies.

Ventriculoperitoneal Shunt Performance

The University of Tennessee, Knoxville is developing ahigh-fidelity computational surrogate head model focusedon the ventricular system to optimize the performance ofventriculoperitoneal shunts. This cutting-edge simulation,funded through a National Institute of Health (NIH) R15grant, captures complex cerebrospinal (CSF) flow behavior,such as pulsation and transient effects induced by the open-ing and closing of the shunt valve, to better understand the

60

62

64

66

68

70

72

74

86

88

90

92

94

96

0 50 100 150 200 250

Blo

od P

ress

ure

(m

mH

g)

Hea

rt R

ate

(bea

ts/m

in)

Time (sec)

Mean Arterial Pressure Heart Rate

0

5

10

15

20

0 50 100 150 200 250

Res

pir

atio

n R

ate

(bre

ath

s/m

in)

Time (sec)

Morphine PD Effects

Expected: Mild Decrease

Expected: Marked Decrease0.0001

0.001

0.01

0.1

1

0 5000 10000 15000

)L

m/g

u( n

oitartnec

no

C su

one

V

Time (sec)

Fentanyl

Experimental Computed

100

1000

10000

0 2000 4000 6000 8000 10000

)L/

gu(

noitart

necn

oC a

msalP

Time (sec)

Ketamine

Experimental Computed

Fig. 5 The pharmacokineticmodel is validated by comparingthe calculated plasma/venousconcentration to experimental da-ta for each drug. The pharmaco-dynamic model is validated bycomparing the calculated physio-logic outputs to data from the lit-erature. For morphine, the ex-pected moderate drop in respira-tion rate and themild drop in heartrate and blood rate are observed

Table 6 Benchmark statistics forsingle-board computers Board ARM architecture # Cores Processor

clock speedRAM Average time

to simulate 10 s

BeagleBone Black A8 (ARMv7-A) 1 1 GHz 512 MB 30.75 s

ODROID XU4 A15/A7 (ARMv7-A) 4/4 2/1.3 GHz 2 GB 3.38 s

ASUS Tinker Board A17 (ARMv7-A) 4 1.8 GHz 2 GB 3.82 s

Raspberry Pi 3B A53 (ARMv8-A) 4 1.2 GHz 1 GB 8.75 s

DragonBoard 410c A53 (ARMv8-A) 4 1.2 GHz 1 GB 7.85 s

Firefly RK 3399 A72/A53 (ARMv8-A) 2/4 2/2 GHz 2 GB 3.35 s

SN Compr. Clin. Med. (2019) 1:362–377 373

Page 13: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

mechanisms of occlusion and shunt failure. Flexibility tovary the location of ventricular catheter insertion coupledwith advanced CFD methodology enables an unprecedentedcapability to explore the influence of shunting on intracrani-al pressure (ICP) and CSF circulation.

As well established by the Monro–Kellie hypothesis[59–63], ICP is a function of the volumes of brain tissue,CSF, and blood inside the fixed space defined by the skull.To revolutionize this research, the CSF model is beingcoupled with the cerebrovascular system using the PulsePhysiology Platform. Through the addition of a pressure com-ponent to the current three element Windkessel model of thecerebrovasculature, multi-scale evaluation of ICP will enableinvestigation of transient (i.e., elevated heart rate) and disease-state (i.e., high blood pressure) physiological conditions onshunt performance. In addition to globally quantifying the

essential cerebrovascular parameters for the local high-fidelity analysis of shunt function, the Pulse PhysiologyPlatform also provides an invaluable training capability toteach students about the effects of elevated ICP due to hydro-cephalus on the entire body.

Discussion

The scope of the Pulse community includes physiologic mod-elers and software and hardware developers that integratePulse into their own systems. To support this community,Pulse provides fully documented models, including the meth-odology, validation, and supporting data, and clear instruc-tions on how the software can be used and integrated by thirdparties. Also provided is in depth documentation exploring all

Fig. 6 nXhuman is an innovativeand powerful platform thatleverages the Pulse PhysiologyEngine to improve clinicaldecision-making

374 SN Compr. Clin. Med. (2019) 1:362–377

Page 14: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

aspects of the design and implementation of the Pulse archi-tecture, including system methodology, the common physiol-ogy interface, and the logical model description. These detailscan be found at https://pulse.kitware.com/.

Communication is essential for the community to under-stand, trust, and adopt the Pulse engine for their applications.Quick and helpful responses to questions and issues are a keyto supporting an open community of users. Pulse providesmultiple forums for end users to learn about new features

and ask questions to the Pulse team, including a forum, blog,wiki, issue tracker, and email.

Community users have successfully contributed changes tohelp build and execute Pulse on new target platforms, such asvarious aarch64 microprocessors. Users can submit pull re-quests that address issues and improvements for the software.Execution of the test suite is encouraged prior to submitting apull request. For help in submitting new models into the en-gine, including completing documentation, providing valida-tion scenarios, and data, and ensuring verification of existingscenarios due to changes in models, please contact the pulseteam ([email protected]).

Conclusions

Medical simulation is an important and growing segment thathas proven to be highly effective [2, 8, 64–66]. However, thedevelopment of training content and the purchase of expen-sive manikin hardware can be cost prohibitive. By providing arobust, stable, well-validated set of physiology models, theability to develop lower cost alternatives that provide highvalue training is greatly enhanced. The Pulse framework andarchitecture provide a means to rapidly expand the modelingcontent, maintain a well-validated set of models, and support agrowing community through software management, testing,and documentation. External contributions from collaboratorscan also be incorporated, while maintaining the high softwarestandards and practices established for the Pulse open-sourceproject. This will lead to the continued acceptance and inte-gration into commercial and research products.

All of the software is freely available for download and canbe used free of charge for commercial and research applica-tions under the Apache 2.0 license. More information can befound at physiology.kitware.com, and the source code isavailable at https://gitlab.kitware.com/physiology/engine.The Pulse Physiology Explorer source code is also availablefor download and can be used free of charge for commercialand research applications. The source code is available athttps://gitlab.kitware.com/physiology/explorer.

Acknowledgements We would like to thank our early team that workedon the BioGears engine, the precursor to Pulse. We would also like to thankour collaborators on the Case Studies, including Jared Vicory and CoryQualmann of Kitware, Lucas Potter of Old Dominion University, MichaelMesser, James Tiller, Jr., Heidi Jansje Collins, and CatherineMacAllister ofthe University of North Carolina—Chapel Hill, and Farooq Gessa ofBucknell University. We would also like to thank Matt Pang of Entropicfor his contribution to repository for compiling on ARM systems.

Funding information Initial work on the BioGears Engine (Pulse is afork of BioGears) was funded by the US Army Medical Research andMateriel Command and administered by the Telemedicine and AdvancedTechnology Research Center (TATRC), Fort Detrick, MD under contractnumber W81XWH-13-2-0068.

Fig. 7 The Pulse Physiology Engine Explorer provides an innovativeinterface to interact with Pulse simulations and outputs

SN Compr. Clin. Med. (2019) 1:362–377 375

Page 15: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

Compliance with Ethical Standards

Conflict of Interest The authors declare that they have no conflicts ofinterest.

References

1. Committee on Pediatric Emergency Medicine. Patient safety in thepediatric emergency care setting. Pediatrics. 2007;120(6):1367–75.

2. Henneman EA, Cunningham H. Using clinical simulation to teachpatient safety in an acute/critical care nursing course. Nurse Educ.2005;30(4):172–7.

3. Holcomb JB, et al. Evaluation of trauma team performance using anadvanced human patient simulator for resuscitation training. JTrauma. 2002;52(6):1076–8.

4. Lai F, Entin E, Dierks M, Raemer D, Simon R. Designingsimulation-based training scenarios for emergency medical firstresponders. Proc Hum Factors Ergon Soc Annu Meet.2004;48(15):1670–4.

5. Ricks J, Commander NTTC, Medical Simulation for Trauma Care.Combat and Casualty Care (tacticaldefensemedia.com). 2016 :16–17.

6. Calkins MAJMD, Robinson LTTD. Combat trauma airway man-agement: endotracheal intubation versus laryngeal mask airwayversus combitube use by Navy SEAL and Reconnaissance combatcorpsmen. J Trauma Acute Care Surg. 1999;46(5):927–32.

7. Barela TP. Mannequins help inprove casualty care. Hurlburt Field:US Air Force News; 2006.

8. Steadman RH, Coates WC, Huang YM, Matevosian R, LarmonBR, McCullough L, et al. Simulation-based training is superior toproblem-based learning for the acquisition of critical assessmentand management skills. Crit Care Med. 2006;34(1):151–7.

9. Adler MD, Trainor JL, Siddall VJ, McGaghie WC. Developmentand evaluation of high-fidelity simulation case scenarios for pedi-atric resident education. Ambul Pediatr. 2007;7(2):182–6.

10. Eppich WJ, Adler MD, McGaghie WC. Emergency and criticalcare pediatrics: use of medical simulation for training in acute pe-diatric emergencies. Curr Opin Pediatr. 2006;18(3):266–71.

11. Fehr JJ, Boulet JR, WaldropWB, Snider R, Brockel M, Murray DJ.Simulation-based assessment of pediatric anesthesia skills.Anesthesiology: J Am Soc Anesthesiol. 2011;115(6):1308–15.

12. BPulse Physiology Engine.^ [Online]. Available: https://physiology.kitware.com/. [Accessed: 07-Aug-2017].

13. BWelcome to BioGears!^ [Online]. Available: https://biogearsengine.com/. [Accessed: 07-Aug-2017].

14. Hester R, Brown A, Husband L, Iliescu R, Pruett WA, SummersRL, et al. HumMod: a modeling environment for the simulation ofintegrative human physiology. Front Physiol. 2011;2:12.

15. BCAE Healthcare.^ [Online]. Available: https://caehealthcare.com/patient-simulation. [Accessed: 07-Aug-2017].

16. BHumMod | The best, most complete, mathematical model of hu-man physiology ever created.^ [Online]. Available: http://hummod.org/. [Accessed: 07-Aug-2017].

17. Brown R, McIlwain S, Willson B, Hackett M. Enhancing CombatMedic training with 3D virtual environments. In: 2016 IEEEInternational Conference on Serious Games and Applications forHealth (SeGAH). IEEE; 2016. pp. 1–7.

18. Clipp RB, Scott G HumanSim: a physiology engine for the simu-lation of anesthesia/anaphylaxis training. in Military HealthResearch symposium 2012, 2012.

19. Lerant AA, Hester RL, Coleman TG, Phillips WJ, Orledge JD,Murray WB. Preventing and treating hypoxia: using a physiologysimulator to demonstrate the value of pre-oxygenation and the fu-tility of hyperventilation. Int J Med Sci. 2015;12(8):625–32.

20. BCAE PediaSim.^ [Online]. Available: https://caehealthcare.com/patient-simulation/pediasim. [Accessed: 18-Jul-2017].

21. BSimVascular.^ [Online]. Available: http://simvascular.github.io/.[Accessed: 05-Dec-2017].

22. BSimTK: OpenSim: Project Home.^ [Online]. Available: https://simtk.org/projects/opensim. [Accessed: 05-Dec-2017].

23. Abdi M, Karimi A, Navidbakhsh M, Pirzad Jahromi G, Hassani K.A lumped parameter mathematical model to analyze the effects oftachycardia and bradycardia on the cardiovascular system. Int JNumer Model Electron Networks, Devices Fields. 2015;28(3):346–57.

24. Liang F, Liu H. A closed-loop lumped parameter computationalmodel for human cardiovascular system. JSME Int J Ser C MechSyst Mach Elem Manuf. 2005;48(4):484–93.

25. Liang F, Liu H. A closed-loop lumped parameter computationalmodel for human cardiovascular system. JSME Int J Ser C MechSyst Mach Elem Manuf. 2005;48(4):484–93.

26. OlufsenMS,NadimA.On deriving lumpedmodels for blood flow andpressure in the systemic arteries. Math Biosci Eng. 2004;1(1):61–80.

27. Segers P, Stergiopulos N, Westerhof N, Wouters P, Kolh P,Verdonck P. Systemic and pulmonary hemodynamics assessed witha lumped-parameter heart-arterial interaction model. J Eng Math.2003;47(3/4):185–99.

28. Shim EB, Sah JY, Youn CH. Mathematical modeling of cardiovas-cular system dynamics using a lumped parameter method. Jpn JPhysiol. 2004;54(54):545–53.

29. Abram SR, Hodnett BL, Summers RL, Coleman TG, Hester RL.Quantitative Circulatory Physiology: an integrative mathematicalmodel of human physiology for medical education. Adv PhysiolEduc. 2007;31(2):202–10.

30. Hester R, Summers R, Iliescu R, Coleman T. HumMod: An inte-grative model of integrative biomedicine. Orlando: I/ITSEC; 2010.

31. Gebremichael Yet al. Integration of a spontaneous respiratory driv-er with blood gas feedback into BioGears, an apen-source, whole-body physiology model . In: Summer Biomechanics ,Bioengineering, and Biotransport Conference, 2015.

32. Swarm ZM et al. Modeling renal behavior and control in BioGears.In: Medicine meets virtual reality conference, 2016.

33. EnquobahrieA, et al. The image-guided surgery toolkit IGSTK: an opensource C++ software toolkit. J Digit Imaging. 2007;20(Suppl 1):21–33.

34. Olufsen MS, Nadim A, Lipsitz LA. Dynamics of cerebral bloodflow regulation explained using a lumped parameter model. Am JPhys Regul Integr Comp Phys. 2002;282(2):R611–22.

35. Ottesen J, Olufsen M, Larsen J. Applied mathematical models inhuman physiology. Denmark: Roskilde University; 2006.

36. Clipp RB et al. Integration of a baroreflex model into a whole bodyphysiology engine. In: Summer Biomechanics, Bioengineering,and Biotransport Conference, 2016.

37. Khalil F, Läer S. Physiologically based pharmacokinetic modeling:methodology, applications, and limitations with a focus on its rolein pediatric drug development. J Biomed Biotechnol. 2011;2011:907461.

38. Metoyer R et al. Multiscale simulation of insults and interventions:the BioGears showcase scenarios. In: Medicine meets virtual realityconference, 2016.

39. Rodgers T, Leahy D, Rowland M. Physiologically based pharma-cokinetic modeling 1: predicting the tissue distribution ofmoderate-to-strong bases. J Pharm Sci. 2005;94(6):1259–76.

40. Rodgers T, Rowland M. Physiologically based pharmacokineticmodelling 2: predicting the tissue distribution of acids, very weakbases, neutrals and zwitterions. J Pharm Sci. 2006;95(6):1238–57.

41. HuisingaW, Solms A, Fronton L, Pilari S.Modeling interindividualvariability in physiologically based pharmacokinetics and its link tomechanistic covariate modeling. CPT Pharmacometrics SystPharmacol. 2012;1(September):e4.

376 SN Compr. Clin. Med. (2019) 1:362–377

Page 16: Pulse Physiology Engine: an Open-Source Software Platform ... · The Pulse Physiology Platform is an open-source software application designed to enable accurate and consistent, real-time

42. Valentin J. Basic anatomical and physiological data for use in ra-diological protection: reference values. Ann ICRP. 2012;32(3–4):1–277.

43. Rosenbaum SE, editor. Basic pharmacokinetics and pharmacody-namics: An integrated textbook and computer simulations: JohnWiley & Sons; 2016.

44. Vladimirescu A. The SPICE book: John Wiley & Sons, Inc.; 1994.45. BngSPICE.^ [Online]. Available: http://ngspice.sourceforge.net/.46. Riggs DS. Control theory and physiological feedback mechanisms.

Huntington: Robert E. Krieger Publishing Company; 1976.47. Chung-Wen H, Ruehli A, Brennan P. The modified nodal approach

to network analysis. IEEE Trans Circuits Syst. 1975;22(6):504–9.48. Nic M, Jirat J, Kosata AJ, McNaught A. IUPAC compendium of

chemical terminology. Research Triangle Park, NC, 2009.49. Martin K, Hoffman B. Mastering CMake version 3.1. Kitware Inc,

2015.50. BRespiratory Methodology.^ [Online]. Available: https://

physiology.kitware.com/_respiratory_methodology.html.[Accessed: 26-Sep-2017].

51. BCardiovascular Methodology.^ [Online]. Available: https://physiology.kitware.com/_cardiovascular_methodology.html.[Accessed: 26-Sep-2017].

52. Hosomi H, Sagawa K. Effect of pentobarbital anesthesia on hypo-tension after 10% hemorrhage in the dog. Am J Phys. 1979;236(4):H607–12.

53. Xie H, Wang X, Liu G, Wang G. Analgesic effects and pharmaco-kinetics of a low dose of ketamine preoperatively administeredepidurally or intravenously. Clin J Pain. 2003;19(5):317–22.

54. Shankaran H, Adeshina F, Teeguarden JG. Physiologically-basedpharmacokinetic model for fentanyl in support of the developmentof provisional advisory levels. Toxicol Appl Pharmacol.2013;273(3):464–76.

55. Murray MJ, Edward Morgan G Jr., Mikhail MS. ClinicalAnesthesiology. Lange Medical. 4th ed. Books/McGraw-Hill;2006.

56. Quammen CW, et al. The virtual pediatric airways workbench. StudHealth Technol Inform. 2016;220:295–300.

57. Potter L, Arikatla S, Bray A, Webb J, Enquobahrie A. Physiologyinformed virtual surgical planning: a case study with a virtual air-way surgical planner and BioGears. In: Medical Imaging 2017:Image-Guided Procedures, Robotic Interventions, and Modeling(Vol. 10135). International Society for Optics and Photonics;2017. p. 101351T.

58. Gessa F, Asare P, Clipp RB, Bray A, Poler M. Towards a test andvalidation framework for closed-loop physiology management sys-tems for critical and perioperative care. Medical cyber physicalsystems workshop, 2018. Cyber-Physical Systems Week 2018.Porto, Portugal.

59. Gilkes CE, Whitfield PC. Intracranial pressure and cerebral bloodflow. Surgery. 2007;25(12):530–5.

60. Lee HS, Yoon SH. Hypothesis for lateral ventricular dilatation incommunicating hydrocephalus: New understanding of the Monro-Kellie hypothesis in the aspect of cardiac energy transfer througharterial blood flow. Med Hypotheses. 2009;72(2):174–7.

61. Oswal A, Toma AK. Intracranial pressure and cerebralhaemodynamics. Anaesth Intensive Care Med. 2017;18(5):259–63.

62. Partington T, Farmery A. Intracranial pressure and cerebral bloodflow. Anaesth Intensive Care Med. 2014;15(4):189–94.

63. Shardlow E, Jackson A. Cerebral blood flow and intracranial pres-sure. Anaesth Intensive Care Med. 2011;12(5):220–3.

64. Kovatchev BP, Breton M, Dalla Man C, Cobelli C. In silico pre-clinical trials: a proof of concept in closed-loop control of type 1diabetes. 2009: 44–55.

65. Jiang Z, Pajic M, Connolly A, Dixit S, Mangharam R. Real-timeheart model for implantable cardiac device validation and verifica-tion. In: 2010 22nd Euromicro Conference on Real-Time Systems.IEEE; 2010. p. 239–48.

66. Bauman EB. Game-based teaching and simulation in nursing andhealth care. New York: Springer Publishing Company, LLC; 2013.

Publisher’s Note Springer Nature remains neutral with regard to jurisdic-tional claims in published maps and institutional affiliations.

SN Compr. Clin. Med. (2019) 1:362–377 377


Recommended