Commit 016287cd authored by Aaron Bray's avatar Aaron Bray
Browse files

Move norepi updates to new model

co-author Rachel Clipp
parent 1f75c6eb
No preview for this file type
......@@ -35,6 +35,7 @@ validation/drugs/KetamineValidation.json=ScenarioTest
validation/drugs/MidazolamValidation.json=ScenarioTest
validation/drugs/MorphineValidation.json=ScenarioTest
validation/drugs/NaloxoneValidation.json=ScenarioTest
validation/drugs/NorepinephrineValidation.json=ScenarioTest
validation/drugs/PralidoximeValidation.json=ScenarioTest
validation/drugs/PrednisoneValidation.json=ScenarioTest
validation/drugs/PropofolValidation.json=ScenarioTest
......
......@@ -968,34 +968,7 @@
}
}
}
}, {
"PatientAction": {
"SubstanceInfusion": {
"Substance": "Norepinephrine",
"Concentration": {
"ScalarMassPerVolume": {
"Value": 1.0,
"Unit": "ug/mL"
}
},
"Rate": {
"ScalarVolumePerTime": {
"Value": 0.01667,
"Unit": "mL/s"
}
}
}
}
}, {
"AdvanceTime": {
"Time": {
"ScalarTime": {
"Value": 30.0,
"Unit": "min"
}
}
}
}, {
}, {
"PatientAction": {
"SubstanceInfusion": {
"Substance": "Norepinephrine",
......@@ -1007,7 +980,7 @@
},
"Rate": {
"ScalarVolumePerTime": {
"Value": 0.03333,
"Value": 0.18,
"Unit": "mL/s"
}
}
......@@ -1022,34 +995,7 @@
}
}
}
}, {
"PatientAction": {
"SubstanceInfusion": {
"Substance": "Norepinephrine",
"Concentration": {
"ScalarMassPerVolume": {
"Value": 1.0,
"Unit": "ug/mL"
}
},
"Rate": {
"ScalarVolumePerTime": {
"Value": 0.06667,
"Unit": "mL/s"
}
}
}
}
}, {
"AdvanceTime": {
"Time": {
"ScalarTime": {
"Value": 30.0,
"Unit": "min"
}
}
}
}, {
}, {
"PatientAction": {
"SubstanceInfusion": {
"Substance": "Norepinephrine",
......@@ -1061,7 +1007,7 @@
},
"Rate": {
"ScalarVolumePerTime": {
"Value": 0.13333,
"Value": 0.26,
"Unit": "mL/s"
}
}
......@@ -1071,60 +1017,7 @@
"AdvanceTime": {
"Time": {
"ScalarTime": {
"Value": 30.0,
"Unit": "min"
}
}
}
}, {
"PatientAction": {
"SubstanceInfusion": {
"Substance": "Norepinephrine",
"Concentration": {
"ScalarMassPerVolume": {
"Value": 1.0,
"Unit": "ug/mL"
}
},
"Rate": {
"ScalarVolumePerTime": {
"Value": 0.2667,
"Unit": "mL/s"
}
}
}
}
}, {
"AdvanceTime": {
"Time": {
"ScalarTime": {
"Value": 30.0,
"Unit": "min"
}
}
}
}, {
"PatientAction": {
"SubstanceInfusion": {
"Substance": "Norepinephrine",
"Concentration": {
"ScalarMassPerVolume": {
"Value": 1.0,
"Unit": "ug/mL"
}
},
"Rate": {
"ScalarVolumePerTime": {
"Unit": "mL/s"
}
}
}
}
}, {
"AdvanceTime": {
"Time": {
"ScalarTime": {
"Value": 30.0,
"Value": 40.0,
"Unit": "min"
}
}
......
......@@ -65,6 +65,8 @@
{"DecimalFormat":{"Precision":2}, "Category":"Substance", "SubstanceName":"CarbonDioxide", "PropertyName":"AlveolarTransfer", "Unit":"mL/s"},
{"DecimalFormat":{"Precision":6}, "Category":"Substance", "SubstanceName":"Epinephrine", "PropertyName":"BloodConcentration", "Unit":"ug/L"},
{"DecimalFormat":{"Precision":8}, "Category":"Substance", "SubstanceName":"Epinephrine", "PropertyName":"SystemicMassCleared", "Unit":"ug"},
{"DecimalFormat":{"Precision":6}, "Category":"Substance", "SubstanceName":"Norepinephrine", "PropertyName":"BloodConcentration", "Unit":"ug/L"},
{"DecimalFormat":{"Precision":8}, "Category":"Substance", "SubstanceName":"Norepinephrine", "PropertyName":"SystemicMassCleared", "Unit":"ug"},
{"DecimalFormat":{"Precision":2}, "Category":"Physiology", "PropertyName":"BloodPH" },
{"DecimalFormat":{"Precision":2}, "Category":"Physiology", "PropertyName":"SweatRate", "Unit":"mg/min" },
{"DecimalFormat":{"Precision":2}, "Category":"Physiology", "PropertyName":"BloodUreaNitrogenConcentration", "Unit":"ug/mL" },
......
......@@ -47,6 +47,7 @@
{ "DecimalFormat": { "Precision": 2 }, "Category": "Substance", "SubstanceName": "Hemoglobin", "PropertyName": "BloodConcentration", "Unit": "g/dL" },
{ "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Insulin", "PropertyName": "BloodConcentration", "Unit": "ug/L" },
{ "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Lactate", "PropertyName": "BloodConcentration", "Unit": "mg/L" },
{ "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "Norepinephrine","PropertyName": "BloodConcentration", "Unit": "ug/L" },
{ "DecimalFormat": { "Precision": 2 }, "Category": "Substance", "SubstanceName": "Potassium", "PropertyName": "BloodConcentration", "Unit": "mg/L" },
{ "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Sodium", "PropertyName": "BloodConcentration", "Unit": "g/dL" },
{ "DecimalFormat": { }, "Category": "Substance", "SubstanceName": "Tristearin", "PropertyName": "BloodConcentration", "Unit": "mg/dL" },
......
This diff is collapsed.
Methodology Sources and References
@article{Ensinger1992relationship,
author = {Ensinger, H. and Stein, B. and Jager, O. and Grunert, A. and Ahnefeld, F. W.},
doi = {10.1097/00003246-199209000-00011},
issn = {00903493},
journal = {Critical Care Medicine},
number = {9},
pages = {1250--1256},
pmid = {1521439},
title = {{Relationship between infusion rates, plasma concentrations, and cardiovascular and metabolic effects during the infusion of norepinephrine in healthy volunteers}},
volume = {20},
year = {1992}
}
@article{Hebron1983pharmacokinetics,
author = {Hebron, B S and Edbrooke, D L and Newby, D M and Mather, S J},
journal = {Br. J. Anaesth},
......
......@@ -48,6 +48,7 @@ namespace PULSE_ENGINE
m_HbO2CO2 = nullptr;
m_HCO3 = nullptr;
m_epi = nullptr;
m_norepi = nullptr;
m_acetoacetate = nullptr;
m_albumin = nullptr;
......@@ -77,6 +78,7 @@ namespace PULSE_ENGINE
m_HbO2CO2 = GetSubstance("OxyCarbaminohemoglobin");
m_HCO3 = GetSubstance("Bicarbonate");
m_epi = GetSubstance("Epinephrine");
m_norepi = GetSubstance("Norepinephrine");
if (m_O2 == nullptr)
{
......@@ -134,9 +136,15 @@ namespace PULSE_ENGINE
return false;
}
if (m_norepi == nullptr)
{
Error("Norepinephrine Definition not found");
return false;
}
if (m_O2 == nullptr || m_CO == nullptr || m_CO2 == nullptr || m_N2 == nullptr ||
m_Hb == nullptr || m_HbO2 == nullptr || m_HbCO2 == nullptr || m_HbCO == nullptr || m_HbO2CO2 == nullptr ||
m_epi == nullptr || m_HCO3 == nullptr)
m_epi == nullptr || m_norepi == nullptr || m_HCO3 == nullptr)
return false;
m_acetoacetate = GetSubstance("Acetoacetate");
......@@ -220,6 +228,7 @@ namespace PULSE_ENGINE
AddActiveSubstance(*m_HbO2CO2);
AddActiveSubstance(*m_HCO3);
AddActiveSubstance(*m_epi);
AddActiveSubstance(*m_norepi);
AddActiveSubstance(*m_acetoacetate);
AddActiveSubstance(*m_albumin);
......@@ -726,15 +735,19 @@ namespace PULSE_ENGINE
SetSubstanceMolarity(*m_creatinine, tissue, molarity1);
// EPINEPHRINE //
// Initializing to artificial plasma concentration because BG plasma is BS
//double hematocritGuess = 0.45;
concentration.SetValue(0.034, MassPerVolumeUnit::ug_Per_L);
SetSubstanceConcentration(*m_epi, vascular, concentration);
// Tissue
molarity1.SetValue(1.8558e-7, AmountPerVolumeUnit::mmol_Per_L); //epinephrine: 183.2044 g/mol
//molarity1.SetValue(0, AmountPerVolumeUnit::mmol_Per_L); //epinephrine: 183.2044 g/mol
SetSubstanceMolarity(*m_epi, tissue, molarity1);
// NOREPINEPHRINE //
concentration.SetValue(0.275, MassPerVolumeUnit::ug_Per_L);
SetSubstanceConcentration(*m_norepi, vascular, concentration);
// Tissue
molarity1.SetValue(2.7137e-7, AmountPerVolumeUnit::mmol_Per_L); //epinephrine: 169.18 g/mol
SetSubstanceMolarity(*m_norepi, tissue, molarity1);
// GLUCOSE //
concentration.SetValue(95, MassPerVolumeUnit::mg_Per_dL);
SetSubstanceConcentration(*m_glucose, vascular, concentration);
......
......@@ -60,6 +60,7 @@ namespace PULSE_ENGINE
inline SESubstance& GetHbO2CO2() { return *m_HbO2CO2; }
inline SESubstance& GetHCO3() { return *m_HCO3; }
inline SESubstance& GetEpi() { return *m_epi; }
inline SESubstance& GetNorepi() { return *m_norepi; }
inline SESubstance& GetAcetoacetate() { return *m_acetoacetate; }
inline SESubstance& GetAlbumin() { return *m_albumin; }
......@@ -118,6 +119,7 @@ namespace PULSE_ENGINE
SESubstance* m_HbO2CO2;
SESubstance* m_HCO3;
SESubstance* m_epi;
SESubstance* m_norepi;
SESubstance* m_acetoacetate;
SESubstance* m_albumin;
......
......@@ -72,6 +72,7 @@ namespace PULSE_ENGINE
SELiquidCompartment* rkidney = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::RightEfferentArteriole);
SELiquidCompartment* lkidney = m_data.GetCompartments().GetLiquidCompartment(pulse::VascularCompartment::LeftEfferentArteriole);
m_aortaEpinephrine = aorta->GetSubstanceQuantity(m_data.GetSubstances().GetEpi());
m_aortaNorepinephrine = aorta->GetSubstanceQuantity(m_data.GetSubstances().GetNorepi());
m_rKidneyEpinephrine = rkidney->GetSubstanceQuantity(m_data.GetSubstances().GetEpi());
m_lKidneyEpinephrine = lkidney->GetSubstanceQuantity(m_data.GetSubstances().GetEpi());
m_aortaGlucose = aorta->GetSubstanceQuantity(m_data.GetSubstances().GetGlucose());
......@@ -150,6 +151,9 @@ namespace PULSE_ENGINE
double patientWeight_kg = Patient.GetWeight(MassUnit::kg);
double epinephrineBasalReleaseRate_ug_Per_min = .00229393 * patientWeight_kg; //We want it to be ~.18 ug/min for our StandardMale
double epinephrineRelease_ug = (epinephrineBasalReleaseRate_ug_Per_min / 60) * m_data.GetTimeStep_s(); //amount released per timestep
double norepinephrineBasalReleaseRate_ug_Per_min = /*0.008974*/ 0.019 * patientWeight_kg; //We want it to be ~.7 ug/min for our StandardMale
double norepinephrineRelease_ug = (norepinephrineBasalReleaseRate_ug_Per_min / 60) * m_data.GetTimeStep_s(); //amount released per timestep
double currentMetabolicRate_W = m_data.GetEnergy().GetTotalMetabolicRate(PowerUnit::W);
double basalMetabolicRate_W = Patient.GetBasalMetabolicRate(PowerUnit::W);
......@@ -167,6 +171,9 @@ namespace PULSE_ENGINE
releaseMultiplier = 1.0 + GeneralMath::LogisticFunction(maxMultiplier, e50_W, eta, exercise_W);
}
norepinephrineRelease_ug *= releaseMultiplier;
m_aortaNorepinephrine->GetMass().IncrementValue(0.5 * norepinephrineRelease_ug, MassUnit::ug);
// If we have a stress/anxiety response, release more epi
if (m_data.GetActions().GetPatientActions().HasAcuteStress())
{
......
......@@ -51,6 +51,7 @@ namespace PULSE_ENGINE
double m_insulinMolarMass_g_Per_mol;
SELiquidSubstanceQuantity* m_aortaGlucose = nullptr;
SELiquidSubstanceQuantity* m_aortaEpinephrine = nullptr;
SELiquidSubstanceQuantity* m_aortaNorepinephrine = nullptr;
SELiquidSubstanceQuantity* m_rKidneyEpinephrine = nullptr;
SELiquidSubstanceQuantity* m_lKidneyEpinephrine = nullptr;
SELiquidSubstanceQuantity* m_splanchnicInsulin = nullptr;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment