Pulse adds COVID-19 Simulation Support
×
Scenario Files

The engine can be used to simulate various physiological scenarios. The Common Data Model (CDM) provides a Scenario structure that can contain a set of instructions that can be used to drive the engine. Below you can see how the content of a JSON scenario file is structured along with examples of all the actions, conditions, assessments supported

A Scenario is a 'canned' instruction set with requested data to be output in a comma delimited file that is executed by the engine and will produce the same results data. 'FATAL' is used below to note boundary cases that will result in a fatal exception, stopping the engine.

If you would like execute scenarios, the CDM contains a class, SEScenarioExec, that can execute any scenario with a physiology engine that implements the PhysiologyEngine interface. The Toolkit, also provides example scenario files and can also execute scenario files.

An example of a basic scenario file is shown below.

{
"Name": "Vitals Monitor",
"Description": "Data associated with a vitals monitor.",
"PatientConfiguration": { "PatientFile": "StandardMale.json" },
"DataRequestManager": {
"DataRequest": [
{"DecimalFormat":{"Precision":2}, "Category":"Physiology", "PropertyName":"HeartRate", "Unit":"1/min"},
{"DecimalFormat":{"Precision":1}, "Category":"Physiology", "PropertyName":"ArterialPressure", "Unit":"mmHg"},
{"DecimalFormat":{"Precision":1}, "Category":"Physiology", "PropertyName":"MeanArterialPressure", "Unit":"mmHg"},
{"DecimalFormat":{} , "Category":"Physiology", "PropertyName":"SystolicArterialPressure", "Unit":"mmHg"},
{"DecimalFormat":{"Precision":1}, "Category":"Physiology", "PropertyName":"DiastolicArterialPressure", "Unit":"mmHg"},
{"DecimalFormat":{"Precision":3}, "Category":"Physiology", "PropertyName":"OxygenSaturation", "Unit":"unitless"},
{"DecimalFormat":{"Precision":4}, "Category":"Physiology", "PropertyName":"EndTidalCarbonDioxideFraction", "Unit":"unitless"},
{"DecimalFormat":{"Precision":2}, "Category":"Physiology", "PropertyName":"RespirationRate", "Unit":"1/min"},
{"DecimalFormat":{"Precision":1}, "Category":"Physiology", "PropertyName":"SkinTemperature", "Unit":"degC"},
{"DecimalFormat":{} , "Category":"GasCompartment", "CompartmentName":"Carina", "SubstanceName":"Oxygen", "PropertyName":"PartialPressure", "Unit":"cmH2O"},
]},
"AnyAction": [{
"AdvanceTime": {
"Time": {
"ScalarTime": {
"Value": 5.0,
"Unit": "min"
}
}
}
}]
}

The scenario allows for a name and description, but this is not used in execution. The scenario contains the following execution information:

  • Patient File and optional conditions OR An engine state file to start at
  • A list of values to return from the engine
  • A list of actions to execute over the course of the run

Engine state to use

Skip any stabilization and start the engine at any point in time from a previous run. There are initial states (just after it is stable) for every patient in the bin/states folder

"Name": "Vitals Monitor",
"Description": "Data associated with a vitals monitor.",
"EngineStateFile":"./states/StandardMale@0s.pbb",
# Or specify a json state file
"Name": "Vitals Monitor",
"Description": "Data associated with a vitals monitor.",
"EngineStateFile":"./states/StandardMale@0s.json",
# Next comes data requests (See Further Below)

Patient File and optional conditions

While it is recommended to use an Engine State when running a scenario, you do have the option to initialize the engine with a Patient File and optional conditions. The specified patient file refers to a file containing Patient_PatientData information. Replace the EngineStateFile section with a Patient Configuration like this:

