|
|
|
|
|
|
|
|
| import random
|
|
|
|
|
|
|
| current_scenario = "EYE"
|
|
|
|
|
| GLUCOSE_MW_G_PER_MOLE = 180.156
|
| CO2_SOLUBILITY_mM_PER_MMHG = .03
|
| MOLAR_VOLUME_STP_GAS_L = 22.4
|
| BICARB_IN_KREBS_mM = 25
|
| H_H_PK = 6.1
|
| LACTATES_PER_GLUCOSE = 2
|
| OXYGENS_PER_GLUCOSE = 6
|
| CO2S_PER_GLUCOSE = 6
|
| INSULIN_mUNIT_PER_mMOLE_GLUCOSE = 100
|
| ATMOSPHERIC_PRESSURE_MMHG = 760
|
| CARBOGEN_OXYGEN_FRACTION = 0.95
|
| CARBOGEN_CO2_TO_O2_FRACTION = 0.053
|
|
|
|
|
| TRANSFUSION_TIME_HOURS = 12
|
| BIG_STATE_DIMENSION = 19
|
|
|
| if current_scenario == "VCA":
|
| STEP_DURATION_HR = 1
|
| GRAFT_GRAMS = 300
|
| MINUTES_PER_STEP = 60
|
| VOLUME_MINIMUM_ML = 100
|
| dVR_dHR_MMHG_PER_ML_PER_MINUTE_PER_HOUR = .0208
|
| FLOW_INIT_VARIATION = .25
|
| VR_STOCHASTIC_FACTOR = 1.0052
|
| ANAEROBIC_FRACTION = 0.7
|
| HEMATOCRIT_CHANGE_PER_HOUR = 1
|
| GLUCOSE_CONSUMPTION_MMOLE_PER_GRAM_HOUR = .00258
|
| VR_ORGAN_FACTOR = 1
|
| temperature_C = 36
|
| pressure_mmHg = 80
|
| base_flow = 80
|
| pH = 7.35
|
| pO2_mmHg = 380
|
| pvO2_mmHg = 40
|
| svO2 = .75
|
| glucose_mM = 6
|
| insulin_mU = 160
|
| lactate_mM = 0
|
| hematocrit = 13.75
|
| dialysis_in_mL_per_min = 0
|
| hours = 0
|
| dialysis_out_mL_per_min = 0
|
| volume_mL = 650
|
|
|
| elif current_scenario == "EYE":
|
| STEP_DURATION_HR = 1
|
| GRAFT_GRAMS = 1
|
| MINUTES_PER_STEP = 60
|
| VOLUME_MINIMUM_ML = 10
|
| dVR_dHR_MMHG_PER_ML_PER_MINUTE_PER_HOUR = 5
|
| FLOW_INIT_VARIATION = .25
|
| VR_STOCHASTIC_FACTOR = 1.0052
|
| ANAEROBIC_FRACTION = 0.7
|
| HEMATOCRIT_CHANGE_PER_HOUR = 1
|
| GLUCOSE_CONSUMPTION_MMOLE_PER_GRAM_HOUR = .00258
|
| VR_ORGAN_FACTOR = 23000
|
| temperature_C = 36
|
| pressure_mmHg = 80
|
| base_flow = 1
|
| pH = 7.35
|
| pO2_mmHg = 380
|
| pvO2_mmHg = 40
|
| svO2 = .75
|
| glucose_mM = 6
|
| insulin_mU = 16
|
| lactate_mM = 0
|
| hematocrit = 13.75
|
| dialysis_in_mL_per_min = 0
|
| hours = 0
|
| dialysis_out_mL_per_min = 0
|
| volume_mL = 150
|
|
|
|
|
|
|
|
|
| HOURS_PER_STEP = MINUTES_PER_STEP / 60
|
| AEROBIC_FRACTION = 1 - ANAEROBIC_FRACTION
|
| flow_variation = random.uniform(-FLOW_INIT_VARIATION, FLOW_INIT_VARIATION)
|
| flow_mL_per_min = base_flow + base_flow * flow_variation
|
| VR = pressure_mmHg / flow_mL_per_min
|
| pCO2_mmHg = pO2_mmHg * CARBOGEN_CO2_TO_O2_FRACTION
|
| bicarb_mM = (10**(pH - H_H_PK)) * (CO2_SOLUBILITY_mM_PER_MMHG * pCO2_mmHg)
|
| fiO2 = pO2_mmHg / ATMOSPHERIC_PRESSURE_MMHG
|
|
|
| def initial_big_state():
|
| big_state_list = [0] * BIG_STATE_DIMENSION
|
|
|
| big_state_list = [
|
| temperature_C,
|
| pressure_mmHg,
|
| round (flow_mL_per_min, 2),
|
| round (VR, 3),
|
| pH,
|
| pO2_mmHg,
|
| pvO2_mmHg,
|
| svO2,
|
| pCO2_mmHg,
|
| glucose_mM,
|
| insulin_mU,
|
| lactate_mM,
|
| hematocrit,
|
| round(bicarb_mM, 2),
|
| fiO2,
|
| dialysis_in_mL_per_min,
|
| hours,
|
| dialysis_out_mL_per_min,
|
| volume_mL
|
| ]
|
|
|
| return big_state_list
|
|
|
| def get_scenario_type():
|
| return current_scenario
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|