Introduction

“Personalized medicine” is the current medical philosophy geared towards “...medical decisions, practices, interventions and/or products being tailored to the individual patient based on their predicted response or risk of disease” [1, 2]. By following a patient-specific, tailored approach to medical care it is expected that side effects decrease while the efficacy of therapies increases. Given this basic concept, the applications of personalized medicine span a wide array of medical specialties. While the emphasis has been placed, in recent years, towards genome-based personalization [3] (given the exponential development of genomic techniques), this emphasis does not in fact exhaust all possible ways in which therapy can and should be customized to the needs of the single patient under observation.

Another relatively recent approach to the assessment of the peculiarities of each patient’s response to medical intervention has been the use of mathematical and computer modelling techniques [4]. These have also undergone an exponential development over the past few years [5], due to the technological progress making cheap computing power widely available, supporting in this way time-honored mathematical tools, such as dynamical systems and different kinds of differential equations, with modern numerical model simulation and identification.

One application of these patient-specific model identification approach occurs in the preparation and in the decision support for mass emergency crises [6, 7]. In the heat and urgency of a major incident involving hundreds of victims, under the heightening pressure of insufficient resources, logistic problems, escalating death counts and public opinion, the availability of computer decision support tools (able to model, identify and track the pathophysiology of each one of the many wounded or intoxicated patients) represents a major leap forward in our ability to deliver pertinent, reasoned, prioritized care, customized to the real needs of each individual person [8] seeking medical attention.

In the field of person-specific modeling, recent attention has been devoted to the particular case of trauma incidents [9]. In this context, this paper presents an integrated platform for the in-silico simulation of trauma incidents, based on a suite of interacting mathematical models. The models cover the generation of a scenario for an incident, a model of physiological evolution of the affected individuals, including the possible effect of the treatment, and a model of evolution in time of the required medical resources. The problem of optimal resource allocation is also investigated. Model parameters have been identified according to the expertise of medical doctors (such as emergency surgeons and trauma experts) and by reviewing some related literature. The models have been implemented and exposed as web services, while some software clients have been built for the purpose of testing.

Our suite of models has been originally conceived for an application to disaster medicine [10]. In particular, modifications of the models presented in this paper represent the cornerstone of the decision support systems developed in the European funded projects IMPRESS [24] and PULSE [25]. Anyway, beyond the results developed in the context of projects, our framework provides a basic layer for the generation of the scenario of an incident (with randomly sampled data, in the case when data from the field are not available) and the prediction of the evolution of the patient conditions and the related resources, in the presence of health care, not limited to the occurrence of a major incident. As a consequence, due to its extendability, our integrated platform highlights the potential of model-based simulation and can be easily extended and readapted in other health-related fields, such as chronic diseases [11], Personal Health Systems [12], Pervasive Health [13] and Internet of Things [14]. To this aim, it is sufficient the design of a mobile app/device, with Internet connectivity in order to call our suite of web services, and exploit the results properly in the different settings.

We also mention that a peculiar feature of our modeling suite is that, in a context of integrated simulation with many affected people, it enables the management of the health care resources and a prediction of their evolution in time. This makes simulations more realistic in a crisis scenario, since it is not possible (in general) to provide the best therapy to all the patients in condition of limited resources. Furthermore, an important related problem is the prediction of the hospital surge capacity, defined as “a term of art referring to the ability of a hospital in a mass casualty incident to augment bed availability by maximizing resources and discharging as many patients as safely possible” [15]. Our platform provides an answer to these problems by means of a simple logistic model, interacting with the aforementioned patient model to possibly quantify in real-time the resource consumption due to the health care delivery and their possible increase due to surge capability.