"Name": "Condition Example",
"Description": "Data associated with a condition.",
"PatientConfiguration": {
"PatientFile": "StandardMale.json",
"Conditions": { "AnyCondition": [{
"PatientCondition": {
"ChronicObstructivePulmonaryDisease": {
"BronchitisSeverity": {
"Scalar0To1": {
"Value": 0.7
}
},
"EmphysemaSeverity": {
"Scalar0To1": {
"Value": 0.5
}
}
}
}
}]}
# Next comes data requests (See Further Below)

Patient Conditions

Conditions give instructions to the engine to apply certain changes to the engine to simulate the specified conditions. The following are links to the Condition class specification along with XML examples of conditions that can be used in making your own scenarios.

Acute Respiratory Distress Syndrome

A type of respiratory failure characterized by rapid onset of widespread inflammation in the lungs.

"AnyCondition": [{
"PatientCondition": {
"AcuteRespiratoryDistressSyndrome": {
"Severity": {
"Scalar0To1": {
"Value": 0.03
}
},
"LeftLungAffected": {
"Scalar0To1": {
"Value": 0.4
}
},
"RightLungAffected": {
"Scalar0To1": {
"Value": 0.7
}
}
}}
}]

Chronic Anemia

Condition characterized by reduced red blood cells, which leads to reduced oxygen carrying capacity. Implemented by reducing the amount of hemoglobin in the blood.

"AnyCondition": [{
"PatientCondition": {
"ChronicAnemia": {
"ReductionFactor": {
"Scalar0To1": {
"Value": 0.3
}
}
}
}
}]

COPD

Chronic Obstructive Pulmonary Disease (COPD) is an obstructive lung disease characterized by chronically reduced airflow into the lungs. Unlike asthma, the reduction in airflow does not generally improve with medication. When tissue damage occurs primarily in the airways, the condition is called chronic bronchitis. When tissue destruction is focused in the alveoli, the condition is called emphysema. COPD is a manifestation of both conditions, although one condition may dominate.

"AnyCondition": [{
"PatientCondition": {
"ChronicObstructivePulmonaryDisease": {
"BronchitisSeverity": {
"Scalar0To1": {
"Value": 0.1
}
},
"EmphysemaSeverity": {
"Scalar0To1": {
"Value": 0.1
}
}
}
}
}]

Chronic Pericardial Effusion

Pericardial effusion ("fluid around the heart") is an abnormal accumulation of fluid in the pericardial cavity. Because of the limited amount of space in the pericardial cavity, fluid accumulation leads to an increased intrapericardial pressure which can negatively affect heart function. A pericardial effusion with enough pressure to adversely affect heart function is called cardiac tamponade. Pericardial effusion usually results from a disturbed equilibrium between the production andre-absorption of pericardial fluid, or from a structural abnormality that allows fluid to enter the pericardial cavity. Normal levels of pericardial fluid are from 15 to 50 mL.

"AnyCondition": [{
"PatientCondition": {
"ChronicPericardialEffusion": {
"AccumulatedVolume": {
"ScalarVolume": {
"Value": 50.0,
"Unit": "mL"
}
}
}
}
}]

Chronic Renal Stenosis

Narrowing of the renal artery.

"AnyCondition": [{
"PatientCondition": {
"ChronicRenalStenosis": {
"LeftKidneySeverity": {
"Scalar0To1": {
"Value": 0.1
}
},
"RightKidneySeverity": {
"Scalar0To1": {
"Value": 0.05
}
}
}
}
}]

Chronic Ventricular Systolic Dysfunction

Impairment of the ventricular contraction, reducing the ability of the heart to pump blood.

"AnyCondition": [{
"PatientCondition": {
"ChronicVentricularSystolicDysfunction": { }
}
}]

Consume Meal

Consume nutrients into the body along with a time elapsed since this meal.

"AnyCondition": [{
"PatientCondition": {
"ConsumeMeal": {
"Meal": {
"Nutrition": {
"Carbohydrate": { ScalarMass": { "Value": 390.0 "Unit": "g"} },
"CarbohydrateDigestionRate": { ScalarMassPerTime": { "Value": 0.5 "Unit": "g/min"} },
"Fat": { ScalarMass": { "Value": 90.0 "Unit": "g"} },
"FatDigestionRate": { ScalarMassPerTime": { "Value": 0.055 "Unit": "g/min"} },
"Protein": { ScalarMass": { "Value": 56.0 "Unit": "g"} },
"ProteinDigestionRate": { ScalarMassPerTime": { "Value": 0.071 "Unit": "g/min"} },
"Calcium": { ScalarMass": { "Value": 1.0 "Unit": "g"} },
"Sodium": { ScalarMass": { "Value": 1.5 "Unit": "g"} },
"Water": { ScalarVolume": { "Value": 3.7 "Unit": "L"} }
}
"ElapsedTime": { "ScalarTime": { "Value": 2.0 "Unit": "hr"} }
}
}
}
}]
#or
# file must be in the ./bin/nutrition directory
"AnyCondition": [{
"PatientCondition": {
"ConsumeMeal": {
"Meal": {
"NutritionFile": "./nutrition/Soylent.json"
}
}
}
}]

Impaired Alveolar Exchange

Generic way to specify the effectivness of alveolar exchange.

"AnyCondition": [{
"PatientCondition": {
"ImpairedAlveolarExchange": {
"ImpairedSurfaceArea": "ScalarArea": { "Value": 55.9896, "Unit": "m^2" }
}
}
}
}]
or
"AnyCondition": [{
"PatientCondition": {
"ImpairedAlveolarExchange": {
"ImpairedFraction": { "Scalar0To1": { "Value": 0.8 } }
}
}
}]

Lobar Pneumonia

Lobar pneumonia is a form of pneumonia that affects one or more lobes of the lungs. As fluid fills portions of the lung it becomes more difficult to breath and the gas diffusion surface area in the alveoli is reduced.

"AnyCondition": [{
"PatientCondition": {
"LobarPneumonia": {
"Severity": { "Scalar0To1": "Value": 0.2 } },
"LeftLungAffected": { "Scalar0To1": { "Value": 1.0 },
"RightLungAffected": { "Scalar0To1": { "Value": 1.0 }
}
}
}
}]

Pulmonary Shunt

Pulmonary shunt is when the alveoli of the lungs are perfused with blood as normal, but ventilation (the supply of air) fails to supply the perfused region.

"AnyCondition": [{
"PatientCondition": {
"PulmonaryShunt": {
"Severity": {
"Scalar0To1": {
"Value": 0.8
}
}
}
}
}]

Sepsis

A potentially life-threatening condition caused by the body's response to an infection.

"AnyCondition": [{
"PatientCondition": {
"Sepsis": {
"Severity": { "Scalar0To1": { "Value": 0.6 } }
}
}
}]

Initial Environment

"AnyCondition": [{
"EnvironmentCondition": {
"InitialEnvironmentConditions": {
"Conditions": {
"SurroundingType": "Air",
"AirVelocity": { "ScalarLengthPerTime": { "Unit": "m/s" } },
"AmbientTemperature": { "ScalarTemperature": { "Value": 22.0, "Unit": "degC" } },
"AtmosphericPressure": { "ScalarPressure": { "Value": 525.0, "Unit": "mmHg" } },
"ClothingResistance": { "ScalarHeatResistanceArea": { "Value": 0.5, "Unit": "clo" } },
"Emissivity": { "Scalar0To1": { "Value": 0.9 } },
"MeanRadiantTemperature": { "ScalarTemperature": { "Value": 22.0, "Unit": "degC" } },
"RelativeHumidity": { "Scalar0To1": { "Value": 0.5 } },
"RespirationAmbientTemperature": { "ScalarTemperature": { "Value": 22.0, "Unit": "degC" } },
"AmbientGas": [
{ "Name": "Nitrogen", "Amount": { "Scalar0To1": { "Value": 0.7896 } } },
{ "Name": "Oxygen", "Amount": { "Scalar0To1": { "Value": 0.21 } } },
{ "Name": "CarbonDioxide", "Amount": { "Scalar0To1": { "Value": 4.0E-4 } } }
]
}
}
}
}]
#or
#File must be in the ./bin/environments directory
"AnyCondition": [{
"EnvironmentCondition": {
"InitialEnvironmentConditions": {
"ConditionsFile": "./environments/Hypobaric3000m.json"
}
}
}]

Data Requests

Currently there are four supported types of data requests:

Physiology System Data

Physiology System data refers to all the data specified by SystemData and its derived types.

At this time, you do not need to specify the system name. The Name attribute should be set to a System Property name. (e.g., HeartRate)

{"Category":"Physiology", "PropertyName":"HeartRate", "Unit":"1/min", "DecimalFormat":{"Precision":2} },

Compartment Data

Compartments refer to all the data specified on Compartments. You can read more about compartments here.

There are two main types of Compartments, gas and liquid.

Data on the compartment itself: The Compartment attribute can be any of the enumerations defined. The Name attribute should be set to a Compartment Property name. The Substance attribute is optional, and the if used the name will refer to a substance quantity property.

{ "Category":"GasCompartment", "CompartmentName"":"Lungs", "PropertyName":"Pressure", "Unit":"cmH2O", "DecimalFormat":{"Precision":2} },
{ "Category":"GasCompartment", "CompartmentName":"Lungs", "SubstanceName":"Oxygen", "PropertyName":"PartialPressure", "Unit":"mmHg", "DecimalFormat":{"Precision":2} },
{ "Category":"LiquidCompartment", "CompartmentName":"Aorta", "PropertyName":"Pressure", "Unit":"mmHg", "DecimalFormat":{"Precision":2} },
{ "Category":"LiquidCompartment", "CompartmentName":"Aorta", "SubstanceName":"Oxygen", "PropertyName":"PartialPressure", "Unit":"mmHg", "DecimalFormat":{"Precision":2} },

Environment Data

Environment System data refers to all the data specified by Environment_EnvironmentData and its derived types.

{ "Category":"Environment", "PropertyName":"AirDensity", "Unit":"g/mL" }

Equipment Data

System level data from a piece of equipment

{ "Category":"AnesthesiaMachine", "PropertyName":"InletFlow", "Unit":"mL/min" },
{ "Category":"ECG", PropertyName:"Lead3ElectricPotential", "Unit":"1/min" },
{ "Category":"Inhaler", "PropertyName":"MeteredDose", "Unit":"ug" },

Substance Data

Substance data is provided about a substance and its current state in the body and on specific anatomy compartments

{ "Category":"Substance", "SubstanceName":"Oxygen", "PropertyName":"AlveolarTransfer", "Unit":"mL/s" },
{ "Category":"Substance", "SubstanceName":"CarbonDioxide", "PropertyName":"AlveolarTransfer", "Unit":"mL/s" },

General Actions

Actions give instructions to the engine to define what happens over the course of a scenario. Everything from advancing time, to starting a hemorrhage, to administering a drug is an action of some kind. The following are links to the Action class specification along with XML examples of actions that can be used in making your own scenarios.


Advance Time

"AnyAction": [{
"AdvanceTime": {
"Time": { "ScalarTime": { "Value": 5.0, "Unit": "min" } }
}
}]

Serialize State

"AnyAction": [{
"Serialize": {
"Type": "Save",
"Filename": "State.json" # If no filename is provided, engine is going to auto generate a name, something like : StandardMale@0s.xml
}
}]
"AnyAction": [{
"Serialize": {
"Type": "Load",
"Filename": "State.json"
}
}]

Override

"AnyAction": [{
"Overrides": {
"ScalarOverride": [{ "Name":"", "Value": 5.0, "Unit": "min" },
{ "Name":"", "Value": 5.0, "Unit": "min" }]
}
}]

Patient Actions


ARDS Exacerbation

Worsen the effects of the Acute Respiratory Distress Syndrome condition.

"AnyAction": [{
"PatientAction": {
"AcuteRespiratoryDistressSyndromeExacerbation": {
"Severity": { "Scalar0To1": { "Value":0.3 } },
"LeftLungAffected": { "Scalar0To1": { "Value": 1.0 },
"RightLungAffected": { "Scalar0To1": { "Value": 1.0 }
}
}
}]

Acute Stress

Fight or flight. The body prepares to defend itself.
Severity value must be >=0.0 and <=1.0
A severity of 0 removes the action completely.

"AnyAction": [{
"PatientAction": {
"AcuteStress": {
"Severity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Airway Obstruction

A blockage of the Airway leading to no respiration/air flow in or out of the body.
Severity value must be >=0.0 and <=1.0
A severity of 0 removes the action completely.

"AnyAction": [{
"PatientAction": {
"AirwayObstruction": {
"Severity { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Asthma Attack


Severity value must be >=0.0 and <=1.0
A severity of 0 removes the action completely.

"AnyAction": [{
"PatientAction": {
"AsthmaAttack": {
"Severity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Brain Injury

A non-localized traumatic brain injury.
Severity value must be >=0.0 and <=1.0
A severity of 0 removes the action completely.
Types : Diffuse, LeftFocal, RightFocal

"AnyAction": [{
"PatientAction": {
"BrainInjury": {
"Type":"LeftFocal",
"Severity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Bronchoconstriction

Constriction of the airways in the lungs due to tightening of surrounding smooth muscle.
Severity value must be >=0.0 and <=1.0
A severity of 0 removes the action completely.

"AnyAction": [{
"PatientAction": {
"Bronchoconstriction": {
"Severity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Cardiac Arrest

Applies a non-specific cardiac arrest.

"AnyAction": [{
"PatientAction": {
"CardiacArrest": { "State":"On" }
}
}]

Chest Compression Force

Technique used when performing cardiopulmonary resuscitation. Application of external force to the chest cavity in order to pump blood through the heart.
Force is the specific magnitude to perform a compression with.
Note, that patient should be in Cardiac Arrest before performing CPR

"AnyAction": [{
"PatientAction": {
"ChestCompressionForce": {
"Force": { "ScalarForce": { "Value":100.0, "Unit":"N" } }
}
}
}]

Chest Compression Force Scale

Technique used when performing cardiopulmonary resuscitation. Application of external force to the chest cavity in order to pump blood through the heart.
ForceScale value must be >=0.0 and <=1.0
Note, that patient should be in Cardiac Arrest before performing CPR

"AnyAction": [{
"PatientAction": {
"ChestCompressionForceScale": {
"ForceScale": { "Scalar0To1": { "Value":0.73 } },
"ForcePeriod": { "ScalarTime": { "Value":0.2, "Unit":"s" } }
}
}
}]

Chest Occlusive Dressing

Applies an occlusive dressing to either the left or right side of the chest. An occlusive dressing is an air and water-tight trauma dressing that provides immediate control of pressure and bleeding that occurs with an open pneumothorax.
The State attribute can be "On" or "Off"
Side is either Left or Right
FATAL: If the side specified does not have a pneumothorax

"AnyAction": [{
"PatientAction": {
"ChestOcclusiveDressing": {
"State":"On",
"Side":"Right"
}
}
}]

Conscious Respiration

An ordered list of conscious breath commands for the patient to preform.
This action can contain 1 or more commands :

  • Force air out of the lungs.
  • Force air into the lungs.
  • Pause breathing at 0 pressure. There will be no inflow or out flow of air during the specified period.
  • Administer a substance through an Inhaler. This command will represent a single press of an Inhaler.


Commands will be processed in order. The first commands will be processed instantly When it has completed (run through it's Period), the next command will be processed. Other actions will be processed while these commands are processed or waiting to be processed. You may want to advance time for the sum of the command periods to ensure the body is doing what you expect it to.. Or not, depending on how you want the system to react.

"AnyAction": [{
"PatientAction": {
"ConsciousRespiration": {
"Command": {
"ForcedExhale": {
"ExpiratoryReserveVolumeFraction": { "Scalar0To1": { "Value":1.0 } },
"Period": { "ScalarTime": { "Value":3.0, "Unit":"s"} }
}
}
"Command": {
"UseInhaler": {}
}
"Command": {
"ForcedInhale": {
"InspiratoryCapacityFraction": { "Scalar0To1": { "Value":1.0 } },
"Period": { "ScalarTime": { "Value":5.0, "Unit":"s" } }
}
}
"Command": {
"ForcedPause": {
"Period": { "ScalarTime": { "Value":10.0, "Unit":"s" } }
}
}
}
}
}]

COPD Exacerbation


"AnyAction": [{
"PatientAction": {
"ChronicObstructivePulmonaryDiseaseExacerbation": {
"BronchitisSeverity": { "Scalar0To1": { "Value": 0.5 }},
"EmphysemaSeverity": { "Scalar0To1": { "Value": 0.7 }}
}
}
}]

Consume Nutrients

Consume nutrients into the body.

"AnyAction": [{
"PatientAction": {
"ConsumeNutrients": {
"Nutrition": {
"Carbohydrate": { "ScalarMass": { "Value":390.0, "Unit":"g" } },
"CarbohydrateDigestionRate": { "ScalarMassPerTime": { "Value":0.5, "Unit":"g/min" } },
"Fat": { "ScalarMass": { "Value":90.0, "Unit":"g" } },
"FatDigestionRate": { "ScalarMassPerTime": { "Value":0.055, "Unit":"g/min" } },
"Protein": { "ScalarMass": { "Value":56.0, "Unit":"g"} },
"ProteinDigestionRate": { "ScalarMassPerTime": { "Value":0.071, "Unit":"g/min" } },
"Calcium": { "ScalarMass": { "Value":1.0, "Unit":"g"} },
"Sodium": { "ScalarMass": { "Value":1.5, "Unit":"g"} },
"Water": { "ScalarVolume": { "Value":3.7, "Unit":"L"} }
}
}
}
}]
#or
# File must be in the ./bin/nutrition directory -->
"AnyAction": [{
"PatientAction": {
"ConsumeNutrients": {
"NutritionFile": { "./nutrition/Soylent.json" }
}
}
}]

Dyspnea

Reduction of achieved tidal volume by inhibiting the respiratory breathing mechanism (i.e., muscles of respiration). Maximum severity will stop breathing completely.
Severity value must be >=0.0 and <=1.0
A severity of 0 removes the action completely.

"AnyAction": [{
"PatientAction": {
"Dyspnea": {
"Severity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Exercise

Increase the patient's metabolic rate leading to an increase in core temperature, cardiac output, respiration rate and tidal volume.
An intensity of 0 removes the action completely.

"AnyAction": [{
"PatientAction": {
"Exercise": {
"Intensity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Hemorrhage

A hemorrhage is the loss of blood escaping from the circulatory system. Typically, a healthy person can endure a loss of 10 to 15 percent of the total blood volume without serious medical difficulties.
The Compartment attribute can be any of the enumerations defined in the enumAnatomy enumeration.
Type can be Internal or External FATAL: Cannot have bleeding rate greater than cardiac output or less than 0

"AnyAction": [{
"PatientAction": {
"Hemorrhage": {
"Compartment":"RightLeg",
"Type":"External",
"Rate": { "ScalarVolumePerTime": { "Value":250.0, "Unit":"mL/min" } }
}
}
}]

Impaired Alveolar Exchange Exacerbation

Generic way to specify the effectivness of alveolar exchange.

"AnyAction": [{
"PatientCondition": {
"ImpairedAlveolarExchange": {
"ImpairedFraction": {
"Scalar0To1": {
"Value": 0.09
}
}
}
}
}]

Intubation

Insertion of tube into the patient's airway.
Note: In order to 'turn off' an intubation, use'Off' as the Type
Types : Off, Esophageal, LeftMainstem, RightMainstem, Tracheal

"AnyAction": [{
"PatientAction": {
"Intubation": { "Type":"Tracheal" }
}
}]

Lobar Pneumonia Exacerbation

Worsen the effects of the Lobar Pneumonia condition.

"AnyAction": [{
"PatientAction": {
"LobarPneumoniaExacerbation": {
"Severity": { "Scalar0To1": { "Value": 0.2 }},
"LeftLungAffected": { "Scalar0To1": { "Value": 1.0 }},
"RightLungAffected": { "Scalar0To1": { "Value": 1.0 }}
}
}
}]

Mechanical Ventilation

Mechanically breathing for the patient, such as with a squeeze bag or other equipment.
You may provide Pressure and/or Flow.
If you do not provide GasFractions, the environment gas fractions will be used.
If you do provide Gas Fractions, they must add up to 1.

"AnyAction": [{
"PatientAction": {
"MechanicalVentilation": { "State":"On",
"Flow": { "ScalarVolumePerTime": { "Value":1.0, "Unit":"mL/s" } },
"Pressure": { "ScalarPressure": { "Value":10.0, "Unit":"cmH2O" } },
"GasFraction": { "Name":"Oxygen",
"Amount": { "Scalar0To1": { "Value":0.3 } } },
"GasFraction": { "Name":"CarbonDioxide",
"Amount": { "Scalar0To1": { "Value":0.1 } } },
"GasFraction": { "Name":"Nitrogen",
"Amount": { "Scalar0To1": { "Value":0.6 } } }
}
}
}]

Needle Decompression

A 14-16G intravenous caninula is inserted into the second rib-space in the mid-clavcular line. The needle is advanced until air can be aspirated into a connecting syringe. The needle is withdrawn and the caninula is left to allow air flow out of the pleural space. This effectively converts the closed pneumothorax into an open pneumothorax.
The Side attribute can be "Left" or "Right"
The State attribute can be "On" or "Off" FATAL: If the side specified does not have a pneumothorax

"AnyAction": [{
"PatientAction": {
"NeedleDecompression": {
"State":"On",
"Side":"Right"
}
}
}]

Pericardial Effusion

Pericardial effusion ("fluid around the heart") is an abnormal accumulation of fluid in the pericardial cavity. Because of the limited amount of space in the pericardial cavity, fluid accumulation leads to an increased intrapericardial pressure which can negatively affect heart function. A pericardial effusion with enough pressure to adversely affect heart function is called cardiac tamponade. Pericardial effusion usually results from a disturbed equilibrium between the production andre-absorption of pericardial fluid, or from a structural abnormality that allows fluid to enter the pericardial cavity. Normal levels of pericardial fluid are from 15 to 50 mL.
EffusionRate of the liquid

"AnyAction": [{
"PatientAction": {
"PericardialEffusion": {
"EffusionRate": { "ScalarVolumePerTime": { "Value":0.1, "Unit":"mL/s" } }
}
}
}]

Pulmonary Shunt Exacerbation

Pulmonary shunt is when the alveoli of the lungs are perfused with blood as normal, but ventilation (the supply of air) fails to supply the perfused region.

"AnyAction": [{
"PatientCondition": {
"PulmonaryShunt": {
"Severity": {
"Scalar0To1": {
"Value": 0.8
}
}
}
}
}]

Respiratory Fatigue

Respiratory muscle weakness caused by excessive effort relative to the strength and endurance of the muscles.

"AnyAction": [{
"PatientAction": {
"RespiratoryFatigue": {
"Severity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Substance Bolus

An administration of a substance that is given all at one time to raise its concentration in blood to an effective level.

The AdminRoute can be one of:

  • "Intravenous"
  • "Intramuscular"
  • "Subcutaneous"
  • "Oral"
  • "Rectal"
  • "Inhaled"

The Substance element should be set to a name of any of the Substances.

"AnyAction": [{
"PatientAction": {
"SubstanceBolus": {
"AdministrationRoute":"Intravenous",
"Substance":"Succinylcholine",
"Concentration": { "ScalarMassPerVolume": { "Value":4820.0, "Unit":"ug/mL" } },
"Dose": { "ScalarVolume": { "Value":30.0, "Unit":"mL" } }
}
}
}]

Substance Compound Infusion Fluids

Continuous injection of a compound.
The Substance Compound element should be set to a name of any of the Substances Compounds.
Set Rate to 0 to remove Action

"AnyAction": [{
"PatientAction": {
"SubstanceCompoundInfusion": {
"SubstanceCompound":"Saline",
"BagVolume": { "ScalarVolume": { "Value":500.0, "Unit":"mL" } },
"Rate": { "ScalarVolumePerTime": { "Value":100.0, "Unit":"mL/min" } }
}
}
}]

Substance Infusion

Continuous injection of a specific substance.
The Substance element should be set to a name of any of the Substances.
Set Rate to 0 to remove Action

"AnyAction": [{
"PatientAction": {
"SubstanceInfusion": {
"Substance":"Succinylcholine",
"Concentration": { "ScalarMassPerVolume": { "Value":5000.0, "Unit":"ug/mL"} },
"Rate": { "ScalarVolumePerTime": { "Value":100.0, "Unit":"mL/min" } }
}
}
}]

Supplemental Oxygen

Extra Oxygen provided to the patient.
You must provide a Device
Default Flow and Volume will be used depending on device type if not provided
A Volume of "Infinity" may be used for something like a wall port

"AnyAction": [{
"PatientAction": {
"SupplementalOxygenData": {
"Device": "SimpleMask"
}
}
}]
"AnyAction": [{
"PatientAction": {
"SupplementalOxygenData": {
"Device": "SimpleMask",
"Flow": { "ScalarVolumePerTime": { "Value": 5.0, "Unit": "L/s" }},
"Volume": { "ScalarVolume": { "Value": "Infinity", "Unit": "L" }}
}
}
}]

Tension Pneumothorax

A pneumothorax is an abnormal collection of air or gas in the pleural space that separates the lung from the chest wall. Like pleural effusion (liquid buildup in that space), pneumothorax may interfere with normal breathing.
The Type attribute can be "Open" or "Closed"
The Side attribute can be "Left" or "Right"
Severity value must be >=0.0 and <=1.0
A severity of 0 removes the action completely.

"AnyAction": [{
"PatientAction": {
"TensionPneumothorax": {
"Type":"Open,
"Side":"Right,
"Severity": { "Scalar0To1": { "Value":0.3 } }
}
}
}]

Urinate

Empty the bladder of its contents.
Action to empty the bladder. if not emptied, it will empty and throw an event.

"AnyAction": [{
"PatientAction": {
"Urinate": {}
}
}]

Anesthesia Machine State


Anesthesia Machine Configuration

The configuration of the anesthesia machine to use.
NOTE: Each field is optional.
Connection can be one of : Off, Mask, Tube
Patient must be intubated to be connected as Tube
Anesthesia machine will be disconnected if intubation is removed.
Patient cannot be intubated to be connected as Mask
Anesthesia machine will be disconnected if patient is then intubated.
Cannot have inhaler and anesthesia machine on at the same time

"AnyAction": [{ {
"AnesthesiaMachineAction": {
"Configuration": {
"Configuration": {
"Connection":"Tube",
"InletFlow": { "ScalarVolumePerTime": { "Value":5.0, "Unit":"L/min" } },
"InspiratoryExpiratoryRatio": { "Value":0.5 },
"OxygenFraction": { "Scalar0To1": { "Value":0.23} },
"OxygenSource":"Wall",
"PositiveEndExpiredPressure": { "ScalarPressure": { "Value":1.0, "Unit":"cmH2O"} },
"PrimaryGas":"Nitrogen",
"RespiratoryRate": { "ScalarFrequency": { "Value":16.0, "Unit":"1/min" } },
"VentilatorPressure": { "ScalarPressure": { "Value":10.5, "Unit":"cmH2O" } },
"LeftChamber": {
"State":"On",
"SubstanceFraction": { "Scalar0To1": { "Value":0.04 } },
"Substance":"Desflurane"
}
"RightChamber": {
"State":"On",
"SubstanceFraction": { "Scalar0To1": { "Value":0.04 } },
"Substance":"Desflurane"
}
"OxygenBottleOne": {
"Volume": { "ScalarVolume": { "Value":660.0, "Unit":"L"} }
}
"OxygenBottleTwo": {
"Volume": { "ScalarVolume" { "Value":660.0, "Unit":"L" } }
}
}
}
}
}]
"AnyAction": [{
"AnesthesiaMachineAction": {
"Configuration": {
"Configuration": {
"Connection":"Off"
}
}
}
}]
"AnyAction": [{
"AnesthesiaMachineAction": {
"Configuration": {
"Configuration": {
"RightChamber": {
"State": "On",
"SubstanceFraction": { "Scalar0To1": { "Value":0.04 } },
"Substance":"Desflurane"
}
"LeftChamber": {
"State":"Off",
"SubstanceFraction": { "Scalar0To1": { "Value":0.01 } },
"Substance": "Desflurane"
}
}
}
}
}]

Anesthesia Machine Incidents


Oxygen TankPressure Loss


The State attribute can be "On" or "Off"

"AnyAction": [{
"AnesthesiaMachineAction": {
"OxygenTankPressureLoss": { "State":"On" }
}
}]

Oxygen Wall Port Pressure Loss


The State attribute can be "On" or "Off"

"AnyAction": [{
"AnesthesiaMachineAction": {
"OxygenWallPortPressureLoss": { "State":"On" }
}
}]

Anesthesia Machine Failures


Expiratory Valve Leak


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"ExpiratoryValveLeak": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Expiratory Valve Obstruction


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"ExpiratoryValveObstruction": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Inspiratory Valve Leak


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"InspiratoryValveLeak": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Inspiratory Valve Obstruction


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"InspiratoryValveObstruction": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Mask Leak


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"MaskLeak": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Soda Lime Failure


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"SodaLimeFailure": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Tube Cuff Leak


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"TubeCuffLeak": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Vaporizer Failure


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"VaporizerFailure": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Ventilator Pressure Loss


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"VentilatorPressureLoss": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Y Piece Disconnect


The State attribute can be "On" or "Off"
Severity value must be >=0.0 and <=1.0

"AnyAction": [{
"AnesthesiaMachineAction": {
"YPieceDisconnect": {
"Severity": { "Scalar0To1": { "Value":0.5 } }
}
}
}]

Inhaler

Inhaler Configuration

The configuration of the inhaler to use.
FATAL: Cannot have mechanical ventilator and anesthesia machine on at the same time

"AnyAction": [{
"InhalerAction": {
"Configuration": {
"Configuration": {
"Substance": "Albuterol",
"MeteredDose": { "ScalarMass": { "Value":90.0, "Unit":"ug" } }
"NozzleLoss": { "Scalar0To1": { "Value":0.04 } }
"SpacerVolume": { "ScalarVolume": { "Value":500.0 "Unit":"mL" } }
}
}
}
}]

Mechanical Ventilator

Mechanical Ventilator Configuration

The configuration of the anesthesia machine to use.
FATAL: Cannot have inhaler and anesthesia machine on at the same time

"AnyAction": [{
"EquipmentAction": {
"MechanicalVentilatorConfiguration": {
"MechanicalVentilatorAction": { "EquipmentAction": { "Action": {
"Comment": "Attach the mechanical ventilator with rate = 20 bpm and I:E Ratio = 1:1" }}},
"Configuration":
{
"Connection": "Tube",
"InspirationWaveform": "Square",
"ExpirationWaveform": "Square",
"PeakInspiratoryPressure": { "ScalarPressure": { "Value": 20.0, "Unit": "cmH2O" } },
"PositiveEndExpiredPressure": { "ScalarPressure": { "Value": 10.0, "Unit": "cmH2O" } },
"InspirationTriggerTime": { "ScalarTime": { "Value": 1.5, "Unit": "s" } },
"ExpirationCycleTime": { "ScalarTime": { "Value": 1.5, "Unit": "s" } },
"FractionInspiredGas": [
{ "Name": "Oxygen", "Amount": { "Scalar0To1": { "Value": 0.3, "Unit": "" } } } ],
"ConcentrationInspiredAerosol": [
{ "Name": "Albuterol", "Concentration": { "ScalarMassPerVolume": { "Value": 2500.0, "Unit": "mg/m^3" } } }]
}
}
}
}]

Environment


Environment Configuration State


NOTE: Each field is optional. You can also add particulates to the surrounding atmosphere

"AnyAction": [{
"EnvironmentAction" {
"Conditions": {
"Conditions": {
"SurroundingType": "Air",
"AirVelocity": { "ScalarLengthPerTime": { "Unit": "m/s" } },
"AmbientTemperature": { "ScalarTemperature": { "Value": 22.0, "Unit": "degC" } },
"AtmosphericPressure": { "ScalarPressure": { "Value": 525.0, "Unit": "mmHg" } },
"ClothingResistance": { "ScalarHeatResistanceArea": { "Value": 0.5, "Unit": "clo" } },
"Emissivity": { "Scalar0To1": { "Value": 0.9 } },
"MeanRadiantTemperature": { "ScalarTemperature": { "Value": 22.0, "Unit": "degC" } },
"RelativeHumidity": { "Scalar0To1": { "Value": 0.5 } },
"RespirationAmbientTemperature": { "ScalarTemperature": { "Value": 22.0, "Unit": "degC" } },
"AmbientGas": [
{ "Name": "Nitrogen", "Amount": { "Scalar0To1": { "Value": 0.7896 } } },
{ "Name": "Oxygen", "Amount": { "Scalar0To1": { "Value": 0.21 } } },
{ "Name": "CarbonDioxide", "Amount": { "Scalar0To1": { "Value": 4.0E-4 } } }
]
}
}
}
}]
or
"AnyAction": [{
"EnvironmentAction": {
"Conditions": { "ConditionsFile":"./environments/Hypobaric3000m.json" }
}
}]

Thermal Application

Create an external heat source.
You must provide at least 1 activity, but up can also apply up-to all 3 in one action.

"AnyAction": [{
"EnvironmentAction": {
"ThermalApplication": {
"ActiveHeating": {
"Power": { "ScalarPower": { "Value":500.0, "Unit":"BTU/hr" } },
"SurfaceAreaFraction": { "Scalar0To1": { "Value":0.2} }
}
"ActiveCooling": {
"Power": { "ScalarPower": { "Value":500.0, "Unit":"BTU/hr"} },
"SurfaceArea": { "ScalarArea": { "Value":0.1, "Unit":"m^2"} }
}
"AppliedTemperature": {
"State":"On",
"Temperature": { "ScalarTemperature" { "Value":30.0, "Unit":"degF"} },
"SurfaceAreaFraction": { "Scalar0To1": { "Value":1.0} }
}
}
}
}]

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.