Of course, the use of models in real contexts poses the fundamental issue of validation and overall evaluation of the system, which is a very important problem whose solution is complex and out of the scope of the present work. Clearly, simulations of the models at the present stage do not allow to infer conclusions about the performance of the health system, which depends on the real amount of resources available, on their geographic position, as well as on the intensity of the incident and other temporary factors (traffic conditions, etc.). On the other hand, evaluation and validation are fundamental issues and are deeply addressed by aforementioned FP7 European projects PULSE [25] and IMPRESS [24], which address, in different ways, the construction of Decision Support Systems (DSS), which call customized versions of our models (according to the client-server paradigm mentioned above and better described in the paper), based on real-time data (coming from the field) and use the returned information to help personnel take the right decision in a emergency context with hard time constraints.

In the context of those projects, some table-top exercises and live demos have been organized to test the system and stress the medical services in realistic conditions, with the aim of evaluating the results in presence and in absence of model-based decision support. We here mention the IMPRESS demo, which took place in Palermo (Italy) in June 2016, with the participation of about 600 people and involving National Health Service, Emergency Services, Red Cross, Coast Guard and Civil Protection, which evaluated the response of the health system to a ship explosion (a combination of chemical and trauma incidents) producing sudden release of toxicants in the zone of Palermo harbor [24]. The PULSE live demo took place in Cork (Ireland) in September 2016 aiming at testing the performance of a different decision support platform in the context of a stadium-crush scenario during a concert [25]. Evaluation results from the PULSE and IMPRESS projects are still not available, but the interested reader is referred to the material available on the websites of the projects.

A preliminary version of the models (limited to the physiological evolution) has been presented in the conference publication [16]. With respect to that work, this paper addresses also the generation of the scenario of a trauma incident, the model of the resource evolution, the problem of resource allocation and the client-server implementation. With respect to the patient and health care model, the present paper illustrates a novel interpretation in terms of a hybrid dynamical system [17], and provides some sample tables of parameter values, resulting from interviewing medical doctors and emergency surgeons working at the Catholic University of Sacred Heart.

The paper is structured as follows: “Trauma incident scenario generation” describes the scenario generation of a trauma incident, “Patient and health care modelling” illustrates the model of patient and health care, “Resource modelling” addresses the resource evolution model and “Resource allocation in an integrated simulation” addresses the problem of optimal resource allocation. “Implementation and preliminary simulations” describes the principles of the client-server implementation of the models and some preliminary simulations, while “Concluding remarks and future work” offers concluding remarks and poses some ideas for future research work.

Trauma incident scenario generation

The description of the modeling platform starts from the scenario generation, which consists in the generation of the first frame (initial condition) for the evolution of the models that will be described later.

We consider a possible set of trauma incidents:

  • motorway accident;

  • bridge collapse;

  • ship explosion;

  • train crash;

  • stadium crush;

and we consider 6 possible trauma zones, which correspond to the regions of the human body usually considered in the evaluation of the Abbreviated Injury Scale (AIS) [18]:

  • Head/neck

  • Face

  • Chest

  • Abdomen

  • Extremities

  • External

to which we assign some estimated probabilities of occurrence, which depend on the type of incident. Table 1 includes reasonable values for a stadium incident.

Table 1 Estimated probabilities of lesion occurrences for a stadium incident

The scenario generator takes, as inputs, the number of total number of “bystanders”, a size of the incident (which affects the average ratio of injured people over the total number of bystanders), the spatial coordinates of the incident and its physical dimensions (to consider the area beyond which there are no people affected).

A random number of injured people (virtual patients) is then generated over the total number of bystanders, depending (on average) on the prescribed size. The affected people have individual spatial coordinates and are randomly distributed over the given area, according to some spatial probability density depending on the kind of incident. Accordingly, affected individuals have in general different distances from the incident location.

Each virtual patient is generated with independently sampled random lesions. A degree of severity (a number in the real interval [0,1]) is associated to each lesion, with the following properties:

  • it is decreasing (on average) with the distance of the person from the incident;

  • it depends on a random individual component.

Future versions of the model will take into account conditional dependences among different lesions.

Patient and health care modelling

This section describes a model of the physiological evolution of the patient conditions, as a consequence of a trauma incident and with the possible presence of therapies. It constitutes the core of our modeling platform, due to its tight interaction to all the other modules.

Table 2 Maximal instantaneous damages Δ and damage rates α (expressed in [ 1/h]) for the considered trauma lesions and some physiological variables

In agreement with the ABCDE Primary Survey and Resuscitation [19], there are only five main ways to die, from fatal complications involving: Airways (A), Breathing (B), Circulation (C), Disability of Nervous System (D), Extra Damage or Exposure (E). Accordingly, the dynamic model of an individual affected by an incident consists in a set of 10 normalized physiological variables, based on the ABCDE paradigm:

  1. (A1)

    airway patency: intact, at risk, partially obstructed, or completely obstructed;

  2. (B1)

    respiratory rate and drive;

  3. (B2)

    tidal volume and mechanics;

  4. (B3)

    oxygen saturation and transport;

  5. (C1)

    heart pump function;

  6. (C2)

    circulation filling and resistances;

  7. (D1)

    central nervous system function, Glasgow Coma Scale (GCS);

  8. (D2)

    seizures;

  9. (D3)

    cholinergic activity;

  10. (E1)

    exposure, hypothermia, burns.

Despite its simplicity, the 10 physiological variables capture some major characteristics of interest for the health evolution of a person involved in a trauma incident.

We consider 20 state variables, given by a vector x of 10 normalized physiological values (with values in [0,1]) and a vector v of 10 velocities (rates of change, with values in \(\mathbb {R}\)), for the 10 physiological variables. Vectors x and v may be also referred to as “positions” and “velocities”, by analogy with kinematic systems. The physiological value 1 indicates full health (100 %), while 0 indicates the physiological value under which the individual conditions are compromised (death).

As a modeling framework, we rely on the formalism of (Stochastic) Hybrid System [17, 20], which we readapt here with the purpose of keeping the notation as simple as possible. Hybrid Systems allow to describe, in particular, impulsive differential equations, i.e. dynamical systems with a continuous dynamics (flow, represented as a vector field F) and a discrete number of discontinuities in time (jumps or resets, modelled by the jump function G), due to events (or transitions) that can be controlled or uncontrolled (either non-deterministic or stochastic) or due to the state variables reaching the boundary of their domain.

Our model considers a simple model of continuous evolution, described by the continuous flow function F:

$$ F: \left\{\begin{array}{ll} \dot{x} & = v \\ \dot{v} & = \mathbf{0} \end{array}\right. $$
(1)

and with initial (nominal) condition x(0) = 1, v(0) = 0, where 1 and 0 are the 10-dimensional vectors of ones and zeros, respectively. Note that the initial condition is an equilibrium of Eq. (1), corresponding to full health.

It is readily seen that the velocities do not change, except at the event times. As a consequence, the velocities in v are piecewise constant functions of time, while the physiological variables in x are piecewise linear. The values of discontinuities at the event times are determined according to the jump/reset function G:

$$ G: \left\{\begin{array}{l} x^{+}= \text{sat}_{[0,1]} \left( x+ {\Delta} \right) \\ v^{+}=v+ \alpha \end{array}\right. $$
(2)

where x + and v + indicate that the next values of x and v as a function of current states, Δ and α are dependent of the kind of transition, and sat[0,1] is the component-wise saturation operator in the interval [0,1]. We consider 2 types of events/transitions:

  • incidents: this is a case of (Δ,α) being negative, to model the effect of the lesions affecting the individual (see “Trauma incident scenario generation”);

  • health care: this is a case of (Δ,α) being positive, to model the effect of the therapies on the individual (see also “Resource modelling”);

Some remarks are in order: incident transitions are uncontrolled, i.e. they are considered as external events. In this case, the values (Δ,α) in the reset function (2) have a stochastic characterization, depending on the lesions and severities sampled at the incident generation (see “Trauma incident scenario generation”). In our framework, there is typically just one incident event at the beginning of the simulation, but the model supports multiple incidents without loss of generality. In this case, the model would follow the superposition principle, with linearly increasing and additive response to damages. Table 2 includes the maximal instantaneous damages Δ and the maximal damage rates α for the considered trauma lesions and some physiological variables. For the general cases of a patient affected by several lesions, the values of (Δ,α) in the reset function (2) will be computed as the sum of the (Δ,α) of the corresponding lesions, weighted by their severities.

On the other hand, health care transitions are controlled since they occur at times which are depending on the decision of the Health Care System and on the actual therapy chosen for a patient. In this case, Δ and α in (2) are the vectors of variations induced on the physiological variables by the considered therapy. Table 3 includes the instantaneous improvements Δ and healing rates α for the some therapies and some physiological variables. Symmetrically to the case of multiple lesions, one can consider health care resources that are able to deliver multiple therapies at once (see “Resource modelling”). In this case, the values of (Δ,α) in the reset function (2) will be computed as the sum of the (Δ,α) of the therapies provided by the health care resource allocated to the individual.

Table 3 Maximal instantaneous improvements Δ and healing rates α (expressed in [ 1/h]) for the some therapies and some physiological variables

The second kind of discontinuity in (1) is given by the state-dependent transitions, which we formalize as follows:

$$ G_{x}: \left\{\begin{array}{ll} v^{+}_{i}=0 & \text{ if } (x_{i}==0 \text{ } \&\& \text{ } v_{i}<0) \\ &\text{ or } (x_{i}==1 \text{ } \&\& \text{ } v_{i}>0) \text{ for some } \textit{i}. \end{array}\right. $$
(3)

The conditions posed in Eq. (3), called guard conditions in the context of hybrid systems, guarantee the invariance of state vector x in the set [0,1]10. This kind of transition corresponds to the cases of either completely damaged or perfectly restored physiological variable, namely it may occur either when a physiological value x i reaches its lower bound 0 due to a lesion (v i <0), or when a physiological value reaches its upper bound 1 due to a therapy (v i >0), respectively. In both cases, the jump function resets the velocity v i to the null value, hence preventing the physiological value x i from leaving its domain [0,1].

We complete this section by defining a patient scoring (color code) function. The patient scoring (which can be assimilated to a triage code) provides a more qualitative information with respect to the physiological continuous variable; nevertheless, this score is important in medical decision making because it gives an order of priority for the intervention on affected individuals, especially when the resources are not enough to satisfy the demand (see next section).

We preliminary define the expected time of death (ETD) as

$$ ETD= \left\{\begin{array}{ll} \underset{i=1,...,10}{\min\limits_{v_{i}<0}}-\frac{x_{i}}{v_{i}} & \text{ if } \min\limits_{i=1,...,10} x_{i} >0 \quad \&\& \text{ } \min\limits_{i=1,...,10} v_{i} <0 \\ \hspace{5mm} 0 & \text{ if } \min\limits_{i=1,...,10} x_{i} =0 \\ \hspace{3mm} +\infty & \text{ otherwise} \end{array}\right. $$
(4)

which is the minimum time (in hours) taken by each physiological variable to reach its lower bound. ETD can be regarded as the continuous output y = E T D(x,v) of the hybrid model (1)–(3), depending just on the continuous state. Then, we define some intervals of interest for the ETD:

$$ ETD \left\{\begin{array}{ll} \in [0,ETD_{b}) & \Rightarrow \text{Black code}\\ \in [ETD_{b},ETD_{r}) & \Rightarrow \text{Red code}\\ \in [ETD_{r},ETD_{y}) & \Rightarrow \text{Yellow code}\\ \in [ETD_{y},+\infty) & \Rightarrow \text{Green code} \end{array}\right. $$
(5)

where E T D b =0.1 (6 minutes), E T D r =0.5 (30 minutes) and E T D y =6 (6 hours) are possible threshold values of the ETD under which the color code is considered black, red, yellow, respectively. Note that the color code abstracts into a set of 4 possible values the information of the continuous state, so it could be also restated as a mode of behavior (or discrete state) for the physiological model. This introduces additional state-dependent jumps depending on the progressive worsening of the color code in absence of health care.

Figure 1 illustrates and summarizes the model described so far. Some formalism is skipped for the sake of clarity, in particular transitions from any discrete state to discrete state are allowed (driven by incidents and health care delivery), including self-loops on the discrete states.

Fig. 1
figure 1

Illustration of the hybrid system describing the patient and health care model. The aggregated vector (x,v) denotes the continuous state, while y is the continuous scalar output representing the ETD. There are 4 modes or discrete states associated with the color codes. The initial condition is indicated by an ingoing arrow on the green mode. State-dependent, uncontrolled and controlled transitions are denoted by dash-dotted, dashed and solid arrows, respectively. The guard conditions governing the state-dependent transitions are indicated by square brackets. The jump functions (resets) for controlled/uncontrolled transitions are included in boxes. The effects of incidents and health care delivery correspond to negative and positive values for the entries in (Δ,α), respectively

A possible evolution starts from the initial condition (x,v)=(1,0), which is an equilibrium point of the system, until an incident occurs. An incident causes in general an uncontrolled transition (dashed arrow) into another state (for example corresponding to a yellow color code). Further state-dependent transitions (dash-dot arrows in the figure) into red and black codes are possible, as long as the patient keeps worsening in absence of therapies. At some time(s), one or more therapies are delivered (controlled transitions, solid arrows), so that the continuous state is reset (by means of the pair (Δ,α)) and the color code shows an improvement. The evolution will go on until either the healthy equilibrium (x,v)=(1,0) is restored or the death equilibrium (x,v)=(0,0) is reached.

Resource modelling

As described in the previous section, therapies are usually provided by health care assets or resources, which provide more than a therapy at the same time. An example is given in Table 4 for a subset of possible resources and therapies. Additionally, in an integrated simulation, health care resources (including hospitals) have a physical position, hence a relative distance from the incident, which affects the minimum possible delay in providing the health care. Last, but not least, a therapy can be provided only if a resource is available and able to deliver such a therapy. A model of logistic evolution of the health care resources is then necessary to take into account the health care needs. This is object of this section.

Table 4 Logical matrix of health resources vs. included therapies, for a subset of resources and therapies

The optimal dispatch of the injured people according to the spatial position/availability of the resources (and also traffic condition) in a major incident goes beyond the scope of the present paper, mainly because the problem can be easily solved in real-time contexts by means of numerical solvers implementing (approximated) minimum-path strategies. Instead, our resource modeling currently focuses on two different aspects:

  • the total number of resources increases in time, since (depending on the severity of the incident) a number of additional health assets can be made available after the occurrence of the event (hospital surge capability [15]);

  • the number of allocated resources varies in real-time during the incident management (up to 12-24 hours from it) according to the number of affected people, their lesions, and the kind of therapies they require (see “Trauma incident scenario generation”–“Patient and health care modelling”).

While the current level of allocated resources can be easily tracked by the local health services and electronic records (and it is difficult to model a priori, mainly because of lack of information and general assumptions), the prediction of the total number of resources can be performed according to the following model, based on a Hill function:

$$ L(t)=\left\lfloor L_{0}+ {\Delta}_{\max} \frac{(t-t_{0})^{\gamma}}{(t_{50}-t_{0})^{\gamma}+(t-t_{0})^{\gamma}} \right\rfloor \qquad t \geq t_{0}, $$
(6)

where ⌊⋅⌋ indicates the largest previous integer and

  • t 0 is the initial time;

  • L 0 is the nominal amount of resource at the initial time t 0;

  • Δ10 = L 0 is the nominal increase of the resource corresponding to the value n u m_a f f e c t e d=10, where n u m_a f f e c t e d denotes the total number of injured people;

  • \({\Delta }_{\max }={\Delta }_{10} \log (num\_affected)\) is the maximal increase of the resource;

  • t 50 is the time required to reach half of the maximal increment of the resource;

  • γ affects the steepness of the function, in particular the rate of increase of the resource around t 50.

Note that the previous model considers assets with integer values and assumes that the larger is the number of affected people, the more additional resources can be made available, which is a common assumption in surge capacity modeling. The current level of resources available for further allocation is given by the difference between L(t) and the number of already employed assets.

Possible trends for the Hill function, for different parameters and same initial values, are illustrated in Fig. 2. Alternative choices, such as sigmoid (logistic) functions, are also possible. A sample of the parameters fitted for the Hill case can be found in Table 5.

Table 5 Critical resources to be increased for some health resources involved in a trauma incident scenario
Fig. 2
figure 2

Examples of trends for the Hill function and different parameter values

Resource allocation in an integrated simulation

In the previous two sections, we studied two independent models of evolution for the individual patient conditions and for resources availability. While, as already mentioned, a full integration of those models for the goal of decision support is out of the scope of the present work, in this section we provide some insights into the problem of the optimal allocation of the available resources with respect to the health care needs of the affected people.

Consider an incident involving N people and with M different types of resources available. Given a patient characterized by a health condition (x,v) at some time t, we define for each resource j characterized by a pair of vectors (Δj,α j) (see “Patient and health care modelling”) the quantities (letters “ET” stand for “expected time”)

$$ ETD_{j}(x,v)= \left\{\begin{array}{ll} \underset{i=1,...,10}{\min\limits_{v_{i}+{\alpha^{j}_{i}}<0}}-\frac{x_{i}+{{\Delta}^{j}_{i}}}{v_{i}+{\alpha^{j}_{i}}} & \text{ if } \min\limits_{i=1,...,10} x_{i} >0 \quad \&\& \text{ } \min\limits_{i=1,...,10} v_{i}+{\alpha^{j}_{i}} <0 \\ \hspace{5mm} 0 & \text{ if } \min\limits_{i=1,...,10} x_{i} =0 \\ \hspace{3mm} +\infty & \text{ otherwise} \end{array}\right. $$
(7)
$$ ET90_{j}(x,v)= \inf \{ t\geq 0 : x_{i}+{{\Delta}^{j}_{i}}+(v_{i}+{\alpha^{j}_{i}}) t \geq 0.9 \quad \forall i=1,...,10\} $$
(8)
$$ ET90_{j}^{+}(x,v)= \inf \{ \bar t\geq 0 : x_{i}+{{\Delta}^{j}_{i}}+(v_{i}+{\alpha^{j}_{i}}) t \geq 0.9 \quad \forall i=1,...,10 \quad \forall t\geq \bar t\} $$
(9)

Some comments are in order. The definition of E T D j (x,v) generalizes the one of expected time of death ETD in Eq. (4) when the resource j is applied to a patient characterized by the pair (x,v). Instead, E T90 j (x,v) represents the first time at which the considered individual shows at least the 90 % of health status on all the physiological variables. In this sense, E T90 j (x,v) is a good indicator of the patient health within a short time horizon, but it does not ensure that the patient conditions will not drop under 90 % in the future. Hence, we also define a permanent recovery time \(ET90_{j}^{+}(x,v)\geq ET90_{j}(x,v)\), representing the time after which the patient conditions stay definitively above the 90 % threshold.

The previous definitions allow to prioritize the resources for a given patient according to different concepts of optimality, in particular by choosing the resource maximizing the expected death time ETD or minimizing the recovery time E T90 or E T90+. Hence, one can define three M-dimensional vectors RD, R90 and R90+ including the required amount of each resource type in the three cases:

$$\begin{array}{@{}rcl@{}} RD_{j} & = &\left\vert \left\{ l_{k}= \min\left\{\arg \sup_{\bar j =1,...,M} ETD_{\bar j}(x^{k},v^{k})\right\}: \quad l_{k}=j, \quad k=1,...,N \right\} \right\vert, \quad j=1,...,M, \\ R90_{j} & = &\left\vert \left\{ l_{k}= \min\left\{\arg \inf_{\bar j =1,...,M} ET90_{\bar j}(x^{k},v^{k})\right\}: \quad l_{k}=j, \quad k=1,...,N \right\} \right\vert, \quad j=1,...,M, \\ R90^{+}_{j} & = &\left\vert \left\{ l_{k}= \min\left\{\arg \inf_{\bar j =1,...,M} ET90^{+}_{\bar j}(x^{k},v^{k})\right\}: \quad l_{k}=j, \quad k=1,...,N \right\} \right\vert, \quad j=1,...,M. \end{array} $$
(10)

For simplicity, in the case of multiple optimizers in the expressions above, we choose the asset of minimal index and the generic patient k is characterized by the state (x k,v k).

The previous computations determine the vectors of resources needed and are useful in an non-critical setting where resources are not limited and the geographic distance of the resources from the affected is not considered. In this case, it is again possible (in principle) to resort to constrained joint optimization (at the expense of higher computational complexity) in order to achieve a suboptimal allocation.

In more realistic situations, logistic factors, traffic conditions and actual limited resource availability play an important role in determining the optimal resource allocation, since one needs also to take into account the worsening of the patient conditions by the time the therapies are delivered. In this case, the resource evolution model in Eq. (6) can be employed to increase the expected availability of assets at future times. A formal integration of these models will be object of future investigation.

The aforementioned non-idealities are difficult to include formally in the model but are easier to test in a simulation setting, by assuming limited resource availability. This will be briefly illustrated in a simulation in the next section. Full integration of the models and their use in a comprehensive live simulation in real settings are briefly discussed in the Introduction and in the final remarks of this work with reference to the projects IMPRESS [24] and PULSE [25].

Implementation and preliminary simulations

The object of the present section is to illustrate the implementation architecture for the modeling platform explained in the previous part of the article and to show preliminary simulation results for the models described above.

To this aim, Fig. 3 shows a schematic description of the architecture, which follows a simple client-server paradigm: the scenario generator and the models have been implemented by means of web services, running on a LAMP (Linux-Apache-MySQL-Php) server running on a workstation in the CNR-IASI Biomathematics Laboratory, located in the Gemelli Hospital in Rome, Italy. The syntax and the input-output description of each service, in terms of number and type of input-output parameters, is contained in the Web Services Description Language (WSDL) file, publicly available at the web address http://biomat1.iasi.cnr.it/webservices/master/webservice.wsdl.

Fig. 3
figure 3

Client-server architecture of the CNR-IASI modelling platform

With the aim of exploiting the functionalities of the web services, it is possible to build some software clients, which connect to the CNR-IASI server by feeding the required inputs and retrieving the output resulting from the computation of the running models (not limited to those described in this paper). The exchange of information between client and server occurs by means of the XML (eXtensible Markup Language) [21] language according to the SOAP protocol (Simple Object Access Protocol), which is often employed to exchange information over computer networks in a structured way [22]. A major feature of SOAP is the independence from any programming model, which allows to write clients in any programming language, provided they are able to exchange XML-based information with the server by means of SOAP.

For the purpose of testing of the basic functionalities of the modeling web services, we implemented some clients in the Java language [23] in Netbeans IDE. Figures 45 and 6 provide some screenshots of the clients calling the functionalities of Scenario generator (ScenGen.php), Patient and Health Care modeling (SickEvo.php and StatScoring.php) and Resource evolution prediction (LogEvo.php).

Fig. 4
figure 4

A Java client for the Scenario generator

Fig. 5
figure 5

A Java client for the Patient and Health Care model, involving also the triage (color code) functionality

Fig. 6
figure 6

A Java client for the Resource model

Figure 4 shows the generation of a scenario, with a number of bystanders equal to 500 and low ratio of affected people. The spatial coordinates are in the zone of Rome and the minimum delay estimated to provide the health care is around 30 minutes. The system generates 17 injured people, with different lesions, and 3 red codes.

Figure 5 addresses the Patient and Health Care model (web service). An individual with a damage in the variable B3 (Oxygen Saturation) is evaluated as a yellow code. An appropriate therapy is chosen and the conditions are evaluated again after 1 hour, resulting in a green code since the functionality is completely restored.

Figure 6 illustrates the Resource evolution modeling service. A subset of inputs (number of affected people and prediction interval) is entered and the availability of resources in a high-level trauma center is evaluated; according to the model, the number of emergency rooms is estimated to increase from 2 to 4 units within the prediction interval (12 hours).

We conclude this section by describing simulations obtained running some of the models described in the theoretical part, and whose results are briefly synthesized in the plot in Fig. 7. We ran the scenario generator illustrated in “Trauma incident scenario generation” to build 500 affected people in a severe incident, at different distances from the event location. The average status of the patients right after the event is around 50 % (by computing the mean of the 10 physiological variables).

Fig. 7
figure 7

Simulation results for the evolution of the patient-health care model applied to 500 individuals affected by lesions in a major incident. The curves are averaged with respect to the 10 physiological values and to the 500 persons. Resources are allocated to maximize the expected time of death in an ideal setting (unbounded resources, blue solid line) and in a more realistic setting (limited resources, black dashed line). The average trajectory in absence of health care is also shown (red dash-dotted line)

At this point, the patient model in “Patient and health care modelling” is called in absence of therapies. The average of the individual linear trajectories results in a linear monotonically decreasing average health trajectory (red dash-dotted line in Fig. 7). We note that after 1 hour, the average patient condition drops under 30 %, implying that the absence of health-care delivery within a couple of hours would result in the health status of the population to be completely compromised.

Then, as described in “Resource allocation in an integrated simulation”, the optimal allocation of the resources is computed by maximizing the individual expected time of death (7) and assuming no bounds on the availability of assets. The health care is allocated at different random times for all the individuals, depending on their positions, with the aim of simulating the delays due to different asset locations, transportation of affected to the hospitals, etc. This explains the cumulative behavior being nonlinear as a consequence of the progressiveness in delivering the health care. The average health exceeds the 80 % after 1 hour in the optimal allocation (blue solid line in Fig. 7).

Finally, we consider a case where resources are limited, and about the 70 % of the health-care is provided optimally, while the remaining 30 % of the remaining individuals are queued or managed by means of sub-optimal resources. In this case, the health system is able, however, to increase (after an initial drop) the average patient condition, which reaches the 65 % after 1 hour (black dashed line in Fig. 7).

Concluding remarks and future work

In this work, we presented a suite of interacting models for the in-silico simulation of trauma incidents. The models address the generation of the scenario, the physiological evolution of the affected people, also in presence of therapies, the prediction of the evolution of the health care assets and the problem of resource allocation, possibly in conditions of limited amount of resources (as often occurs in major incidents). Parameters have been tuned thanks to the expertise of physicians working in the fields of emergency and trauma, with the possibility of further refinement. On top of the modeling layer, the implementation is based on a client-server paradigm, according to which the models (available in form of web services) are accessible via Internet and called by software clients via SOAP protocol. Preliminary simulations are also included.

Since the underlying physiological model is very general (based on the ABCDE paradigm), the modeling platform looks very promising for the possible extension to different kinds of medical issues with respect to the considered trauma incidents, involving e.g. chronic diseases and personalized health systems. We note that the provided web services, covering a large number of modeling functionalities (not limited to those described in this article) are ready to be employed as a basic modeling layer for e.g. apps, personalized health systems and wearable devices for remote health monitoring (pervasive health applications).

Some related ideas are currently being studied and will be object of future research effort: the scenario generator will address multiple non-instantaneous events, the patient model will be upgraded to include further sources of damage (generalizing the concept of lesion) and to consider coupled effects on the physiological state; a function for the random generation of symptoms from the current state and damages will be implemented.

Finally, the problem of validation is under investigation, including tests in realistic conditions, allowing for a further refinement of models and parameters. With respect to this point, the proposed models (with some modifications) are already being used in the context of two funded projects, aiming at evaluating the response of health systems to major incidents in the context of live demos, with and without model-based decision support.