From 6b5890b94c5463ec432bd7ae917f159a4f53cb20 Mon Sep 17 00:00:00 2001 From: JeffWebb6 Date: Sat, 28 Dec 2024 14:41:40 -0500 Subject: [PATCH 01/18] Automate hemorrhage validation. --- data/config/ScenarioVerification.config | 18 +- .../patient/HemorrhageClass1Femoral.json | 77 --- .../patient/HemorrhageClass2Blood.json | 114 ---- .../HemorrhageClass2BrachialArtery.json | 70 --- .../HemorrhageClass2InternalSpleen.json | 72 --- .../patient/HemorrhageClass2Saline.json | 123 ----- .../patient/HemorrhageClass3NoFluid.json | 96 ---- .../patient/HemorrhageClass3PackedRBC.json | 123 ----- .../patient/HemorrhageClass4NoFluid.json | 96 ---- .../validation/Scenarios/Hemorrhage.xlsx | Bin 0 -> 56613 bytes .../Scenarios/HemorrhageDataRequests.json | 14 + .../HemorrhageTableDataRequests.json | 65 +++ .../Scenarios/NervousDataRequests.json | 11 + docs/Methodology/CardiovascularMethodology.md | 192 +------ docs/Validation/Hemorrhage-Class1Femoral.md | 92 ++++ docs/Validation/Hemorrhage-Class2Blood.md | 92 ++++ docs/Validation/Hemorrhage-Class2Brachial.md | 92 ++++ .../Hemorrhage-Class2InternalSpleen.md | 92 ++++ docs/Validation/Hemorrhage-Class2Saline.md | 112 ++++ docs/Validation/Hemorrhage-Class3NoFluid.md | 92 ++++ .../Hemorrhage-Class3PackedRedBloodCells.md | 112 ++++ docs/Validation/Hemorrhage-Class4NoFluid.md | 92 ++++ docs/Validation/Hemorrhage.json | 501 ++++++++++++++++++ docs/Validation/Hemorrhage.md | 129 +++++ .../engine/testing/ScenarioTestDriver.java | 2 +- src/python/pulse/pipelines/generate_data.py | 2 +- .../pulse/pipelines/segment_validation.py | 1 + 27 files changed, 1513 insertions(+), 969 deletions(-) delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass1Femoral.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass2Blood.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass2BrachialArtery.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass2InternalSpleen.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass2Saline.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass3NoFluid.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass3PackedRBC.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass4NoFluid.json create mode 100644 data/human/adult/validation/Scenarios/Hemorrhage.xlsx create mode 100644 data/human/adult/validation/Scenarios/HemorrhageDataRequests.json create mode 100644 data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json create mode 100644 data/human/adult/validation/Scenarios/NervousDataRequests.json create mode 100644 docs/Validation/Hemorrhage-Class1Femoral.md create mode 100644 docs/Validation/Hemorrhage-Class2Blood.md create mode 100644 docs/Validation/Hemorrhage-Class2Brachial.md create mode 100644 docs/Validation/Hemorrhage-Class2InternalSpleen.md create mode 100644 docs/Validation/Hemorrhage-Class2Saline.md create mode 100644 docs/Validation/Hemorrhage-Class3NoFluid.md create mode 100644 docs/Validation/Hemorrhage-Class3PackedRedBloodCells.md create mode 100644 docs/Validation/Hemorrhage-Class4NoFluid.md create mode 100644 docs/Validation/Hemorrhage.json create mode 100644 docs/Validation/Hemorrhage.md diff --git a/data/config/ScenarioVerification.config b/data/config/ScenarioVerification.config index b4f5d9db5..811621fd3 100644 --- a/data/config/ScenarioVerification.config +++ b/data/config/ScenarioVerification.config @@ -82,16 +82,8 @@ patient/Cough.json = ScenarioTest patient/DyspneaVaried.json = ScenarioTest patient/EffusionCondition.json = ScenarioTest patient/EffusionConditionPlus.json = ScenarioTest -patient/HemorrhageClass1Femoral.json = ScenarioTest -patient/HemorrhageClass2Blood.json = ScenarioTest -patient/HemorrhageClass2BrachialArtery.json = ScenarioTest patient/HemorrhageClass2InternalMultiple.json = ScenarioTest -patient/HemorrhageClass2InternalSpleen.json = ScenarioTest patient/HemorrhageClass2NoFluid.json = ScenarioTest -patient/HemorrhageClass2Saline.json = ScenarioTest -patient/HemorrhageClass3NoFluid.json = ScenarioTest -patient/HemorrhageClass3PackedRBC.json = ScenarioTest -patient/HemorrhageClass4NoFluid.json = ScenarioTest patient/HemorrhageGroup1.json = ScenarioTest patient/HemorrhageGroup2.json = ScenarioTest patient/HemorrhageGroup3.json = ScenarioTest @@ -125,6 +117,16 @@ patient/ZeroPericardialEffusion.json = ScenarioTest patient/ZeroPulmonaryFibrosis.json = ScenarioTest patient/ZeroRenalStenosis.json = ScenarioTest +@group Hemorrhage +Hemorrhage/Class1Femoral.json = ScenarioTest +Hemorrhage/Class2Blood.json = ScenarioTest +Hemorrhage/Class2Brachial.json = ScenarioTest +Hemorrhage/Class2InternalSpleen.json = ScenarioTest +Hemorrhage/Class2Saline.json = ScenarioTest +Hemorrhage/Class3NoFluid.json = ScenarioTest +Hemorrhage/Class3PackedRedBloodCells.json = ScenarioTest +Hemorrhage/Class4NoFluid.json = ScenarioTest + @group ACLS # Cardiac Arrest to Normal Sinus acls/AsystoleToNormalSinus.json = ScenarioTest diff --git a/data/human/adult/scenarios/patient/HemorrhageClass1Femoral.json b/data/human/adult/scenarios/patient/HemorrhageClass1Femoral.json deleted file mode 100644 index c072c546e..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass1Femoral.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "Name": "HemorrhageClass1Femoral", - "Description": "15% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLeg", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLeg", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 90.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 550, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 500.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageClass2Blood.json b/data/human/adult/scenarios/patient/HemorrhageClass2Blood.json deleted file mode 100644 index fa2303f73..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass2Blood.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "Name": "HemorrhageClass2Blood", - "Description": "25% Blood Loss then intravenous administration of whole blood ", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 90.0, - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 50.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 590.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "SubstanceCompoundInfusion": { - "SubstanceCompound": "Blood", - "BagVolume": { - "ScalarVolume": { - "Value": 500.0, - "Unit": "mL" - } - }, - "Rate": { - "ScalarVolumePerTime": { - "Value": 100.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} \ No newline at end of file diff --git a/data/human/adult/scenarios/patient/HemorrhageClass2BrachialArtery.json b/data/human/adult/scenarios/patient/HemorrhageClass2BrachialArtery.json deleted file mode 100644 index 0e9147b43..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass2BrachialArtery.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "Name": "HemorrhageClass2BrachialArtery", - "Description": "25% Blood Loss from Brachial Artery", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightArmVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightArmVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightArm", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 60.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 1375.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightArm", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageClass2InternalSpleen.json b/data/human/adult/scenarios/patient/HemorrhageClass2InternalSpleen.json deleted file mode 100644 index 255414c2b..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass2InternalSpleen.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "Name": "HemorrhageClass2InternalSpleen", - "Description": "25% Blood loss from spleen", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Spleen", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Spleen", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Spleen", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 60.0, - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 1230.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Spleen", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageClass2Saline.json b/data/human/adult/scenarios/patient/HemorrhageClass2Saline.json deleted file mode 100644 index 4697c0bc6..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass2Saline.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "Name": "HemorrhageClass2Saline", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 90.0, - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 50.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 590.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 120.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "SubstanceCompoundInfusion": { - "SubstanceCompound": "Saline", - "BagVolume": { - "ScalarVolume": { - "Value": 500.0, - "Unit": "mL" - } - }, - "Rate": { - "ScalarVolumePerTime": { - "Value": 100.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageClass3NoFluid.json b/data/human/adult/scenarios/patient/HemorrhageClass3NoFluid.json deleted file mode 100644 index b237c73f4..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass3NoFluid.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "Name": "HemorrhageClass3NoFluidLongTerm", - "Description": "35% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 75.0, - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 125.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 575.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 500.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageClass3PackedRBC.json b/data/human/adult/scenarios/patient/HemorrhageClass3PackedRBC.json deleted file mode 100644 index c3ffdf751..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass3PackedRBC.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "Name": "HemorrhageClass3PackedRBC", - "Description": "30% blood loss then intravenous administration of packed red blood cells", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 75.0, - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 175.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 120.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "SubstanceCompoundInfusion": { - "SubstanceCompound": "PackedRBC", - "BagVolume": { - "ScalarVolume": { - "Value": 250.0, - "Unit": "mL" - } - }, - "Rate": { - "ScalarVolumePerTime": { - "Value": 5.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 2330.0, - "Unit": "s" - } - } - } - }] -} \ No newline at end of file diff --git a/data/human/adult/scenarios/patient/HemorrhageClass4NoFluid.json b/data/human/adult/scenarios/patient/HemorrhageClass4NoFluid.json deleted file mode 100644 index 2df9f32d8..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass4NoFluid.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "Name": "HemorrhageClass4NoFluidLongTerm", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 75.0, - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 125.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 700.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 500.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/validation/Scenarios/Hemorrhage.xlsx b/data/human/adult/validation/Scenarios/Hemorrhage.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e43b37feb773419a1a243cfb758843d3516b1b3b GIT binary patch literal 56613 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 literal 0 HcmV?d00001 diff --git a/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json b/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json new file mode 100644 index 000000000..08c83c774 --- /dev/null +++ b/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json @@ -0,0 +1,14 @@ +{ + "DataRequest": + [ + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, + + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} + ] +} diff --git a/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json b/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json new file mode 100644 index 000000000..05604ccbe --- /dev/null +++ b/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json @@ -0,0 +1,65 @@ +{ + "DataRequest": + [ + { "DecimalFormat": { "Precision": 4 }, "Category": "Patient", "PropertyName": "Weight", "Unit": "kg" }, + + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "HeartRate", "Unit": "1/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "HeartStrokeVolume", "Unit": "mL" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "HeartEjectionFraction", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BloodVolume", "Unit": "L" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "ExtravascularFluidVolume", "Unit": "L" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "MeanArterialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "SystolicArterialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "DiastolicArterialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "CardiacOutput", "Unit": "L/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "HemoglobinContent", "Unit": "g" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "CentralVenousPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "PulmonaryCapillariesWedgePressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "TidalVolume", "Unit": "mL" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "RespirationRate", "Unit": "1/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "OxygenSaturation", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "CarbonDioxideSaturation", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "EndTidalCarbonDioxideFraction", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "EndTidalCarbonDioxidePressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "TotalAlveolarVentilation", "Unit": "L/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "TranspulmonaryPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "CoreTemperature", "Unit": "degC" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "SkinTemperature", "Unit": "degC" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "RespiratoryExchangeRatio", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "OxygenConsumptionRate", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "CarbonDioxideProductionRate", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "GlomerularFiltrationRate", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "RenalBloodFlow", "Unit": "L/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "UrineProductionRate", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "LeftAfferentArterioleResistance", "Unit": "mmHg min/mL" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "RightAfferentArterioleResistance", "Unit": "mmHg min/mL" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "SystemicVascularResistance", "Unit": "mmHg s/mL" }, + + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "Aorta", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "Aorta", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, + + { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, + + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, + + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"}, + + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BaroreceptorHeartRateScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BaroreceptorHeartElastanceScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BaroreceptorResistanceScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BaroreceptorComplianceScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "ChemoreceptorHeartRateScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "ChemoreceptorHeartElastanceScale", "Unit": "unitless" } + ] +} diff --git a/data/human/adult/validation/Scenarios/NervousDataRequests.json b/data/human/adult/validation/Scenarios/NervousDataRequests.json new file mode 100644 index 000000000..8530a7727 --- /dev/null +++ b/data/human/adult/validation/Scenarios/NervousDataRequests.json @@ -0,0 +1,11 @@ +{ + "DataRequest": + [ + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaroreceptorHeartRateScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaroreceptorHeartElastanceScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaroreceptorResistanceScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaroreceptorComplianceScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "ChemoreceptorHeartRateScale", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "ChemoreceptorHeartElastanceScale", "Unit": "unitless" } + ] +} diff --git a/docs/Methodology/CardiovascularMethodology.md b/docs/Methodology/CardiovascularMethodology.md index b4a11d19c..7227ea4f8 100644 --- a/docs/Methodology/CardiovascularMethodology.md +++ b/docs/Methodology/CardiovascularMethodology.md @@ -412,7 +412,7 @@ All feedback and imapcts from additional actions will NOT impact the hemodynamic #### Hemorrhage A hemorrhage is a significant reduction in blood volume, which triggers a physiologic response to stabilize cardiovascular function. Hypovolemia is any loss in blood volume, where a loss of more than 35% is considered hypovolemic shock. Hemorrhage causes a reduction in filling pressure for the circulation, leading to a decrease in venous return. This is evidenced by the decrease in mean arterial pressure and cardiac output. If these physiologic values continue to drop, hemorrhagic or hypovolemic shock will occur. There are three stages of shock: a nonprogressive stage, which the normal circulatory responses will lead to a recovery; a progressive stage, which leads to progressively worsening condition and eventual death without intervention; and an irreversible stage, which leads to death regardless of intervention. The sympathetic response is triggered by the decrease in mean arterial blood pressure, specifically by causing the stretch receptors (baroreceptors) to activate. This response triggers an increase in systemic vascular resistance, heart rate, and a decrease in venous compliance. This is discussed in detail in the @ref NervousMethodology. -Hemorrhage can be intiated in the engine through two methods. The first method allows the user to characterize the hemorrhage by specifying the location (compartment) and bleed rate. Multiple hemorrhages can be applied to a single compartment or to multiple compartments. The user specifies a cardiovascular compartment to apply a hemorrhage. After the hemorrhage has been specified, the total loss rate is the sum of each individual bleed rate to that compartment. This value is set as a negative flow source. This results in a decrease in total blood volume that is linearly proportional to the total loss rate. This flow rate will remain constant throughout the computation. As the blood volume decreases, the blood flow to each compartment will begin to decrease. This could lead to an invalid flow rate for the compartment over time. A second method for specifying hemorrhage deals with this issue. A hemorrhage can also be characterized by specifying the location (compartment) and a severity. The severity is specified with a value between 0 and 1. A path is added to the cardiovascular circuit, but instead of specifying a negative flow rate, a resistance is specified on the path. This provides a calculated flow rate that will increase and decrease based on the dynamic physics of the circuit. This will prevent the insufficient blood flow/volume errors that can occur if the flow rate is not manually managed. When a hemorrhage is initiated with a severity, a minimum and maximum resistance are calculated to bound the severity, as shown in Equations 3 and 4, respectively. +Hemorrhage can be initiated in the engine through two methods. The first method allows the user to characterize the hemorrhage by specifying the location (compartment) and bleed rate. Multiple hemorrhages can be applied to a single compartment or to multiple compartments. The user specifies a cardiovascular compartment to apply a hemorrhage. After the hemorrhage has been specified, the total loss rate is the sum of each individual bleed rate to that compartment. This value is set as a negative flow source. This results in a decrease in total blood volume that is linearly proportional to the total loss rate. This flow rate will remain constant throughout the computation. As the blood volume decreases, the blood flow to each compartment will begin to decrease. This could lead to an invalid flow rate for the compartment over time. A second method for specifying hemorrhage deals with this issue. A hemorrhage can also be characterized by specifying the location (compartment) and a severity. The severity is specified with a value between 0 and 1. A path is added to the cardiovascular circuit, but instead of specifying a negative flow rate, a resistance is specified on the path. This provides a calculated flow rate that will increase and decrease based on the dynamic physics of the circuit. This will prevent the insufficient blood flow/volume errors that can occur if the flow rate is not manually managed. When a hemorrhage is initiated with a severity, a minimum and maximum resistance are calculated to bound the severity, as shown in Equations 3 and 4, respectively. \f[R_{\min} = (P-P_{T})/cQ \f]
@@ -445,89 +445,7 @@ Figure 8 demonstrates the different severity specifications and the impact on th Figure 8. Normalized mean arterial pressure and cardiac output as blood loss increases for the Pulse model (left) and the validation data @cite guyton2006medical (right).

-An internal hemorrhage can also be specified for abdominal cardiovascular compartments, including the aorta, vena cava, stomach, splanchnic, spleen, right and left kidneys, large and small intestines, and liver. The internal hemorrhage allows blood to flow into the abdominal cavity, increasing the pressure in the cavity. For the severity implementation, the hemorrhage outlet compartment is specified as the abdominal cavity for Equation 3. This pressure is applied to the aorta, increasing the localized blood pressure as a result of internal blood accumulation. At this time, the internal hemorrhage is only associated with the abdominal region. In the future, we will add functionality for the brain and lungs (hemothorax). - -The hemorrhage response was validated with a comparison to the literature. The mean arterial pressure and cardiac output were computed as a function of their baseline value and plotted with the percent blood loss, as shown in Figure 9. The computed results are shown on the left and the validation data @cite guyton2006medical is shown on the right. - -@htmlonly -
- - - - - -
- -
-
-
-@endhtmlonly -
-Figure 9. Normalized mean arterial pressure (left) and cardiac output (right) as blood loss increases for the Pulse model and the validation data @cite guyton2006medical. -

- -For the hemorrhage to shock scenario, our results maintain MAP through a 20% blood loss and CO begins to slowly decrease as expected. At 20%, we see an approximately linear drop in MAP from a as expected compared to experimental data from @cite guyton2006medical. The cardiac output shows the correct trend but a larger error for this region. The "last ditch" plateau is then exhibited from a blood loss of just under 35% to just under 45%. The MAP and CO then drop precipitously as expected. - -The different types of shock are evident in the data collected for groups of dogs and published in @cite guyton2006medical. Groups I, II, and III show cases of nonprogressive shock, Groups IV, and V show cases of progressive shock, and Group VI is an irreversible shock case. The first three groups recover without intervention, the final case leads quickly to death, and the Group IV and V cases show a short rebound before the physiologic decline that occurs without treatment. These cases were duplicated in the Pulse engine. The results and comparison to validation data are shown in Figure 10. - -@htmlonly -
- - - - - -
- -
-
- -
-@endhtmlonly -
-Figure 10. Normalized mean arterial pressure for different hemorrhage severities to demonstrate the different shock types. The computed Pulse results are on the left and the validation data @cite guyton2006medical is on the right. -

- -For the first three group hemorrhage scenarios (90%, 65%, and 50% blood loss), if the hemorrhage is arrested the MAP begins to rise and reaches a stable value. However, for the remaining three scenarios, the hemorrhage is unrecoverable for the patient. This is expected compared to the experimental data and for the degree of shock. However, one limitation of the model is that at the turning point between progressive and irreversible shock, the expected behavior is a temporary recovery lasting minutes to hours followed by deterioration and death. The current model has no ability to reverse the curve once the final deterioration toward deaths occurs. This is triggered at a blood pressure of approximately 40-45 mmHg. While the outcome is the same, the short recovery is not captured. Future work will incorporate this improvement. - -We also saw the expected blood volume, pressure, heart rate, and substance concentration values follow expected trends for the fluid resuscitation scenarios. Figures 11 and 12 show the appropriate substance behavior coupled with the blood volume changes. Like blood volume, the decrease in the substance will be linearly proportional to the bleed rate. For more specific information regarding these substances and their loss due to bleeding, see @ref BloodChemistryMethodology and @ref SubstanceTransportMethodology. Figure 11 shows the blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no intervention other than the cessation of hemorrhage. Figure 12 shows a hemorrhage event with subsequent saline administration. Note that the hemoglobin content remains diminished as the blood volume recovers with IV saline. By comparison, [Figure 14](@ref cardiovascular-blood-administration) shows a blood-product intervention following a hemorrhage event. In that figure, the hemoglobin increases with the blood infusion. - -@htmlonly -
- - - - - -
- -
-
- -

-@endhtmlonly -
-Figure 11. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no subsequent intervention. -
-
- -@htmlonly - - - - - -
- -
-
- -
- -@endhtmlonly -
-Figure 12. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with a subsequent infusion of saline. -

+An internal hemorrhage can also be specified for abdominal cardiovascular compartments, including the aorta, vena cava, stomach, splanchnic, spleen, right and left kidneys, large and small intestines, and liver. The internal hemorrhage allows blood to flow into the abdominal cavity, increasing the pressure in the cavity. For the severity implementation, the hemorrhage outlet compartment is specified as the abdominal cavity for Equation 3. This pressure is applied to the aorta, increasing the localized blood pressure as a result of internal blood accumulation. At this time, the internal hemorrhage is only associated with the abdominal region. See the hemothorax model in @ref RespiratoryMethodology for details about hemorrhage into the pleural space. In the future, we plan to add functionality for the brain. #### Pericardial Effusion The pericardial effusion action is used to model acute pericardial effusion by adding a flow source on the pericardium. This action leads to a volume accumulation over the course of the simulation. The accumulated volume is used to calculate a pressure source that is applied to the left and right heart. This pressure source is identical to the one used in the pericardial effusion condition. For the pericardial effusion action, the strain-rate dependent compliance of the pericardium is modeled so that the change in intrapericardial pressure is a function of flow rate and the current volume of the pericardium @cite Metoyer2014Modeling. @@ -816,110 +734,8 @@ There are three CPR scenarios for validation. Each scenario perscribes the same | Chest CompressionsForce Scale | 40 | 165-170 | 80 per minute [Direct calculation] | 39.27 @cite redberg1993physiology Approx. 70-80 @cite gruben1990system 105 +/- 41 @cite kim2008direction | 13.97 @cite redberg1993physiology Approx. 40 @cite gruben1990system 33 +/- 10 @cite kim2008direction | 21.13 @cite redberg1993physiology | 17-27% Normal @cite kim2008direction | 19.7 @cite redberg1993physiology 25 +/- 8 @cite kim2008direction | > 0 during compression (translated from dog study) @cite rudikoff1980mechanisms | 34% +/- 16 @cite kim2008direction | -### Hemorrhage -The hemorrhage action is tested using several scenarios. The class 2 hemorrhage scenario with blood intravenous (IV) administration begins with a healthy patient. After a few seconds, a hemorrhage action is initiated at a rate of 250 milliliters (mL) per minute. The hemorrhage continues for four minutes before the bleeding rate is reduced to 0 mL per minute. After two minutes, 500 mL of IV blood is administered intravenously over five minutes. The other hemorrhage scenarios are similar but with different subsequent interventions. There are also two multi-compartment hemorrhage scenarios. Figure 14 demonstrates the time-evolution of select data, and the validation results are displayed in Tables 6a-f. - -The results show decreases in the systolic pressure and minor increases in the diastolic pressure during the course of the hemorrhage. In response to the decreasing arterial pressures, the baroreceptor response raises the heart rate. The blood volume and hemoglobin content were validated through direct calculation by decreasing blood volume by the bleeding rate multiplied by the time. There is a difference between the computed and simulated blood volume post-hemorrhage due to fluid shift between the intravascular and extravascular space. This shift is evident in the period between cessation of hemorrhage and the start of the infusion (top-left panel of Figure 12). - -Following the completion of the hemorrhage, intravenous blood is administered. The validation of this action can be found in the IV Fluid Administration section, with the exception of hemoglobin content. There will be an increase in hemoglobin content directly proportional to the amount of blood added from the IV. This value was calculated directly from the known blood volume in the IV bag and hemoglobin concentration of the blood. The engine matched this calculated value exactly. - -@anchor cardiovascular-blood-administration - -@htmlonly -
- - - - - - - - - -
- -
- -
-
- -
-
-@endhtmlonly -
-Figure 20. The class 2 hemorrhage scenario shows the blood volume decreasing linearly with the constant 250 milliliter per minute bleeding rate. The blood hemoglobin content follows this exact trend. At the conclusion of the bleed, the blood volume and hemoglobin are at a lower value. Five hundred (500) milliliters of blood is then administered intravenously over the course of 5 minutes. Both the blood volume and hemoglobin content increase linearly with this administration. -
- -
-*Table 14. Validation matrix for a class I hemorrhage from the femoral artery. The table shows the engine output compared to key hemodynamic and respiratory parameters.* -
-| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 90 ml/min Hemorrhage | | 30 | 580 | Increase @cite guyton2006medical | No Change @cite guyton2006medical | 4675 | No Change @guyton2006medical | Decrease @cite guyton2006medical | 700 | No Change @cite guyton2006medical | -| Stop Hemorrhage | | 580 | 980 | No Change | No Change | No Change | No Change | No Change | No Change | No Change | - - -
-*Table 15. Validation matrix for a class II hemorrhage from the brachial artery. The table shows the engine output compared to key hemodynamic and respiratory parameters.* -
-| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 60 ml/min Hemorrhage from Right Arm | | 30 | 1405 | Increase @cite guyton2006medical | ~80% normal @cite guyton2006medical | 4125 | Decrease ~65-70% normal @cite guyton2006medical | Decrease @cite guyton2006medical | 620 | No Change @cite guyton2006medical | -| Stop Hemorrhage | | 1405 | 1800 | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | No Change | - - -
-*Table 16. Validation matrix for a class II hemorrhage followed by an intravenous administration of whole blood. The table engine shows the engine output compared to key hemodynamic and respiratory parameters.* -
-| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 140 ml/min Hemorrhage | | 30 | 590 | Increase @cite guyton2006medical | ~80% normal @cite guyton2006medical | 4190 | Decrease ~65-70% normal @cite guyton2006medical | Decrease @cite guyton2006medical | 630 | No Change @cite guyton2006medical | -| Start IV Fluids: Blood at 100 mL/min with a 500 mL bag | | 590 | 1090 | Decrease @cite metoyer2016SME | Increase @cite guyton2006medical | 4590 | Increase @cite guyton2006medical | Increase @cite guyton2006medical | 690 | No Change | - - -
-*Table 17. Validation matrix for a class II hemorrhage followed by an intravenous administration of saline. The table shows the engine output compared to key hemodynamic and respiratory parameters.* -
-| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 140 ml/min Hemorrhage | | 30 | 590 | Increase @cite guyton2006medical | ~80% normal @cite guyton2006medical | 4190 | Decrease ~65-70% normal @cite guyton2006medical | Decrease @cite guyton2006medical | 630 | No Change @cite guyton2006medical | -| Stop Hemorrhage | | 1405 | 1800 | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | No Change | -| Start IV Fluids: Saline at 100 mL/min with a 500 mL bag | | 590 | 1090 | Decrease @cite metoyer2016SME | Increase @cite guyton2006medical | 4590 | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | No Change | - - -
-*Table 18. Validation matrix for an internal class II hemorrhage from the spleen. The table shows the engine output compared to key hemodynamic and respiratory parameters.* -
-| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 60 ml/min Hemorrhage from Spleen | | 30 | 1230 | Increase @cite guyton2006medical | ~80% - No Change bc internal pressure normal @cite guyton2006medical | 4300 | Decrease ~65-70% normal @cite guyton2006medical | Decrease @cite guyton2006medical | 630 | No Change @cite guyton2006medical | -| Stop Hemorrhage | | 1230 | 1500 | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | No Change | - - -
-*Table 19. Validation matrix for a class III hemorrhage. The table shows the engine output compared to key hemodynamic and respiratory parameters.* -
-| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 200 ml/min Hemorrhage from leg and vena cava | | 30 | 575 | Increase @cite guyton2006medical | ~50% normal @cite guyton2006medical | 3600 | Decrease ~50% normal @cite guyton2006medical | Decrease @cite guyton2006medical | 575 | Increase @cite guyton2006medical | -| Stop Hemorrhage | | 605 | 1000 | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | No Change | - - -*Table 20. Validation matrix for a class III hemorrhage followed by intravenous administration of packed red blood cells. The table engine shows the engine output compared to key hemodynamic and respiratory parameters.* - -| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 250 ml/min Hemorrhage from leg and vena cava | | 30 | 400 | Increase @cite guyton2006medical | ~60% normal @cite guyton2006medical | 3800 | Decrease ~50% normal @cite guyton2006medical | Decrease @cite guyton2006medical | 575 | Increase @cite guyton2006medical | -| Stop Hemorrhage | | 430 | 550 | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | Increase @cite guyton2006medical | Increase @cite guyton2006medical | No Change | No Change | -| Start IV Fluids: Packed RBCs at 5 mL/min with a 250 mL bag | | 550 | 2000 | No Change | Increase @cite guyton2006medical | No Change | Increase @cite guyton2006medical | Increase @cite guyton2006medical | Increase | Decrease @cite guyton2006medical | - - -*Table 21. Validation matrix for a class IV hemorrhage. The table shows the engine output compared to key hemodynamic and respiratory parameters.* - -| Segment | Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate (/min) | Mean Arterial Pressure (mmHg) | Blood Volume (mL) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Hemoglobin Content (g) | Respiration Rate (/min) | -| ------------------------ | ------------------------ ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| Initiate 200 ml/min Hemorrhage from leg and vena cava | | 30 | 650 | Increase @cite guyton2006medical | ~60% normal @cite guyton2006medical | 3400 | Decrease ~50% normal @cite guyton2006medical | Decrease @cite guyton2006medical | 500 | Increase @cite guyton2006medical | -| Stop Hemorrhage | | 680 | 750 | Increase @cite guyton2006medical | Decrease @cite guyton2006medical | No Change | Decrease @cite guyton2006medical | Decrease @cite guyton2006medical | No Change | No Change | +@anchor hemorrhage-validation +@insert ./validation/markdown/Hemorrhage.md ### Pericardial Effusion diff --git a/docs/Validation/Hemorrhage-Class1Femoral.md b/docs/Validation/Hemorrhage-Class1Femoral.md new file mode 100644 index 000000000..333d3ce96 --- /dev/null +++ b/docs/Validation/Hemorrhage-Class1Femoral.md @@ -0,0 +1,92 @@ +\anchor HemorrhageClass1Femoral +@insert ./validation/scenarios/Hemorrhage/Class1Femoral-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class1Femoral/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class1FemoralSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class1Femoral/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class1Femoral/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class1FemoralSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class1Femoral/Segment2SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class1FemoralOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage-Class2Blood.md b/docs/Validation/Hemorrhage-Class2Blood.md new file mode 100644 index 000000000..99548d9f7 --- /dev/null +++ b/docs/Validation/Hemorrhage-Class2Blood.md @@ -0,0 +1,92 @@ +\anchor HemorrhageClass2Blood +@insert ./validation/scenarios/Hemorrhage/Class2Blood-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class2Blood/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2BloodSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class2Blood/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class2Blood/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2BloodSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class2Blood/Segment2SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2BloodOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage-Class2Brachial.md b/docs/Validation/Hemorrhage-Class2Brachial.md new file mode 100644 index 000000000..b92c6c827 --- /dev/null +++ b/docs/Validation/Hemorrhage-Class2Brachial.md @@ -0,0 +1,92 @@ +\anchor HemorrhageClass2Brachial +@insert ./validation/scenarios/Hemorrhage/Class2Brachial-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class2Brachial/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2BrachialSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class2Brachial/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class2Brachial/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2BrachialSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class2Brachial/Segment2SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2BrachialOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage-Class2InternalSpleen.md b/docs/Validation/Hemorrhage-Class2InternalSpleen.md new file mode 100644 index 000000000..9510564f2 --- /dev/null +++ b/docs/Validation/Hemorrhage-Class2InternalSpleen.md @@ -0,0 +1,92 @@ +\anchor HemorrhageClass2InternalSpleen +@insert ./validation/scenarios/Hemorrhage/Class2InternalSpleen-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class2InternalSpleen/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2InternalSpleenSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class2InternalSpleen/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class2InternalSpleen/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2InternalSpleenSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class2InternalSpleen/Segment2SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2InternalSpleenOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage-Class2Saline.md b/docs/Validation/Hemorrhage-Class2Saline.md new file mode 100644 index 000000000..99aaa2920 --- /dev/null +++ b/docs/Validation/Hemorrhage-Class2Saline.md @@ -0,0 +1,112 @@ +\anchor HemorrhageClass2Saline +@insert ./validation/scenarios/Hemorrhage/Class2Saline-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class2Saline/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2SalineSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class2Saline/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class2Saline/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2SalineSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class2Saline/Segment2SegmentTable.md + +#### Segment 3 + +@insert ./validation/tables/Hemorrhage/Class2Saline/Segment3ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2SalineSegment3Monitors}. Vitals monitor for Segment 3. +

+ +@insert ./validation/tables/Hemorrhage/Class2Saline/Segment3SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class2SalineOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage-Class3NoFluid.md b/docs/Validation/Hemorrhage-Class3NoFluid.md new file mode 100644 index 000000000..b4b9fb74e --- /dev/null +++ b/docs/Validation/Hemorrhage-Class3NoFluid.md @@ -0,0 +1,92 @@ +\anchor HemorrhageClass3NoFluid +@insert ./validation/scenarios/Hemorrhage/Class3NoFluid-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class3NoFluid/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class3NoFluidSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class3NoFluid/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class3NoFluid/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class3NoFluidSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class3NoFluid/Segment2SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class3NoFluidOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage-Class3PackedRedBloodCells.md b/docs/Validation/Hemorrhage-Class3PackedRedBloodCells.md new file mode 100644 index 000000000..c73cb928d --- /dev/null +++ b/docs/Validation/Hemorrhage-Class3PackedRedBloodCells.md @@ -0,0 +1,112 @@ +\anchor HemorrhageClass3PackedRedBloodCells +@insert ./validation/scenarios/Hemorrhage/Class3PackedRedBloodCells-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class3PackedRedBloodCells/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class3PackedRedBloodCellsSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class3PackedRedBloodCells/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class3PackedRedBloodCells/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class3PackedRedBloodCellsSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class3PackedRedBloodCells/Segment2SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class3PackedRedBloodCells/Segment3ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class3PackedRedBloodCellsSegment3Monitors}. Vitals monitor for Segment 3. +

+ +@insert ./validation/tables/Hemorrhage/Class3PackedRedBloodCells/Segment3SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class3PackedRedBloodCellsOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage-Class4NoFluid.md b/docs/Validation/Hemorrhage-Class4NoFluid.md new file mode 100644 index 000000000..bed7da1de --- /dev/null +++ b/docs/Validation/Hemorrhage-Class4NoFluid.md @@ -0,0 +1,92 @@ +\anchor HemorrhageClass4NoFluid +@insert ./validation/scenarios/Hemorrhage/Class4NoFluid-Introduction.md + +### Segment Validation + +#### Segment 1 + +@insert ./validation/tables/Hemorrhage/Class4NoFluid/Segment1ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class4NoFluidSegment1Monitors}. Vitals monitor for Segment 1. +

+ +@insert ./validation/tables/Hemorrhage/Class4NoFluid/Segment1SegmentTable.md + +#### Segment 2 + +@insert ./validation/tables/Hemorrhage/Class4NoFluid/Segment2ValidationTable.md + +@htmlonly +
+ + + + +
+
+
+@endhtmlonly +
+@figuredef {Class4NoFluidSegment2Monitors}. Vitals monitor for Segment 2. +

+ +@insert ./validation/tables/Hemorrhage/Class4NoFluid/Segment2SegmentTable.md + +### Scenario Output Plots + +@htmlonly +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+@endhtmlonly +
+@figuredef {Class4NoFluidOutputs}. Select outputs from the scenario. +

\ No newline at end of file diff --git a/docs/Validation/Hemorrhage.json b/docs/Validation/Hemorrhage.json new file mode 100644 index 000000000..4d4a698f5 --- /dev/null +++ b/docs/Validation/Hemorrhage.json @@ -0,0 +1,501 @@ +{ + "Plots" : + { + "PlotConfig": { "OutputPathOverride": "./docs/html/plots/Hemorrhage/" }, + "Plotter" : + [ + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 1 from Femoral Artery)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class1FemoralResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class1Femoral_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class1Femoral_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class1Femoral_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class1Femoral_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class1Femoral_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class1Femoral_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class1Femoral_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class1Femoral_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class1Femoral_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class1Femoral_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 1 from Femoral Artery) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class1FemoralResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class1Femoral-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class1FemoralResults-Segments.json" + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 from Brachial Artery)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BrachialResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class2Brachial_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class2Brachial_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class2Brachial_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class2Brachial_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class2Brachial_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class2Brachial_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class2Brachial_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class2Brachial_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class2Brachial_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Brachial_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 from Brachial Artery) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BrachialResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class2Brachial-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BrachialResults-Segments.json" + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 with Whole Blood)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BloodResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class2Blood_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class2Blood_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class2Blood_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class2Blood_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class2Blood_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class2Blood_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class2Blood_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class2Blood_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class2Blood_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 with Whole Blood) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BloodResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class2Blood-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BloodResults-Segments.json" + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 with Saline)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2SalineResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class2Saline_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class2Saline_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class2Saline_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class2Saline_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class2Saline_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class2Saline_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class2Saline_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class2Saline_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class2Saline_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Saline_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 with Saline) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2SalineResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class2Saline-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2SalineResults-Segments.json" + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 Internally from Spleen)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2InternalSpleenResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class2InternalSpleen_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class2InternalSpleen_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class2InternalSpleen_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class2InternalSpleen_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class2InternalSpleen_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class2InternalSpleen_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class2InternalSpleen_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class2InternalSpleen_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class2InternalSpleen_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class2InternalSpleen_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 2 Internally from Spleen) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2InternalSpleenResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class2InternalSpleen-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2InternalSpleenResults-Segments.json" + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 3 with No Fluids)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class3NoFluidResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class3NoFluid_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class3NoFluid_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class3NoFluid_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class3NoFluid_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class3NoFluid_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class3NoFluid_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class3NoFluid_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class3NoFluid_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class3NoFluid_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class3NoFluid_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 3 with No Fluids) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class3NoFluidResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class3NoFluid-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class3NoFluidResults-Segments.json" + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 3 with Packed Red Blood Cells)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class3PackedRedBloodCellsResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class3PackedRedBloodCells_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class3PackedRedBloodCells_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 3 with Packed Red Blood Cells) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class3PackedRedBloodCellsResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class3PackedRedBloodCells-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class3PackedRedBloodCellsResults-Segments.json" + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Validation (Class 4 with No Fluid)", + "PlotConfig": + { + "LegendMode": "NoLegends", "PlotActions": true, "AllowActionsWith": ["Serialize Requested"] + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class4NoFluid_BloodVolume", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class4NoFluid_TotalHemorrhageRate", "YHeader": [ "TotalHemorrhageRate(mL/s)" ] }, + { "OutputFilename": "Class4NoFluid_HeartRate", "YHeader": [ "HeartRate(1/min)" ] }, + { "OutputFilename": "Class4NoFluid_ArterialPressure", "YHeader": [ "ArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_MeanArterialPressure", "YHeader": [ "MeanArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_CentralVenousPressure", "YHeader": [ "CentralVenousPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_SystolicArterialPressure", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_DiastolicArterialPressure", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_CardiacOutput", "YHeader": [ "CardiacOutput(L/min)" ] }, + { "OutputFilename": "Class4NoFluid_HeartStrokeVolume", "YHeader": [ "HeartStrokeVolume(mL)" ] }, + { "OutputFilename": "Class4NoFluid_HemoglobinContent", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class4NoFluid_BrainVasculature-Oxygen-PartialPressure", "YHeader": [ "BrainVasculature-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_RespirationRate", "YHeader": [ "RespirationRate(1/min)" ] }, + { "OutputFilename": "Class4NoFluid_TidalVolume", "YHeader": [ "TidalVolume(mL)" ] }, + { "OutputFilename": "Class4NoFluid_Aorta-Oxygen-PartialPressure", "YHeader": [ "Aorta-Oxygen-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_Aorta-CarbonDioxide-PartialPressure", "YHeader": [ "Aorta-CarbonDioxide-PartialPressure(mmHg)" ] }, + { "OutputFilename": "Class4NoFluid_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" } } } + ] + } + }, + { + "MonitorPlotter": + { + "Comment": "Hemorrhage Validation (Class 4 with No Fluid) Monitor", + "PlotSource": + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" }, + "Vitals": true, "Ventilator": false, "OutputPrefix": "Class4NoFluid-", + "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults-Segments.json" + } + } + ] + }, + "Tables" : + { + "Table" : + [ + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class1Femoral", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class1Femoral", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class2Brachial", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class2Brachial", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class2Blood", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class2Blood", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class2Saline", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class2Saline", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment3SegmentTable", + "ScenarioName": "Class2Saline", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class2InternalSpleen", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class2InternalSpleen", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class3NoFluid", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class3NoFluid", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class3PackedRedBloodCells", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class3PackedRedBloodCells", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment3SegmentTable", + "ScenarioName": "Class3PackedRedBloodCells", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment1SegmentTable", + "ScenarioName": "Class4NoFluid", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + }, + { + "TableName": "Segment2SegmentTable", + "ScenarioName": "Class4NoFluid", + "Segment": 1, + "DataRequestFile": ["HemorrhageTableDataRequests.json"], + "Header": [] + } + ] + } +} diff --git a/docs/Validation/Hemorrhage.md b/docs/Validation/Hemorrhage.md new file mode 100644 index 000000000..80aa3df94 --- /dev/null +++ b/docs/Validation/Hemorrhage.md @@ -0,0 +1,129 @@ +### Hemorrhage Validation + +The hemorrhage response was validated with a comparison to the literature. The mean arterial pressure and cardiac output were computed as a function of their baseline value and plotted with the percent blood loss, as shown in Figure 9. The computed results are shown on the left and the validation data @cite guyton2006medical is shown on the right. + +@htmlonly +
+ + + + + +
+ +
+
+
+@endhtmlonly +
+Figure 9. Normalized mean arterial pressure (left) and cardiac output (right) as blood loss increases for the Pulse model and the validation data @cite guyton2006medical. +

+ +For the hemorrhage to shock scenario, our results maintain MAP through a 20% blood loss and CO begins to slowly decrease as expected. At 20%, we see an approximately linear drop in MAP from a as expected compared to experimental data from @cite guyton2006medical. The cardiac output shows the correct trend but a larger error for this region. The "last ditch" plateau is then exhibited from a blood loss of just under 35% to just under 45%. The MAP and CO then drop precipitously as expected. + +The different types of shock are evident in the data collected for groups of dogs and published in @cite guyton2006medical. Groups I, II, and III show cases of nonprogressive shock, Groups IV, and V show cases of progressive shock, and Group VI is an irreversible shock case. The first three groups recover without intervention, the final case leads quickly to death, and the Group IV and V cases show a short rebound before the physiologic decline that occurs without treatment. These cases were duplicated in the Pulse engine. The results and comparison to validation data are shown in Figure 10. + +@htmlonly +
+ + + + + +
+ +
+
+ +
+@endhtmlonly +
+Figure 10. Normalized mean arterial pressure for different hemorrhage severities to demonstrate the different shock types. The computed Pulse results are on the left and the validation data @cite guyton2006medical is on the right. +

+ +For the first three group hemorrhage scenarios (90%, 65%, and 50% blood loss), if the hemorrhage is arrested the MAP begins to rise and reaches a stable value. However, for the remaining three scenarios, the hemorrhage is unrecoverable for the patient. This is expected compared to the experimental data and for the degree of shock. However, one limitation of the model is that at the turning point between progressive and irreversible shock, the expected behavior is a temporary recovery lasting minutes to hours followed by deterioration and death. The current model has no ability to reverse the curve once the final deterioration toward deaths occurs. This is triggered at a blood pressure of approximately 40-45 mmHg. While the outcome is the same, the short recovery is not captured. Future work will incorporate this improvement. + +We also saw the expected blood volume, pressure, heart rate, and substance concentration values follow expected trends for the fluid resuscitation scenarios. Figures 11 and 12 show the appropriate substance behavior coupled with the blood volume changes. Like blood volume, the decrease in the substance will be linearly proportional to the bleed rate. For more specific information regarding these substances and their loss due to bleeding, see @ref BloodChemistryMethodology and @ref SubstanceTransportMethodology. Figure 11 shows the blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no intervention other than the cessation of hemorrhage. Figure 12 shows a hemorrhage event with subsequent saline administration. Note that the hemoglobin content remains diminished as the blood volume recovers with IV saline. By comparison, Figure 13 shows a scenarios with blood-product intervention and has the hemoglobin increasing with the blood infusion. + +@htmlonly +
+ + + + + +
+ +
+
+ +

+@endhtmlonly +
+Figure 11. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no subsequent intervention. +
+
+ +@htmlonly + + + + + +
+ +
+
+ +
+ +@endhtmlonly +
+Figure 12. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with a subsequent infusion of saline. +

+ +@anchor cardiovascular-blood-administration + +@htmlonly +
+ + + + + + + + + +
+ +
+ +
+
+ +
+
+@endhtmlonly +
+Figure 13. The class 2 hemorrhage scenario shows the blood volume decreasing linearly with the constant 250 milliliter per minute bleeding rate. The blood hemoglobin content follows this exact trend. At the conclusion of the bleed, the blood volume and hemoglobin are at a lower value. Five hundred (500) milliliters of blood is then administered intravenously over the course of 5 minutes. Both the blood volume and hemoglobin content increase linearly with this administration. +
+ +The hemorrhage action is further tested using several scenarios: + +@secreflist + @refitem HemorrhageClass1Femoral "Class 1 Hemorrhage from the Femoral Artery Validation" + @refitem HemorrhageClass2Brachial "Class 2 Hemorrhage from the Brachial Artery Validation" + @refitem HemorrhageClass2Blood "Class 2 Hemorrhage with Whole Blood Administration Validation" + @refitem HemorrhageClass2Saline "Class 2 Hemorrhage with Saline Administration Validation" + @refitem HemorrhageClass2InternalSpleen "Class 2 Hemorrhage Internally from the Spleen Validation" + @refitem HemorrhageClass3NoFluid "Class 3 Hemorrhage Validation" + @refitem HemorrhageClass3PackedRedBloodCells "Class 3 Hemorrhage with Packed Red Blood Cells Administration Validation" + @refitem HemorrhageClass4NoFluid "Class 4 Hemorrhage Validation" +@endsecreflist + +The class 2 hemorrhage scenario with blood intravenous (IV) administration begins with a healthy patient. After a few seconds, a hemorrhage action is initiated at a rate of 250 milliliters (mL) per minute. The hemorrhage continues for four minutes before the bleeding rate is reduced to 0 mL per minute. After two minutes, 500 mL of IV blood is administered intravenously over five minutes. The other hemorrhage scenarios are similar but with different subsequent interventions. There are also two multi-compartment hemorrhage scenarios. + +The results show decreases in the systolic pressure and minor increases in the diastolic pressure during the course of the hemorrhage. In response to the decreasing arterial pressures, the baroreceptor response raises the heart rate. The blood volume and hemoglobin content were validated through direct calculation by decreasing blood volume by the bleeding rate multiplied by the time. There is a difference between the computed and simulated blood volume post-hemorrhage due to fluid shift between the intravascular and extravascular space. This shift is evident in the period between cessation of hemorrhage and the start of the infusion (top-left panel of Figure 12). + +Following the completion of the hemorrhage, intravenous blood is administered. There will be an increase in hemoglobin content directly proportional to the amount of blood added from the IV. This value was calculated directly from the known blood volume in the IV bag and hemoglobin concentration of the blood. diff --git a/src/java/com/kitware/pulse/engine/testing/ScenarioTestDriver.java b/src/java/com/kitware/pulse/engine/testing/ScenarioTestDriver.java index 00615d2db..52dd754b6 100644 --- a/src/java/com/kitware/pulse/engine/testing/ScenarioTestDriver.java +++ b/src/java/com/kitware/pulse/engine/testing/ScenarioTestDriver.java @@ -42,7 +42,7 @@ public class ScenarioTestDriver implements SETestDriver.Executor } catch(InvalidProtocolBufferException ex2) { - Log.error("Unable to read scenario"+job.scenarioDirectory+"/"+job.name); + Log.error("Unable to read scenario "+job.scenarioDirectory+"/"+job.name); Log.error(ex2.getMessage()); return false; } diff --git a/src/python/pulse/pipelines/generate_data.py b/src/python/pulse/pipelines/generate_data.py index 7de8b7409..f30c51d0b 100644 --- a/src/python/pulse/pipelines/generate_data.py +++ b/src/python/pulse/pipelines/generate_data.py @@ -42,7 +42,7 @@ if __name__ == "__main__": # In the future, we will do all xlsx in the data/validation dir # But for now, we are just hard coding the automated xlsx files - xls_files = ["AirwayObstruction.xlsx", "Dehydration.xlsx", "MechanicalVentilator.xlsx", "CSTARS.xlsx"] + xls_files = ["Hemorrhage.xlsx", "AirwayObstruction.xlsx", "Dehydration.xlsx", "MechanicalVentilator.xlsx", "CSTARS.xlsx"] for xls_file in xls_files: segment_validation_pipeline( diff --git a/src/python/pulse/pipelines/segment_validation.py b/src/python/pulse/pipelines/segment_validation.py index 59d56cf4a..176253633 100644 --- a/src/python/pulse/pipelines/segment_validation.py +++ b/src/python/pulse/pipelines/segment_validation.py @@ -247,6 +247,7 @@ if __name__ == "__main__": else: # In the future, we will do all xlsx in the data/validation dir # But for now, we are just hard coding the automated xlsx files + xls_files.append("Hemorrhage.xlsx") xls_files.append("AirwayObstruction.xlsx") xls_files.append("Dehydration.xlsx") xls_files.append("MechanicalVentilator.xlsx") -- GitLab From 215748ba5a43c252577594daa6515290455513d1 Mon Sep 17 00:00:00 2001 From: JeffWebb6 Date: Tue, 31 Dec 2024 09:01:55 -0500 Subject: [PATCH 02/18] Forgot the new generalized hemorrhage data request file. --- .../adult/scenarios/HemorrhageDataRequests.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 data/human/adult/scenarios/HemorrhageDataRequests.json diff --git a/data/human/adult/scenarios/HemorrhageDataRequests.json b/data/human/adult/scenarios/HemorrhageDataRequests.json new file mode 100644 index 000000000..6d5afb040 --- /dev/null +++ b/data/human/adult/scenarios/HemorrhageDataRequests.json @@ -0,0 +1,14 @@ +{ + "DataRequest": + [ + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, + + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} + ] +} -- GitLab From c2dd36fb985068930131e95ac43b7103231436d2 Mon Sep 17 00:00:00 2001 From: Rachel Clipp Date: Wed, 15 Jan 2025 12:46:07 -0500 Subject: [PATCH 03/18] Added base excess and lactate concentration to the hemorrhage data requests and tables --- .../scenarios/HemorrhageDataRequests.json | 5 +- .../Scenarios/HemorrhageDataRequests.json | 5 +- .../HemorrhageTableDataRequests.json | 2 + docs/Validation/Hemorrhage.json | 52 +++++++++++++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/data/human/adult/scenarios/HemorrhageDataRequests.json b/data/human/adult/scenarios/HemorrhageDataRequests.json index 6d5afb040..4f5457e18 100644 --- a/data/human/adult/scenarios/HemorrhageDataRequests.json +++ b/data/human/adult/scenarios/HemorrhageDataRequests.json @@ -9,6 +9,9 @@ { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"}, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mEq/L"}, + + { "DecimalFormat": { "Precision": 6 }, "Category": "Substance", "SubstanceName": "Lactate","PropertyName": "BloodConcentration", "Unit": "ug/L" } ] } diff --git a/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json b/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json index 08c83c774..5e708a576 100644 --- a/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json +++ b/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json @@ -9,6 +9,9 @@ { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"}, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mEq/L"}, + + { "DecimalFormat": { "Precision": 6 }, "Category": "Substance", "SubstanceName": "Lactate","PropertyName": "BloodConcentration", "Unit": "ug/L" } ] } diff --git a/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json b/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json index 05604ccbe..847c6aedd 100644 --- a/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json +++ b/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json @@ -34,6 +34,7 @@ { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "LeftAfferentArterioleResistance", "Unit": "mmHg min/mL" }, { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "RightAfferentArterioleResistance", "Unit": "mmHg min/mL" }, { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "SystemicVascularResistance", "Unit": "mmHg s/mL" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mEq/L"}, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "Aorta", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "Aorta", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" }, @@ -42,6 +43,7 @@ { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "Substance", "SubstanceName": "Lactate","PropertyName": "BloodConcentration", "Unit": "ug/L" }, { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, diff --git a/docs/Validation/Hemorrhage.json b/docs/Validation/Hemorrhage.json index 4d4a698f5..8ba68b18d 100644 --- a/docs/Validation/Hemorrhage.json +++ b/docs/Validation/Hemorrhage.json @@ -363,6 +363,58 @@ "Vitals": true, "Ventilator": false, "OutputPrefix": "Class4NoFluid-", "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults-Segments.json" } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Class 4 No Fluid", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageClass4NoFluidResults.csv" } + ], + "ValidationSource": + { + "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicMeanArterialPressureShockValidation.csv" + }, + "Series": + [ + { "Title": "Mean Arterial Pressure - Response to Hemorrhage", "OutputFilename": "MeanArterialPressureShock", + "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", + "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "MeanArterialPressure(mmHg)" ], + "YLabel": "Pulse Normalized Mean Arterial Pressure", "X2Header": "BloodVolumeLost(%)", + "Y2Header": [ "NormalizedMeanArterialPressure" ], + "Y2Label": "Validation Normalized Mean Arterial Pressure" } + ] + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Groups", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "OnlyY" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup1Results.csv", "Label": "Group 1" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup2Results.csv", "Label": "Group 2" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup3Results.csv", "Label": "Group 3" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup4Results.csv", "Label": "Group 4" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup5Results.csv", "Label": "Group 5" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup6Results.csv", "Label": "Group 6" } + ], + "Series": + [ + { "Title": "Cardiovascular Hemorrhage Groups", "OutputFilename": "HemorrhageGroups", + "YHeader": [ "MeanArterialPressure(mmHg)" ], "YLabel": "Mean Arterial Pressure Delta", + "YBounds": { "LowerBound": 0, "UpperBound": 105 } } + ] + } } ] }, -- GitLab From 0e859aa753312ff9fccf16d16e6e30fce7593fa6 Mon Sep 17 00:00:00 2001 From: JeffWebb6 Date: Mon, 13 Jan 2025 09:25:31 -0500 Subject: [PATCH 04/18] =?UTF-8?q?=EF=BB=BFMove=20hemorrhage=20validation?= =?UTF-8?q?=20figure=20generation=20to=20new=20JSON.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/config/PlotRun.json | 146 ------------------ .../scenarios/HemorrhageDataRequests.json | 6 + .../adult/scenarios/StandardDataRequests.json | 4 +- .../Scenarios/HemorrhageDataRequests.json | 8 +- .../HemorrhageTableDataRequests.json | 6 +- .../Scenarios/StandardDataRequests.json | 4 +- docs/Validation/Hemorrhage.json | 146 ++++++++++++++++++ 7 files changed, 165 insertions(+), 155 deletions(-) diff --git a/data/config/PlotRun.json b/data/config/PlotRun.json index 4f215d453..b1c44e216 100644 --- a/data/config/PlotRun.json +++ b/data/config/PlotRun.json @@ -284,152 +284,6 @@ ] } }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 2 Blood", - "PlotConfig": - { - "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageClass2BloodResults.csv" } - ], - "Series": - [ - { "OutputFilename": "Class2Blood_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, - { "OutputFilename": "Class2Blood_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, - { "OutputFilename": "Class2Blood_Systolic", "Title": "", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, - { "OutputFilename": "Class2Blood_Diastolic", "Title": "", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, - { "OutputFilename": "Class2Blood_Legend", - "PlotConfig": { "LegendMode": "OnlyActionEventLegend", - "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } - ] - } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 2 Saline", - "PlotConfig": - { - "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageClass2SalineResults.csv" } - ], - "Series": - [ - { "OutputFilename": "Class2Saline_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, - { "OutputFilename": "Class2Saline_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, - { "OutputFilename": "Class2Saline_Legend", - "PlotConfig": { "LegendMode": "OnlyActionEventLegend", - "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } - ] - } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - To Shock", - "PlotConfig": - { - "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageToShockResults.csv" } - ], - "Series": - [ - { "OutputFilename": "Class4NoFluid_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, - { "OutputFilename": "Class4NoFluid_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, - { "OutputFilename": "Class4NoFluid_Legend", - "PlotConfig": { "LegendMode": "OnlyActionEventLegend", - "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } - ] - } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 4 No Fluid", - "PlotConfig": - { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageClass4NoFluidResults.csv" } - ], - "ValidationSource": { "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicCardiacOutputShockValidation.csv" }, - "Series": - [ - { "Title": "Cardiac Output - Response to Hemorrhage", "OutputFilename": "CardiacOutputShock", - "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", - "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "CardiacOutput(L/min)" ], - "YLabel": "Pulse Normalized Cardiac Output", "X2Header": "BloodVolumeLost(%)", - "Y2Header": [ "NormalizedCardiacOutput" ], "Y2Label": "Validation Normalized Cardiac Output" } - ] - } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 4 No Fluid", - "PlotConfig": - { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageClass4NoFluidResults.csv" } - ], - "ValidationSource": - { - "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicMeanArterialPressureShockValidation.csv" - }, - "Series": - [ - { "Title": "Mean Arterial Pressure - Response to Hemorrhage", "OutputFilename": "MeanArterialPressureShock", - "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", - "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "MeanArterialPressure(mmHg)" ], - "YLabel": "Pulse Normalized Mean Arterial Pressure", "X2Header": "BloodVolumeLost(%)", - "Y2Header": [ "NormalizedMeanArterialPressure" ], - "Y2Label": "Validation Normalized Mean Arterial Pressure" } - ] - } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhage Groups", - "PlotConfig": - { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "OnlyY" - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup1Results.csv", "Label": "Group 1" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup2Results.csv", "Label": "Group 2" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup3Results.csv", "Label": "Group 3" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup4Results.csv", "Label": "Group 4" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup5Results.csv", "Label": "Group 5" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup6Results.csv", "Label": "Group 6" } - ], - "Series": - [ - { "Title": "Cardiovascular Hemorrhage Groups", "OutputFilename": "HemorrhageGroups", - "YHeader": [ "MeanArterialPressure(mmHg)" ], "YLabel": "Mean Arterial Pressure Delta", - "YBounds": { "LowerBound": 0, "UpperBound": 105 } } - ] - } - }, { "MultiHeaderSeriesPlotter": { diff --git a/data/human/adult/scenarios/HemorrhageDataRequests.json b/data/human/adult/scenarios/HemorrhageDataRequests.json index 4f5457e18..1512ba932 100644 --- a/data/human/adult/scenarios/HemorrhageDataRequests.json +++ b/data/human/adult/scenarios/HemorrhageDataRequests.json @@ -1,6 +1,9 @@ { "DataRequest": [ + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BloodPH" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "HorowitzIndex", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, @@ -8,6 +11,9 @@ { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "SubstanceName": "Lactate", "PropertyName": "Molarity", "Unit": "mmol/L" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mmol/L" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"}, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mEq/L"}, diff --git a/data/human/adult/scenarios/StandardDataRequests.json b/data/human/adult/scenarios/StandardDataRequests.json index 62a8b5185..6d3045de7 100644 --- a/data/human/adult/scenarios/StandardDataRequests.json +++ b/data/human/adult/scenarios/StandardDataRequests.json @@ -62,8 +62,8 @@ { "DecimalFormat": { "Precision": 2 }, "Category": "LiquidCompartment", "CompartmentName": "RightTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, { "DecimalFormat": { "Precision": 2 }, "Category": "LiquidCompartment", "CompartmentName": "LeftTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/min" }, { "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" }, diff --git a/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json b/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json index 5e708a576..1512ba932 100644 --- a/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json +++ b/data/human/adult/validation/Scenarios/HemorrhageDataRequests.json @@ -1,13 +1,19 @@ { "DataRequest": [ + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BloodPH" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "HorowitzIndex", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - + + { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "SubstanceName": "Lactate", "PropertyName": "Molarity", "Unit": "mmol/L" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mmol/L" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"}, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mEq/L"}, diff --git a/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json b/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json index 847c6aedd..c6ec4a591 100644 --- a/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json +++ b/data/human/adult/validation/Scenarios/HemorrhageTableDataRequests.json @@ -34,7 +34,6 @@ { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "LeftAfferentArterioleResistance", "Unit": "mmHg min/mL" }, { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "RightAfferentArterioleResistance", "Unit": "mmHg min/mL" }, { "DecimalFormat": { "Precision": 4 }, "Category": "Physiology", "PropertyName": "SystemicVascularResistance", "Unit": "mmHg s/mL" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BaseExcess", "Unit": "mEq/L"}, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "Aorta", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "Aorta", "SubstanceName": "CarbonDioxide", "PropertyName": "PartialPressure", "Unit": "mmHg" }, @@ -43,9 +42,8 @@ { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "Substance", "SubstanceName": "Lactate","PropertyName": "BloodConcentration", "Unit": "ug/L" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 4 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, diff --git a/data/human/adult/validation/Scenarios/StandardDataRequests.json b/data/human/adult/validation/Scenarios/StandardDataRequests.json index b2806c64e..bce80d9f8 100644 --- a/data/human/adult/validation/Scenarios/StandardDataRequests.json +++ b/data/human/adult/validation/Scenarios/StandardDataRequests.json @@ -62,8 +62,8 @@ { "DecimalFormat": { "Precision": 3 }, "Category": "LiquidCompartment", "CompartmentName": "RightTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, { "DecimalFormat": { "Precision": 3 }, "Category": "LiquidCompartment", "CompartmentName": "LeftTubules", "SubstanceName": "Sodium", "PropertyName": "Concentration", "Unit": "g/L" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/s" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Oxygen", "PropertyName": "AlveolarTransfer", "Unit": "mL/min" }, + { "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "CarbonDioxide", "PropertyName": "AlveolarTransfer", "Unit": "mL/min" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Epinephrine", "PropertyName": "BloodConcentration", "Unit": "ug/L" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Epinephrine", "PropertyName": "SystemicMassCleared", "Unit": "ug" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Substance", "SubstanceName": "Norepinephrine","PropertyName": "BloodConcentration", "Unit": "ug/L" }, diff --git a/docs/Validation/Hemorrhage.json b/docs/Validation/Hemorrhage.json index 8ba68b18d..3c0f5a725 100644 --- a/docs/Validation/Hemorrhage.json +++ b/docs/Validation/Hemorrhage.json @@ -4,6 +4,152 @@ "PlotConfig": { "OutputPathOverride": "./docs/html/plots/Hemorrhage/" }, "Plotter" : [ + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Class 4 No Fluid", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" } + ], + "ValidationSource": { "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicCardiacOutputShockValidation.csv" }, + "Series": + [ + { "Title": "Cardiac Output - Response to Hemorrhage", "OutputFilename": "CardiacOutputShock", + "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", + "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "CardiacOutput(L/min)" ], + "YLabel": "Pulse Normalized Cardiac Output", "X2Header": "BloodVolumeLost(%)", + "Y2Header": [ "NormalizedCardiacOutput" ], "Y2Label": "Validation Normalized Cardiac Output" } + ] + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Class 4 No Fluid", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" } + ], + "ValidationSource": + { + "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicMeanArterialPressureShockValidation.csv" + }, + "Series": + [ + { "Title": "Mean Arterial Pressure - Response to Hemorrhage", "OutputFilename": "MeanArterialPressureShock", + "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", + "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "MeanArterialPressure(mmHg)" ], + "YLabel": "Pulse Normalized Mean Arterial Pressure", "X2Header": "BloodVolumeLost(%)", + "Y2Header": [ "NormalizedMeanArterialPressure" ], + "Y2Label": "Validation Normalized Mean Arterial Pressure" } + ] + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhage Groups", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "OnlyY" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup1Results.csv", "Label": "Group 1" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup2Results.csv", "Label": "Group 2" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup3Results.csv", "Label": "Group 3" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup4Results.csv", "Label": "Group 4" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup5Results.csv", "Label": "Group 5" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup6Results.csv", "Label": "Group 6" } + ], + "Series": + [ + { "Title": "Cardiovascular Hemorrhage Groups", "OutputFilename": "HemorrhageGroups", + "YHeader": [ "MeanArterialPressure(mmHg)" ], "YLabel": "Mean Arterial Pressure Delta", + "YBounds": { "LowerBound": 0, "UpperBound": 105 } } + ] + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Class 2 Blood", + "PlotConfig": + { + "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", + "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BloodResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class2Blood_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class2Blood_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class2Blood_Systolic", "Title": "", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_Diastolic", "Title": "", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, + { "OutputFilename": "Class2Blood_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", + "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } + ] + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Class 2 Saline", + "PlotConfig": + { + "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", + "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2SalineResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class2Saline_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class2Saline_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class2Saline_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", + "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } + ] + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - To Shock", + "PlotConfig": + { + "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", + "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageToShockResults.csv" } + ], + "Series": + [ + { "OutputFilename": "Class4NoFluid_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "Class4NoFluid_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "Class4NoFluid_Legend", + "PlotConfig": { "LegendMode": "OnlyActionEventLegend", + "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } + ] + } + }, { "MultiHeaderSeriesPlotter": { -- GitLab From 51600f37353b397a55ab90bfb52d4d3287c691b3 Mon Sep 17 00:00:00 2001 From: Rachel Clipp Date: Fri, 17 Jan 2025 18:25:24 -0500 Subject: [PATCH 05/18] =?UTF-8?q?=EF=BB=BFMoved=20remaining=20hemorrrhage?= =?UTF-8?q?=20scenarios=20to=20automated=20validation,=20removed=20duplica?= =?UTF-8?q?te=20scenarios,=20added=20new=20markdown=20files=20for=20hemorr?= =?UTF-8?q?hage,=20and=20added=20debugging=20logging=20to=20python.=20TODO?= =?UTF-8?q?:=20markdown=20files=20are=20not=20fully=20supported=20therefor?= =?UTF-8?q?e=20html=20files=20are=20not=20correct.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/config/ScenarioVerification.config | 24 +-- .../HemorrhageClass2InternalMultiple.json | 139 --------------- .../patient/HemorrhageClass2NoFluid.json | 96 ---------- .../patient/HemorrhageInternalSeverity.json | 71 -------- .../scenarios/patient/HemorrhageToShock.json | 102 ----------- .../validation/Scenarios/Hemorrhage.xlsx | Bin 56613 -> 82588 bytes docs/Methodology/CardiovascularMethodology.md | 130 +++++--------- docs/Validation/Hemorrhage.json | 83 +++++---- docs/Validation/Hemorrhage.md | 128 +------------- docs/Validation/HemorrhageAction.md | 147 ++++++++++++++++ docs/Validation/HemorrhageValidation.md | 166 ++++++++++++++++++ .../dataset/segment_dataset_reader.py | 7 +- 12 files changed, 432 insertions(+), 661 deletions(-) delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass2InternalMultiple.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageClass2NoFluid.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageInternalSeverity.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageToShock.json create mode 100644 docs/Validation/HemorrhageAction.md create mode 100644 docs/Validation/HemorrhageValidation.md diff --git a/data/config/ScenarioVerification.config b/data/config/ScenarioVerification.config index 811621fd3..09a4e94af 100644 --- a/data/config/ScenarioVerification.config +++ b/data/config/ScenarioVerification.config @@ -82,20 +82,8 @@ patient/Cough.json = ScenarioTest patient/DyspneaVaried.json = ScenarioTest patient/EffusionCondition.json = ScenarioTest patient/EffusionConditionPlus.json = ScenarioTest -patient/HemorrhageClass2InternalMultiple.json = ScenarioTest -patient/HemorrhageClass2NoFluid.json = ScenarioTest -patient/HemorrhageGroup1.json = ScenarioTest -patient/HemorrhageGroup2.json = ScenarioTest -patient/HemorrhageGroup3.json = ScenarioTest -patient/HemorrhageGroup4.json = ScenarioTest -patient/HemorrhageGroup5.json = ScenarioTest -patient/HemorrhageGroup6.json = ScenarioTest patient/HemorrhageInternalSeverity.json = ScenarioTest -patient/HemorrhageSeverity1.json = ScenarioTest -patient/HemorrhageSeverityMultipleCompartments.json = ScenarioTest -patient/HemorrhageSeverityToFlowToSeverity.json = ScenarioTest patient/HemorrhageToShock.json = ScenarioTest -patient/HemorrhageVaryingSeverity.json = ScenarioTest patient/HemothoraxVaried.json = ScenarioTest patient/PneumoniaExacerbation.json = ScenarioTest patient/PneumoniaModerateBothLungs.json = ScenarioTest @@ -121,11 +109,23 @@ patient/ZeroRenalStenosis.json = ScenarioTest Hemorrhage/Class1Femoral.json = ScenarioTest Hemorrhage/Class2Blood.json = ScenarioTest Hemorrhage/Class2Brachial.json = ScenarioTest +Hemorrhage/Class2InternalMultiple.json = ScenarioTest Hemorrhage/Class2InternalSpleen.json = ScenarioTest Hemorrhage/Class2Saline.json = ScenarioTest Hemorrhage/Class3NoFluid.json = ScenarioTest Hemorrhage/Class3PackedRedBloodCells.json = ScenarioTest Hemorrhage/Class4NoFluid.json = ScenarioTest +Hemorrhage/Group1.json = ScenarioTest +Hemorrhage/Group2.json = ScenarioTest +Hemorrhage/Group3.json = ScenarioTest +Hemorrhage/Group4.json = ScenarioTest +Hemorrhage/Group5.json = ScenarioTest +Hemorrhage/Group6.json = ScenarioTest +Hemorrhage/Severity1.json = ScenarioTest +Hemorrhage/VaryingSeverity.json = ScenarioTest +Hemorrhage/SeverityToFlowToSeverity.json = ScenarioTest +Hemorrhage/SeverityMultiCompartments.json = ScenarioTest + @group ACLS # Cardiac Arrest to Normal Sinus diff --git a/data/human/adult/scenarios/patient/HemorrhageClass2InternalMultiple.json b/data/human/adult/scenarios/patient/HemorrhageClass2InternalMultiple.json deleted file mode 100644 index 125844be1..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass2InternalMultiple.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "Name": "HemorrhageClass2InternalSpleen", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Spleen", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Spleen", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Liver", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Liver", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "LeftKidney", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "LeftKidney", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftKidneyVasculature", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftRenalArtery", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftNephron", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftAfferentArteriole", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftGlomerularCapillaries", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftEfferentArteriole", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftPeritubularCapillaries", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftBowmansCapsules", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftTubules", "PropertyName": "OutFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "LeftRenalVein", "PropertyName": "OutFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Spleen", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 60.0, - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Liver", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 60.0, - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "LeftKidney", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 60.0, - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 500.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Spleen", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Liver", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "LeftKidney", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - }, - "Type": "Internal" - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageClass2NoFluid.json b/data/human/adult/scenarios/patient/HemorrhageClass2NoFluid.json deleted file mode 100644 index dc6a09194..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageClass2NoFluid.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "Name": "HemorrhageClass2NoFluid", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 90.0, - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 50.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 590.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 500.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageInternalSeverity.json b/data/human/adult/scenarios/patient/HemorrhageInternalSeverity.json deleted file mode 100644 index 5e51c852b..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageInternalSeverity.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "Name": "HemorrhageClass2InternalSpleen", - "Description": "25% Blood loss from spleen", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Spleen", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Spleen", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Spleen", - "Severity": { - "Scalar0To1": { - "Value": 0.5 - } - }, - "Type": "Internal" - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 1230.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Spleen", - "Severity": { - "Scalar0To1": { - "Value": 0.0 - } - }, - "Type": "Internal" - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageToShock.json b/data/human/adult/scenarios/patient/HemorrhageToShock.json deleted file mode 100644 index 8fca9333a..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageToShock.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "Name": "HemorrhageToShock", - "Description": "Greater than 40% blood loss with no intervention.", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "SubstanceName": "Lactate", "PropertyName": "Concentration", "Unit": "ug/mL" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 50.0, - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 150.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 625.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 1500.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/validation/Scenarios/Hemorrhage.xlsx b/data/human/adult/validation/Scenarios/Hemorrhage.xlsx index e43b37feb773419a1a243cfb758843d3516b1b3b..aada0de2d6a67bd3d78ccbdfcb553d41925070a6 100644 GIT binary patch delta 53708 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

#- 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 Xu>fyYHjtT03`z{QIT;vCE`xXg @@ -23,7 +23,7 @@ The cardiovascular system is a large organ system comprised of the heart and the @endhtmlonly

-Figure 1. The cardiovascular System with pulmonary and systemic circulations of the human body @cite KVDP2014Circulatory. +@figuredef {SystemDiagram} The cardiovascular System with pulmonary and systemic circulations of the human body @cite KVDP2014Circulatory. Both the pulmonary and systemic circulation originate in the heart, which acts as a pump driving the blood through the entire body. The blood then returns to the right heart via the vena cava, where the right ventricle sends it to the pulmonary arteries and into the lungs. Gas exchange occurs in the vascular arterioles, creating oxygen-rich blood. This blood then returns via the pulmonary veins to the left atrium of the heart. The oxygen-rich blood enters the systemic circulation, providing oxygen to the rest of the body.

@@ -91,7 +91,7 @@ Features, Capabilities, and Dependencies ### The Cardiovascular Circuit The CV circuit (Figure 2) estimates blood pressure, flow, and volume for organs that are represented by several compartments. These compartments are comprised of lumped parameter models that use resistors and capacitors. Inductors may also be used to model inertial effects. The system is discretized into nodes that are connected by paths (see @ref CircuitMethodology). The circuit used to represent the CV System was designed to provide a level of resolution and fidelity that meets the [requirements](@ref MainPageFAQ) of the overall project. -For example, to provide a means for clearing drugs and substances from the bloodstream, the liver and kidneys must have blood flow, pressure, and volume calculations. Another example is the four extremities (right and left arms and legs) that provide extremity hemorrhage capabilities, having been implemented in a previous project (HumanSim: Combat Medic). In this way, the lumped parameter model provides a mechanism for increasing fidelity as required by the anatomic region or physiologic condition being modeled. The large thoracic arteries are lumped together into one “Aorta” compartment, which is represented by four nodes and three paths. The fidelity of any compartment could be easily improved by increasing the level of discretization. By adding nodes and paths, the engine “Aorta” could become the “Ascending Aorta” and “Descending Aorta” to accommodate the fidelity demands of the other systems. This could provide an opportunity to model more complex geometries and pathologies, such as stenosis. Figure 2 shows the cardiovascular circuit. For clarity, the more discretized [renal circuit](@ref renal-circuit) is not shown in this diagram. +For example, to provide a means for clearing drugs and substances from the bloodstream, the liver and kidneys must have blood flow, pressure, and volume calculations. Another example is the four extremities (right and left arms and legs) that provide extremity hemorrhage capabilities, having been implemented in a previous project (HumanSim: Combat Medic). In this way, the lumped parameter model provides a mechanism for increasing fidelity as required by the anatomic region or physiologic condition being modeled. The large thoracic arteries are lumped together into one “Aorta” compartment, which is represented by four nodes and three paths. The fidelity of any compartment could be easily improved by increasing the level of discretization. By adding nodes and paths, the engine “Aorta” could become the “Ascending Aorta” and “Descending Aorta” to accommodate the fidelity demands of the other systems. This could provide an opportunity to model more complex geometries and pathologies, such as stenosis. @figureref {CircuitDiagram} shows the cardiovascular circuit. For clarity, the more discretized [renal circuit](@ref renal-circuit) is not shown in this diagram. @htmlonly
@@ -100,7 +100,7 @@ For example, to provide a means for clearing drugs and substances from the blood
@endhtmlonly
-Figure 2. The cardiovascular circuit consists of nodes that are connected via paths. These segments of nodes and paths are mapped to several compartments which represent the anatomy of the cardiovascular system. The circuit is used to estimate the blood pressure, flow, and volume of these anatomical compartments. +@figureref {CircuitDiagram} The cardiovascular circuit consists of nodes that are connected via paths. These segments of nodes and paths are mapped to several compartments which represent the anatomy of the cardiovascular system. The circuit is used to estimate the blood pressure, flow, and volume of these anatomical compartments.

Nodes serve as the connection points for paths and are the locations at which pressures are measured. Each CV node contains a pressure value, which is given with respect to the atmospheric reference node (indicated in the diagram by the equipotential symbol). Paths contain information about the flow (volume per time). The @ref CircuitMethodology document contains more information about circuit definitions and modeling. The @ref SubstanceTransportMethodology contains more information about the substance transport. In general, nodes contain "across" information and paths contain "through" information. @@ -113,23 +113,23 @@ Derived values for the hemodynamic parameters are available, particularly for sp The heart model generates pressure that drives the hemodynamics through a variable capacitor that simulates the changing elastance of the myocardium throughout the cardiac cycle. The simulated heart has two sides, left and right, simulating the two sides of the human heart. The atria are not included in the heart model; only the ventricular behavior is modeled. #### Heart Elastance and Compliance -The heart compliance is calculated from the inverse of the heart elastance. The heart elastance model used is adapted from the one developed by Stergiopulos et al @cite stergiopulos1996elastance. This model utilizes a double Hill function to represent heart elastance over the cardiac cycle time period. It was chosen due to its ability to scale with increasing or decreasing cardiac cycle times. The functional form for elastance of both left and right ventricles is shown in Equation 1 and Equation 2. +The heart compliance is calculated from the inverse of the heart elastance. The heart elastance model used is adapted from the one developed by Stergiopulos et al @cite stergiopulos1996elastance. This model utilizes a double Hill function to represent heart elastance over the cardiac cycle time period. It was chosen due to its ability to scale with increasing or decreasing cardiac cycle times. The functional form for elastance of both left and right ventricles is shown in @equationref {elastance1} and @equationref {elastance2}. \f[E_{v} (t)=(E_{\max ,v} -E_{\min ,v} )\left(\frac{f(t)}{f_{\max } } \right)+E_{\min ,v} \f]
-*Equation 1.* +*@equationdef {elastance1}*

Where *Emax,v* is the maximum ventricle elastance in mmHg per mL. *Emin,v* is the minimum ventricle elastance in mmHg per mL. *f(t)* is the double Hill function, and *fmax* is the maximum value of the double Hill over the cardiac cycle length. \f[f(t)=\left[\frac{\left(\frac{t}{\alpha _{1} T} \right)^{n_{1} } }{1+\left(\frac{t}{\alpha _{1} T} \right)^{n_{1} } } \right]\left[\frac{1}{1+\left(\frac{t}{\alpha _{2} T} \right)^{n_{2} } } \right] \f]
-*Equation 2.* +*@equationdef {elastance2}*

Where α1 , α2 , *n1*, and *n2* are shape parameters used to determine the distribution of the double Hill function. *T* is the cardiac cycle time period and *t* is the current time within the cardiac cycle. -The relationship between the elastance and compliance in the engine is shown in Figure 3. +The relationship between the elastance and compliance in the engine is shown in @equationref {ComplianceandElastance}. @htmlonly
@@ -138,11 +138,11 @@ The relationship between the elastance and compliance in the engine is shown in
@endhtmlonly
-Figure 3. The left heart compliance and elastance are shown to be inversely related to each other. The elastance represents the change in pressure per change in volume, while the compliance is the change in volume per change in pressure. These quantities define the contraction of the heart, which drives the pressure and flow of the cardiovascular circuit. +@figuredef {ComplianceandElastance} The left heart compliance and elastance are shown to be inversely related to each other. The elastance represents the change in pressure per change in volume, while the compliance is the change in volume per change in pressure. These quantities define the contraction of the heart, which drives the pressure and flow of the cardiovascular circuit.

#### Heart Pressure, Volume, and Flow -The variable compliance, which is used to model heart contraction and relaxation, yields pressure and volume changes that drive the flow through the CV circuit. This variable compliance driver allows the pressures and volumes to be calculated within the heart, as shown in Figure 4. +The variable compliance, which is used to model heart contraction and relaxation, yields pressure and volume changes that drive the flow through the CV circuit. This variable compliance driver allows the pressures and volumes to be calculated within the heart, as shown in @equationref {PressurevsVolume}. @htmlonly @@ -152,10 +152,10 @@ The variable compliance, which is used to model heart contraction and relaxation @endhtmlonly
-Figure 4. Relationship between pressure and volume in the left heart throughout the cardiac cycle. The relaxation of the heart muscle is modeled by increasing the compliance, resulting in an increase in left heart volume with a relatively constant left heart pressure. The contraction is represented by a rapid decrease in the compliance, leading to large pressure increases for small volume additions. This large pressure value drives the fluid out of the heart with flow rates calculated based on the circuit solution. +@figuredef {PressurevsVolume} Relationship between pressure and volume in the left heart throughout the cardiac cycle. The relaxation of the heart muscle is modeled by increasing the compliance, resulting in an increase in left heart volume with a relatively constant left heart pressure. The contraction is represented by a rapid decrease in the compliance, leading to large pressure increases for small volume additions. This large pressure value drives the fluid out of the heart with flow rates calculated based on the circuit solution.

-A pressure-volume curve is used to represent the evolution of the cardiac cycle from the systolic contraction to diastolic relaxation. The pressure-volume curve for the left ventricle is shown in Figure 5. Starting from the bottom left and moving clockwise, the curve demonstrates a rapid increase in pressure with no change in volume. This indicates the systolic contraction of the cardiac cycle. Following this, the pressure declines rapidly as the heart expands during diastole. The last portion of the curve shows decreasing volume at constant pressure. Normally, the pressure would decrease slightly due to the imperfect mitral valve, which does not close instantly. The engine uses ideal valves, which close instantaneously, causing the pressure to be maintained as volume decreases. +A pressure-volume curve is used to represent the evolution of the cardiac cycle from the systolic contraction to diastolic relaxation. The pressure-volume curve for the left ventricle is shown in @equationref {PVLoop}. Starting from the bottom left and moving clockwise, the curve demonstrates a rapid increase in pressure with no change in volume. This indicates the systolic contraction of the cardiac cycle. Following this, the pressure declines rapidly as the heart expands during diastole. The last portion of the curve shows decreasing volume at constant pressure. Normally, the pressure would decrease slightly due to the imperfect mitral valve, which does not close instantly. The engine uses ideal valves, which close instantaneously, causing the pressure to be maintained as volume decreases. @htmlonly
@@ -164,7 +164,7 @@ A pressure-volume curve is used to represent the evolution of the cardiac cycle
@endhtmlonly
-Figure 5. The pressure-volume curve for the left ventricle is represented as a pressure vs. volume plot. It demonstrates the the contracting and relaxing portions of the cardiac cycle. In addition, the curve demonstrates the use of ideal valves in the simulated heart due to instantaneous changes in volume at a set pressure. +@figuredef {PVLoop} The pressure-volume curve for the left ventricle is represented as a pressure vs. volume plot. It demonstrates the the contracting and relaxing portions of the cardiac cycle. In addition, the curve demonstrates the use of ideal valves in the simulated heart due to instantaneous changes in volume at a set pressure.

### Drug Effects @@ -177,7 +177,7 @@ This data is stored in a text file. To account for the variable heart rate, rhythms are time series of voltage that is representative of a single cardiac cycle. The points are then interpolated based on the length of the cardiac cycle. -Figure 6 shows the lead 3 sinus waveform in Pulse compared to an example sinus waveform with the key features highlighted. +@equationref {SinusECG} shows the lead 3 sinus waveform in Pulse compared to an example sinus waveform with the key features highlighted. @htmlonly
@@ -193,7 +193,7 @@ Figure 6 shows the lead 3 sinus waveform in Pulse compared to an example sinus w
@endhtmlonly
-Figure 6. The ECG system produces a normal sinus waveform with the expected features. +@figuredef {SinusECG} The ECG system produces a normal sinus waveform with the expected features.

@anchor cardiovascular-variability @@ -261,7 +261,7 @@ All feedback and imapcts from additional actions will NOT impact the hemodynamic
@endhtmlonly -Figure 7. The ECG waveform is set to 0 volts to represent the lack of electrical activity @cite ACLS2021asystole in asystole. +@figuredef {ECGAsystole} The ECG waveform is set to 0 volts to represent the lack of electrical activity @cite ACLS2021asystole in asystole.
Sinus Tachycardia @@ -284,7 +284,7 @@ All feedback and imapcts from additional actions will still impact the hemodynam
@endhtmlonly -Figure 8. Due to the high heart rate, the engine output is summing together the P and T waves. In the image from PhysioNet, the output is not summed together as dramatically, due to the slight physiological compression of the waveform that the current %ECG system and heart model do not support. @cite healey2005detecting @cite goldberger2000physiobank +@figuredef {ECFSinusTachycardia} Due to the high heart rate, the engine output is summing together the P and T waves. In the image from PhysioNet, the output is not summed together as dramatically, due to the slight physiological compression of the waveform that the current %ECG system and heart model do not support. @cite healey2005detecting @cite goldberger2000physiobank
Sinus Bradycardia @@ -307,7 +307,7 @@ All feedback and imapcts from additional actions will still impact the hemodynam @endhtmlonly
-Figure 9. The increased R-R interval is evident in both waveforms. This is the primary indication of the low heart rate. Validation image courtesy of @cite vanderBilt2010sinus . +@figuredef {SinusBradycardia} The increased R-R interval is evident in both waveforms. This is the primary indication of the low heart rate. Validation image courtesy of @cite vanderBilt2010sinus .
Pulseless Electrical Activity (PEA) @@ -322,7 +322,7 @@ All feedback and imapcts from additional actions will NOT impact the hemodynamic
@endhtmlonly -Figure 10. PEA is characterized by organized electrical activity in a normal sinus rhythm shape with a reduced amplitude @cite ACLS2021Pulseless. +@figuredef {ECGPEA} PEA is characterized by organized electrical activity in a normal sinus rhythm shape with a reduced amplitude @cite ACLS2021Pulseless.
Ventricular Fibrillation Arrhythmias @@ -354,7 +354,7 @@ All feedback and imapcts from additional actions will NOT impact the hemodynamic
@endhtmlonly -Figure 11. Ventricular fibrillation is characterized by disorganized electrical activity. Coarse (Left) has higher electrical signal than fine (Right) ventricular fibrillation @cite ClevelandClinic2021vfib. +@figuredef {ECGVentricularFib} Ventricular fibrillation is characterized by disorganized electrical activity. Coarse (Left) has higher electrical signal than fine (Right) ventricular fibrillation @cite ClevelandClinic2021vfib.
Ventricular Tachycardia Arrhythmias @@ -375,14 +375,14 @@ Unstable ventricular tachycardia is characterized by a heart rate of over 150 @c
@endhtmlonly -Figure 12. This ventricular tachycardia ECG waveform is used for both stable and unstable types and is scaled to the heart rate. +@figuredef {ECFVentricularTachy} This ventricular tachycardia ECG waveform is used for both stable and unstable types and is scaled to the heart rate.
Pulse will transition the patient to this heart rate over 60s. For stable ventricular tachycardia, the heart rate baseline is set to 130. For unstable ventricular tachycardia, the heart rate baseline is set to 160. The blood pressure was reduced through for unstable ventricular tachycardia by adding systemic compliance and resistance modifiers. -The heart rate and blood pressure for stable and unstable ventricular tachycardia are shown in Figure 13. +The heart rate and blood pressure for stable and unstable ventricular tachycardia are shown in @equationref {ECGHRVentricularTachy}. All feedback and imapcts from additional actions will still impact the hemodynamics of the cardiovascular system from this new starting rate.
@@ -401,7 +401,7 @@ All feedback and imapcts from additional actions will still impact the hemodynam
@endhtmlonly -Figure 13. Heart rate for stable (Far Left) and unstable ventricular (Middle Left) tachycardia meets the validation of 100-150 and greater than 150, respectively @cite ACLS2021Tachy. +@figuredef {ECGHRVentricularTachy} Heart rate for stable (Far Left) and unstable ventricular (Middle Left) tachycardia meets the validation of 100-150 and greater than 150, respectively @cite ACLS2021Tachy. Stable ventricular (Middle Right) tachycardia shows hemodynamic stability, while hemodynamic instability is present in unstable ventricular tachycardia (Far Right) @cite LearningNetwork2021stable @cite Wegria1958effect.

@@ -410,42 +410,8 @@ The ECG is set to a ventricular tachycardia rhythm for pulseless ventricular tac All feedback and imapcts from additional actions will NOT impact the hemodynamics of the cardiovascular system, as there is no hemodynamic activity during this arrhythmia. #### Hemorrhage -A hemorrhage is a significant reduction in blood volume, which triggers a physiologic response to stabilize cardiovascular function. Hypovolemia is any loss in blood volume, where a loss of more than 35% is considered hypovolemic shock. Hemorrhage causes a reduction in filling pressure for the circulation, leading to a decrease in venous return. This is evidenced by the decrease in mean arterial pressure and cardiac output. If these physiologic values continue to drop, hemorrhagic or hypovolemic shock will occur. There are three stages of shock: a nonprogressive stage, which the normal circulatory responses will lead to a recovery; a progressive stage, which leads to progressively worsening condition and eventual death without intervention; and an irreversible stage, which leads to death regardless of intervention. The sympathetic response is triggered by the decrease in mean arterial blood pressure, specifically by causing the stretch receptors (baroreceptors) to activate. This response triggers an increase in systemic vascular resistance, heart rate, and a decrease in venous compliance. This is discussed in detail in the @ref NervousMethodology. - -Hemorrhage can be initiated in the engine through two methods. The first method allows the user to characterize the hemorrhage by specifying the location (compartment) and bleed rate. Multiple hemorrhages can be applied to a single compartment or to multiple compartments. The user specifies a cardiovascular compartment to apply a hemorrhage. After the hemorrhage has been specified, the total loss rate is the sum of each individual bleed rate to that compartment. This value is set as a negative flow source. This results in a decrease in total blood volume that is linearly proportional to the total loss rate. This flow rate will remain constant throughout the computation. As the blood volume decreases, the blood flow to each compartment will begin to decrease. This could lead to an invalid flow rate for the compartment over time. A second method for specifying hemorrhage deals with this issue. A hemorrhage can also be characterized by specifying the location (compartment) and a severity. The severity is specified with a value between 0 and 1. A path is added to the cardiovascular circuit, but instead of specifying a negative flow rate, a resistance is specified on the path. This provides a calculated flow rate that will increase and decrease based on the dynamic physics of the circuit. This will prevent the insufficient blood flow/volume errors that can occur if the flow rate is not manually managed. When a hemorrhage is initiated with a severity, a minimum and maximum resistance are calculated to bound the severity, as shown in Equations 3 and 4, respectively. - -\f[R_{\min} = (P-P_{T})/cQ \f] -
-Equation 3. -

- -Where Rmin is the minimum resistance, P is the blood pressure at the compartment hemorrhaging, PT is the pressure at the hemorrhage flow outlet, Q is the flow through the hemorrhage compartment (not the hemorrhage flow), and c a tuning factor. The tuning factor is employed to ensure a severity of 1.0 corresponds to a hemorrhage rate of approximately 90% of the flow through the compartment. The severity specified in the hemorrhage action is then used to calculate the resistance on the path. - -\f[R_{\max} = (c_{1})*R_{\min}/s \f] -
-Equation 4. -

- -Figure 8 demonstrates the different severity specifications and the impact on the hemorrhage flow rate as the severity is changed or the body responds to the hemorrhage. The results show that the hemorrhage severity changes the flow rate for the hemorrhage as expected, i.e., a 0.5 severity corresponds to 50% of the flow associated with a severity of 1.0. The results also show that as time passes the flow rate will naturally decrease without changing the severity to correspond to the reduction in blood pressure that occurs with hemorrhage. These results also demonstrate the ability to transition from a severity to a flow implementation and back to severity, if required. - -@htmlonly -
- - - - - -
- -
-
-
-@endhtmlonly -
-Figure 8. Normalized mean arterial pressure and cardiac output as blood loss increases for the Pulse model (left) and the validation data @cite guyton2006medical (right). -

- -An internal hemorrhage can also be specified for abdominal cardiovascular compartments, including the aorta, vena cava, stomach, splanchnic, spleen, right and left kidneys, large and small intestines, and liver. The internal hemorrhage allows blood to flow into the abdominal cavity, increasing the pressure in the cavity. For the severity implementation, the hemorrhage outlet compartment is specified as the abdominal cavity for Equation 3. This pressure is applied to the aorta, increasing the localized blood pressure as a result of internal blood accumulation. At this time, the internal hemorrhage is only associated with the abdominal region. See the hemothorax model in @ref RespiratoryMethodology for details about hemorrhage into the pleural space. In the future, we plan to add functionality for the brain. +@anchor hemorrhage-action +@insert ./validation/markdown/HemorrhageAction.md #### Pericardial Effusion The pericardial effusion action is used to model acute pericardial effusion by adding a flow source on the pericardium. This action leads to a volume accumulation over the course of the simulation. The accumulated volume is used to calculate a pressure source that is applied to the left and right heart. This pressure source is identical to the one used in the pericardial effusion condition. For the pericardial effusion action, the strain-rate dependent compliance of the pericardium is modeled so that the change in intrapericardial pressure is a function of flow rate and the current volume of the pericardium @cite Metoyer2014Modeling. @@ -501,10 +467,10 @@ The %Cardiovascular System was validated quantitatively and qualitatively under @anchor cardiovascular-validation-resting Validation - Resting Physiologic State -------------------------------------- -Validation results for system and compartment quantities are listed in Tables 1 and 2. System-level quantities show favorable agreement with validation values. Heart rate, arterial pressures, blood volume, heart stroke volume, and cardiac output are the predominant CV System quantities. These values agree, on average, within ~8 percent of the expected values for the healthy standard patient. +Validation results for system and compartment quantities are listed in @tableref {SystemValidation} and @tableref {CompartmentValidation}. System-level quantities show favorable agreement with validation values. Heart rate, arterial pressures, blood volume, heart stroke volume, and cardiac output are the predominant CV System quantities. These values agree, on average, within ~8 percent of the expected values for the healthy standard patient.
-*Table 1. Validation of the resting physiologic state comparison of system-level outputs from the engine to referenced values. System-level outputs show favorable agreement with validation data.* +*@tabledef {SystemValidation} Validation of the resting physiologic state comparison of system-level outputs from the engine to referenced values. System-level outputs show favorable agreement with validation data.*
Standard Male @@ -516,7 +482,7 @@ Validation results for system and compartment quantities are listed in Tables 1 @insert ./test_results/tables/Cardiovascular-StandardFemaleValidationTable.md
-*Table 2. Validation of the resting physiologic state comparison of compartment-level outputs from the engine to referenced values. The compartments are currently validated on a flow/volume basis. Flows and most of the volumes show good agreement with validation values.* +*@tabledef {CompartmentValidation} Validation of the resting physiologic state comparison of compartment-level outputs from the engine to referenced values. The compartments are currently validated on a flow/volume basis. Flows and most of the volumes show good agreement with validation values.*
Standard Male @@ -543,16 +509,16 @@ The arterial pressure waveform was validated according to the plot shown in Figu @endhtmlonly
-Figure 13. Arterial pressure waveform comparisons. The diastolic and systolic pressures were validated using the data shown in Table 1. To validate the waveform shape and demonstrate the overall feature match of the engine pressure waveform with the validation data, a waveform was found on PhysioNet @cite goldberger2000physiobank . However, the patient heart rate and parameters are slightly different than the engine patient. This led to timing discrepancies and differences in the diastolic and systolic pressures. To demonstrate the waveform feature matching, a separate axis is used for each data set. Both the validation waveform and the engine waveform show sharp increases in pressure during the systolic period. After the contraction occurs, the pressure begins decreasing and that is where the main difference in the engine and the validation data occur. There is a dip and subsequent rise in the arterial pressure that occurs due to the dicrotic notch, which the engine does not capture. +@figuredef {ArterialPRessureWaveforms} Arterial pressure waveform comparisons. The diastolic and systolic pressures were validated using the data shown in Table 1. To validate the waveform shape and demonstrate the overall feature match of the engine pressure waveform with the validation data, a waveform was found on PhysioNet @cite goldberger2000physiobank . However, the patient heart rate and parameters are slightly different than the engine patient. This led to timing discrepancies and differences in the diastolic and systolic pressures. To demonstrate the waveform feature matching, a separate axis is used for each data set. Both the validation waveform and the engine waveform show sharp increases in pressure during the systolic period. After the contraction occurs, the pressure begins decreasing and that is where the main difference in the engine and the validation data occur. There is a dip and subsequent rise in the arterial pressure that occurs due to the dicrotic notch, which the engine does not capture.

@anchor cardiovascular-validation-conditions Validation - Actions and Conditions -------------------- -All actions in the CV System were validated. A summary of this validation is shown in Table 3. More details on each individual scenario's validation can be found below. +All actions in the CV System were validated. A summary of this validation is shown in @tableref {ValidationSummary}. More details on each individual scenario's validation can be found below.
-*Table 3. Cumulative validation results for %Cardiovascular specific conditions and actions scenarios.* +*@tabledef {ValidationSummary} Cumulative validation results for %Cardiovascular specific conditions and actions scenarios.*
| Key | @@ -597,7 +563,7 @@ Several additional scenarios test going to asystole and returning to each of the #### Asystole
-*Table 3. Validation matrix for going from normal sinus, to asystole, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {AsysoleValidation} Validation matrix for going from normal sinus, to asystole, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Asystole To NormalSinus | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -608,7 +574,7 @@ Several additional scenarios test going to asystole and returning to each of the #### Sinus Bradycardia
-*Table 4. Validation matrix for going from nornal sinus, to sinus bradycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {SinusBradycardiaVal} Validation matrix for going from nornal sinus, to sinus bradycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| NormalSinus To SinusBradycardia | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -616,7 +582,7 @@ Several additional scenarios test going to asystole and returning to each of the | Normal Sinus | | 210 | 300 | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Normal Sinus @cite ACLS2021asystole |
-*Table 5. Validation matrix form nornal sinus, to asystole, to sinus bradycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {SinusBradycardiaAsystoleVal} Validation matrix form nornal sinus, to asystole, to sinus bradycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Asystole To SinusBradycardia | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -627,7 +593,7 @@ Several additional scenarios test going to asystole and returning to each of the #### Sinus Tachycardia
-*Table 6. Validation matrix for going from nornal sinus, to sinus tachycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {SinusTachyVal} Validation matrix for going from nornal sinus, to sinus tachycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| NormalSinus To SinusTachycardia | Notes | Action Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -636,7 +602,7 @@ Several additional scenarios test going to asystole and returning to each of the
-*Table 7. Validation matrix for going from nornal sinus, to asystole, to sinus tachycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {SinusTachyAsysoleVal} Validation matrix for going from nornal sinus, to asystole, to sinus tachycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Asystole To SinusTachycardia | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -646,7 +612,7 @@ Several additional scenarios test going to asystole and returning to each of the #### Sinus Pulseless Electrical Activity
-*Table 8. Validation matrix for Sinus Pulseless Electrical Activity. The table shows the engine output compared to key hemodynamic and respiratory parameters* +*@tabledef {PEAVal} Validation matrix for Sinus Pulseless Electrical Activity. The table shows the engine output compared to key hemodynamic and respiratory parameters*
| Sinus Pulseless Electrical Activity To NormalSinus | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -660,7 +626,7 @@ Course and fine ventricular fibrillation only differ by the ECG waveform output. Physiology is modelled identically for both.
-*Table 9. Validation matrix for going from normal sinus, to coarse Ventricular Fibrillation, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {VentribularFibCoarse} Validation matrix for going from normal sinus, to coarse Ventricular Fibrillation, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Coarse Ventricular Fibrillation To NormalSinus | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -668,7 +634,7 @@ Physiology is modelled identically for both. | Normal Sinus | | 210 | 300 | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Normal Sinus @cite ACLS2021asystole |
-*Table 10. Validation matrix for going from normal sinus, to fine Ventricular Fibrillation, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {VentribularFibFine} Validation matrix for going from normal sinus, to fine Ventricular Fibrillation, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Fine Ventricular Fibrillation To NormalSinus | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -679,7 +645,7 @@ Physiology is modelled identically for both. #### Ventricular Tachycardia
-*Table 11. Validation matrix for going from normal sinus, to stable Ventricular Tachycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*T@tabledef {VentricularStableTachy} Validation matrix for going from normal sinus, to stable Ventricular Tachycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| NormalSinus To Stable Ventricular Tachycardia | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -687,7 +653,7 @@ Physiology is modelled identically for both. | Normal Sinus | | 210 | 300 | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Normal Sinus @cite ACLS2021asystole |
-*Table 12. Validation matrix for going from normal sinus, to asystole, to stable Ventricular Tachycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {VentricularStableAsystole} Validation matrix for going from normal sinus, to asystole, to stable Ventricular Tachycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Asystole To Stable Ventricular Tachycardia | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -695,7 +661,7 @@ Physiology is modelled identically for both. | Stable Ventricular Tachycardia | | 30 | 130 | 100-150 @cite ACLS2021Tachy | Little to no change @cite LearningNetwork2021stable | Little to no change @cite LearningNetwork2021stable | Little to no change @cite LearningNetwork2021stable | Increase @cite sohn2007hemodynamic | Decreases as Heart Rate increases @cite aroesty1985simultaneous | Ventricular Tachycardia@cite ACLS2021Tachy |
-*Table 13. Validation matrix for going from normal sinus, to unstable Ventricular Tachycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {VentricularUnstableTachy} Validation matrix for going from normal sinus, to unstable Ventricular Tachycardia, back to normal sinus. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| NormalSinus To Unstable Ventricular Tachycardia | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -703,7 +669,7 @@ Physiology is modelled identically for both. | Normal Sinus | | 210 | 300 | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Return to normal after period of recovery | Normal Sinus @cite ACLS2021asystole |
-*Table 14. Validation matrix for going from normal sinus, to asystole, to unstable Ventricular Tachycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {VentricularUnstableTacyAsystole} Validation matrix for going from normal sinus, to asystole, to unstable Ventricular Tachycardia. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Asystole To Unstable Ventricular Tachycardia | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -713,7 +679,7 @@ Physiology is modelled identically for both. #### Pulseless Ventricular Tachycardia
-*Table 15. Validation matrix for Pulseless Ventricular Tachycardia arrhythmias. The table shows the engine output compared to key hemodynamic and respiratory parameters.* +*@tabledef {PulselessVentricularTachy} Validation matrix for Pulseless Ventricular Tachycardia arrhythmias. The table shows the engine output compared to key hemodynamic and respiratory parameters.*
| Pulseless Ventricular Tachycardia To NormalSinus | Notes | Occurrence Time (s) | Sample Scenario Time (s) | Heart Rate (beats/min) | Mean Arterial Pressure (mmHg) | Coronary Perfusion Pressure (mmHg) | Oxygen Saturation (mmHg) | Cardiac Output(mL/min) | Stroke Volume (mL) | ECG Output (mV) | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | @@ -725,7 +691,7 @@ Physiology is modelled identically for both. There are three CPR scenarios for validation. Each scenario perscribes the same frequency with the 3 different types of Chest compression actions. In each scenario, cardiac arrest is initiated externally. Ten seconds later, compressions begin. In each scenario, the compression rate is set to 80 per minute, and the force is set to 311 N (70 pounds) to match the conditions in @cite redberg1993physiology. Supplemental literature sources were used to validate outputs not available in @cite redberg1993physiology. All of the physiological variables were within validation ranges in both scenarios with the exception of mean arterial pressure and ejection fraction. The mean arterial pressure in the engine is slightly higher than expected. This is most likely due to the fact that the intravascular pressures are higher than those reported in @cite redberg1993physiology. However, the engine pressures are within ranges reported in other references @cite kim2008direction , @cite gruben1990system. The ejection fraction is considerably lower in the engine during CPR than the value reported in @cite kim2008direction. The engine ejection fraction is lower because blood tends to pool in the engine right heart during cardiac arrest. The validation failures that occur right at cardiac arrest are mostly due residual dynamics following asystole in the engine. Errors associated with the cessation of heart function in the engine are a known issue, and resolving this issue is a part of the cardiac arrest recommended improvements discussed [below](@ref cardiovascular-future).
-*Table 13. Validation matrix for cardiopulmonary resuscitation (CPR) validation results. The table shows the engine output compared to validation data for key hemodynamic values.* +*@tabledef {CPR} Validation matrix for cardiopulmonary resuscitation (CPR) validation results. The table shows the engine output compared to validation data for key hemodynamic values.*
| Notes | Action Occurrence Time (s) | Sampled Scenario Time (s) | Heart Rate(beats/min) | Systolic Pressure (mmHg) | Diastolic Pressure (mmHg) | Mean Arterial Pressure (mmHg) | Cardiac Output (mL/min) | Stroke Volume (mL) | Carotid Artery (Brain) Flow (mL/min) | Ejection Fraction (%) | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | @@ -735,14 +701,14 @@ There are three CPR scenarios for validation. Each scenario perscribes the same @anchor hemorrhage-validation -@insert ./validation/markdown/Hemorrhage.md +@insert ./validation/markdown/HemorrhageValidation.md ### Pericardial Effusion The pericardial effusion scenario has a chronic effusion applied to the patient with a volume accumulation on the pericardium of 500 milliliters. There is a decrease in stroke volume, arterial pressures, and cardiac output. This is due to increasing intrapericardial pressure leading to a reduction in end diastolic volume. The validation trends somewhat follow this same behavior. Pericardial effusion can also be applied as an action and the action and condition can be applied to show a worsening of the chronic condition.
-*Table 22. Validation matrix for a chronic case of pericardial effusion. The table shows the engine output compared to key hemodynamic parameters.* +*@tabledef {PericardialEffusionChronic} Validation matrix for a chronic case of pericardial effusion. The table shows the engine output compared to key hemodynamic parameters.*
| Segment | Notes | Sampled Scenario Time (s) | Heart Rate (/min) | Systolic Pressure (mmHg) | Diastolic Pressure (mmHg) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Pericardium Pressure (mmHg) | Pericardium Volume (mL) | Pulmonary Capillaries Wedge Pressure (mmHg) | Oxygen Saturation | | ------------------------ | ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | @@ -750,7 +716,7 @@ The pericardial effusion scenario has a chronic effusion applied to the patient
-*Table 23. Validation matrix for a chronic case of pericardial effusion combined with an acute worsening of the pericardial effusion. The table shows the engine output compared to key hemodynamic parameters.* +@tabledef {PericardialEffusionAcute} Validation matrix for a chronic case of pericardial effusion combined with an acute worsening of the pericardial effusion. The table shows the engine output compared to key hemodynamic parameters.*
| Segment | Notes | Sampled Scenario Time (s) | Heart Rate (/min) | Systolic Pressure (mmHg) | Diastolic Pressure (mmHg) | Cardiac Output (mL/min) | Heart Stroke Volume (mL) | Pericardium Pressure (mmHg) | Pericardium Volume (mL) | Pulmonary Capillaries Wedge Pressure (mmHg) | Oxygen Saturation | | ------------------------ | ------------------------ ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ | diff --git a/docs/Validation/Hemorrhage.json b/docs/Validation/Hemorrhage.json index 3c0f5a725..76135509e 100644 --- a/docs/Validation/Hemorrhage.json +++ b/docs/Validation/Hemorrhage.json @@ -4,6 +4,48 @@ "PlotConfig": { "OutputPathOverride": "./docs/html/plots/Hemorrhage/" }, "Plotter" : [ + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Severity", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/VaryingSeverityResults.csv" } + ], + "Series": + [ + { "Title": "Varying Severity of Hemorrhage", "OutputFilename": "HemorrhageSeverity", + "YHeader": [ "TotalHemorrhageRate(mL/s)" ], "YLabel": "Hemorrhage Flow Rate", + "YBounds": { "LowerBound": 0, "UpperBound": 10 } + } + ] + } + }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Severity To Flow", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/SeverityToFlowToSeverityResults.csv" } + ], + "Series": + [ + { "Title": "Severity to Flow Rate to Severity Hemorrhage", "OutputFilename": "HemorrhageSeverityToFlow", + "YHeader": [ "TotalHemorrhageRate(mL/s)" ], "YLabel": "Hemorrhage Flow Rate", + "YBounds": { "LowerBound": 0, "UpperBound": 10 } + } + ] + } + }, { "MultiHeaderSeriesPlotter": { @@ -64,12 +106,12 @@ }, "PlotSource": [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup1Results.csv", "Label": "Group 1" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup2Results.csv", "Label": "Group 2" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup3Results.csv", "Label": "Group 3" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup4Results.csv", "Label": "Group 4" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup5Results.csv", "Label": "Group 5" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup6Results.csv", "Label": "Group 6" } + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Group1Results.csv", "Label": "Group 1" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Group2Results.csv", "Label": "Group 2" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Group3Results.csv", "Label": "Group 3" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Group4Results.csv", "Label": "Group 4" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Group5Results.csv", "Label": "Group 5" }, + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Group6Results.csv", "Label": "Group 6" } ], "Series": [ @@ -138,7 +180,7 @@ }, "PlotSource": [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageToShockResults.csv" } + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/HemorrhageToShockResults.csv" } ], "Series": [ @@ -520,7 +562,7 @@ }, "PlotSource": [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageClass4NoFluidResults.csv" } + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" } ], "ValidationSource": { @@ -536,31 +578,6 @@ "Y2Label": "Validation Normalized Mean Arterial Pressure" } ] } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhage Groups", - "PlotConfig": - { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "OnlyY" - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup1Results.csv", "Label": "Group 1" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup2Results.csv", "Label": "Group 2" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup3Results.csv", "Label": "Group 3" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup4Results.csv", "Label": "Group 4" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup5Results.csv", "Label": "Group 5" }, - { "CSVData": "$VERIFICATION_DIR/scenarios/patient/HemorrhageGroup6Results.csv", "Label": "Group 6" } - ], - "Series": - [ - { "Title": "Cardiovascular Hemorrhage Groups", "OutputFilename": "HemorrhageGroups", - "YHeader": [ "MeanArterialPressure(mmHg)" ], "YLabel": "Mean Arterial Pressure Delta", - "YBounds": { "LowerBound": 0, "UpperBound": 105 } } - ] - } } ] }, diff --git a/docs/Validation/Hemorrhage.md b/docs/Validation/Hemorrhage.md index 80aa3df94..9c0739a3a 100644 --- a/docs/Validation/Hemorrhage.md +++ b/docs/Validation/Hemorrhage.md @@ -1,129 +1,7 @@ -### Hemorrhage Validation -The hemorrhage response was validated with a comparison to the literature. The mean arterial pressure and cardiac output were computed as a function of their baseline value and plotted with the percent blood loss, as shown in Figure 9. The computed results are shown on the left and the validation data @cite guyton2006medical is shown on the right. +### Hemorrhage -@htmlonly -
- - - - - -
- -
-
-
-@endhtmlonly -
-Figure 9. Normalized mean arterial pressure (left) and cardiac output (right) as blood loss increases for the Pulse model and the validation data @cite guyton2006medical. -

+@insert ./validation/markdown/HemorrhageAction.md -For the hemorrhage to shock scenario, our results maintain MAP through a 20% blood loss and CO begins to slowly decrease as expected. At 20%, we see an approximately linear drop in MAP from a as expected compared to experimental data from @cite guyton2006medical. The cardiac output shows the correct trend but a larger error for this region. The "last ditch" plateau is then exhibited from a blood loss of just under 35% to just under 45%. The MAP and CO then drop precipitously as expected. -The different types of shock are evident in the data collected for groups of dogs and published in @cite guyton2006medical. Groups I, II, and III show cases of nonprogressive shock, Groups IV, and V show cases of progressive shock, and Group VI is an irreversible shock case. The first three groups recover without intervention, the final case leads quickly to death, and the Group IV and V cases show a short rebound before the physiologic decline that occurs without treatment. These cases were duplicated in the Pulse engine. The results and comparison to validation data are shown in Figure 10. - -@htmlonly -
- - - - - -
- -
-
- -
-@endhtmlonly -
-Figure 10. Normalized mean arterial pressure for different hemorrhage severities to demonstrate the different shock types. The computed Pulse results are on the left and the validation data @cite guyton2006medical is on the right. -

- -For the first three group hemorrhage scenarios (90%, 65%, and 50% blood loss), if the hemorrhage is arrested the MAP begins to rise and reaches a stable value. However, for the remaining three scenarios, the hemorrhage is unrecoverable for the patient. This is expected compared to the experimental data and for the degree of shock. However, one limitation of the model is that at the turning point between progressive and irreversible shock, the expected behavior is a temporary recovery lasting minutes to hours followed by deterioration and death. The current model has no ability to reverse the curve once the final deterioration toward deaths occurs. This is triggered at a blood pressure of approximately 40-45 mmHg. While the outcome is the same, the short recovery is not captured. Future work will incorporate this improvement. - -We also saw the expected blood volume, pressure, heart rate, and substance concentration values follow expected trends for the fluid resuscitation scenarios. Figures 11 and 12 show the appropriate substance behavior coupled with the blood volume changes. Like blood volume, the decrease in the substance will be linearly proportional to the bleed rate. For more specific information regarding these substances and their loss due to bleeding, see @ref BloodChemistryMethodology and @ref SubstanceTransportMethodology. Figure 11 shows the blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no intervention other than the cessation of hemorrhage. Figure 12 shows a hemorrhage event with subsequent saline administration. Note that the hemoglobin content remains diminished as the blood volume recovers with IV saline. By comparison, Figure 13 shows a scenarios with blood-product intervention and has the hemoglobin increasing with the blood infusion. - -@htmlonly -
- - - - - -
- -
-
- -

-@endhtmlonly -
-Figure 11. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no subsequent intervention. -
-
- -@htmlonly - - - - - -
- -
-
- -
- -@endhtmlonly -
-Figure 12. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with a subsequent infusion of saline. -

- -@anchor cardiovascular-blood-administration - -@htmlonly -
- - - - - - - - - -
- -
- -
-
- -
-
-@endhtmlonly -
-Figure 13. The class 2 hemorrhage scenario shows the blood volume decreasing linearly with the constant 250 milliliter per minute bleeding rate. The blood hemoglobin content follows this exact trend. At the conclusion of the bleed, the blood volume and hemoglobin are at a lower value. Five hundred (500) milliliters of blood is then administered intravenously over the course of 5 minutes. Both the blood volume and hemoglobin content increase linearly with this administration. -
- -The hemorrhage action is further tested using several scenarios: - -@secreflist - @refitem HemorrhageClass1Femoral "Class 1 Hemorrhage from the Femoral Artery Validation" - @refitem HemorrhageClass2Brachial "Class 2 Hemorrhage from the Brachial Artery Validation" - @refitem HemorrhageClass2Blood "Class 2 Hemorrhage with Whole Blood Administration Validation" - @refitem HemorrhageClass2Saline "Class 2 Hemorrhage with Saline Administration Validation" - @refitem HemorrhageClass2InternalSpleen "Class 2 Hemorrhage Internally from the Spleen Validation" - @refitem HemorrhageClass3NoFluid "Class 3 Hemorrhage Validation" - @refitem HemorrhageClass3PackedRedBloodCells "Class 3 Hemorrhage with Packed Red Blood Cells Administration Validation" - @refitem HemorrhageClass4NoFluid "Class 4 Hemorrhage Validation" -@endsecreflist - -The class 2 hemorrhage scenario with blood intravenous (IV) administration begins with a healthy patient. After a few seconds, a hemorrhage action is initiated at a rate of 250 milliliters (mL) per minute. The hemorrhage continues for four minutes before the bleeding rate is reduced to 0 mL per minute. After two minutes, 500 mL of IV blood is administered intravenously over five minutes. The other hemorrhage scenarios are similar but with different subsequent interventions. There are also two multi-compartment hemorrhage scenarios. - -The results show decreases in the systolic pressure and minor increases in the diastolic pressure during the course of the hemorrhage. In response to the decreasing arterial pressures, the baroreceptor response raises the heart rate. The blood volume and hemoglobin content were validated through direct calculation by decreasing blood volume by the bleeding rate multiplied by the time. There is a difference between the computed and simulated blood volume post-hemorrhage due to fluid shift between the intravascular and extravascular space. This shift is evident in the period between cessation of hemorrhage and the start of the infusion (top-left panel of Figure 12). - -Following the completion of the hemorrhage, intravenous blood is administered. There will be an increase in hemoglobin content directly proportional to the amount of blood added from the IV. This value was calculated directly from the known blood volume in the IV bag and hemoglobin concentration of the blood. +@insert ./validation/markdown/HemorrhageValidation.md \ No newline at end of file diff --git a/docs/Validation/HemorrhageAction.md b/docs/Validation/HemorrhageAction.md new file mode 100644 index 000000000..10de68746 --- /dev/null +++ b/docs/Validation/HemorrhageAction.md @@ -0,0 +1,147 @@ +### Hemorrhage + +A hemorrhage is a significant reduction in blood volume, which triggers a physiologic response to stabilize cardiovascular function. Hypovolemia is any loss in blood volume, where a loss of more than 35% is considered hypovolemic shock. Hemorrhage causes a reduction in filling pressure for the circulation, leading to a decrease in venous return. This is evidenced by the decrease in mean arterial pressure and cardiac output. If these physiologic values continue to drop, hemorrhagic or hypovolemic shock will occur. There are three stages of shock: a nonprogressive stage, which the normal circulatory responses will lead to a recovery; a progressive stage, which leads to progressively worsening condition and eventual death without intervention; and an irreversible stage, which leads to death regardless of intervention. The sympathetic response is triggered by the decrease in mean arterial blood pressure, specifically by causing the stretch receptors (baroreceptors) to activate. This response triggers an increase in systemic vascular resistance, heart rate, and a decrease in venous compliance. This is discussed in detail in the @ref NervousMethodology. + +Hemorrhage can be initiated in the engine through two methods. The first method allows the user to characterize the hemorrhage by specifying the location (compartment) and bleed rate. Multiple hemorrhages can be applied to a single compartment or to multiple compartments. The user specifies a cardiovascular compartment to apply a hemorrhage. After the hemorrhage has been specified, the total loss rate is the sum of each individual bleed rate to that compartment. This value is set as a negative flow source. This results in a decrease in total blood volume that is linearly proportional to the total loss rate. This flow rate will remain constant throughout the computation. As the blood volume decreases, the blood flow to each compartment will begin to decrease. This could lead to an invalid flow rate for the compartment over time. A second method for specifying hemorrhage deals with this issue. A hemorrhage can also be characterized by specifying the location (compartment) and a severity. The severity is specified with a value between 0 and 1. A path is added to the cardiovascular circuit, but instead of specifying a negative flow rate, a resistance is specified on the path. This provides a calculated flow rate that will increase and decrease based on the dynamic physics of the circuit. This will prevent the insufficient blood flow/volume errors that can occur if the flow rate is not manually managed. When a hemorrhage is initiated with a severity, a minimum and maximum resistance are calculated to bound the severity, as shown in @equationref {ResistanceMin} and @equationref {ResistanceMax}, respectively. + +\f[R_{\min} = (P-P_{T})/cQ \f] +
+@equationdef {ResistanceMin} +

+ +Where Rmin is the minimum resistance, P is the blood pressure at the compartment hemorrhaging, PT is the pressure at the hemorrhage flow outlet, Q is the flow through the hemorrhage compartment (not the hemorrhage flow), and c a tuning factor. The tuning factor is employed to ensure a severity of 1.0 corresponds to a hemorrhage rate of approximately 90% of the flow through the compartment. The severity specified in the hemorrhage action is then used to calculate the resistance on the path. + +\f[R_{\max} = (c_{1})*R_{\min}/s \f] +
+@equationdef {ResistanceMax} +

+ +@figureref {HemorrhageSeverity} demonstrates the different severity specifications and the impact on the hemorrhage flow rate as the severity is changed or the body responds to the hemorrhage. The results show that the hemorrhage severity changes the flow rate for the hemorrhage as expected, i.e., a 0.5 severity corresponds to 50% of the flow associated with a severity of 1.0. The results also show that as time passes the flow rate will naturally decrease without changing the severity to correspond to the reduction in blood pressure that occurs with hemorrhage. These results also demonstrate the ability to transition from a severity to a flow implementation and back to severity, if required. + +@htmlonly +
+ + + + + +
+ +
+
+
+@endhtmlonly +
+@figuredef {HemorrhageSeverity} Hemorrhage can be applied as a severity or as a flow rate. A 1.0 severity will be approximately 100% of available flow. The image shows a severity of 1.0, reduced to 0.5, then further to 0.25, and 0. It then returns to 1.0. The flow will change over time as the pressure in the system varies. (Right) Further, the hemorrhage can be changed from a severity to a flow rate. The flow rate will not change when the it is directly specified. (Left) +

+ +The hemorrhage response was validated with a comparison to the literature. The mean arterial pressure and cardiac output were computed as a function of their baseline value and plotted with the percent blood loss, as shown in @figureref {HemorrhageMAPandCO}. The computed results are shown on the left and the validation data @cite guyton2006medical is shown on the right. + +@htmlonly +
+ + + + + +
+ +
+
+
+@endhtmlonly +
+@figuredef {HemorrhageMAPandCO} Normalized mean arterial pressure (left) and cardiac output (right) as blood loss increases for the Pulse model and the validation data @cite guyton2006medical. +

+ +For the hemorrhage to shock scenario, our results maintain MAP through a 20% blood loss and CO begins to slowly decrease as expected. At 20%, we see an approximately linear drop in MAP from a as expected compared to experimental data from @cite guyton2006medical. The cardiac output shows the correct trend but a larger error for this region. The "last ditch" plateau is then exhibited from a blood loss of just under 35% to just under 45%. The MAP and CO then drop precipitously as expected. + +The different types of shock are evident in the data collected for groups of dogs and published in @cite guyton2006medical. Groups I, II, and III show cases of nonprogressive shock, Groups IV, and V show cases of progressive shock, and Group VI is an irreversible shock case. The first three groups recover without intervention, the final case leads quickly to death, and the Group IV and V cases show a short rebound before the physiologic decline that occurs without treatment. These cases were duplicated in the Pulse engine. The results and comparison to validation data are shown in @figureref {GroupValidation}. + +@htmlonly +
+ + + + + +
+ +
+
+ +
+@endhtmlonly +
+@figuredef {GroupValidation} Normalized mean arterial pressure for different hemorrhage severities to demonstrate the different shock types. The computed Pulse results are on the left and the validation data @cite guyton2006medical is on the right. +

+ +For the first three group hemorrhage scenarios (90%, 65%, and 50% blood loss), if the hemorrhage is arrested the MAP begins to rise and reaches a stable value. However, for the remaining three scenarios, the hemorrhage is unrecoverable for the patient. This is expected compared to the experimental data and for the degree of shock. However, one limitation of the model is that at the turning point between progressive and irreversible shock, the expected behavior is a temporary recovery lasting minutes to hours followed by deterioration and death. The current model has no ability to reverse the curve once the final deterioration toward deaths occurs. This is triggered at a blood pressure of approximately 40-45 mmHg. While the outcome is the same, the short recovery is not captured. Future work will incorporate this improvement. + +We also saw the expected blood volume, pressure, heart rate, and substance concentration values follow expected trends for the fluid resuscitation scenarios. @figureref {ClassIVHemorrhage} and @figureref {ClassIISaline} show the appropriate substance behavior coupled with the blood volume changes. Like blood volume, the decrease in the substance will be linearly proportional to the bleed rate. For more specific information regarding these substances and their loss due to bleeding, see @ref BloodChemistryMethodology and @ref SubstanceTransportMethodology. @figureref {ClassIVHemorrhage} shows the blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no intervention other than the cessation of hemorrhage. @figureref {ClassIISaline} shows a hemorrhage event with subsequent saline administration. Note that the hemoglobin content remains diminished as the blood volume recovers with IV saline. By comparison, @figureref {ClassIIBlood} shows a scenarios with blood-product intervention and has the hemoglobin increasing with the blood infusion. + +@htmlonly +
+ + + + + +
+ +
+
+ +

+@endhtmlonly +
+@figuredef {ClassIVHemorrhage}. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no subsequent intervention. +
+
+ +@htmlonly + + + + + +
+ +
+
+ +
+ +@endhtmlonly +
+@figuredef {ClassIISaline} Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with a subsequent infusion of saline. +

+ +@anchor cardiovascular-blood-administration + +@htmlonly +
+ + + + + + + + + +
+ +
+ +
+
+ +
+
+@endhtmlonly +
+@figuredef {ClassIIBlood} The class 2 hemorrhage scenario shows the blood volume decreasing linearly with the constant 250 milliliter per minute bleeding rate. The blood hemoglobin content follows this exact trend. At the conclusion of the bleed, the blood volume and hemoglobin are at a lower value. Five hundred (500) milliliters of blood is then administered intravenously over the course of 5 minutes. Both the blood volume and hemoglobin content increase linearly with this administration. +
+ +An internal hemorrhage can also be specified for abdominal cardiovascular compartments, including the aorta, vena cava, stomach, splanchnic, spleen, right and left kidneys, large and small intestines, and liver. The internal hemorrhage allows blood to flow into the abdominal cavity, increasing the pressure in the cavity. For the severity implementation, the hemorrhage outlet compartment is specified as the abdominal cavity for Equation 3. This pressure is applied to the aorta, increasing the localized blood pressure as a result of internal blood accumulation. At this time, the internal hemorrhage is only associated with the abdominal region. See the hemothorax model in @ref RespiratoryMethodology for details about hemorrhage into the pleural space. In the future, we plan to add functionality for the brain. \ No newline at end of file diff --git a/docs/Validation/HemorrhageValidation.md b/docs/Validation/HemorrhageValidation.md new file mode 100644 index 000000000..0a14bb90f --- /dev/null +++ b/docs/Validation/HemorrhageValidation.md @@ -0,0 +1,166 @@ +### Hemorrhage + +A hemorrhage is a significant reduction in blood volume, which triggers a physiologic response to stabilize cardiovascular function. Hypovolemia is any loss in blood volume, where a loss of more than 35% is considered hypovolemic shock. Hemorrhage causes a reduction in filling pressure for the circulation, leading to a decrease in venous return. This is evidenced by the decrease in mean arterial pressure and cardiac output. If these physiologic values continue to drop, hemorrhagic or hypovolemic shock will occur. There are three stages of shock: a nonprogressive stage, which the normal circulatory responses will lead to a recovery; a progressive stage, which leads to progressively worsening condition and eventual death without intervention; and an irreversible stage, which leads to death regardless of intervention. The sympathetic response is triggered by the decrease in mean arterial blood pressure, specifically by causing the stretch receptors (baroreceptors) to activate. This response triggers an increase in systemic vascular resistance, heart rate, and a decrease in venous compliance. This is discussed in detail in the @ref NervousMethodology. + +Hemorrhage can be initiated in the engine through two methods. The first method allows the user to characterize the hemorrhage by specifying the location (compartment) and bleed rate. Multiple hemorrhages can be applied to a single compartment or to multiple compartments. The user specifies a cardiovascular compartment to apply a hemorrhage. After the hemorrhage has been specified, the total loss rate is the sum of each individual bleed rate to that compartment. This value is set as a negative flow source. This results in a decrease in total blood volume that is linearly proportional to the total loss rate. This flow rate will remain constant throughout the computation. As the blood volume decreases, the blood flow to each compartment will begin to decrease. This could lead to an invalid flow rate for the compartment over time. A second method for specifying hemorrhage deals with this issue. A hemorrhage can also be characterized by specifying the location (compartment) and a severity. The severity is specified with a value between 0 and 1. A path is added to the cardiovascular circuit, but instead of specifying a negative flow rate, a resistance is specified on the path. This provides a calculated flow rate that will increase and decrease based on the dynamic physics of the circuit. This will prevent the insufficient blood flow/volume errors that can occur if the flow rate is not manually managed. When a hemorrhage is initiated with a severity, a minimum and maximum resistance are calculated to bound the severity, as shown in Equations 3 and 4, respectively. + +\f[R_{\min} = (P-P_{T})/cQ \f] +
+Equation 3. +

+ +Where Rmin is the minimum resistance, P is the blood pressure at the compartment hemorrhaging, PT is the pressure at the hemorrhage flow outlet, Q is the flow through the hemorrhage compartment (not the hemorrhage flow), and c a tuning factor. The tuning factor is employed to ensure a severity of 1.0 corresponds to a hemorrhage rate of approximately 90% of the flow through the compartment. The severity specified in the hemorrhage action is then used to calculate the resistance on the path. + +\f[R_{\max} = (c_{1})*R_{\min}/s \f] +
+Equation 4. +

+ +Figure 8 demonstrates the different severity specifications and the impact on the hemorrhage flow rate as the severity is changed or the body responds to the hemorrhage. The results show that the hemorrhage severity changes the flow rate for the hemorrhage as expected, i.e., a 0.5 severity corresponds to 50% of the flow associated with a severity of 1.0. The results also show that as time passes the flow rate will naturally decrease without changing the severity to correspond to the reduction in blood pressure that occurs with hemorrhage. These results also demonstrate the ability to transition from a severity to a flow implementation and back to severity, if required. + +@htmlonly +
+ + + + + +
+ +
+
+
+@endhtmlonly +
+Figure 8. Hemorrhage can be applied as a severity or as a flow rate. A 1.0 severity will be approximately 100% of available flow. The image shows a severity of 1.0, reduced to 0.5, then further to 0.25, and 0. It then returns to 1.0. The flow will change over time as the pressure in the system varies. (Right) Further, the hemorrhage can be changed from a severity to a flow rate. The flow rate will not change when the it is directly specified. (Left) +

+ +### Hemorrhage Validation + +The hemorrhage response was validated with a comparison to the literature. The mean arterial pressure and cardiac output were computed as a function of their baseline value and plotted with the percent blood loss, as shown in Figure 9. The computed results are shown on the left and the validation data @cite guyton2006medical is shown on the right. + +@htmlonly +
+ + + + + +
+ +
+
+
+@endhtmlonly +
+Figure 9. Normalized mean arterial pressure (left) and cardiac output (right) as blood loss increases for the Pulse model and the validation data @cite guyton2006medical. +

+ +For the hemorrhage to shock scenario, our results maintain MAP through a 20% blood loss and CO begins to slowly decrease as expected. At 20%, we see an approximately linear drop in MAP from a as expected compared to experimental data from @cite guyton2006medical. The cardiac output shows the correct trend but a larger error for this region. The "last ditch" plateau is then exhibited from a blood loss of just under 35% to just under 45%. The MAP and CO then drop precipitously as expected. + +The different types of shock are evident in the data collected for groups of dogs and published in @cite guyton2006medical. Groups I, II, and III show cases of nonprogressive shock, Groups IV, and V show cases of progressive shock, and Group VI is an irreversible shock case. The first three groups recover without intervention, the final case leads quickly to death, and the Group IV and V cases show a short rebound before the physiologic decline that occurs without treatment. These cases were duplicated in the Pulse engine. The results and comparison to validation data are shown in Figure 10. + +@htmlonly +
+ + + + + +
+ +
+
+ +
+@endhtmlonly +
+Figure 10. Normalized mean arterial pressure for different hemorrhage severities to demonstrate the different shock types. The computed Pulse results are on the left and the validation data @cite guyton2006medical is on the right. +

+ +For the first three group hemorrhage scenarios (90%, 65%, and 50% blood loss), if the hemorrhage is arrested the MAP begins to rise and reaches a stable value. However, for the remaining three scenarios, the hemorrhage is unrecoverable for the patient. This is expected compared to the experimental data and for the degree of shock. However, one limitation of the model is that at the turning point between progressive and irreversible shock, the expected behavior is a temporary recovery lasting minutes to hours followed by deterioration and death. The current model has no ability to reverse the curve once the final deterioration toward deaths occurs. This is triggered at a blood pressure of approximately 40-45 mmHg. While the outcome is the same, the short recovery is not captured. Future work will incorporate this improvement. + +We also saw the expected blood volume, pressure, heart rate, and substance concentration values follow expected trends for the fluid resuscitation scenarios. Figures 11 and 12 show the appropriate substance behavior coupled with the blood volume changes. Like blood volume, the decrease in the substance will be linearly proportional to the bleed rate. For more specific information regarding these substances and their loss due to bleeding, see @ref BloodChemistryMethodology and @ref SubstanceTransportMethodology. Figure 11 shows the blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no intervention other than the cessation of hemorrhage. Figure 12 shows a hemorrhage event with subsequent saline administration. Note that the hemoglobin content remains diminished as the blood volume recovers with IV saline. By comparison, Figure 13 shows a scenarios with blood-product intervention and has the hemoglobin increasing with the blood infusion. + +@htmlonly +
+ + + + + +
+ +
+
+ +

+@endhtmlonly +
+Figure 11. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no subsequent intervention. +
+
+ +@htmlonly + + + + + +
+ +
+
+ +
+ +@endhtmlonly +
+Figure 12. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with a subsequent infusion of saline. +

+ +@anchor cardiovascular-blood-administration + +@htmlonly +
+ + + + + + + + + +
+ +
+ +
+
+ +
+
+@endhtmlonly +
+Figure 13. The class 2 hemorrhage scenario shows the blood volume decreasing linearly with the constant 250 milliliter per minute bleeding rate. The blood hemoglobin content follows this exact trend. At the conclusion of the bleed, the blood volume and hemoglobin are at a lower value. Five hundred (500) milliliters of blood is then administered intravenously over the course of 5 minutes. Both the blood volume and hemoglobin content increase linearly with this administration. +
+ +The hemorrhage action is further tested using several scenarios: + +@secreflist + @refitem HemorrhageClass1Femoral "Class 1 Hemorrhage from the Femoral Artery Validation" + @refitem HemorrhageClass2Brachial "Class 2 Hemorrhage from the Brachial Artery Validation" + @refitem HemorrhageClass2Blood "Class 2 Hemorrhage with Whole Blood Administration Validation" + @refitem HemorrhageClass2Saline "Class 2 Hemorrhage with Saline Administration Validation" + @refitem HemorrhageClass2InternalSpleen "Class 2 Hemorrhage Internally from the Spleen Validation" + @refitem HemorrhageClass3NoFluid "Class 3 Hemorrhage Validation" + @refitem HemorrhageClass3PackedRedBloodCells "Class 3 Hemorrhage with Packed Red Blood Cells Administration Validation" + @refitem HemorrhageClass4NoFluid "Class 4 Hemorrhage Validation" +@endsecreflist + +The class 2 hemorrhage scenario with blood intravenous (IV) administration begins with a healthy patient. After a few seconds, a hemorrhage action is initiated at a rate of 250 milliliters (mL) per minute. The hemorrhage continues for four minutes before the bleeding rate is reduced to 0 mL per minute. After two minutes, 500 mL of IV blood is administered intravenously over five minutes. The other hemorrhage scenarios are similar but with different subsequent interventions. There are also two multi-compartment hemorrhage scenarios. + +The results show decreases in the systolic pressure and minor increases in the diastolic pressure during the course of the hemorrhage. In response to the decreasing arterial pressures, the baroreceptor response raises the heart rate. The blood volume and hemoglobin content were validated through direct calculation by decreasing blood volume by the bleeding rate multiplied by the time. There is a difference between the computed and simulated blood volume post-hemorrhage due to fluid shift between the intravascular and extravascular space. This shift is evident in the period between cessation of hemorrhage and the start of the infusion (top-left panel of Figure 12). + +Following the completion of the hemorrhage, intravenous blood is administered. There will be an increase in hemoglobin content directly proportional to the amount of blood added from the IV. This value was calculated directly from the known blood volume in the IV bag and hemoglobin concentration of the blood. diff --git a/src/python/pulse/pipelines/dataset/segment_dataset_reader.py b/src/python/pulse/pipelines/dataset/segment_dataset_reader.py index d965e5534..03a30613e 100644 --- a/src/python/pulse/pipelines/dataset/segment_dataset_reader.py +++ b/src/python/pulse/pipelines/dataset/segment_dataset_reader.py @@ -273,7 +273,12 @@ def write_scenario(scenario: SEScenario, segments: List[SESegmentValidationSegme all_actions_str += ']}' all_actions = [] if all_actions_str != '{"AnyAction": []}': - all_actions = json.loads(all_actions_str)["AnyAction"] + try: + all_actions = json.loads(all_actions_str)["AnyAction"] + except Exception as e: + _pulse_logger.error(f"Unable to parse actions:{e}\n{all_actions_str}") + # TODO + return "Error" # Load conditions into dict all_conditions_str = '{"AnyCondition": [' -- GitLab From d0c690339702bface95d9d30ca5eaaefc8d42459 Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Wed, 22 Jan 2025 23:20:49 -0500 Subject: [PATCH 06/18] Restructure automated validation files into a single location and separate with folders --- .../scenarios/DehydrationDataRequests.json | 64 ---------------- .../MechanicalVentilatorDataRequests.json | 33 -------- .../AirwayObstruction}/AirwayObstruction.json | 0 .../AirwayObstruction}/AirwayObstruction.md | 0 .../AirwayObstruction.xlsx | Bin .../Scenarios/CSTARS}/CSTARS-Scenario1.md | 0 .../Scenarios/CSTARS}/CSTARS-Scenario2.md | 0 .../Scenarios/CSTARS}/CSTARS-Scenario3.md | 0 .../Scenarios/CSTARS}/CSTARS-Scenario4.md | 0 .../Scenarios/CSTARS}/CSTARS-Scenario5.md | 0 .../Scenarios/CSTARS}/CSTARS-Scenario6.md | 0 .../Scenarios/CSTARS}/CSTARS-Scenario7.md | 0 .../validation/Scenarios/CSTARS}/CSTARS.json | 0 .../validation/Scenarios/CSTARS}/CSTARS.md | 0 .../Scenarios/{ => CSTARS}/CSTARS.xlsx | Bin .../{ => CSTARS}/CSTARSDataRequests.json | 0 .../Dehydration}/Dehydration-Healthy.md | 0 .../Dehydration}/Dehydration-Mild.md | 0 .../Dehydration}/Dehydration-Moderate.md | 0 .../Dehydration}/Dehydration-Severe.md | 0 .../Scenarios/Dehydration}/Dehydration.json | 0 .../Scenarios/Dehydration}/Dehydration.md | 0 .../{ => Dehydration}/Dehydration.xlsx | Bin .../DehydrationDataRequests.json | 0 .../{ => Dehydration}/DehydrationManual.xlsx | Bin .../validation/Scenarios/Hemorrhage.xlsx | Bin 82588 -> 0 bytes .../Hemorrhage}/Hemorrhage-Class1Femoral.md | 0 .../Hemorrhage}/Hemorrhage-Class2Blood.md | 0 .../Hemorrhage}/Hemorrhage-Class2Brachial.md | 0 .../Hemorrhage-Class2InternalSpleen.md | 0 .../Hemorrhage}/Hemorrhage-Class2Saline.md | 0 .../Hemorrhage}/Hemorrhage-Class3NoFluid.md | 0 .../Hemorrhage-Class3PackedRedBloodCells.md | 0 .../Hemorrhage}/Hemorrhage-Class4NoFluid.md | 0 .../Scenarios/Hemorrhage}/Hemorrhage.json | 0 .../Scenarios/Hemorrhage/Hemorrhage.md | 6 ++ .../Scenarios/Hemorrhage/Hemorrhage.xlsx | Bin 0 -> 82490 bytes .../Hemorrhage}/HemorrhageDataRequests.json | 0 .../HemorrhageTableDataRequests.json | 0 .../Scenarios/Hemorrhage/Hemorrhage_Action.md | 0 .../Hemorrhage/Hemorrhage_Validation.md | 0 .../Scenarios/HemorrhageDataRequests.json | 23 ------ .../MechanicalVentilator-ARDS.md | 0 .../MechanicalVentilator-COPD.md | 0 .../MechanicalVentilator-Healthy.md | 0 .../MechanicalVentilator-Recruitment.md | 0 .../MechanicalVentilator.json | 0 .../MechanicalVentilator.md | 0 .../MechanicalVentilator.xlsx | Bin .../MechanicalVentilatorDataRequests.json | 0 .../Scenarios/NervousDataRequests.json | 11 --- .../Scenarios/StandardDataRequests.json | 72 ------------------ docs/Methodology/CardiovascularMethodology.md | 4 +- docs/Validation/Hemorrhage.md | 7 -- 54 files changed, 8 insertions(+), 212 deletions(-) delete mode 100644 data/human/adult/scenarios/DehydrationDataRequests.json delete mode 100644 data/human/adult/scenarios/MechanicalVentilatorDataRequests.json rename {docs/Validation => data/human/adult/validation/Scenarios/AirwayObstruction}/AirwayObstruction.json (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/AirwayObstruction}/AirwayObstruction.md (100%) rename data/human/adult/validation/Scenarios/{ => AirwayObstruction}/AirwayObstruction.xlsx (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS-Scenario1.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS-Scenario2.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS-Scenario3.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS-Scenario4.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS-Scenario5.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS-Scenario6.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS-Scenario7.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS.json (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/CSTARS}/CSTARS.md (100%) rename data/human/adult/validation/Scenarios/{ => CSTARS}/CSTARS.xlsx (100%) rename data/human/adult/validation/Scenarios/{ => CSTARS}/CSTARSDataRequests.json (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Dehydration}/Dehydration-Healthy.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Dehydration}/Dehydration-Mild.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Dehydration}/Dehydration-Moderate.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Dehydration}/Dehydration-Severe.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Dehydration}/Dehydration.json (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Dehydration}/Dehydration.md (100%) rename data/human/adult/validation/Scenarios/{ => Dehydration}/Dehydration.xlsx (100%) rename data/human/adult/validation/Scenarios/{ => Dehydration}/DehydrationDataRequests.json (100%) rename data/human/adult/validation/Scenarios/{ => Dehydration}/DehydrationManual.xlsx (100%) delete mode 100644 data/human/adult/validation/Scenarios/Hemorrhage.xlsx rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class1Femoral.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class2Blood.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class2Brachial.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class2InternalSpleen.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class2Saline.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class3NoFluid.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class3PackedRedBloodCells.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage-Class4NoFluid.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/Hemorrhage}/Hemorrhage.json (100%) create mode 100644 data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md create mode 100644 data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.xlsx rename data/human/adult/{scenarios => validation/Scenarios/Hemorrhage}/HemorrhageDataRequests.json (100%) rename data/human/adult/validation/Scenarios/{ => Hemorrhage}/HemorrhageTableDataRequests.json (100%) rename docs/Validation/HemorrhageAction.md => data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md (100%) rename docs/Validation/HemorrhageValidation.md => data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Validation.md (100%) delete mode 100644 data/human/adult/validation/Scenarios/HemorrhageDataRequests.json rename {docs/Validation => data/human/adult/validation/Scenarios/MechanicalVentilator}/MechanicalVentilator-ARDS.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/MechanicalVentilator}/MechanicalVentilator-COPD.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/MechanicalVentilator}/MechanicalVentilator-Healthy.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/MechanicalVentilator}/MechanicalVentilator-Recruitment.md (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/MechanicalVentilator}/MechanicalVentilator.json (100%) rename {docs/Validation => data/human/adult/validation/Scenarios/MechanicalVentilator}/MechanicalVentilator.md (100%) rename data/human/adult/validation/Scenarios/{ => MechanicalVentilator}/MechanicalVentilator.xlsx (100%) rename data/human/adult/validation/Scenarios/{ => MechanicalVentilator}/MechanicalVentilatorDataRequests.json (100%) delete mode 100644 data/human/adult/validation/Scenarios/NervousDataRequests.json delete mode 100644 data/human/adult/validation/Scenarios/StandardDataRequests.json delete mode 100644 docs/Validation/Hemorrhage.md diff --git a/data/human/adult/scenarios/DehydrationDataRequests.json b/data/human/adult/scenarios/DehydrationDataRequests.json deleted file mode 100644 index 580d7d01c..000000000 --- a/data/human/adult/scenarios/DehydrationDataRequests.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "DataRequest": - [ - { "DecimalFormat": { "Precision": 1 }, "Category": "Patient", "PropertyName": "Weight", "Unit": "kg" }, - - { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "BloodPH", "Unit": "unitless" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "TotalFluidVolume", "Unit": "L" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "ExtracellularFluidVolume", "Unit": "L" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "IntracellularFluidVolume", "Unit": "L" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "SweatRate", "Unit": "mg/min" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "MeanSkinFlow", "Unit": "L/min" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "PulsePressure", "Unit": "mmHg" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"PlasmaOsmolality", "Unit":"mOsm/kg" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"PlasmaOsmolarity", "Unit":"mOsm/L" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"UrineOsmolality", "Unit":"mOsm/kg" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"UrineOsmolarity", "Unit":"mOsm/L" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"UrinationRate", "Unit":"mL/s" }, - - { "DecimalFormat": { "Precision": 2 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Sodium", "PropertyName":"Concentration", "Unit": "g/L" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Chloride", "PropertyName": "Concentration", "Unit": "g/L" }, - { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Urea", "PropertyName": "Concentration", "Unit": "g/L" }, - - {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"BloodConcentration", "Unit":"g/dL"}, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInBlood", "Unit":"mg" }, - - {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"BloodConcentration", "Unit":"ug/L"}, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"MassInBody", "Unit":"mg"}, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"MassInBlood", "Unit":"mg"}, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"SystemicMassCleared", "Unit":"mg"}, - - {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"BloodConcentration", "Unit":"mg/dL"}, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInBlood", "Unit":"mg" }, - - {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"BloodConcentration", "Unit":"mg/L"}, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInBlood", "Unit":"mg" }, - - {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"BloodConcentration", "Unit":"mg/L"}, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInBlood", "Unit":"mg" }, - - {"DecimalFormat":{"Precision":2}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"BloodConcentration", "Unit":"mg/dL"}, - {"DecimalFormat":{"Precision":4}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision":4}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision":4}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"MassInBlood", "Unit":"mg" }, - - { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "ConvectiveHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "ConvectiveHeatTranferCoefficient", "Unit": "W/m^2 K" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "EvaporativeHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 5 }, "Category": "Environment", "PropertyName": "EvaporativeHeatTranferCoefficient", "Unit": "W/m^2 K" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "RadiativeHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "RadiativeHeatTranferCoefficient", "Unit": "W/m^2 K" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "RespirationHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "SkinHeatLoss", "Unit": "W" } - ] -} diff --git a/data/human/adult/scenarios/MechanicalVentilatorDataRequests.json b/data/human/adult/scenarios/MechanicalVentilatorDataRequests.json deleted file mode 100644 index 561578283..000000000 --- a/data/human/adult/scenarios/MechanicalVentilatorDataRequests.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "DataRequest": - [ - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "AirwayPressure", "Unit": "cmH2O" }, - { "DecimalFormat": { "Precision": 1 }, "Category": "MechanicalVentilator", "PropertyName": "BreathState" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "DynamicRespiratoryCompliance", "Unit": "mL/cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalCarbonDioxideFraction" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalCarbonDioxidePressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalOxygenFraction" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalOxygenPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExpiratoryFlow", "Unit": "L/s" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExpiratoryResistance", "Unit": "cmH2O s/L" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExpiratoryTidalVolume", "Unit": "mL" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExtrinsicPositiveEndExpiratoryPressure", "Unit": "cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryExpiratoryRatio" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryFlow", "Unit": "L/min" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryResistance", "Unit": "cmH2O s/L" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryTidalVolume", "Unit": "mL" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "IntrinsicPositiveEndExpiratoryPressure", "Unit": "cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "LeakFraction" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "MeanAirwayPressure", "Unit": "cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PeakExpiratoryFlow", "Unit": "L/s" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PeakInspiratoryFlow", "Unit": "L/s" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PeakInspiratoryPressure", "Unit": "cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PlateauPressure", "Unit": "cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "RespirationRate", "Unit": "1/min" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "StaticRespiratoryCompliance", "Unit": "mL/cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TidalVolume", "Unit": "mL" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TotalLungVolume", "Unit": "mL" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TotalPositiveEndExpiratoryPressure", "Unit": "cmH2O" }, - { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TotalPulmonaryVentilation", "Unit": "L/s" } - ] -} diff --git a/docs/Validation/AirwayObstruction.json b/data/human/adult/validation/Scenarios/AirwayObstruction/AirwayObstruction.json similarity index 100% rename from docs/Validation/AirwayObstruction.json rename to data/human/adult/validation/Scenarios/AirwayObstruction/AirwayObstruction.json diff --git a/docs/Validation/AirwayObstruction.md b/data/human/adult/validation/Scenarios/AirwayObstruction/AirwayObstruction.md similarity index 100% rename from docs/Validation/AirwayObstruction.md rename to data/human/adult/validation/Scenarios/AirwayObstruction/AirwayObstruction.md diff --git a/data/human/adult/validation/Scenarios/AirwayObstruction.xlsx b/data/human/adult/validation/Scenarios/AirwayObstruction/AirwayObstruction.xlsx similarity index 100% rename from data/human/adult/validation/Scenarios/AirwayObstruction.xlsx rename to data/human/adult/validation/Scenarios/AirwayObstruction/AirwayObstruction.xlsx diff --git a/docs/Validation/CSTARS-Scenario1.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario1.md similarity index 100% rename from docs/Validation/CSTARS-Scenario1.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario1.md diff --git a/docs/Validation/CSTARS-Scenario2.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario2.md similarity index 100% rename from docs/Validation/CSTARS-Scenario2.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario2.md diff --git a/docs/Validation/CSTARS-Scenario3.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario3.md similarity index 100% rename from docs/Validation/CSTARS-Scenario3.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario3.md diff --git a/docs/Validation/CSTARS-Scenario4.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario4.md similarity index 100% rename from docs/Validation/CSTARS-Scenario4.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario4.md diff --git a/docs/Validation/CSTARS-Scenario5.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario5.md similarity index 100% rename from docs/Validation/CSTARS-Scenario5.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario5.md diff --git a/docs/Validation/CSTARS-Scenario6.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario6.md similarity index 100% rename from docs/Validation/CSTARS-Scenario6.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario6.md diff --git a/docs/Validation/CSTARS-Scenario7.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario7.md similarity index 100% rename from docs/Validation/CSTARS-Scenario7.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS-Scenario7.md diff --git a/docs/Validation/CSTARS.json b/data/human/adult/validation/Scenarios/CSTARS/CSTARS.json similarity index 100% rename from docs/Validation/CSTARS.json rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS.json diff --git a/docs/Validation/CSTARS.md b/data/human/adult/validation/Scenarios/CSTARS/CSTARS.md similarity index 100% rename from docs/Validation/CSTARS.md rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS.md diff --git a/data/human/adult/validation/Scenarios/CSTARS.xlsx b/data/human/adult/validation/Scenarios/CSTARS/CSTARS.xlsx similarity index 100% rename from data/human/adult/validation/Scenarios/CSTARS.xlsx rename to data/human/adult/validation/Scenarios/CSTARS/CSTARS.xlsx diff --git a/data/human/adult/validation/Scenarios/CSTARSDataRequests.json b/data/human/adult/validation/Scenarios/CSTARS/CSTARSDataRequests.json similarity index 100% rename from data/human/adult/validation/Scenarios/CSTARSDataRequests.json rename to data/human/adult/validation/Scenarios/CSTARS/CSTARSDataRequests.json diff --git a/docs/Validation/Dehydration-Healthy.md b/data/human/adult/validation/Scenarios/Dehydration/Dehydration-Healthy.md similarity index 100% rename from docs/Validation/Dehydration-Healthy.md rename to data/human/adult/validation/Scenarios/Dehydration/Dehydration-Healthy.md diff --git a/docs/Validation/Dehydration-Mild.md b/data/human/adult/validation/Scenarios/Dehydration/Dehydration-Mild.md similarity index 100% rename from docs/Validation/Dehydration-Mild.md rename to data/human/adult/validation/Scenarios/Dehydration/Dehydration-Mild.md diff --git a/docs/Validation/Dehydration-Moderate.md b/data/human/adult/validation/Scenarios/Dehydration/Dehydration-Moderate.md similarity index 100% rename from docs/Validation/Dehydration-Moderate.md rename to data/human/adult/validation/Scenarios/Dehydration/Dehydration-Moderate.md diff --git a/docs/Validation/Dehydration-Severe.md b/data/human/adult/validation/Scenarios/Dehydration/Dehydration-Severe.md similarity index 100% rename from docs/Validation/Dehydration-Severe.md rename to data/human/adult/validation/Scenarios/Dehydration/Dehydration-Severe.md diff --git a/docs/Validation/Dehydration.json b/data/human/adult/validation/Scenarios/Dehydration/Dehydration.json similarity index 100% rename from docs/Validation/Dehydration.json rename to data/human/adult/validation/Scenarios/Dehydration/Dehydration.json diff --git a/docs/Validation/Dehydration.md b/data/human/adult/validation/Scenarios/Dehydration/Dehydration.md similarity index 100% rename from docs/Validation/Dehydration.md rename to data/human/adult/validation/Scenarios/Dehydration/Dehydration.md diff --git a/data/human/adult/validation/Scenarios/Dehydration.xlsx b/data/human/adult/validation/Scenarios/Dehydration/Dehydration.xlsx similarity index 100% rename from data/human/adult/validation/Scenarios/Dehydration.xlsx rename to data/human/adult/validation/Scenarios/Dehydration/Dehydration.xlsx diff --git a/data/human/adult/validation/Scenarios/DehydrationDataRequests.json b/data/human/adult/validation/Scenarios/Dehydration/DehydrationDataRequests.json similarity index 100% rename from data/human/adult/validation/Scenarios/DehydrationDataRequests.json rename to data/human/adult/validation/Scenarios/Dehydration/DehydrationDataRequests.json diff --git a/data/human/adult/validation/Scenarios/DehydrationManual.xlsx b/data/human/adult/validation/Scenarios/Dehydration/DehydrationManual.xlsx similarity index 100% rename from data/human/adult/validation/Scenarios/DehydrationManual.xlsx rename to data/human/adult/validation/Scenarios/Dehydration/DehydrationManual.xlsx diff --git a/data/human/adult/validation/Scenarios/Hemorrhage.xlsx b/data/human/adult/validation/Scenarios/Hemorrhage.xlsx deleted file mode 100644 index aada0de2d6a67bd3d78ccbdfcb553d41925070a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82588 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 z 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 K41%VhD=Yv}$M47h diff --git a/docs/Validation/Hemorrhage-Class1Femoral.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class1Femoral.md similarity index 100% rename from docs/Validation/Hemorrhage-Class1Femoral.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class1Femoral.md diff --git a/docs/Validation/Hemorrhage-Class2Blood.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2Blood.md similarity index 100% rename from docs/Validation/Hemorrhage-Class2Blood.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2Blood.md diff --git a/docs/Validation/Hemorrhage-Class2Brachial.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2Brachial.md similarity index 100% rename from docs/Validation/Hemorrhage-Class2Brachial.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2Brachial.md diff --git a/docs/Validation/Hemorrhage-Class2InternalSpleen.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2InternalSpleen.md similarity index 100% rename from docs/Validation/Hemorrhage-Class2InternalSpleen.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2InternalSpleen.md diff --git a/docs/Validation/Hemorrhage-Class2Saline.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2Saline.md similarity index 100% rename from docs/Validation/Hemorrhage-Class2Saline.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class2Saline.md diff --git a/docs/Validation/Hemorrhage-Class3NoFluid.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class3NoFluid.md similarity index 100% rename from docs/Validation/Hemorrhage-Class3NoFluid.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class3NoFluid.md diff --git a/docs/Validation/Hemorrhage-Class3PackedRedBloodCells.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class3PackedRedBloodCells.md similarity index 100% rename from docs/Validation/Hemorrhage-Class3PackedRedBloodCells.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class3PackedRedBloodCells.md diff --git a/docs/Validation/Hemorrhage-Class4NoFluid.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class4NoFluid.md similarity index 100% rename from docs/Validation/Hemorrhage-Class4NoFluid.md rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage-Class4NoFluid.md diff --git a/docs/Validation/Hemorrhage.json b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json similarity index 100% rename from docs/Validation/Hemorrhage.json rename to data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md new file mode 100644 index 000000000..9e7493e9a --- /dev/null +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md @@ -0,0 +1,6 @@ + +### Hemorrhage + +@insert ./validation/markdown/Hemorrhage_Action.md + +@insert ./validation/markdown/Hemorrhage_Validation.md \ No newline at end of file diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.xlsx b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9c83c4bce7a1b1b8f73067e383c26f80b85233a1 GIT binary patch literal 82490 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

=DDt>&_tmc_6Bysk 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 m7`krM-aE2xbt5F*h`xM)H!B-RnLdL)Ln$u Date: Wed, 22 Jan 2025 23:25:06 -0500 Subject: [PATCH 07/18] Automated validation framework improvements - Fix the need for duplicate data request files - Support multiple md files for a validation xlsx - Change argument from xlsx filename to the directory --- src/cpp/engine/PulseScenarioExec.cpp | 3 + src/python/pulse/cdm/utils/markdown.py | 35 ++++-- .../dataset/segment_dataset_reader.py | 16 ++- src/python/pulse/pipelines/generate_data.py | 16 ++- .../pulse/pipelines/segment_validation.py | 106 +++++++++++------- 5 files changed, 113 insertions(+), 63 deletions(-) diff --git a/src/cpp/engine/PulseScenarioExec.cpp b/src/cpp/engine/PulseScenarioExec.cpp index 0007b06f0..e3df06a56 100644 --- a/src/cpp/engine/PulseScenarioExec.cpp +++ b/src/cpp/engine/PulseScenarioExec.cpp @@ -288,6 +288,9 @@ void PulseScenarioExec::ControllerLoop(const std::string copy, sce.GetLogger()->AddConsolePrefix("["+sce.GetName()+"] "); //exec.Info("Executing " + working.GetScenarioFilename()); // Check to see if we want scenario's to log to the console or not + std::string scenarioPath, scenarioFilename; + SplitPathFilename(working.GetScenarioFilename(), scenarioPath, scenarioFilename); + exec.GetDataRequestFilesSearch().insert(scenarioPath); exec.Execute(sce, &working); } else diff --git a/src/python/pulse/cdm/utils/markdown.py b/src/python/pulse/cdm/utils/markdown.py index b5fad3128..b44e9dec8 100644 --- a/src/python/pulse/cdm/utils/markdown.py +++ b/src/python/pulse/cdm/utils/markdown.py @@ -103,7 +103,9 @@ def get_table_tag(word: str)->str: word = word[start:end + 1] return word -def process_file(fpath: Path, ref_dir: Path, dest_dir: Path, replace_refs: bool=False, ancestors: Optional[Set[Path]]=None) -> None: + +def process_file(fpath: Path, ref_dir: Path, dest_dir: Path, + replace_refs: bool = False, ancestors: Optional[Set[Path]] = None) -> None: """ Prepares given file for doxygen. Inserts provided tables/references to other MD documents and optionally replaces references with Figure/Table numbers. @@ -207,18 +209,25 @@ def process_file(fpath: Path, ref_dir: Path, dest_dir: Path, replace_refs: bool= stripped_line = line.strip() i_name = stripped_line[stripped_line.find(" "):].strip() f = Path(i_name) - _pulse_logger.info(f"Inserting {i_name}") if not f.exists(): - # Try to process this file so it is in the dst directory + # Try to process this file assuming it is in the ref_dir inserting = f.name f = ref_dir.resolve() / inserting - process_file(f, ref_dir, dest_dir, replace_refs=False, ancestors=ancestors.copy()) - i_out_fname = dest_dir.resolve() / f.stem - i_out_fname = i_out_fname.with_suffix(i_out_fname.suffix+".md") - with open(i_out_fname, "r") as i_out: - i_lines = i_out.readlines() - out_lines.extend(i_lines) + if f.exists(): + _pulse_logger.warning(f"Performing @insert, could not find {i_name}, going to try to insert {f}") + process_file(f, ref_dir, dest_dir, replace_refs=False, ancestors=ancestors.copy()) + i_out_fname = dest_dir.resolve() / f.stem + i_out_fname = i_out_fname.with_suffix(i_out_fname.suffix+".md") + with open(i_out_fname, "r") as i_out: + i_lines = i_out.readlines() + out_lines.extend(i_lines) + else: + # If you get here, you are probably doing validation on a xlsx with multiple md files + # So that is fine, the validation pipeline should swing back again and properly insert files + _pulse_logger.warning(f"Could not find {i_name} for insertion, leaving insert in place") + out_lines.append(line) else: + _pulse_logger.info(f"Inserting {f}") out_lines.extend(_process_file(f, ancestors.copy())) else: out_lines.append(line) @@ -230,10 +239,10 @@ def process_file(fpath: Path, ref_dir: Path, dest_dir: Path, replace_refs: bool= with open(out_fname, 'w') as out_file: out_file.writelines(out_lines) - _pulse_logger.info("Writing processed file as: "+ str(out_fname)) + _pulse_logger.info("Writing processed file as: " + str(out_fname)) -if __name__ == "__main__": +def main(): logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s') try: @@ -260,3 +269,7 @@ if __name__ == "__main__": ) except Exception as e: _pulse_logger.error(e) + + +if __name__ == "__main__": + main() diff --git a/src/python/pulse/pipelines/dataset/segment_dataset_reader.py b/src/python/pulse/pipelines/dataset/segment_dataset_reader.py index 03a30613e..7e071c1a4 100644 --- a/src/python/pulse/pipelines/dataset/segment_dataset_reader.py +++ b/src/python/pulse/pipelines/dataset/segment_dataset_reader.py @@ -3,6 +3,7 @@ import sys import json +import shutil import logging from enum import Enum from pathlib import Path @@ -20,7 +21,13 @@ _pulse_logger = logging.getLogger('pulse') def gen_scenarios_and_targets(xls_file: Path, output_dir: Path, results_dir: Path, name_only: bool = False) -> [str]: - _pulse_logger.info(f"Generating data from {xls_file}") + _pulse_logger.info(f"Generating scenarios and targets from {xls_file} to {output_dir}") + # Copy along any data request json files + xls_dir = xls_file.parent + dr_files = xls_dir.glob("*DataRequests.json") + for dr_file in dr_files: + _pulse_logger.info(f"Copying file {dr_file} to {output_dir}") + shutil.copy(dr_file, output_dir/dr_file.name) # Iterate through each sheet in the file, generating a scenario for each workbook = load_workbook(filename=xls_file, data_only=True) @@ -218,7 +225,6 @@ def process_sheet(sheet: Worksheet, output_dir: Path, results_dir: Path, scenari segments.append(seg) scenario.get_data_request_manager().set_data_requests(drs) - full_results_dir = str(results_dir) + '/' full_results_filename = results_dir / f"{scenario_id}Results.csv" # Provide a directory to create a csv file with Results, but log files without scenario.get_data_request_manager().set_results_filename(full_results_filename.as_posix()) @@ -358,7 +364,7 @@ def write_scenario(scenario: SEScenario, segments: List[SESegmentValidationSegme return json.dumps(out_dict, indent=2) -if __name__ == "__main__": +def main(): logging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s') xls_file = None @@ -375,3 +381,7 @@ if __name__ == "__main__": sys.exit(1) _ = gen_scenarios_and_targets(xls_file) + + +if __name__ == "__main__": + main() diff --git a/src/python/pulse/pipelines/generate_data.py b/src/python/pulse/pipelines/generate_data.py index f30c51d0b..65e6de4d6 100644 --- a/src/python/pulse/pipelines/generate_data.py +++ b/src/python/pulse/pipelines/generate_data.py @@ -40,12 +40,16 @@ if __name__ == "__main__": logging.info(f"Writing validation\\requests\\Patient.json") serialize_data_request_list_to_file(patient_drs, Path("./validation/requests/Patient.json")) - # In the future, we will do all xlsx in the data/validation dir - # But for now, we are just hard coding the automated xlsx files - xls_files = ["Hemorrhage.xlsx", "AirwayObstruction.xlsx", "Dehydration.xlsx", "MechanicalVentilator.xlsx", "CSTARS.xlsx"] - - for xls_file in xls_files: + # In the future, we will do all folders in the data/validation dir + # But for now, we are just hard coding the automated directories + folders = ["Hemorrhage", + "AirwayObstruction", + "Dehydration", + "MechanicalVentilator", + "CSTARS"] + + for folder in folders: segment_validation_pipeline( - xls_file=Path(xls_file), + folder=Path(folder), exec_opt=eExecOpt.GenerateOnly ) diff --git a/src/python/pulse/pipelines/segment_validation.py b/src/python/pulse/pipelines/segment_validation.py index 176253633..769b400ca 100644 --- a/src/python/pulse/pipelines/segment_validation.py +++ b/src/python/pulse/pipelines/segment_validation.py @@ -45,24 +45,28 @@ class eExecOpt(Enum): # Full = Steps 1,2,3,4,5 -def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_results: bool = False) -> None: - +def segment_validation_pipeline(folder: Path, exec_opt: eExecOpt, use_test_results: bool = False) -> bool: + if folder.is_dir(): + xls_dir = folder + else: # Must be inside the code base + xls_dir = Path(get_root_dir()) / "data/human/adult/validation/Scenarios" / folder + _pulse_logger.info(f"Processing {xls_dir}") + if not xls_dir.is_dir(): + _pulse_logger.error("Could not find " + str(xls_dir)) + _pulse_logger.error("Please provide a valid folder") + return False + xls_file = xls_dir / (xls_dir.name + ".xlsx") if not xls_file.is_file(): - xls_file = Path(get_validation_dir()) / "Scenarios" / xls_file - if not xls_file.is_file(): - _pulse_logger.error("Could not find " + str(xls_file)) - _pulse_logger.error("Please provide a valid xls file") - sys.exit(1) - - xls_dir = xls_file.parent - xls_basename = "".join(xls_file.name.rsplit("".join(xls_file.suffixes), 1)) + _pulse_logger.error("Could not find " + str(xls_file)) + _pulse_logger.error("Please provide a valid xls file") + return False # This is where we will generate scenarios - scenario_dir = Path("./validation/scenarios/"+xls_basename) + scenario_dir = Path("./validation/scenarios/"+xls_dir.name) # This is where we read the csv to validate - validate_dir = Path("./verification/scenarios/"+xls_basename) + validate_dir = Path("./verification/scenarios/"+xls_dir.name) # This is where the scenario should generate results - test_results_dir = Path("./test_results/scenarios/" + xls_basename) + test_results_dir = Path("./test_results/scenarios/" + xls_dir.name) scenario_dir.mkdir(parents=True, exist_ok=True) validate_dir.mkdir(parents=True, exist_ok=True) @@ -74,11 +78,11 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res validate_dir = test_results_dir elif not validate_dir.is_dir(): _pulse_logger.error(f"Results directory ({validate_dir}) does not exist. Aborting") - return + return False sce_ids = gen_scenarios_and_targets(xls_file, scenario_dir, test_results_dir) if exec_opt is eExecOpt.GenerateOnly: - return + return True # plots and md files are expected to be: # 1. In the same directory as the xlsx file @@ -86,18 +90,22 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res # It is assumed the json and md file names are the same, just different extension md_files = [] - base_md = Path(xls_dir / f"{xls_basename}.md") + base_md = Path(xls_dir / f"{xls_dir.name}.md") if not base_md.is_file(): - base_md = Path(get_root_dir()) / "docs" / "Validation" / f"{xls_basename}.md" + base_md = Path(get_root_dir()) / "docs" / "Validation" / f"{xls_dir.name}.md" if base_md.is_file(): md_files.append(base_md) - # Find any other files that start with this name + # Look for any section md files + extra_mds = xls_dir.glob(f"{xls_dir.name}_*.md") + for extra_md in extra_mds: + md_files.append(extra_md) + # Find any other files that start with this name for sce_id in sce_ids: - md_file = Path(get_root_dir()) / "docs" / "Validation" / f"{xls_basename}-{sce_id}.md" + md_file = Path(get_root_dir()) / "docs" / "Validation" / f"{xls_dir.name}-{sce_id}.md" if not md_file.is_file(): md_file = Path(get_root_dir()) / "docs" / "Validation" / f"{sce_id}.md" if not md_file.is_file(): - md_file = Path(xls_dir / f"{xls_basename}-{sce_id}.md") + md_file = Path(xls_dir / f"{xls_dir.name}-{sce_id}.md") if not md_file.is_file(): md_file = None if md_file is not None: @@ -107,11 +115,13 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res _pulse_logger.error(f"Could not find md files, at least one should be in:") _pulse_logger.error(f"The same dir as the xlsx, or in your source/docs/Validation directory") sys.exit(1) - config_file = Path(xls_dir / f"{xls_basename}.json") - if not config_file.is_file(): - config_file = Path(get_root_dir()) / "docs" / "Validation" / f"{xls_basename}.json" + config_file = Path(xls_dir / f"{xls_dir.name}.json") if not config_file.is_file(): config_file = None + _pulse_logger.info("No config file found") + else: + _pulse_logger.info(f"Using config file {config_file}") + # Is there a custom bib file bib_file = Path(xls_dir / "Sources.bib") if bib_file.is_file(): @@ -122,7 +132,7 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res for image in images: ext = [".jpg", ".png"] if image.endswith(tuple(ext)): - image_dir = Path(f"./docs/html/Images/{xls_basename}") + image_dir = Path(f"./docs/html/Images/{xls_dir.name}") image_dir.mkdir(parents=True, exist_ok=True) shutil.copy(image, str(image_dir)) @@ -134,8 +144,10 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res # Get list of all scenarios scenarios = [ item.name for item in scenario_dir.glob("*.json") - if not item.is_dir() and "-ValidationTargets.json" not in item.name and \ - "-ExecStatus.json" not in item.name + if not item.is_dir() + and "-ValidationTargets.json" not in item.name + and "-ExecStatus.json" not in item.name + and "DataRequests.json" not in item.name ] # Create exec statuses for each scenario @@ -148,7 +160,7 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res sce_list.append(sce_status) # Save statuses to file to send over to C++ for parallel execution - sce_exec_list_file = scenario_dir / f"{xls_basename}-ExecStatus.json" + sce_exec_list_file = scenario_dir / f"{xls_dir.name}-ExecStatus.json" serialize_scenario_exec_status_list_to_file(sce_list, sce_exec_list_file) sce_exec.set_scenario_exec_list_filename(sce_exec_list_file.as_posix()) sce_exec.set_log_to_console(eSwitch.On) @@ -173,7 +185,7 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res _pulse_logger.error(f"Unable to locate segments for {abs_segments_filename}. Continuing without validating.") continue - table_dir = Path("./validation/tables/" + xls_basename + '/' + target_file.split('-')[0]) + table_dir = Path("./validation/tables/" + xls_dir.name + '/' + target_file.split('-')[0]) table_dir.mkdir(parents=True, exist_ok=True) validate(abs_targets_filename, abs_segments_filename, table_dir=table_dir) @@ -182,7 +194,7 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res if not table.write_table( validate_dir=validate_dir, in_dir=xls_dir, - out_dir=Path("./validation/tables") / xls_basename / table.get_scenario_name() + out_dir=Path("./validation/tables") / xls_dir.name / table.get_scenario_name() ): _pulse_logger.error(f"Could not write {table.get_scenario_name()}/{table.get_table_name()}") if use_test_results: @@ -199,18 +211,18 @@ def segment_validation_pipeline(xls_file: Path, exec_opt: eExecOpt, use_test_res ) -if __name__ == "__main__": +def main(): logging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s') logging.getLogger('PIL').setLevel(logging.INFO) plt.set_loglevel("info") parser = argparse.ArgumentParser(description="Process the full pipeline for segment validation") parser.add_argument( - "xls_file", + "folder", nargs='?', type=Path, default=None, - help="xls file to process during this pipeline run" + help="validation folder to process during this pipeline run" ) parser.add_argument( "-t", "--use-test-results", @@ -241,17 +253,17 @@ if __name__ == "__main__": opts = parser.parse_args() - xls_files = [] - if opts.xls_file is not None: - xls_files.append(opts.xls_file) + folders = [] + if opts.folder is not None: + folders.append(opts.folder) else: # In the future, we will do all xlsx in the data/validation dir # But for now, we are just hard coding the automated xlsx files - xls_files.append("Hemorrhage.xlsx") - xls_files.append("AirwayObstruction.xlsx") - xls_files.append("Dehydration.xlsx") - xls_files.append("MechanicalVentilator.xlsx") - xls_files.append("CSTARS.xlsx") + folders.append("Hemorrhage") + folders.append("AirwayObstruction") + folders.append("Dehydration") + folders.append("MechanicalVentilator") + folders.append("CSTARS") exec_opt = eExecOpt.Full if opts.generate_only: @@ -261,9 +273,17 @@ if __name__ == "__main__": elif opts.markdown: exec_opt = eExecOpt.MarkdownOnly - for xls_file in xls_files: + # Clean out our results directory + mk_dir = "./validation/markdown" + if Path(mk_dir).exists(): + shutil.rmtree(mk_dir) + for folder in folders: segment_validation_pipeline( - xls_file=Path(xls_file), + folder=Path(folder), exec_opt=exec_opt, use_test_results=opts.use_test_results - ) + ) + + +if __name__ == "__main__": + main() -- GitLab From 5887595f548fb4ce2ee322cba719dca971684951 Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Fri, 24 Jan 2025 08:25:38 -0500 Subject: [PATCH 08/18] Clean out target documentation folders even for validation reports --- bin/run.cmake.in | 4 ++-- src/python/pulse/pipelines/segment_validation.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/run.cmake.in b/bin/run.cmake.in index 68a527cc1..f0794a4f2 100644 --- a/bin/run.cmake.in +++ b/bin/run.cmake.in @@ -72,9 +72,9 @@ elseif(cmd STREQUAL "doxygen" OR cmd STREQUAL "validate") file(APPEND ./docs/panel_footer.html "${FOOTER}") endfunction() if(cmd STREQUAL "doxygen") + clean_docs(TRUE) file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/header.html HEADER) file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/footer.html FOOTER) - clean_docs(TRUE) file(COPY @CMAKE_SOURCE_DIR@/docs/Sources.bib DESTINATION @CMAKE_INSTALL_PREFIX@/bin/docs/) # These are run above execute_process(COMMAND "@Python_CMD@" "../python/pulse/pipelines/patient_validation.py" -i=verification RESULT_VARIABLE py_result) @@ -100,10 +100,10 @@ elseif(cmd STREQUAL "doxygen" OR cmd STREQUAL "validate") setup_landing_page(focus.html) setup_landing_page(support.html) elseif(cmd STREQUAL "validate") + clean_docs(TRUE) file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/header_minimum.html HEADER) file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/footer_minimum.html FOOTER) # Assumption: always use the test results when explicitly running validation on a xlsx - clean_docs(FALSE) file(COPY @CMAKE_SOURCE_DIR@/docs/Sources.bib DESTINATION @CMAKE_INSTALL_PREFIX@/bin/docs/) set(exec_opt "-tf") if(arg2 STREQUAL "gen") diff --git a/src/python/pulse/pipelines/segment_validation.py b/src/python/pulse/pipelines/segment_validation.py index 769b400ca..29ff24c7b 100644 --- a/src/python/pulse/pipelines/segment_validation.py +++ b/src/python/pulse/pipelines/segment_validation.py @@ -24,6 +24,7 @@ from pulse.engine.PulseScenarioExec import PulseScenarioExec _pulse_logger = logging.getLogger('pulse') + class eExecOpt(Enum): GenerateOnly = 0 SkipScenarioExecution = 1 -- GitLab From dc04b2cf6933468141a34fb847a5c2c70365665b Mon Sep 17 00:00:00 2001 From: Rachel Clipp Date: Fri, 24 Jan 2025 13:51:12 -0500 Subject: [PATCH 09/18] Updated length of group hemorrhage scenarios for 360 minutes. Corrected errors in the hemorrhage.md files. --- .../Scenarios/Hemorrhage/Hemorrhage.json | 8 +- .../Scenarios/Hemorrhage/Hemorrhage.md | 1 + .../Scenarios/Hemorrhage/Hemorrhage.xlsx | Bin 82490 -> 82870 bytes .../Scenarios/Hemorrhage/Hemorrhage_Action.md | 5 +- .../Hemorrhage/Hemorrhage_Validation.md | 148 ------------------ 5 files changed, 7 insertions(+), 155 deletions(-) diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json index 76135509e..5498719f9 100644 --- a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json @@ -10,7 +10,7 @@ "Comment": "Hemorrhages - Severity", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular" }, "PlotSource": [ @@ -20,7 +20,7 @@ [ { "Title": "Varying Severity of Hemorrhage", "OutputFilename": "HemorrhageSeverity", "YHeader": [ "TotalHemorrhageRate(mL/s)" ], "YLabel": "Hemorrhage Flow Rate", - "YBounds": { "LowerBound": 0, "UpperBound": 10 } + "YBounds": { "LowerBound": 0, "UpperBound": 8 } } ] } @@ -31,7 +31,7 @@ "Comment": "Hemorrhages - Severity To Flow", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular" }, "PlotSource": [ @@ -41,7 +41,7 @@ [ { "Title": "Severity to Flow Rate to Severity Hemorrhage", "OutputFilename": "HemorrhageSeverityToFlow", "YHeader": [ "TotalHemorrhageRate(mL/s)" ], "YLabel": "Hemorrhage Flow Rate", - "YBounds": { "LowerBound": 0, "UpperBound": 10 } + "YBounds": { "LowerBound": 0, "UpperBound": 8 } } ] } diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md index 9e7493e9a..156024861 100644 --- a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.md @@ -3,4 +3,5 @@ @insert ./validation/markdown/Hemorrhage_Action.md +### Hemorrhage Validation @insert ./validation/markdown/Hemorrhage_Validation.md \ No newline at end of file diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.xlsx b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.xlsx index 9c83c4bce7a1b1b8f73067e383c26f80b85233a1..cae3d39cd3b32f0b9f21e2cfa37c4baf38526164 100644 GIT binary patch delta 44968 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 ZWBOx9MlGhr#?$$o7**M{%@`RN7yvSnTuA@` delta 44549 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 diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md index 10de68746..5cb173caf 100644 --- a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md @@ -1,5 +1,3 @@ -### Hemorrhage - A hemorrhage is a significant reduction in blood volume, which triggers a physiologic response to stabilize cardiovascular function. Hypovolemia is any loss in blood volume, where a loss of more than 35% is considered hypovolemic shock. Hemorrhage causes a reduction in filling pressure for the circulation, leading to a decrease in venous return. This is evidenced by the decrease in mean arterial pressure and cardiac output. If these physiologic values continue to drop, hemorrhagic or hypovolemic shock will occur. There are three stages of shock: a nonprogressive stage, which the normal circulatory responses will lead to a recovery; a progressive stage, which leads to progressively worsening condition and eventual death without intervention; and an irreversible stage, which leads to death regardless of intervention. The sympathetic response is triggered by the decrease in mean arterial blood pressure, specifically by causing the stretch receptors (baroreceptors) to activate. This response triggers an increase in systemic vascular resistance, heart rate, and a decrease in venous compliance. This is discussed in detail in the @ref NervousMethodology. Hemorrhage can be initiated in the engine through two methods. The first method allows the user to characterize the hemorrhage by specifying the location (compartment) and bleed rate. Multiple hemorrhages can be applied to a single compartment or to multiple compartments. The user specifies a cardiovascular compartment to apply a hemorrhage. After the hemorrhage has been specified, the total loss rate is the sum of each individual bleed rate to that compartment. This value is set as a negative flow source. This results in a decrease in total blood volume that is linearly proportional to the total loss rate. This flow rate will remain constant throughout the computation. As the blood volume decreases, the blood flow to each compartment will begin to decrease. This could lead to an invalid flow rate for the compartment over time. A second method for specifying hemorrhage deals with this issue. A hemorrhage can also be characterized by specifying the location (compartment) and a severity. The severity is specified with a value between 0 and 1. A path is added to the cardiovascular circuit, but instead of specifying a negative flow rate, a resistance is specified on the path. This provides a calculated flow rate that will increase and decrease based on the dynamic physics of the circuit. This will prevent the insufficient blood flow/volume errors that can occur if the flow rate is not manually managed. When a hemorrhage is initiated with a severity, a minimum and maximum resistance are calculated to bound the severity, as shown in @equationref {ResistanceMin} and @equationref {ResistanceMax}, respectively. @@ -64,7 +62,7 @@ The different types of shock are evident in the data collected for groups of dog - + @@ -100,6 +98,7 @@ We also saw the expected blood volume, pressure, heart rate, and substance conce
@htmlonly +

diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Validation.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Validation.md index 0a14bb90f..c5aad1c17 100644 --- a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Validation.md +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Validation.md @@ -1,151 +1,3 @@ -### Hemorrhage - -A hemorrhage is a significant reduction in blood volume, which triggers a physiologic response to stabilize cardiovascular function. Hypovolemia is any loss in blood volume, where a loss of more than 35% is considered hypovolemic shock. Hemorrhage causes a reduction in filling pressure for the circulation, leading to a decrease in venous return. This is evidenced by the decrease in mean arterial pressure and cardiac output. If these physiologic values continue to drop, hemorrhagic or hypovolemic shock will occur. There are three stages of shock: a nonprogressive stage, which the normal circulatory responses will lead to a recovery; a progressive stage, which leads to progressively worsening condition and eventual death without intervention; and an irreversible stage, which leads to death regardless of intervention. The sympathetic response is triggered by the decrease in mean arterial blood pressure, specifically by causing the stretch receptors (baroreceptors) to activate. This response triggers an increase in systemic vascular resistance, heart rate, and a decrease in venous compliance. This is discussed in detail in the @ref NervousMethodology. - -Hemorrhage can be initiated in the engine through two methods. The first method allows the user to characterize the hemorrhage by specifying the location (compartment) and bleed rate. Multiple hemorrhages can be applied to a single compartment or to multiple compartments. The user specifies a cardiovascular compartment to apply a hemorrhage. After the hemorrhage has been specified, the total loss rate is the sum of each individual bleed rate to that compartment. This value is set as a negative flow source. This results in a decrease in total blood volume that is linearly proportional to the total loss rate. This flow rate will remain constant throughout the computation. As the blood volume decreases, the blood flow to each compartment will begin to decrease. This could lead to an invalid flow rate for the compartment over time. A second method for specifying hemorrhage deals with this issue. A hemorrhage can also be characterized by specifying the location (compartment) and a severity. The severity is specified with a value between 0 and 1. A path is added to the cardiovascular circuit, but instead of specifying a negative flow rate, a resistance is specified on the path. This provides a calculated flow rate that will increase and decrease based on the dynamic physics of the circuit. This will prevent the insufficient blood flow/volume errors that can occur if the flow rate is not manually managed. When a hemorrhage is initiated with a severity, a minimum and maximum resistance are calculated to bound the severity, as shown in Equations 3 and 4, respectively. - -\f[R_{\min} = (P-P_{T})/cQ \f] -
-Equation 3. -

- -Where Rmin is the minimum resistance, P is the blood pressure at the compartment hemorrhaging, PT is the pressure at the hemorrhage flow outlet, Q is the flow through the hemorrhage compartment (not the hemorrhage flow), and c a tuning factor. The tuning factor is employed to ensure a severity of 1.0 corresponds to a hemorrhage rate of approximately 90% of the flow through the compartment. The severity specified in the hemorrhage action is then used to calculate the resistance on the path. - -\f[R_{\max} = (c_{1})*R_{\min}/s \f] -
-Equation 4. -

- -Figure 8 demonstrates the different severity specifications and the impact on the hemorrhage flow rate as the severity is changed or the body responds to the hemorrhage. The results show that the hemorrhage severity changes the flow rate for the hemorrhage as expected, i.e., a 0.5 severity corresponds to 50% of the flow associated with a severity of 1.0. The results also show that as time passes the flow rate will naturally decrease without changing the severity to correspond to the reduction in blood pressure that occurs with hemorrhage. These results also demonstrate the ability to transition from a severity to a flow implementation and back to severity, if required. - -@htmlonly -
- - - - - -
- -
-
-
-@endhtmlonly -
-Figure 8. Hemorrhage can be applied as a severity or as a flow rate. A 1.0 severity will be approximately 100% of available flow. The image shows a severity of 1.0, reduced to 0.5, then further to 0.25, and 0. It then returns to 1.0. The flow will change over time as the pressure in the system varies. (Right) Further, the hemorrhage can be changed from a severity to a flow rate. The flow rate will not change when the it is directly specified. (Left) -

- -### Hemorrhage Validation - -The hemorrhage response was validated with a comparison to the literature. The mean arterial pressure and cardiac output were computed as a function of their baseline value and plotted with the percent blood loss, as shown in Figure 9. The computed results are shown on the left and the validation data @cite guyton2006medical is shown on the right. - -@htmlonly -
- - - - - -
- -
-
-
-@endhtmlonly -
-Figure 9. Normalized mean arterial pressure (left) and cardiac output (right) as blood loss increases for the Pulse model and the validation data @cite guyton2006medical. -

- -For the hemorrhage to shock scenario, our results maintain MAP through a 20% blood loss and CO begins to slowly decrease as expected. At 20%, we see an approximately linear drop in MAP from a as expected compared to experimental data from @cite guyton2006medical. The cardiac output shows the correct trend but a larger error for this region. The "last ditch" plateau is then exhibited from a blood loss of just under 35% to just under 45%. The MAP and CO then drop precipitously as expected. - -The different types of shock are evident in the data collected for groups of dogs and published in @cite guyton2006medical. Groups I, II, and III show cases of nonprogressive shock, Groups IV, and V show cases of progressive shock, and Group VI is an irreversible shock case. The first three groups recover without intervention, the final case leads quickly to death, and the Group IV and V cases show a short rebound before the physiologic decline that occurs without treatment. These cases were duplicated in the Pulse engine. The results and comparison to validation data are shown in Figure 10. - -@htmlonly -
- - - - - -
- -
-
- -
-@endhtmlonly -
-Figure 10. Normalized mean arterial pressure for different hemorrhage severities to demonstrate the different shock types. The computed Pulse results are on the left and the validation data @cite guyton2006medical is on the right. -

- -For the first three group hemorrhage scenarios (90%, 65%, and 50% blood loss), if the hemorrhage is arrested the MAP begins to rise and reaches a stable value. However, for the remaining three scenarios, the hemorrhage is unrecoverable for the patient. This is expected compared to the experimental data and for the degree of shock. However, one limitation of the model is that at the turning point between progressive and irreversible shock, the expected behavior is a temporary recovery lasting minutes to hours followed by deterioration and death. The current model has no ability to reverse the curve once the final deterioration toward deaths occurs. This is triggered at a blood pressure of approximately 40-45 mmHg. While the outcome is the same, the short recovery is not captured. Future work will incorporate this improvement. - -We also saw the expected blood volume, pressure, heart rate, and substance concentration values follow expected trends for the fluid resuscitation scenarios. Figures 11 and 12 show the appropriate substance behavior coupled with the blood volume changes. Like blood volume, the decrease in the substance will be linearly proportional to the bleed rate. For more specific information regarding these substances and their loss due to bleeding, see @ref BloodChemistryMethodology and @ref SubstanceTransportMethodology. Figure 11 shows the blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no intervention other than the cessation of hemorrhage. Figure 12 shows a hemorrhage event with subsequent saline administration. Note that the hemoglobin content remains diminished as the blood volume recovers with IV saline. By comparison, Figure 13 shows a scenarios with blood-product intervention and has the hemoglobin increasing with the blood infusion. - -@htmlonly -
- - - - - -
- -
-
- -

-@endhtmlonly -
-Figure 11. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with no subsequent intervention. -
-
- -@htmlonly - - - - - -
- -
-
- -
- -@endhtmlonly -
-Figure 12. Blood volume and hemoglobin content before, during, and after a massive hemorrhage event with a subsequent infusion of saline. -

- -@anchor cardiovascular-blood-administration - -@htmlonly -
- - - - - - - - - -
- -
- -
-
- -
-
-@endhtmlonly -
-Figure 13. The class 2 hemorrhage scenario shows the blood volume decreasing linearly with the constant 250 milliliter per minute bleeding rate. The blood hemoglobin content follows this exact trend. At the conclusion of the bleed, the blood volume and hemoglobin are at a lower value. Five hundred (500) milliliters of blood is then administered intravenously over the course of 5 minutes. Both the blood volume and hemoglobin content increase linearly with this administration. -
- The hemorrhage action is further tested using several scenarios: @secreflist -- GitLab From e1765fcdc591ffb1f3c0f9ed512b597106e812e5 Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Mon, 27 Jan 2025 12:57:38 -0500 Subject: [PATCH 10/18] Rework data request files for proper visability and usage --- .../DehydrationDataRequests.json | 0 .../MechanicalVentilatorDataRequests.json | 33 +++++++++++++++++++ .../MechanicalVentilator.json | 18 +++++----- ...echanicalVentilatorTableDataRequests.json} | 0 4 files changed, 42 insertions(+), 9 deletions(-) rename data/human/adult/{validation/Scenarios/Dehydration => scenarios}/DehydrationDataRequests.json (100%) create mode 100644 data/human/adult/scenarios/MechanicalVentilatorDataRequests.json rename data/human/adult/validation/Scenarios/MechanicalVentilator/{MechanicalVentilatorDataRequests.json => MechanicalVentilatorTableDataRequests.json} (100%) diff --git a/data/human/adult/validation/Scenarios/Dehydration/DehydrationDataRequests.json b/data/human/adult/scenarios/DehydrationDataRequests.json similarity index 100% rename from data/human/adult/validation/Scenarios/Dehydration/DehydrationDataRequests.json rename to data/human/adult/scenarios/DehydrationDataRequests.json diff --git a/data/human/adult/scenarios/MechanicalVentilatorDataRequests.json b/data/human/adult/scenarios/MechanicalVentilatorDataRequests.json new file mode 100644 index 000000000..561578283 --- /dev/null +++ b/data/human/adult/scenarios/MechanicalVentilatorDataRequests.json @@ -0,0 +1,33 @@ +{ + "DataRequest": + [ + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "AirwayPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 1 }, "Category": "MechanicalVentilator", "PropertyName": "BreathState" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "DynamicRespiratoryCompliance", "Unit": "mL/cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalCarbonDioxideFraction" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalCarbonDioxidePressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalOxygenFraction" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "EndTidalOxygenPressure", "Unit": "mmHg" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExpiratoryFlow", "Unit": "L/s" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExpiratoryResistance", "Unit": "cmH2O s/L" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExpiratoryTidalVolume", "Unit": "mL" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "ExtrinsicPositiveEndExpiratoryPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryExpiratoryRatio" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryFlow", "Unit": "L/min" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryResistance", "Unit": "cmH2O s/L" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "InspiratoryTidalVolume", "Unit": "mL" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "IntrinsicPositiveEndExpiratoryPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "LeakFraction" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "MeanAirwayPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PeakExpiratoryFlow", "Unit": "L/s" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PeakInspiratoryFlow", "Unit": "L/s" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PeakInspiratoryPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "PlateauPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "RespirationRate", "Unit": "1/min" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "StaticRespiratoryCompliance", "Unit": "mL/cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TidalVolume", "Unit": "mL" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TotalLungVolume", "Unit": "mL" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TotalPositiveEndExpiratoryPressure", "Unit": "cmH2O" }, + { "DecimalFormat": { "Precision": 6 }, "Category": "MechanicalVentilator", "PropertyName": "TotalPulmonaryVentilation", "Unit": "L/s" } + ] +} diff --git a/data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilator.json b/data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilator.json index ee071a9c3..c704e9504 100644 --- a/data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilator.json +++ b/data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilator.json @@ -194,63 +194,63 @@ "TableName": "Segment1SegmentTable", "ScenarioName": "Healthy", "Segment": 1, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment1SegmentTable", "ScenarioName": "ARDS", "Segment": 1, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment2SegmentTable", "ScenarioName": "ARDS", "Segment": 2, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment3SegmentTable", "ScenarioName": "ARDS", "Segment": 3, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment1SegmentTable", "ScenarioName": "COPD", "Segment": 1, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment2SegmentTable", "ScenarioName": "COPD", "Segment": 2, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment3SegmentTable", "ScenarioName": "COPD", "Segment": 3, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment1SegmentTable", "ScenarioName": "Recruitment", "Segment": 1, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] }, { "TableName": "Segment2SegmentTable", "ScenarioName": "Recruitment", "Segment": 2, - "DataRequestFile": ["MechanicalVentilatorDataRequests.json"], + "DataRequestFile": ["MechanicalVentilatorTableDataRequests.json"], "Header": [] } ] diff --git a/data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilatorDataRequests.json b/data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilatorTableDataRequests.json similarity index 100% rename from data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilatorDataRequests.json rename to data/human/adult/validation/Scenarios/MechanicalVentilator/MechanicalVentilatorTableDataRequests.json -- GitLab From f331f14d6f4fe1245687f87d067802737361bcb3 Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Tue, 28 Jan 2025 10:48:12 -0500 Subject: [PATCH 11/18] Optimize dehydration results precision --- .../scenarios/DehydrationDataRequests.json | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/data/human/adult/scenarios/DehydrationDataRequests.json b/data/human/adult/scenarios/DehydrationDataRequests.json index 3dac9b2b4..580d7d01c 100644 --- a/data/human/adult/scenarios/DehydrationDataRequests.json +++ b/data/human/adult/scenarios/DehydrationDataRequests.json @@ -1,14 +1,14 @@ { "DataRequest": [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Patient", "PropertyName": "Weight", "Unit": "kg" }, + { "DecimalFormat": { "Precision": 1 }, "Category": "Patient", "PropertyName": "Weight", "Unit": "kg" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "BloodPH", "Unit": "unitless" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalFluidVolume", "Unit": "L" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "ExtracellularFluidVolume", "Unit": "L" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "IntracellularFluidVolume", "Unit": "L" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "SweatRate", "Unit": "mg/min" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "MeanSkinFlow", "Unit": "L/min" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "BloodPH", "Unit": "unitless" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "TotalFluidVolume", "Unit": "L" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "ExtracellularFluidVolume", "Unit": "L" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "IntracellularFluidVolume", "Unit": "L" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "SweatRate", "Unit": "mg/min" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Physiology", "PropertyName": "MeanSkinFlow", "Unit": "L/min" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "PulsePressure", "Unit": "mmHg" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"PlasmaOsmolality", "Unit":"mOsm/kg" }, @@ -18,47 +18,47 @@ { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"UrineOsmolarity", "Unit":"mOsm/L" }, { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName":"UrinationRate", "Unit":"mL/s" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Sodium", "PropertyName":"Concentration", "Unit": "g/L" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Sodium", "PropertyName":"Concentration", "Unit": "g/L" }, { "DecimalFormat": { "Precision": 3 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Chloride", "PropertyName": "Concentration", "Unit": "g/L" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Urea", "PropertyName": "Concentration", "Unit": "g/L" }, + { "DecimalFormat": { "Precision": 1 }, "Category": "LiquidCompartment", "CompartmentName": "Bladder", "SubstanceName": "Urea", "PropertyName": "Concentration", "Unit": "g/L" }, {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"BloodConcentration", "Unit":"g/dL"}, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInBlood", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInBody", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInTissue", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Sodium", "PropertyName":"MassInBlood", "Unit":"mg" }, {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"BloodConcentration", "Unit":"ug/L"}, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"MassInBody", "Unit":"mg"}, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"MassInBlood", "Unit":"mg"}, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"SystemicMassCleared", "Unit":"mg"}, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"MassInBody", "Unit":"mg"}, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"MassInBlood", "Unit":"mg"}, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Chloride", "PropertyName":"SystemicMassCleared", "Unit":"mg"}, {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"BloodConcentration", "Unit":"mg/dL"}, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInBlood", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInBody", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInTissue", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Potassium", "PropertyName":"MassInBlood", "Unit":"mg" }, {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"BloodConcentration", "Unit":"mg/L"}, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInBlood", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInBody", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInTissue", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Calcium", "PropertyName":"MassInBlood", "Unit":"mg" }, {"DecimalFormat":{"Precision":3}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"BloodConcentration", "Unit":"mg/L"}, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInBody", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInTissue", "Unit":"mg" }, - {"DecimalFormat":{"Precision": 3}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInBlood", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInBody", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInTissue", "Unit":"mg" }, + {"DecimalFormat":{"Precision":0}, "Category":"Substance", "SubstanceName":"Lactate", "PropertyName":"MassInBlood", "Unit":"mg" }, {"DecimalFormat":{"Precision":2}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"BloodConcentration", "Unit":"mg/dL"}, {"DecimalFormat":{"Precision":4}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"MassInBody", "Unit":"mg" }, {"DecimalFormat":{"Precision":4}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"MassInTissue", "Unit":"mg" }, {"DecimalFormat":{"Precision":4}, "Category":"Substance", "SubstanceName":"Urea", "PropertyName":"MassInBlood", "Unit":"mg" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "ConvectiveHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "ConvectiveHeatTranferCoefficient", "Unit": "W/m^2 K" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "EvaporativeHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "EvaporativeHeatTranferCoefficient", "Unit": "W/m^2 K" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "RadiativeHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "RadiativeHeatTranferCoefficient", "Unit": "W/m^2 K" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "RespirationHeatLoss", "Unit": "W" }, - { "DecimalFormat": { "Precision": 3 }, "Category": "Environment", "PropertyName": "SkinHeatLoss", "Unit": "W" } + { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "ConvectiveHeatLoss", "Unit": "W" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "ConvectiveHeatTranferCoefficient", "Unit": "W/m^2 K" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "EvaporativeHeatLoss", "Unit": "W" }, + { "DecimalFormat": { "Precision": 5 }, "Category": "Environment", "PropertyName": "EvaporativeHeatTranferCoefficient", "Unit": "W/m^2 K" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "RadiativeHeatLoss", "Unit": "W" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "RadiativeHeatTranferCoefficient", "Unit": "W/m^2 K" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "RespirationHeatLoss", "Unit": "W" }, + { "DecimalFormat": { "Precision": 2 }, "Category": "Environment", "PropertyName": "SkinHeatLoss", "Unit": "W" } ] } -- GitLab From 014043c7092c39b8d4d1eb0169ba9aee531a52b4 Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Tue, 28 Jan 2025 10:52:04 -0500 Subject: [PATCH 12/18] Tag hemorrhage scenarios as validation tests --- data/config/ScenarioVerification.config | 43 ++++++++++++------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/data/config/ScenarioVerification.config b/data/config/ScenarioVerification.config index 09a4e94af..790b38770 100644 --- a/data/config/ScenarioVerification.config +++ b/data/config/ScenarioVerification.config @@ -64,6 +64,27 @@ Dehydration/Mild.json = Validation ScenarioTest Dehydration/Moderate.json = Validation ScenarioTest Dehydration/Severe.json = Validation ScenarioTest +@group Hemorrhage +Hemorrhage/Class1Femoral.json = Validation ScenarioTest +Hemorrhage/Class2Blood.json = Validation ScenarioTest +Hemorrhage/Class2Brachial.json = Validation ScenarioTest +Hemorrhage/Class2InternalMultiple.json = Validation ScenarioTest +Hemorrhage/Class2InternalSpleen.json = Validation ScenarioTest +Hemorrhage/Class2Saline.json = Validation ScenarioTest +Hemorrhage/Class3NoFluid.json = Validation ScenarioTest +Hemorrhage/Class3PackedRedBloodCells.json = Validation ScenarioTest +Hemorrhage/Class4NoFluid.json = Validation ScenarioTest +Hemorrhage/Group1.json = Validation ScenarioTest +Hemorrhage/Group2.json = Validation ScenarioTest +Hemorrhage/Group3.json = Validation ScenarioTest +Hemorrhage/Group4.json = Validation ScenarioTest +Hemorrhage/Group5.json = Validation ScenarioTest +Hemorrhage/Group6.json = Validation ScenarioTest +Hemorrhage/Severity1.json = Validation ScenarioTest +Hemorrhage/VaryingSeverity.json = Validation ScenarioTest +Hemorrhage/SeverityToFlowToSeverity.json = Validation ScenarioTest +Hemorrhage/SeverityMultiCompartments.json = Validation ScenarioTest + @group Patient patient/AcuteStress.json = ScenarioTest patient/ARDSExacerbation.json = ScenarioTest @@ -105,28 +126,6 @@ patient/ZeroPericardialEffusion.json = ScenarioTest patient/ZeroPulmonaryFibrosis.json = ScenarioTest patient/ZeroRenalStenosis.json = ScenarioTest -@group Hemorrhage -Hemorrhage/Class1Femoral.json = ScenarioTest -Hemorrhage/Class2Blood.json = ScenarioTest -Hemorrhage/Class2Brachial.json = ScenarioTest -Hemorrhage/Class2InternalMultiple.json = ScenarioTest -Hemorrhage/Class2InternalSpleen.json = ScenarioTest -Hemorrhage/Class2Saline.json = ScenarioTest -Hemorrhage/Class3NoFluid.json = ScenarioTest -Hemorrhage/Class3PackedRedBloodCells.json = ScenarioTest -Hemorrhage/Class4NoFluid.json = ScenarioTest -Hemorrhage/Group1.json = ScenarioTest -Hemorrhage/Group2.json = ScenarioTest -Hemorrhage/Group3.json = ScenarioTest -Hemorrhage/Group4.json = ScenarioTest -Hemorrhage/Group5.json = ScenarioTest -Hemorrhage/Group6.json = ScenarioTest -Hemorrhage/Severity1.json = ScenarioTest -Hemorrhage/VaryingSeverity.json = ScenarioTest -Hemorrhage/SeverityToFlowToSeverity.json = ScenarioTest -Hemorrhage/SeverityMultiCompartments.json = ScenarioTest - - @group ACLS # Cardiac Arrest to Normal Sinus acls/AsystoleToNormalSinus.json = ScenarioTest -- GitLab From b125be30546ced199a7186248b017e1d995981eb Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Tue, 28 Jan 2025 22:50:18 -0500 Subject: [PATCH 13/18] Correct some scenario names Remove unused scenarios and baselines --- data/config/ScenarioVerification.config | 6 +- .../equipment/ArtificialAirway.zip.sha512 | 1 - ...entilatorPressureControlledARDS.zip.sha512 | 1 - ...tilatorPressureControlledVaried.zip.sha512 | 1 - ...lVentilatorVolumeControlledARDS.zip.sha512 | 1 - ...alVentilator_PC-CMV_ARDS_Varied.zip.sha512 | 1 - ...alVentilator_PC-CMV_COPD_Varied.zip.sha512 | 1 - ...anicalVentilator_PC-CMV_Healthy.zip.sha512 | 1 - ...icalVentilator_PC-CMV_Mild_ARDS.zip.sha512 | 1 - ...icalVentilator_PC-CMV_Mild_COPD.zip.sha512 | 1 - ...Ventilator_PC-CMV_Moderate_ARDS.zip.sha512 | 1 - ...Ventilator_PC-CMV_Moderate_COPD.zip.sha512 | 1 - ...alVentilator_PC-CMV_Severe_ARDS.zip.sha512 | 1 - ...alVentilator_PC-CMV_Severe_COPD.zip.sha512 | 1 - ...hanicalVentilator_PC-CMV_Varied.zip.sha512 | 1 - ...echanicalVentilator_Recruitment.zip.sha512 | 1 - ...MechanicalVentilator_VC-AC_ARDS.zip.sha512 | 1 - ...hanicalVentilator_VC-AC_Healthy.zip.sha512 | 1 - ...anicalVentilator_VC-CMV_Healthy.zip.sha512 | 1 - .../miscellaneous/Nutrition.zip.sha512 | 1 - ...RespiratoryComplianceValidation.zip.sha512 | 1 - .../scenarios/patient/ApneaVaried.zip.sha512 | 1 - .../HemorrhageClass1Femoral.zip.sha512 | 1 - .../patient/HemorrhageClass2Blood.zip.sha512 | 1 - .../HemorrhageClass2BrachialArtery.zip.sha512 | 1 - ...emorrhageClass2InternalMultiple.zip.sha512 | 1 - .../HemorrhageClass2InternalSpleen.zip.sha512 | 1 - .../HemorrhageClass2NoFluid.zip.sha512 | 1 - .../patient/HemorrhageClass2Saline.zip.sha512 | 1 - .../HemorrhageClass3NoFluid.zip.sha512 | 1 - .../HemorrhageClass3PackedRBC.zip.sha512 | 1 - .../HemorrhageClass4NoFluid.zip.sha512 | 1 - .../patient/HemorrhageGroup1.zip.sha512 | 1 - .../patient/HemorrhageGroup2.zip.sha512 | 1 - .../patient/HemorrhageGroup3.zip.sha512 | 1 - .../patient/HemorrhageGroup4.zip.sha512 | 1 - .../patient/HemorrhageGroup5.zip.sha512 | 1 - .../patient/HemorrhageGroup6.zip.sha512 | 1 - .../HemorrhageInternalSeverity.zip.sha512 | 1 - .../patient/HemorrhageSeverity1.zip.sha512 | 1 - ...ageSeverityMultipleCompartments.zip.sha512 | 1 - ...orrhageSeverityToFlowToSeverity.zip.sha512 | 1 - .../patient/HemorrhageToShock.zip.sha512 | 1 - .../HemorrhageVaryingSeverity.zip.sha512 | 1 - .../scenarios/patient/HemorrhageGroup1.json | 77 ---------- .../scenarios/patient/HemorrhageGroup2.json | 77 ---------- .../scenarios/patient/HemorrhageGroup3.json | 77 ---------- .../scenarios/patient/HemorrhageGroup4.json | 77 ---------- .../scenarios/patient/HemorrhageGroup5.json | 77 ---------- .../scenarios/patient/HemorrhageGroup6.json | 77 ---------- .../patient/HemorrhageSeverity1.json | 49 ------ ...emorrhageSeverityMultipleCompartments.json | 94 ------------ .../HemorrhageSeverityToFlowToSeverity.json | 90 ----------- .../patient/HemorrhageVaryingSeverity.json | 143 ------------------ 54 files changed, 2 insertions(+), 885 deletions(-) delete mode 100644 data/human/adult/baselines/scenarios/equipment/ArtificialAirway.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledARDS.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledVaried.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorVolumeControlledARDS.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_ARDS_Varied.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_COPD_Varied.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Healthy.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_ARDS.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_COPD.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_ARDS.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_COPD.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_ARDS.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_COPD.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Varied.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_Recruitment.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ARDS.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_Healthy.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-CMV_Healthy.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/miscellaneous/Nutrition.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/miscellaneous/RespiratoryComplianceValidation.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/ApneaVaried.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass1Femoral.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass2Blood.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass2BrachialArtery.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalMultiple.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalSpleen.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass2NoFluid.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass2Saline.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass3NoFluid.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass3PackedRBC.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageClass4NoFluid.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageGroup1.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageGroup2.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageGroup3.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageGroup4.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageGroup5.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageGroup6.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageInternalSeverity.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageSeverity1.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageSeverityMultipleCompartments.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageSeverityToFlowToSeverity.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageToShock.zip.sha512 delete mode 100644 data/human/adult/baselines/scenarios/patient/HemorrhageVaryingSeverity.zip.sha512 delete mode 100644 data/human/adult/scenarios/patient/HemorrhageGroup1.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageGroup2.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageGroup3.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageGroup4.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageGroup5.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageGroup6.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageSeverity1.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageSeverityMultipleCompartments.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageSeverityToFlowToSeverity.json delete mode 100644 data/human/adult/scenarios/patient/HemorrhageVaryingSeverity.json diff --git a/data/config/ScenarioVerification.config b/data/config/ScenarioVerification.config index 790b38770..5ff4c0953 100644 --- a/data/config/ScenarioVerification.config +++ b/data/config/ScenarioVerification.config @@ -68,8 +68,8 @@ Dehydration/Severe.json = Validation ScenarioTest Hemorrhage/Class1Femoral.json = Validation ScenarioTest Hemorrhage/Class2Blood.json = Validation ScenarioTest Hemorrhage/Class2Brachial.json = Validation ScenarioTest -Hemorrhage/Class2InternalMultiple.json = Validation ScenarioTest Hemorrhage/Class2InternalSpleen.json = Validation ScenarioTest +Hemorrhage/Class2MultiInternal.json = Validation ScenarioTest Hemorrhage/Class2Saline.json = Validation ScenarioTest Hemorrhage/Class3NoFluid.json = Validation ScenarioTest Hemorrhage/Class3PackedRedBloodCells.json = Validation ScenarioTest @@ -83,7 +83,7 @@ Hemorrhage/Group6.json = Validation ScenarioTest Hemorrhage/Severity1.json = Validation ScenarioTest Hemorrhage/VaryingSeverity.json = Validation ScenarioTest Hemorrhage/SeverityToFlowToSeverity.json = Validation ScenarioTest -Hemorrhage/SeverityMultiCompartments.json = Validation ScenarioTest +Hemorrhage/SeverityMultiCompartment.json = Validation ScenarioTest @group Patient patient/AcuteStress.json = ScenarioTest @@ -103,8 +103,6 @@ patient/Cough.json = ScenarioTest patient/DyspneaVaried.json = ScenarioTest patient/EffusionCondition.json = ScenarioTest patient/EffusionConditionPlus.json = ScenarioTest -patient/HemorrhageInternalSeverity.json = ScenarioTest -patient/HemorrhageToShock.json = ScenarioTest patient/HemothoraxVaried.json = ScenarioTest patient/PneumoniaExacerbation.json = ScenarioTest patient/PneumoniaModerateBothLungs.json = ScenarioTest diff --git a/data/human/adult/baselines/scenarios/equipment/ArtificialAirway.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/ArtificialAirway.zip.sha512 deleted file mode 100644 index d8a6ed4c7..000000000 --- a/data/human/adult/baselines/scenarios/equipment/ArtificialAirway.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -18b68c906e43c02f0a1fad1d39630f4121814f7c1a0ed48a7e7c58e49a065a247ca1a5787a58a5f16d39d002c7b8593fde06d400c08b89089ab868254f08da2a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledARDS.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledARDS.zip.sha512 deleted file mode 100644 index bd5b225d3..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledARDS.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -68c5d0bba3f88dc8e10bec58f7b18721520e13831fa5902ff77791410ec5031b2bf71e3b7f65303f4ef15a193925aeceefdf575e2e662b40eff07c4550331e4d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledVaried.zip.sha512 deleted file mode 100644 index 3496c1c70..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorPressureControlledVaried.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -f79d82441ed2480c94f5ef0774d756a05f9b20d87b738c7469e9c4d609e0722e89f4816689d23520a0a6b415500bca85ab65468bc567f3870ce4915951b6a1c2 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorVolumeControlledARDS.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorVolumeControlledARDS.zip.sha512 deleted file mode 100644 index 40709141a..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilatorVolumeControlledARDS.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -676a04ea4207fcc6ab922c2d5d1c4db03993d244255ead9a0cadd271124ab3de4c9b63981c0bd81a4e9af2c858e97198a9e0382162f5dd7f7959573c42692c87 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_ARDS_Varied.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_ARDS_Varied.zip.sha512 deleted file mode 100644 index e29de8110..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_ARDS_Varied.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -d95c7e999dbf6b921b7613d891349f9c1a97565e762365399e5801a290ce4dec8c1093fa19b35e5581c22e8da7e1df0ace31382d13aeb7c37d9d41738094954f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_COPD_Varied.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_COPD_Varied.zip.sha512 deleted file mode 100644 index c1125154f..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_COPD_Varied.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -9bda22af31866855ee90ffaa89867eab1bd1de58d95a37f2e684dcab1f815cf63a8f290c0f49be20b72bdec8ec67c4252fd4eed60e0cab544b60b503625d2f84 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Healthy.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Healthy.zip.sha512 deleted file mode 100644 index 1e2c1890d..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Healthy.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -d773c8a13710ce94d465587aec3b51800d62472cbd1301159892ffde72f8036d1e07448019e746f7c5541a0700960630031a7d44cf9ceebf0d13a8a32cc6b24e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_ARDS.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_ARDS.zip.sha512 deleted file mode 100644 index b10c10f0b..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_ARDS.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -7dcc8b39dafd8fec47a6c0102dfaf0d6dab1bd70c8a22ddbfa43ad947da58948965c2ab779f5036dabb51346441cc5fa57cc839017f3672ea4191e0b3861cf97 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_COPD.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_COPD.zip.sha512 deleted file mode 100644 index 9497ea3cb..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Mild_COPD.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -ab7599cdaff828f26fc720ccdeb55b2c4c198a50c10125ee893d769e269b169d6f67859a1f331d90f7b43b10fb7182ff00a0bcbf6260ad11ec6b9b8b97de55b9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_ARDS.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_ARDS.zip.sha512 deleted file mode 100644 index ddb829334..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_ARDS.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -516d29043cdd0adb664d3f4c52c54c09d80c513c1e97988ea46abb4749b4c9eed4eb5e0e9ef25b49b8eace050991f90507ca3d5bbdb7d0c9005b75c7700c83ac \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_COPD.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_COPD.zip.sha512 deleted file mode 100644 index 25f7fd25e..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Moderate_COPD.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -fe6e54c1c4b9a9492447d48755773c9e8e65d81688c17f15883766e3e4ffd010dcc5b1d29775bfc4fbc898903bda1756fce7dc2ace105af53d820a2afa14a554 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_ARDS.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_ARDS.zip.sha512 deleted file mode 100644 index 6b8737664..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_ARDS.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -53ed418642011cdb6eeebd08d53c999a6a2c8b0b6399d146d92ccd496f67300d03c83c3d17f64a4e57c7a167bab90d76f08858f10f226a7fca1a664ae729568c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_COPD.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_COPD.zip.sha512 deleted file mode 100644 index 4e18a7b13..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Severe_COPD.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -f9a277b28a923c1d2889dab4ea301dd88038397b5d26dd581d50a406d8b4d216c2f5db755d3b5dee3e102b9f5951e6c099e9714cfbb958b7aa1f2bb1b1917912 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Varied.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Varied.zip.sha512 deleted file mode 100644 index 425d962f6..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_PC-CMV_Varied.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -4923717dce6da4181cc9c1d85d6d19b96810bbaf713ce820487c406363f1a11ee375a69ffba4ed532c591be085f2d6f304191052b12cae2e9e98cf9577c667d2 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_Recruitment.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_Recruitment.zip.sha512 deleted file mode 100644 index 85c62766f..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_Recruitment.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -02d4993606ef10d7c41965270651bcfdcfebf023cc507093876e6259f3f57d1984d85119b309145433c2035fbd7b685786f3aad9f0d2de0e4d5a8973216c52f4 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ARDS.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ARDS.zip.sha512 deleted file mode 100644 index 8e1ae5f71..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ARDS.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -526cb04484466b9dd1e0980ee36bb5b7741d476479d1a6ee22a779db3ef7bb59f03a22e10649706e7a1cbed9e1a8438bb62b822f2c689c51581266d6d0e26a7f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_Healthy.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_Healthy.zip.sha512 deleted file mode 100644 index 9b7a57073..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_Healthy.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -ea44309f2fb038ac0029840aa9f1751f2c85e09ac2b0ad3a4079e424264138bc9f3315898a0b67263f3c698c8ae8f83188c48ad553461375edff0fab004faee0 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-CMV_Healthy.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-CMV_Healthy.zip.sha512 deleted file mode 100644 index 757f43f14..000000000 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-CMV_Healthy.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -981e162e1aea7523e0b50025711bd5140dc6e5fff70492d9389207ce10f054231607ff46bc17a077b3137e9223c81ed021cd5b541f3ccf07ba35f2f9b6277763 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/Nutrition.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/Nutrition.zip.sha512 deleted file mode 100644 index c61103c0e..000000000 --- a/data/human/adult/baselines/scenarios/miscellaneous/Nutrition.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -12545db8e1c83f09aeda676c506ece375e7ccfc531cc7774c0a2242d202f8ec2b364e9f3ca5e17b5420ae764878cbd54e619a1f62b386c86b4354e6ff656b06c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/RespiratoryComplianceValidation.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/RespiratoryComplianceValidation.zip.sha512 deleted file mode 100644 index d3a8da96d..000000000 --- a/data/human/adult/baselines/scenarios/miscellaneous/RespiratoryComplianceValidation.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -40c8f08c68bf21f035c15ea2fccdc4518458d63bdfff52f59a51a099325e9d0857c2b863210b3a6e73621c4644d1b3c31bc92f9c4a9db2edc0b06d73248ed3be \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ApneaVaried.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ApneaVaried.zip.sha512 deleted file mode 100644 index fe56f5859..000000000 --- a/data/human/adult/baselines/scenarios/patient/ApneaVaried.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -ada2c8f801d1d12f3af3372ed6a23a2efe5521e1866b18d50b461297d93bed91f8fb092a71041824e0d49c6dea28f769894a9ad1e5f3b3e945f823e5aa89c034 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass1Femoral.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass1Femoral.zip.sha512 deleted file mode 100644 index 10ba007b3..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass1Femoral.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -4da919382b02d8352df9938f70bbacaf50258bd3f4bdfeeb126f05ef72565b8a8dfd6c909612d378d5fd98bc8d95c2d8e109b33d15a6882c15fde84a665cf0bf \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2Blood.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass2Blood.zip.sha512 deleted file mode 100644 index 92a864ebe..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2Blood.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -fb6154b345ad425cc4d119ced6dc2bf304de15a33b6ce285b6201c03e4e5c58482885e2b9367c9f493e46e3b6e54960fd281ca4bc8e4813d99c0317b1b96232f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2BrachialArtery.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass2BrachialArtery.zip.sha512 deleted file mode 100644 index 636b2769c..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2BrachialArtery.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -0aec60e18ba7956ad0865db7c729d48f8c3c2892e82252c3f9eb669bbe902366bdd183926c38670934afeb3124fb34ba734fb7045f055ce2629a9fdeb67117e9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalMultiple.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalMultiple.zip.sha512 deleted file mode 100644 index c9f4ac22e..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalMultiple.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -f5697e5855688f463e39a55e9427a32d57d147c1571845855379a8e48b85aba15338e58a8819bb137638d35841c376b6095d35d533bf18d905ec375e92d40df9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalSpleen.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalSpleen.zip.sha512 deleted file mode 100644 index e023a944f..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2InternalSpleen.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -00942c5b40a5f3d3890b21cab59005ea628c35309612d269bc561ef110cb4f65818f34639565f3a6709dcff890e94849cc54f15a624eba64cc094151486df4ca \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2NoFluid.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass2NoFluid.zip.sha512 deleted file mode 100644 index 7e9da7028..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2NoFluid.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -1cc7f14c21cb3b97fa7e7837123ec7cbf85ca7412a2189db2f65a4c0805842eac57017103619a65243eff3264e793950271ceecbcf3e4fc083affd5c5b878cbe \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2Saline.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass2Saline.zip.sha512 deleted file mode 100644 index 40c2e03a0..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass2Saline.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -bc6d38289c23f38bf7a4abf1d217777414960ecf48a9a0bdb3f0cd96af7d8f5ddcc64194b81f66b129a51c99566f1d69ab98a5a7095235034d96e85c65d3ea3b \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass3NoFluid.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass3NoFluid.zip.sha512 deleted file mode 100644 index 7ecbf0746..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass3NoFluid.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -5627c833eee441c808af2e876beab07165c1ccb2612d0fb11310c07c4b50c8fb09c5aac5b20635f83323c9f737ae4e7c8ca1b59d3e646da98d558820b0eda5cb \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass3PackedRBC.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass3PackedRBC.zip.sha512 deleted file mode 100644 index 136cc87e0..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass3PackedRBC.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -6779631632d2d219eb7fdf510f52cced02e760a21951cd678205730babc5e7442917d8ff4efb506ac6a0046e0c34a081d4b687770b9f36805bc047d9b5d74b3a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageClass4NoFluid.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageClass4NoFluid.zip.sha512 deleted file mode 100644 index a0450b30a..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageClass4NoFluid.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -db25e6bf5df829b2ca623cbd67531e3c1bd0208362618101e3b82150f06516879a8a189ba1fc2762b0f4e7fa7ba9dcafab5ccee88d1d13e8a6479ef733ab20f1 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup1.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageGroup1.zip.sha512 deleted file mode 100644 index 8d62aec87..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup1.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -030bf2d6bb412269aeec86a38041d19d30ff0c58d7f1f526a29c8bb6af5f025fc5a39ed49ed70c62f0a7bd36e04cfe05abe909dcbbcdbc94eff2e7431478db00 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup2.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageGroup2.zip.sha512 deleted file mode 100644 index 1cea3025d..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup2.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -dfffe46422cdef72288c5bf82393aba23ca3eab3bd16f149234d095eca342d8dd47c98c77fe667f8585b41a6d38438c5961b8ccb4c0f7f1f0496f274ec267e7d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup3.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageGroup3.zip.sha512 deleted file mode 100644 index a94a4b331..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup3.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -78aeba7ae6b42bc91e50b96a00756b0c9a86a45a6c5944645d4ae3c47bc42c3a0a7821b45bc2514ce1341bc27f11bc6dd2d2f24d6a1ef3cfc371c71543c37445 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup4.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageGroup4.zip.sha512 deleted file mode 100644 index 4650f7512..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup4.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -7a84a1d211bc1fad76a23b3e388ab61f190d48b6a5d58863fc0e99febcddb2a65b085804158b1213ff3dca48f5d063d559ea2ac257dbc5519c1c8febfc5a9f93 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup5.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageGroup5.zip.sha512 deleted file mode 100644 index 98e177163..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup5.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -79d6f21bce08521daa196f2387d3ed8b9beac5dd9e560d3d67675d20ca932cf78159d910de51106f55cf3323ee475b9f0efe26ac541e307cb68c72dd823b5e1e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup6.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageGroup6.zip.sha512 deleted file mode 100644 index 79c89a56e..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageGroup6.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -5dcf528de9a69a3ea402ef6072bed3b0856893379cfb8169c818cae90ee51804b50f52ff7ea5730aef0516cc83f2d7915b7ef70977ea41d7b235e540e2ddbba8 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageInternalSeverity.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageInternalSeverity.zip.sha512 deleted file mode 100644 index a639a72c9..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageInternalSeverity.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -8e0a49e98d321f92e6451f283533d1227bd1f5364c6c4c31a8f2afbbe8b05aa4e6cbbd787efa7b240ef8460661512a44f3d9c5e1568eef5b8f2a9dab2fffc381 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageSeverity1.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageSeverity1.zip.sha512 deleted file mode 100644 index e8d2d020f..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageSeverity1.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -005f4cb6901c42699fdcb066e9aa4441101dd026ce9d9245f0bcb9ea433d4b1040090849a07c56a4b450de8e1dc5c508b28c1f0df9f2602c556b2c6855c1a5ba \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageSeverityMultipleCompartments.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageSeverityMultipleCompartments.zip.sha512 deleted file mode 100644 index bdfd931a8..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageSeverityMultipleCompartments.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -7731c90612a51c041074d1056b2aced1d29209f2634cd3d4dc8515a906a4bdb5343ca9748d8fbdf018a137425cbbcc2ed5c76b27afb398c08b7eee9e30730842 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageSeverityToFlowToSeverity.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageSeverityToFlowToSeverity.zip.sha512 deleted file mode 100644 index 2699a3d02..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageSeverityToFlowToSeverity.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -c8bdb015ff440dbb87e44dabe43add8282ff8b188fdb17f148b9b35ec98ae3d5d8149caa422b1496ff9a2bad5f6a7ce7714b3292362959687a58074bb642be67 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageToShock.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageToShock.zip.sha512 deleted file mode 100644 index 8370f362a..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageToShock.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -c6c106873cc0e2ce15b5a612547a1970a0a5f4e67e01ea5cb3e5e6071570a1da2b113a4e1179d3ce01ae4c7277baaf00123af8ae0b13752ec396bb9fe879c009 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemorrhageVaryingSeverity.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemorrhageVaryingSeverity.zip.sha512 deleted file mode 100644 index 5b0c6e5b3..000000000 --- a/data/human/adult/baselines/scenarios/patient/HemorrhageVaryingSeverity.zip.sha512 +++ /dev/null @@ -1 +0,0 @@ -91d2422e855ff9b373b1eec6e3bd4fdc1ec694b4f32c8067b83fa03b3b0de68f71d31592714c8ef33b84cc23021a527d9a35b1b31c2b8353cf0205ce28e23a17 \ No newline at end of file diff --git a/data/human/adult/scenarios/patient/HemorrhageGroup1.json b/data/human/adult/scenarios/patient/HemorrhageGroup1.json deleted file mode 100644 index 96fe35151..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageGroup1.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "Name": "HemorrhageGroup1", - "Description": "25% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 175.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 3000.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageGroup2.json b/data/human/adult/scenarios/patient/HemorrhageGroup2.json deleted file mode 100644 index ad2840d16..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageGroup2.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "Name": "HemorrhageGroup1", - "Description": "27% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 175.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 565, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 3000.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageGroup3.json b/data/human/adult/scenarios/patient/HemorrhageGroup3.json deleted file mode 100644 index 04d15de93..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageGroup3.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "Name": "HemorrhageGroup3", - "Description": "28% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 175.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 660, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 3000.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageGroup4.json b/data/human/adult/scenarios/patient/HemorrhageGroup4.json deleted file mode 100644 index ef52c5a66..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageGroup4.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "Name": "HemorrhageGroup4", - "Description": "35% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 175.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 715, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 3000.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageGroup5.json b/data/human/adult/scenarios/patient/HemorrhageGroup5.json deleted file mode 100644 index 6f5ef937d..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageGroup5.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "Name": "HemorrhageGroup4", - "Description": "35% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 175.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 850, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 3000.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageGroup6.json b/data/human/adult/scenarios/patient/HemorrhageGroup6.json deleted file mode 100644 index f40d7e61d..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageGroup6.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "Name": "HemorrhageGroup4", - "Description": "35% Blood Loss", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "SubstanceName": "Oxygen", "PropertyName": "PartialPressure", "Unit": "mmHg" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "MyocardiumVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "BrainVasculature", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "VenaCava", "PropertyName": "InFlow", "Unit": "mL/min" }, - { "DecimalFormat": { "Precision": 4 }, "Category": "LiquidCompartment", "CompartmentName": "RightHeart", "PropertyName": "InFlow", "Unit": "mL/min" }, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "VenaCava", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 175.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 885, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "VenaCava", - "FlowRate": { - "ScalarVolumePerTime": { - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 3000.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageSeverity1.json b/data/human/adult/scenarios/patient/HemorrhageSeverity1.json deleted file mode 100644 index 0af183c46..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageSeverity1.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "Name": "HemorrhageSeverityP5", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 35.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 1.0 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 2500.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageSeverityMultipleCompartments.json b/data/human/adult/scenarios/patient/HemorrhageSeverityMultipleCompartments.json deleted file mode 100644 index 6719232e5..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageSeverityMultipleCompartments.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "Name": "HemorrhageSeverityP5", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Muscle", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Muscle", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Skin", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "Skin", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Muscle", - "Severity": { - "Scalar0To1": { - "Value": 0.15 - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Skin", - "Severity": { - "Scalar0To1": { - "Value": 0.5 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Muscle", - "Severity": { - "Scalar0To1": { - "Value": 0.0 - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "Skin", - "Severity": { - "Scalar0To1": { - "Value": 0.0 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageSeverityToFlowToSeverity.json b/data/human/adult/scenarios/patient/HemorrhageSeverityToFlowToSeverity.json deleted file mode 100644 index b2ca0e27f..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageSeverityToFlowToSeverity.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "Name": "HemorrhageSeverityP5", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 1.0 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "FlowRate": { - "ScalarVolumePerTime": { - "Value": 90.0, - "Unit": "mL/min" - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 0.5 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }] -} diff --git a/data/human/adult/scenarios/patient/HemorrhageVaryingSeverity.json b/data/human/adult/scenarios/patient/HemorrhageVaryingSeverity.json deleted file mode 100644 index 7f1295645..000000000 --- a/data/human/adult/scenarios/patient/HemorrhageVaryingSeverity.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "Name": "HemorrhageSeverityP5", - "Description": "", - "PatientConfiguration": { "PatientFile": "StandardMale.json" }, - "DataRequestFile": [ - "StandardDataRequests.json" - ], - "DataRequestManager": - { - "DataRequest": - [ - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "RightLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "LeftLegVasculature", "PropertyName": "FlowRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Action", "ActionName": "Hemorrhage", "CompartmentName": "LeftLegVasculature", "PropertyName": "TotalBloodLost", "Unit": "mL"}, - - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhageRate", "Unit": "mL/s"}, - { "DecimalFormat": { "Precision": 3 }, "Category": "Physiology", "PropertyName": "TotalHemorrhagedVolume", "Unit": "mL"} - ] - }, - "AnyAction": [{ - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 30.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 1.0 - } - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "LeftLeg", - "Severity": { - "Scalar0To1": { - "Value": 0.0 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 0.5 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 0.25 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 0.0 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 200.0, - "Unit": "s" - } - } - } - }, { - "PatientAction": { - "Hemorrhage": { - "Compartment": "RightLeg", - "Severity": { - "Scalar0To1": { - "Value": 1.0 - } - } - } - } - }, { - "AdvanceTime": { - "Time": { - "ScalarTime": { - "Value": 400.0, - "Unit": "s" - } - } - } - }] -} -- GitLab From d697fb95b0edc3e2a2d36c813d7006be4fc53cae Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Tue, 28 Jan 2025 23:30:10 -0500 Subject: [PATCH 14/18] Put all hemorrhage plots into the hemorrhage folder --- .../Scenarios/Hemorrhage/Hemorrhage.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json index 5498719f9..a4572278b 100644 --- a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json @@ -10,7 +10,7 @@ "Comment": "Hemorrhages - Severity", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage" }, "PlotSource": [ @@ -31,7 +31,7 @@ "Comment": "Hemorrhages - Severity To Flow", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage" }, "PlotSource": [ @@ -52,7 +52,7 @@ "Comment": "Hemorrhages - Class 4 No Fluid", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage", "PercentOfBaselineMode": "All" }, "PlotSource": [ @@ -75,7 +75,7 @@ "Comment": "Hemorrhages - Class 4 No Fluid", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage", "PercentOfBaselineMode": "All" }, "PlotSource": [ @@ -102,7 +102,7 @@ "Comment": "Hemorrhage Groups", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "OnlyY" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage", "PercentOfBaselineMode": "OnlyY" }, "PlotSource": [ @@ -128,7 +128,7 @@ "PlotConfig": { "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true + "OutputPathOverride": "./docs/html/plots/Hemorrhage/", "PlotActions": true, "PlotEvents": true }, "PlotSource": [ @@ -153,7 +153,7 @@ "PlotConfig": { "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true + "OutputPathOverride": "./docs/html/plots/Hemorrhage/", "PlotActions": true, "PlotEvents": true }, "PlotSource": [ @@ -176,7 +176,7 @@ "PlotConfig": { "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Cardiovascular/", "PlotActions": true, "PlotEvents": true + "OutputPathOverride": "./docs/html/plots/Hemorrhage/", "PlotActions": true, "PlotEvents": true }, "PlotSource": [ @@ -558,7 +558,7 @@ "Comment": "Hemorrhages - Class 4 No Fluid", "PlotConfig": { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Cardiovascular", "PercentOfBaselineMode": "All" + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage", "PercentOfBaselineMode": "All" }, "PlotSource": [ -- GitLab From 421d38161ed10b0825e40e4490a30c89f3646ad4 Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Wed, 29 Jan 2025 09:53:56 -0500 Subject: [PATCH 15/18] Rebase from chaning alveolar transfer units and hemorrhage validation scenarios --- .../baselines/scenarios/AirwayObstruction/Varied.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/CSTARS/Scenario1.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/CSTARS/Scenario2.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/CSTARS/Scenario3.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/CSTARS/Scenario4.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/CSTARS/Scenario5.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/CSTARS/Scenario6.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/CSTARS/Scenario7.zip.sha512 | 2 +- .../adult/baselines/scenarios/Dehydration/Healthy.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/Dehydration/Mild.zip.sha512 | 2 +- .../adult/baselines/scenarios/Dehydration/Moderate.zip.sha512 | 2 +- .../adult/baselines/scenarios/Dehydration/Severe.zip.sha512 | 2 +- .../baselines/scenarios/Hemorrhage/Class1Femoral.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Class2Blood.zip.sha512 | 1 + .../baselines/scenarios/Hemorrhage/Class2Brachial.zip.sha512 | 1 + .../scenarios/Hemorrhage/Class2InternalSpleen.zip.sha512 | 1 + .../scenarios/Hemorrhage/Class2MultiInternal.zip.sha512 | 1 + .../baselines/scenarios/Hemorrhage/Class2Saline.zip.sha512 | 1 + .../baselines/scenarios/Hemorrhage/Class3NoFluid.zip.sha512 | 1 + .../scenarios/Hemorrhage/Class3PackedRedBloodCells.zip.sha512 | 1 + .../baselines/scenarios/Hemorrhage/Class4NoFluid.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Group1.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Group2.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Group3.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Group4.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Group5.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Group6.zip.sha512 | 1 + .../adult/baselines/scenarios/Hemorrhage/Severity1.zip.sha512 | 1 + .../scenarios/Hemorrhage/SeverityMultiCompartment.zip.sha512 | 1 + .../scenarios/Hemorrhage/SeverityToFlowToSeverity.zip.sha512 | 1 + .../baselines/scenarios/Hemorrhage/VaryingSeverity.zip.sha512 | 1 + .../baselines/scenarios/MechanicalVentilator/ARDS.zip.sha512 | 2 +- .../baselines/scenarios/MechanicalVentilator/COPD.zip.sha512 | 2 +- .../baselines/scenarios/MechanicalVentilator/Healthy.zip.sha512 | 2 +- .../scenarios/MechanicalVentilator/Recruitment.zip.sha512 | 2 +- .../baselines/scenarios/acls/AsystoleToNormalSinus.zip.sha512 | 2 +- .../scenarios/acls/AsystoleToSinusBradycardia.zip.sha512 | 2 +- .../scenarios/acls/AsystoleToSinusTachycardia.zip.sha512 | 2 +- .../acls/AsystoleToStableVentricularTachycardia.zip.sha512 | 2 +- .../acls/AsystoleToUnstableVentricularTachycardia.zip.sha512 | 2 +- .../adult/baselines/scenarios/acls/ChestCompression.zip.sha512 | 2 +- .../scenarios/acls/ChestCompressionAutomatedVaried.zip.sha512 | 2 +- .../scenarios/acls/ChestCompressionAutomatedWithBVM.zip.sha512 | 2 +- .../scenarios/acls/ChestCompressionInstantaneous.zip.sha512 | 2 +- .../acls/CoarseVentricularFibrillationToNormalSinus.zip.sha512 | 2 +- .../acls/FineVentricularFibrillationToNormalSinus.zip.sha512 | 2 +- .../scenarios/acls/NormalSinusToSinusBradycardia.zip.sha512 | 2 +- .../scenarios/acls/NormalSinusToSinusTachycardia.zip.sha512 | 2 +- .../acls/NormalSinusToStableVentricularTachycardia.zip.sha512 | 2 +- .../acls/NormalSinusToUnstableVentricularTachycardia.zip.sha512 | 2 +- .../PulselessVentricularTachycardiaToNormalSinus.zip.sha512 | 2 +- .../SinusPulselessElectricalActivityToNormalSinus.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/combined/Cynthia.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/combined/Gus.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/combined/Hassan.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/combined/Joel.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/combined/Nathan.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Albuterol.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Desflurane.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/drug/Epinephrine.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Etomidate.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Fentanyl.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Furosemide.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Ketamine.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Lorazepam.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Midazolam.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Morphine.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Naloxone.zip.sha512 | 2 +- .../adult/baselines/scenarios/drug/Norepinephrine.zip.sha512 | 2 +- .../baselines/scenarios/drug/NorepinephrineBolus.zip.sha512 | 2 +- .../adult/baselines/scenarios/drug/Phenylephrine.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/drug/Pralidoxime.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Prednisone.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Propofol.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/drug/Rocuronium.zip.sha512 | 2 +- .../adult/baselines/scenarios/drug/Succinylcholine.zip.sha512 | 2 +- .../AlveolarArterialGradientEnvironments.zip.sha512 | 2 +- .../energyenvironment/CarbonMonoxideExtreme.zip.sha512 | 2 +- .../energyenvironment/CarbonMonoxideThreshold.zip.sha512 | 2 +- .../scenarios/energyenvironment/ColdWaterSubmersion.zip.sha512 | 2 +- .../scenarios/energyenvironment/ExerciseStages.zip.sha512 | 2 +- .../scenarios/energyenvironment/ExerciseVO2max.zip.sha512 | 2 +- .../scenarios/energyenvironment/FireFighter.zip.sha512 | 2 +- .../energyenvironment/HighAltitudeEnvironmentChange.zip.sha512 | 2 +- .../HighAltitudeEnvironmentFileChange.zip.sha512 | 2 +- .../InitialHighAltitudeEnvironmentFile.zip.sha512 | 2 +- .../InitialHighAltitudeEnvironmentState.zip.sha512 | 2 +- .../scenarios/energyenvironment/MechanicalDeadSpace.zip.sha512 | 2 +- .../scenarios/energyenvironment/ThermalApplication.zip.sha512 | 2 +- .../AnesthesiaMachineEndotrachealTubeLeakVaried.zip.sha512 | 2 +- .../AnesthesiaMachineExpiratoryValveLeakVaried.zip.sha512 | 2 +- ...AnesthesiaMachineExpiratoryValveObstructionVaried.zip.sha512 | 2 +- .../AnesthesiaMachineInspiratoryValveLeakVaried.zip.sha512 | 2 +- ...nesthesiaMachineInspiratoryValveObstructionVaried.zip.sha512 | 2 +- .../equipment/AnesthesiaMachineMaskLeakVaried.zip.sha512 | 2 +- .../AnesthesiaMachineOxygenTankPressureLoss.zip.sha512 | 2 +- .../AnesthesiaMachineOxygenWallPressureLoss.zip.sha512 | 2 +- .../equipment/AnesthesiaMachineSodaLimeFailureVaried.zip.sha512 | 2 +- .../AnesthesiaMachineVaporizerFailureVaried.zip.sha512 | 2 +- .../equipment/AnesthesiaMachineVariedConfiguration.zip.sha512 | 2 +- .../AnesthesiaMachineVentilatorPressureLossVaried.zip.sha512 | 2 +- .../AnesthesiaMachineYpieceDisconnectVaried.zip.sha512 | 2 +- .../baselines/scenarios/equipment/BagValveMaskApnea.zip.sha512 | 2 +- .../equipment/BagValveMaskVariedConfiguration.zip.sha512 | 2 +- .../scenarios/equipment/ECMOARDSOxygenation.zip.sha512 | 2 +- .../scenarios/equipment/ECMOVariedConfiguration.zip.sha512 | 2 +- .../scenarios/equipment/EsophagealIntubation.zip.sha512 | 2 +- .../scenarios/equipment/InhalerOneActuation.zip.sha512 | 2 +- .../equipment/InhalerOneActuationIncorrectUse.zip.sha512 | 2 +- .../equipment/InhalerOneActuationWithSpacer.zip.sha512 | 2 +- .../InhalerOneActuationWithSpacerIncorrectUse.zip.sha512 | 2 +- .../scenarios/equipment/InhalerTwoActuations.zip.sha512 | 2 +- .../baselines/scenarios/equipment/MainstemIntubation.zip.sha512 | 2 +- .../scenarios/equipment/MechanicalVentilation.zip.sha512 | 2 +- .../equipment/MechanicalVentilator_VC-AC_ReliefValve.zip.sha512 | 2 +- .../baselines/scenarios/equipment/Mechanoreceptors.zip.sha512 | 2 +- .../adult/baselines/scenarios/equipment/NasalCannula.zip.sha512 | 2 +- .../baselines/scenarios/equipment/NonRebreatherMask.zip.sha512 | 2 +- .../scenarios/equipment/PositivePressureVentilation.zip.sha512 | 2 +- .../adult/baselines/scenarios/equipment/SimpleMask.zip.sha512 | 2 +- .../scenarios/miscellaneous/AirwayObstructionDeath.zip.sha512 | 2 +- .../scenarios/miscellaneous/AsthmaAttackDeath.zip.sha512 | 2 +- .../scenarios/miscellaneous/BronchoconstrictionDeath.zip.sha512 | 2 +- .../scenarios/miscellaneous/ComplianceCurve.zip.sha512 | 2 +- .../baselines/scenarios/miscellaneous/Comprehensive.zip.sha512 | 2 +- .../scenarios/miscellaneous/ConsciousRespiration.zip.sha512 | 2 +- .../baselines/scenarios/miscellaneous/HouseFireSmoke.zip.sha512 | 2 +- .../miscellaneous/ImpairedAlveolarExchangeFraction.zip.sha512 | 2 +- .../miscellaneous/ImpairedAlveolarExchangeSeverity.zip.sha512 | 2 +- .../ImpairedAlveolarExchangeSurfaceArea.zip.sha512 | 2 +- .../baselines/scenarios/miscellaneous/MultiDrug.zip.sha512 | 2 +- .../baselines/scenarios/miscellaneous/Oversedation.zip.sha512 | 2 +- .../baselines/scenarios/miscellaneous/PulmonaryShunt.zip.sha512 | 2 +- .../scenarios/miscellaneous/SpirometryComparison.zip.sha512 | 2 +- .../scenarios/miscellaneous/SpirometryHealthy.zip.sha512 | 2 +- .../miscellaneous/SpirometryPulmonaryFibrosis.zip.sha512 | 2 +- .../baselines/scenarios/miscellaneous/TBIandDrugs.zip.sha512 | 2 +- .../miscellaneous/ZeroImpairedAlveolarExchange.zip.sha512 | 2 +- .../scenarios/miscellaneous/ZeroPulmonaryShunt.zip.sha512 | 2 +- .../modification/CardiovascularModification.zip.sha512 | 2 +- .../scenarios/modification/RespiratoryModification.zip.sha512 | 2 +- .../nutrition/ModerateDehydrationWithSaltWater.zip.sha512 | 2 +- .../adult/baselines/scenarios/nutrition/Nutrition.zip.sha512 | 2 +- .../baselines/scenarios/nutrition/SodiumIngestion.zip.sha512 | 2 +- .../baselines/scenarios/nutrition/WaterIngestion.zip.sha512 | 2 +- .../baselines/scenarios/patient/ARDSExacerbation.zip.sha512 | 2 +- .../scenarios/patient/ARDSModerateBothLungs.zip.sha512 | 2 +- .../adult/baselines/scenarios/patient/AcuteStress.zip.sha512 | 2 +- .../patient/AsthmaAttackLifeThreateningAcute.zip.sha512 | 2 +- .../scenarios/patient/AsthmaAttackModerateAcute.zip.sha512 | 2 +- .../scenarios/patient/AsthmaAttackSevereAcute.zip.sha512 | 2 +- .../adult/baselines/scenarios/patient/Baroreceptors.zip.sha512 | 2 +- .../adult/baselines/scenarios/patient/BasicStandard.zip.sha512 | 2 +- .../adult/baselines/scenarios/patient/BrainInjury.zip.sha512 | 2 +- .../scenarios/patient/BronchoConstrictionVaried.zip.sha512 | 2 +- .../baselines/scenarios/patient/COPDExacerbation.zip.sha512 | 2 +- .../baselines/scenarios/patient/COPDSevereBronchitis.zip.sha512 | 2 +- .../baselines/scenarios/patient/COPDSevereEmphysema.zip.sha512 | 2 +- data/human/adult/baselines/scenarios/patient/Cough.zip.sha512 | 2 +- .../adult/baselines/scenarios/patient/DyspneaVaried.zip.sha512 | 2 +- .../baselines/scenarios/patient/EffusionCondition.zip.sha512 | 2 +- .../scenarios/patient/EffusionConditionPlus.zip.sha512 | 2 +- .../baselines/scenarios/patient/HemothoraxVaried.zip.sha512 | 2 +- .../scenarios/patient/PneumoniaExacerbation.zip.sha512 | 2 +- .../scenarios/patient/PneumoniaModerateBothLungs.zip.sha512 | 2 +- .../scenarios/patient/PneumoniaSevereLeftLobe.zip.sha512 | 2 +- .../scenarios/patient/PneumoniaSevereRightLung.zip.sha512 | 2 +- .../scenarios/patient/PulmonaryFibrosisSevere.zip.sha512 | 2 +- .../patient/RenalStenosisModerateUnilateral.zip.sha512 | 2 +- .../scenarios/patient/RenalStenosisSevereBilateral.zip.sha512 | 2 +- .../baselines/scenarios/patient/RespiratoryFatigue.zip.sha512 | 2 +- .../scenarios/patient/TensionPneumothoraxBilateral.zip.sha512 | 2 +- .../patient/TensionPneumothoraxClosedVaried.zip.sha512 | 2 +- .../scenarios/patient/TensionPneumothoraxOpenVaried.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/patient/ZeroARDS.zip.sha512 | 2 +- .../adult/baselines/scenarios/patient/ZeroAnemia.zip.sha512 | 2 +- .../human/adult/baselines/scenarios/patient/ZeroCOPD.zip.sha512 | 2 +- .../scenarios/patient/ZeroPericardialEffusion.zip.sha512 | 2 +- .../adult/baselines/scenarios/patient/ZeroPneumonia.zip.sha512 | 2 +- .../scenarios/patient/ZeroPulmonaryFibrosis.zip.sha512 | 2 +- .../baselines/scenarios/patient/ZeroRenalStenosis.zip.sha512 | 2 +- 181 files changed, 181 insertions(+), 162 deletions(-) create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class1Femoral.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class2Blood.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class2Brachial.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class2InternalSpleen.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class2MultiInternal.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class2Saline.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class3NoFluid.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class3PackedRedBloodCells.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Class4NoFluid.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Group1.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Group2.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Group3.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Group4.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Group5.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Group6.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/Severity1.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/SeverityMultiCompartment.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/SeverityToFlowToSeverity.zip.sha512 create mode 100644 data/human/adult/baselines/scenarios/Hemorrhage/VaryingSeverity.zip.sha512 diff --git a/data/human/adult/baselines/scenarios/AirwayObstruction/Varied.zip.sha512 b/data/human/adult/baselines/scenarios/AirwayObstruction/Varied.zip.sha512 index 9c0f77ca0..e1a022765 100644 --- a/data/human/adult/baselines/scenarios/AirwayObstruction/Varied.zip.sha512 +++ b/data/human/adult/baselines/scenarios/AirwayObstruction/Varied.zip.sha512 @@ -1 +1 @@ -bf5d8b0680745a515b406dde4e74dbb7fd303a2ed269601b8d57d2da7d367c3110e769a889fc1b2c658a6720cfbe3b83fb27e3c982fccd94c57ad5f8cebdc0b7 \ No newline at end of file +8aa142a0128f1acea765ffbf99e3767f3bdae11e09e6da02dbce9884192e9903347c7bb32c1908008ec064aef70fd09ee9a9c633e7617886d83d2e8fad78364f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/CSTARS/Scenario1.zip.sha512 b/data/human/adult/baselines/scenarios/CSTARS/Scenario1.zip.sha512 index 62301a0c3..de32bee43 100644 --- a/data/human/adult/baselines/scenarios/CSTARS/Scenario1.zip.sha512 +++ b/data/human/adult/baselines/scenarios/CSTARS/Scenario1.zip.sha512 @@ -1 +1 @@ -05be27a396ce9c62b2ec05968533f60e585b804931ae4958b6d8acc4ae017e27b0068dc1cbb1341bd66f791ecf9454606371f30a11b7894d0d38125261880257 \ No newline at end of file +dc4f66ebd576f64e6ac1fe3806dacd2ae12ef0cff152bc9d6307f4cff44c14d5537b602b46f4356c2e03f60c4e2150ccdc1ce23043632539ed2c9bf7faeb96a0 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/CSTARS/Scenario2.zip.sha512 b/data/human/adult/baselines/scenarios/CSTARS/Scenario2.zip.sha512 index f96a0f691..5088d2249 100644 --- a/data/human/adult/baselines/scenarios/CSTARS/Scenario2.zip.sha512 +++ b/data/human/adult/baselines/scenarios/CSTARS/Scenario2.zip.sha512 @@ -1 +1 @@ -4f05ad4c93b76af5eeb02728198781210ba20b2e97daec38420b84460dcdf9785ea27863d9799e824051c16dc6b140574fba71631d6d661ac2bfc085974e4bb3 \ No newline at end of file +6d79ac9e77dfe9c5b433f9f6523c5328e38aaf95508cbc08c8aba12c40aacf701a44c648ea108d8761fa9e3c36928b44a927def346767b618cd00f5188ba61ef \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/CSTARS/Scenario3.zip.sha512 b/data/human/adult/baselines/scenarios/CSTARS/Scenario3.zip.sha512 index 4b89a9dbc..c04073150 100644 --- a/data/human/adult/baselines/scenarios/CSTARS/Scenario3.zip.sha512 +++ b/data/human/adult/baselines/scenarios/CSTARS/Scenario3.zip.sha512 @@ -1 +1 @@ -21252ec95a456cdda76230fb53ccf213af7d70ea45ad1abc31c47ad5240afaa48148d2040e49b7756a5ea857aaeaee73014ba97fd1d1692a36dec81aa1d7a61f \ No newline at end of file +fabc678e5570be9a6b246e16bb283b5b6f6b4e8d49c204e4bef82568bffe69258480124695bb65d3a3940eb3f88b3e6ca8c40df6d997d9f7db4b85359138bb3c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/CSTARS/Scenario4.zip.sha512 b/data/human/adult/baselines/scenarios/CSTARS/Scenario4.zip.sha512 index 5a8386f63..005e3bfee 100644 --- a/data/human/adult/baselines/scenarios/CSTARS/Scenario4.zip.sha512 +++ b/data/human/adult/baselines/scenarios/CSTARS/Scenario4.zip.sha512 @@ -1 +1 @@ -716766018f37be1339b6454594cc01b134136405eaabd7faf46e79b006a4ce8fd199881b6221e12cc01590b96c2e4a11702107eab33b9530ed4f01d3cbdde5bf \ No newline at end of file +5ce643c8a3390a1a5914df03782af67cec09cc9d80f1a461ac61e330c42d14e9d2964a415534d8ba9fd220cf153b84e4753ec96525c924bdb83f50f810c52e84 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/CSTARS/Scenario5.zip.sha512 b/data/human/adult/baselines/scenarios/CSTARS/Scenario5.zip.sha512 index f56ad15d8..759820589 100644 --- a/data/human/adult/baselines/scenarios/CSTARS/Scenario5.zip.sha512 +++ b/data/human/adult/baselines/scenarios/CSTARS/Scenario5.zip.sha512 @@ -1 +1 @@ -e7f9dba13710b6a8ce7624e3f25eb1212e7a890a186917da425ad47027c341c64d958e05190bf91b395aefa5600a8fdd3308cbb02e1d0a1655469b214fd62390 \ No newline at end of file +0b48fc2c6eaee10d0eb455d8af447406e50a7bde47eb6612646b2fb899669c3049edf5c76081cacd2df7a50b9dab8e277e4f81ddee4a2606e96440bc3dad973b \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/CSTARS/Scenario6.zip.sha512 b/data/human/adult/baselines/scenarios/CSTARS/Scenario6.zip.sha512 index 5b7dd4da4..8e970d3e1 100644 --- a/data/human/adult/baselines/scenarios/CSTARS/Scenario6.zip.sha512 +++ b/data/human/adult/baselines/scenarios/CSTARS/Scenario6.zip.sha512 @@ -1 +1 @@ -9ee1c486164155e07e6524d66bbb07876d63f66830e1ff565b048c0edb91cb332305999c8704b2f9547f4feff73751a5b57a3e3fd48fd844421cde681a964a0f \ No newline at end of file +e81f508e555d945e950361a6ff70838b473274b4163d4f6ce15aeb20b7dbd66dee21501e8f2e55e652fc8c0a67a594c6ae06ee90ae7fa928537671240f1a9fbc \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/CSTARS/Scenario7.zip.sha512 b/data/human/adult/baselines/scenarios/CSTARS/Scenario7.zip.sha512 index 46bf73e27..c88cf5e6a 100644 --- a/data/human/adult/baselines/scenarios/CSTARS/Scenario7.zip.sha512 +++ b/data/human/adult/baselines/scenarios/CSTARS/Scenario7.zip.sha512 @@ -1 +1 @@ -6e4befce2e1abafd0893e831fc5a2423bbcd639a4d1816e05f488ea31fe868642e5a45174d02e5c9a8392581348324d879361b2d27eeabf719cba9e428811996 \ No newline at end of file +2579898347761de43ded27d2b8362400e9ca9a0d38e82919d42a8948458155753128fcc292970f428b4fe219ad6f72d876c86c6c2f80cd935fb0774f4b210aa5 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Dehydration/Healthy.zip.sha512 b/data/human/adult/baselines/scenarios/Dehydration/Healthy.zip.sha512 index a59f63ddf..177cefae1 100644 --- a/data/human/adult/baselines/scenarios/Dehydration/Healthy.zip.sha512 +++ b/data/human/adult/baselines/scenarios/Dehydration/Healthy.zip.sha512 @@ -1 +1 @@ -f189ba104cf740bd7147fdc4bde88c486033d5cf9512da3fd287979c7ab0d9882a370b1e477122a9b3f2d011d473565f1c023b20950c3e81f0a4b7f2055ba620 \ No newline at end of file +92ffac51700b4d083bd9b8b9057ede5ab9ab40824bb433c9cb407644ba1f809f2bb4b7c8473b142033ea1e9e5fab51e7791ad5e0a3b80722d18c0053578f5a2a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Dehydration/Mild.zip.sha512 b/data/human/adult/baselines/scenarios/Dehydration/Mild.zip.sha512 index e5239aaf6..6fd7ac0ae 100644 --- a/data/human/adult/baselines/scenarios/Dehydration/Mild.zip.sha512 +++ b/data/human/adult/baselines/scenarios/Dehydration/Mild.zip.sha512 @@ -1 +1 @@ -f467f54afbd79cac7b288a4219c1405592355d6500dcd9a528c4da1badf9c14e642eb513bc988ba00bf26f02d14c12cf04312a18746ff5010134129d8e04ad52 \ No newline at end of file +5c8444559e1b513339a45b87b103507fd15749aa2a19690f64e3b985b3900b56e70b30b1a04025eaed65113dcdd7ccdc7a74cd41a88b922a7571785736a17b8e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Dehydration/Moderate.zip.sha512 b/data/human/adult/baselines/scenarios/Dehydration/Moderate.zip.sha512 index 0ca475f57..a630a16d2 100644 --- a/data/human/adult/baselines/scenarios/Dehydration/Moderate.zip.sha512 +++ b/data/human/adult/baselines/scenarios/Dehydration/Moderate.zip.sha512 @@ -1 +1 @@ -f1ee047e5abe0a40d038b916651290b35e99a295ea515e2ddf81c434cc9a19a8b4663f062679dfabb9562d1aaec54a397d790e35f1fd32aa3fff70a981eada88 \ No newline at end of file +745e2d49c31e3de92f82a48722d4bc7adda5ac61a9eb0f49dfc544247b619a41ed44e2782358af05caa6ae10bc805c9ea52cc0aeceb6c3c21afbb50a3c1c6ab6 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Dehydration/Severe.zip.sha512 b/data/human/adult/baselines/scenarios/Dehydration/Severe.zip.sha512 index 74bd0249b..f8daefe65 100644 --- a/data/human/adult/baselines/scenarios/Dehydration/Severe.zip.sha512 +++ b/data/human/adult/baselines/scenarios/Dehydration/Severe.zip.sha512 @@ -1 +1 @@ -22ec2a5ccc506b7eb41ef2776f9726ad52233fe578c957950573f6dc3905eb282e6ed3c28edd5cc83f481709a90205ff6174bf9257e17168fadf6890acc10912 \ No newline at end of file +a23a47429d7999f513ff063fb058f79b15f48a61274e07f186a0e13e0bf468bb5f57840f32e89cdec08b780c01c99c45f92afa28fb630d34cb8a4c81ae3d7f8e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class1Femoral.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class1Femoral.zip.sha512 new file mode 100644 index 000000000..f6c99b4c9 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class1Femoral.zip.sha512 @@ -0,0 +1 @@ +22410c12b06209d9d4c10e1c08bd4f8e2f258a22ed79ccb8a6cc8b919fa69b9b6b66b60702f905db2a8b7516f1ec1777106909bce0a5b093f13109548cc5e2e5 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class2Blood.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class2Blood.zip.sha512 new file mode 100644 index 000000000..373a1a7a9 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class2Blood.zip.sha512 @@ -0,0 +1 @@ +6491cb81a03a074308e0aece8e4c35739273ad6f171b7601a8150fec57b2de25865703799dbd7eae5e742fb1f766f68ae0b7e529b31894115b27d99197080e6d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class2Brachial.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class2Brachial.zip.sha512 new file mode 100644 index 000000000..45ce6978c --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class2Brachial.zip.sha512 @@ -0,0 +1 @@ +55e62a2d64f5571d0561af7441825ead64a633cb05d1abe724d0e06d16984099abe2e4a8e94e8ce2b00884b36d8186958220e7f4240adc444b405e4796fca160 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class2InternalSpleen.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class2InternalSpleen.zip.sha512 new file mode 100644 index 000000000..af6d5da21 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class2InternalSpleen.zip.sha512 @@ -0,0 +1 @@ +58f45ec55260c9db344eefe192652e4a6e892514e33f2d7fc9d19c9cacccbd38504604cab695d3d773e1a94a0a0731ecde1283ec44835014d62c6f0489b18c9c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class2MultiInternal.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class2MultiInternal.zip.sha512 new file mode 100644 index 000000000..12d13c814 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class2MultiInternal.zip.sha512 @@ -0,0 +1 @@ +75aa6ab12dbba627d36ea742209d5efe74f90d0020a706249cd2d3c7c59f4d0933cb9494a42fd525516ce4f179f6ebb5c6f65fd7e7ff22111b251009c41cb796 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class2Saline.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class2Saline.zip.sha512 new file mode 100644 index 000000000..0510d757d --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class2Saline.zip.sha512 @@ -0,0 +1 @@ +fea4e6736163c213466950cc4a49d1a97c0afca9b398a0c37612ca1f44b5dc4bc7541be2ad9bea994d2074518dc2c8607fd86d7cccd96584a800bf413035bfde \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class3NoFluid.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class3NoFluid.zip.sha512 new file mode 100644 index 000000000..a251255a7 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class3NoFluid.zip.sha512 @@ -0,0 +1 @@ +c5a2ce907e906f93776e8ccb43ae5ba88c6ea5cfdd85346e2b3012906b6fea428d57be2c911293c5997dfa977857e488774d5d8c8c8c9ea199f5a7f2cb7c53d4 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class3PackedRedBloodCells.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class3PackedRedBloodCells.zip.sha512 new file mode 100644 index 000000000..f1160bc64 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class3PackedRedBloodCells.zip.sha512 @@ -0,0 +1 @@ +f72bab29fd3b953b87b187e151db9ccc8efd82a4ece71c31d1f4b4f5da496c06bac191dc040bd4f96a6e39ff6da2cf7f46d25e7726c1bb48769798bb65f09214 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Class4NoFluid.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Class4NoFluid.zip.sha512 new file mode 100644 index 000000000..180fed07f --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Class4NoFluid.zip.sha512 @@ -0,0 +1 @@ +c718c52f67d0c27449fc788950ce60ae90df96b551da68cffadc6ae65dc59a7aeaf7cdee7e83d03ac477e836b2c623e982470bf81fb6ed30cf415d02f613b2b1 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Group1.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Group1.zip.sha512 new file mode 100644 index 000000000..eed9a6c9a --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Group1.zip.sha512 @@ -0,0 +1 @@ +7edf32b2792c38d7d4fe98d46a0d8266b7deaf89c95e2ce3b0781ec351963a77fff80dbd9aa7c3153dc34234c5e567d0531927b1301a94d6e5f10b0129dca987 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Group2.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Group2.zip.sha512 new file mode 100644 index 000000000..df5193a82 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Group2.zip.sha512 @@ -0,0 +1 @@ +bc5b81e0545171f64d66836949caaa1fdc5db5c27ca0540148f1dd55f32863754ebed0f93d7f7c35c8980bfed4102ed4c09c994712b0e899961dbd02d5a63064 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Group3.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Group3.zip.sha512 new file mode 100644 index 000000000..b2d6883ec --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Group3.zip.sha512 @@ -0,0 +1 @@ +e341f6428243ae3b3a1db5a2f93310160b49380f5d499327715e667f16350bb18847e61d168d80bee7b7cf2708d997d71f94aa82b09bd443b7c3517bb0826763 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Group4.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Group4.zip.sha512 new file mode 100644 index 000000000..a5403b6d7 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Group4.zip.sha512 @@ -0,0 +1 @@ +3099ac0f70322c506cb84f548194bfcfe675c8abc8e1c91fbeb7e054b23c4d3d60aa17e627e574a638eeb3b99ba7840a94f35ac3acdb997d913278d9fb891201 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Group5.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Group5.zip.sha512 new file mode 100644 index 000000000..49c80b43f --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Group5.zip.sha512 @@ -0,0 +1 @@ +1a7bc2314b552c00b8f5da849dabbfcb2241f8dce5e67b37c77741d565236e1a2ac03ab982425ee6b6a70351622f99c2b6a6261bacbd509774095f21d4daeed6 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Group6.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Group6.zip.sha512 new file mode 100644 index 000000000..211b47365 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Group6.zip.sha512 @@ -0,0 +1 @@ +7bfe1e7eeb0e3e29d772e57a2b50aac0f4d7f57ae8d612d8371eb1ea0fa3372ca680e5100c6e5cf69ed74a2be6e198a434c9b2507ee9925e54ed1fca589ddc2d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/Severity1.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/Severity1.zip.sha512 new file mode 100644 index 000000000..06e186d07 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/Severity1.zip.sha512 @@ -0,0 +1 @@ +286260b246591a0fb25be8834e74b2ce6decc8a136cc156a96eb84e581589964a6fbc3bb1f7d21f230c1a95c41460ba4697809f5c181a1f55f782bde0ed2cd90 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/SeverityMultiCompartment.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/SeverityMultiCompartment.zip.sha512 new file mode 100644 index 000000000..0c0defd8d --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/SeverityMultiCompartment.zip.sha512 @@ -0,0 +1 @@ +2da2975a344d32e168b4012368502597225224d90acbca1cff10ae6a4b9ad1ff2b29dce9c8d8bac05170ab34cd1c3fde6365b17f12270cb76fa1269285943092 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/SeverityToFlowToSeverity.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/SeverityToFlowToSeverity.zip.sha512 new file mode 100644 index 000000000..e2d8c55ed --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/SeverityToFlowToSeverity.zip.sha512 @@ -0,0 +1 @@ +e64ce0a033ea97193667642351b75a8fced63fe9aa2d37fa1c3b225d911c8dbfece32ea840d953cb958284ff47f76b9ab85dc4cdf44f1036d32b264510f84e73 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/Hemorrhage/VaryingSeverity.zip.sha512 b/data/human/adult/baselines/scenarios/Hemorrhage/VaryingSeverity.zip.sha512 new file mode 100644 index 000000000..6603aa7c8 --- /dev/null +++ b/data/human/adult/baselines/scenarios/Hemorrhage/VaryingSeverity.zip.sha512 @@ -0,0 +1 @@ +ab2a4b878bfecf3407fe70b79d646c83f2b526285a7556daa45d2573d7ce42c6698ddf6995e6b43fa3ab9f7bfa916916cddc62548dcfc4efdf8af139a77263f3 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/MechanicalVentilator/ARDS.zip.sha512 b/data/human/adult/baselines/scenarios/MechanicalVentilator/ARDS.zip.sha512 index 09adfe07d..d9d2085f9 100644 --- a/data/human/adult/baselines/scenarios/MechanicalVentilator/ARDS.zip.sha512 +++ b/data/human/adult/baselines/scenarios/MechanicalVentilator/ARDS.zip.sha512 @@ -1 +1 @@ -28f970b4d883fc687a4966053d3c2c448e7b1ee1cb8bd4f7520e686fe057de4284c9808d4c928f1a6d063be25afa3ba44aaeb6f1665e87a8c36444e0c4258a0f \ No newline at end of file +eba2ed0f5fd8dde01c67a4e9d55446bbb203336167fd132b7c2a5b9f703a56dbc4cc8d375ea995f9d90912e7c3b39df7389844cfad9fc4b537fd46a2cfb9fe1d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/MechanicalVentilator/COPD.zip.sha512 b/data/human/adult/baselines/scenarios/MechanicalVentilator/COPD.zip.sha512 index 9075ad9ff..10ba83ea1 100644 --- a/data/human/adult/baselines/scenarios/MechanicalVentilator/COPD.zip.sha512 +++ b/data/human/adult/baselines/scenarios/MechanicalVentilator/COPD.zip.sha512 @@ -1 +1 @@ -9fc9b7a92dd22a4cfc6489bb71d87c9a5b2bfc6542033835854703ceb88e2aa7b6a825079d4f7371858e361eb4d1757c485e2bbb32ecf5d24a976ef5644d3b8f \ No newline at end of file +116dfd0c7fc1fac36b112aea0368f5d819bb52f69b7208b0582b60ea8fda56070949b9947d449cce82398ec7043ecda0ef4299ef64db6523f665cc7f0b5f0396 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/MechanicalVentilator/Healthy.zip.sha512 b/data/human/adult/baselines/scenarios/MechanicalVentilator/Healthy.zip.sha512 index dd10f1189..e595f2f94 100644 --- a/data/human/adult/baselines/scenarios/MechanicalVentilator/Healthy.zip.sha512 +++ b/data/human/adult/baselines/scenarios/MechanicalVentilator/Healthy.zip.sha512 @@ -1 +1 @@ -b116a19752c20372b888622af1a4cc380f54de84a27b7c058fbb1bfd77e67adf5b0b95606274a9f3a901130d7fa1eb84647f7e58b248c5359c1bb3defc17fed2 \ No newline at end of file +752461c741d8b2c4ce778eb537be7203e92503e2529aac353bf3c1485aa4c3bba2469e30f2534818b2c1a129e0143c923ec97bfc30cb227e0e6e8cc27260340a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/MechanicalVentilator/Recruitment.zip.sha512 b/data/human/adult/baselines/scenarios/MechanicalVentilator/Recruitment.zip.sha512 index 3349b6da1..85a730f7f 100644 --- a/data/human/adult/baselines/scenarios/MechanicalVentilator/Recruitment.zip.sha512 +++ b/data/human/adult/baselines/scenarios/MechanicalVentilator/Recruitment.zip.sha512 @@ -1 +1 @@ -a3235fe4c20ef55ef3ff04d50f8305ebd88e01268163a130944607ee502536cff0f46b7063204dad3583d8d177e25974ebefe5fba8e9a6596de2964d1db5e92b \ No newline at end of file +37dbc2bdd09d02d673a3e0366ef56fcdb1971537a56f1980576f046fe5cc6cbd86f5b803c3b0a404f3d969b386116f1a96356eb0d8a5775f28c123e4970f1087 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/AsystoleToNormalSinus.zip.sha512 b/data/human/adult/baselines/scenarios/acls/AsystoleToNormalSinus.zip.sha512 index adc866a18..cbd55d6b3 100644 --- a/data/human/adult/baselines/scenarios/acls/AsystoleToNormalSinus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/AsystoleToNormalSinus.zip.sha512 @@ -1 +1 @@ -3f5220019651078719844193179283a53847d9f1c54a0d37633738b549b1f3cb7f74bf2f914e3d37e14bee650736e92e3741a64dd858956cab2ba99258ca8963 \ No newline at end of file +618ae46256474bc0815d8c92ac9f41380a3094a0e1102e0d01f6a78e319bfaf967e76be652dd1f5e23b051c134fffd3e12e59827c065f28c6649b81173ad1225 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/AsystoleToSinusBradycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/AsystoleToSinusBradycardia.zip.sha512 index 72bbae579..e1fcb0d1a 100644 --- a/data/human/adult/baselines/scenarios/acls/AsystoleToSinusBradycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/AsystoleToSinusBradycardia.zip.sha512 @@ -1 +1 @@ -b4f0d323b56a265e710f2da99730a3d88c52c1d5b023a99baa04ebca5cc2dd66cf24c796010eb2a9dfa56e21bcbb78ef9621a34c25928ed30f16fbf979fc9e26 \ No newline at end of file +2822acffd2fcf84ff2c48b8bc6ffa0ac10521e7242c927f597a1032c736c81bba12758f1deef9b50a9a35bf3a7fa2f48365c8aa75618933fdc78d7527a1fab14 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/AsystoleToSinusTachycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/AsystoleToSinusTachycardia.zip.sha512 index 36112cdb8..8a861987f 100644 --- a/data/human/adult/baselines/scenarios/acls/AsystoleToSinusTachycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/AsystoleToSinusTachycardia.zip.sha512 @@ -1 +1 @@ -2a3458dbe14582c343e432a3cd09a5e718e9ec7d69c60af9ab0cce98ed7df761443a9cfaa07ed64142df5813fde66cfd9eceaf79de1d955690d0628ec275f89f \ No newline at end of file +926c45b4f154736fb38a6a16a12608cd2b6be24c506c7b664daf6d72937f7ff1cf4ea1c1fb27e3bf1363edab613ddd91391cd7402965a4a41e435769846b45dc \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/AsystoleToStableVentricularTachycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/AsystoleToStableVentricularTachycardia.zip.sha512 index 97cca7226..0d6560bc7 100644 --- a/data/human/adult/baselines/scenarios/acls/AsystoleToStableVentricularTachycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/AsystoleToStableVentricularTachycardia.zip.sha512 @@ -1 +1 @@ -357e4bdb3cc9620cc464916e4c81357d50c06532672f7476952918c54d1e7c1102807268bf888a58ef15b09caa5958e092c7c244e36590c402512aabe88e1c97 \ No newline at end of file +588b90019200df3a12b26161db7d4cc47ff17cffb4ddeb11437922b4676d659e3ee8a1a1ad22c1de3b77fee318c8f931fa1ea39d38947b6b92a946933ad6933f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/AsystoleToUnstableVentricularTachycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/AsystoleToUnstableVentricularTachycardia.zip.sha512 index 6a7420b8d..00615795b 100644 --- a/data/human/adult/baselines/scenarios/acls/AsystoleToUnstableVentricularTachycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/AsystoleToUnstableVentricularTachycardia.zip.sha512 @@ -1 +1 @@ -9a40442c2da8055f8fb289a67069d09c7d4d371650f023a130a53c1f82be6305f80ee0c61b2f424850d8c01918cbeb706906727b281b232b3905bc610b7e64e0 \ No newline at end of file +090e95c858c7e55151be298580e8af51f68825846a6cc3053817f8258bff6c35ec5eedcfe023a1a464bdfbcecfefef6e96153f692ee7d0d979d57e3eecea8158 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/ChestCompression.zip.sha512 b/data/human/adult/baselines/scenarios/acls/ChestCompression.zip.sha512 index 9a915c516..a6144db0c 100644 --- a/data/human/adult/baselines/scenarios/acls/ChestCompression.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/ChestCompression.zip.sha512 @@ -1 +1 @@ -2b8cf493b678d477837c34d9d94d781efab21993d218e0aa1e75507285beef189e30a1caf7fa639ab79c5aacc5427df2297fb6a6d2a954ece48d82dc3799c68d \ No newline at end of file +c1bed7f9b571090ee16c0169b3d1f04b038866a5dbf94b9561a0b022df8a8f6243c74de2c9e3251fd6771867bc0424fef3e62e9f69eca02f39d3195524bb4dae \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedVaried.zip.sha512 b/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedVaried.zip.sha512 index 91a0b548a..5d50963d0 100644 --- a/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedVaried.zip.sha512 @@ -1 +1 @@ -43610d8970e834bcdf8666fbb4784a8ff386b5fe53cf777a446732c5c09e8b1273fe4bd3737c8133bee6c8482c2b773290106b1429a4dfb4d1a4f44227d7678f \ No newline at end of file +30bcd51c642e88c2f4b71e64991fc54c7229c543eef4869bfeb69e2ac1248d3ce881bd34554b083e0a4ef34f1c181e2d4ed41fa457bce38cfd8539c02b87aff9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedWithBVM.zip.sha512 b/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedWithBVM.zip.sha512 index 01fb277a0..22416dd34 100644 --- a/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedWithBVM.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/ChestCompressionAutomatedWithBVM.zip.sha512 @@ -1 +1 @@ -c8152f31ece90553f0ac9c6abf42ad6a1b7ed85828a8183e16d5c5937c556d3bd90a4fac51c4ace2597b341cf4bca9ad902cd92715ace179b0da9db645363a3f \ No newline at end of file +2747bcdb151699e768fab4ba6732d321c0eea3574aa152d623daea5b3f43c99e67767b35989a803f998d54d195385c4174d864b52d686f007881b17a7ff82b6a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/ChestCompressionInstantaneous.zip.sha512 b/data/human/adult/baselines/scenarios/acls/ChestCompressionInstantaneous.zip.sha512 index e8790e73c..c54dc6536 100644 --- a/data/human/adult/baselines/scenarios/acls/ChestCompressionInstantaneous.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/ChestCompressionInstantaneous.zip.sha512 @@ -1 +1 @@ -92942e4cbc92722a0c79213bc07088493ce6334c1220ae17a664f8e12c7a3d006c17781ee1680488904bac415f63fbaa3e24a8bcca93c6fd5e7ec655c47d373a \ No newline at end of file +d6e09426917568ca237a3ffa5922a5681a5b4f23bf55c74609a958770d1ddc4d8e964b1c57b86c168d1f7569256c6a146baca2f8b09ed2469d31d4769b12dd4a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/CoarseVentricularFibrillationToNormalSinus.zip.sha512 b/data/human/adult/baselines/scenarios/acls/CoarseVentricularFibrillationToNormalSinus.zip.sha512 index 4738b8ec2..a75e5976b 100644 --- a/data/human/adult/baselines/scenarios/acls/CoarseVentricularFibrillationToNormalSinus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/CoarseVentricularFibrillationToNormalSinus.zip.sha512 @@ -1 +1 @@ -cbb965aec5b1639f4c23098a7ff814513906a8ed89a3e0ce53e7eb62e58b139c73645e293cc35d7287c93082b1589105c5902b9a790069e32b70fb11ef7d2cdc \ No newline at end of file +ffcaa410dbd50e4283fa2cfd833d5f0d75dbf2bf5feb9f3b2cc0abb65d764d2a4ada4b6d9d49855683a622e28bc5378a3b988ea5851a78de86d3118e3bc61443 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/FineVentricularFibrillationToNormalSinus.zip.sha512 b/data/human/adult/baselines/scenarios/acls/FineVentricularFibrillationToNormalSinus.zip.sha512 index fac11f76e..806c8bc03 100644 --- a/data/human/adult/baselines/scenarios/acls/FineVentricularFibrillationToNormalSinus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/FineVentricularFibrillationToNormalSinus.zip.sha512 @@ -1 +1 @@ -af5d1a5d0436312c5e9ad7732daf8ae4e916cd7c906ea8f69fe593b8ef47b7c1dcaa1efda40d3034b8699030510b89de41b174bdd33655699bf2c12c42b86035 \ No newline at end of file +6892439cfec6981cc383bdf5a7cf4a6a98bea82b50fc2a4c64d4c62b2eb1bc25e5b65f62bafb6ed2004394f17d1f7fb646a567ce2adc00a15c1dd363cc65f704 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusBradycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusBradycardia.zip.sha512 index 606667d28..684b043db 100644 --- a/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusBradycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusBradycardia.zip.sha512 @@ -1 +1 @@ -2050f05d6f2e773cb281e317b5e0347cf0984edff6fceeddc40bcf2614a1a48c9b780f0f76591819c1690286ce0eeaf8d777e32f9a5298e1bc0a76d1f5ddd035 \ No newline at end of file +aa52bbfb87ca01b98bf2e67b82f1bfc3a3fe521a4a798ad72786cc85b64e26cb2b8da8dc3b504cd30ad838d8fc9399759ab2655df8e64b154f469c6dc85102e1 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusTachycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusTachycardia.zip.sha512 index 189e8faeb..cc59faef7 100644 --- a/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusTachycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/NormalSinusToSinusTachycardia.zip.sha512 @@ -1 +1 @@ -236f8977f1799faabea43ea5dff8a2183037340aee7f9a025a13baf98d91112272be295f08fa8d0dfadd0b7c06c6b57eb0fc2146faf5fda333788f385ea7a1ef \ No newline at end of file +df482183b3176875fb5b56c9f883786e8401075b861a7963232fe60a9c7f9653b794b37c5de4a66999f0e8104a6f1678aa08c0028260bb8225a3c355bc56dc61 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/NormalSinusToStableVentricularTachycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/NormalSinusToStableVentricularTachycardia.zip.sha512 index 9c0cc0ba9..2506dbaf0 100644 --- a/data/human/adult/baselines/scenarios/acls/NormalSinusToStableVentricularTachycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/NormalSinusToStableVentricularTachycardia.zip.sha512 @@ -1 +1 @@ -1497d70931e332f774c0054a8af95d4a778a18b0317570ac7b67da042238fd7b514bfe5c33d0b37aafb7a6b93beed7caa4ebb6ef04e3512872892b9e7b2acc92 \ No newline at end of file +214cad970cf655c33b919d808d0bf10a77fa78c1b5bf26ae7ba7355463dcca244748079e787e2eeac9aad0299a4cbe55399476b10630ff16fde4dd626c5fd473 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/NormalSinusToUnstableVentricularTachycardia.zip.sha512 b/data/human/adult/baselines/scenarios/acls/NormalSinusToUnstableVentricularTachycardia.zip.sha512 index aacb84b34..6d866f0de 100644 --- a/data/human/adult/baselines/scenarios/acls/NormalSinusToUnstableVentricularTachycardia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/NormalSinusToUnstableVentricularTachycardia.zip.sha512 @@ -1 +1 @@ -312deccb0351a222b53686bb63a30473926b19926b30796ee74f282a2edf8aee3f862a7dddb5ed374be7fcc8e23ad50faaabf1879fca907ce393658105e9765d \ No newline at end of file +1d5cbf6441f7e7a4e0e7312dbc7b1f2bec273d997f084dd7259aa78bf93ba319f3302705ee98a094408e76c68d7de8441ef337c9e27c4a4e1cdd9859eb6eb87e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/PulselessVentricularTachycardiaToNormalSinus.zip.sha512 b/data/human/adult/baselines/scenarios/acls/PulselessVentricularTachycardiaToNormalSinus.zip.sha512 index a7390ca84..28e6241d1 100644 --- a/data/human/adult/baselines/scenarios/acls/PulselessVentricularTachycardiaToNormalSinus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/PulselessVentricularTachycardiaToNormalSinus.zip.sha512 @@ -1 +1 @@ -24be196e047bdc705fad94eff58d71b387eed52fd771d1a421f458618db2a31479e9afe2d11625986864cd6bacceeea7f8ec49cb058caef7cbf60d8be1867e20 \ No newline at end of file +ddcf65b3f888fdd6ddc25612c614da4850bcbe6e6a6e470fe260b8f38cee66e598f740ebf58cbc10a485c38c3cba7262a223da10382bb077d7ca39f14d6b9310 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/acls/SinusPulselessElectricalActivityToNormalSinus.zip.sha512 b/data/human/adult/baselines/scenarios/acls/SinusPulselessElectricalActivityToNormalSinus.zip.sha512 index 67e32d098..893f17665 100644 --- a/data/human/adult/baselines/scenarios/acls/SinusPulselessElectricalActivityToNormalSinus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/acls/SinusPulselessElectricalActivityToNormalSinus.zip.sha512 @@ -1 +1 @@ -b59cd51eb3115600c589d2b93d5f5b11e51455e84f757f9db91cf6f80d0ab6f213077d04dd51bad68a313571eb6dad1a1a8c674e19918ecc753a2c1fd311ad88 \ No newline at end of file +c8db8c982f1c96ea6009d9593e6eabf0523bac686a20b393f392d8b3cb9f1e744d30f8089cb0d79197c48ddb3e4f546ee46a7f18b46ab1ec84b4d5218eac38ea \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/combined/Cynthia.zip.sha512 b/data/human/adult/baselines/scenarios/combined/Cynthia.zip.sha512 index cd9634a51..394beeb4d 100644 --- a/data/human/adult/baselines/scenarios/combined/Cynthia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/combined/Cynthia.zip.sha512 @@ -1 +1 @@ -bbe21958a7de9c2ffa438bf7b8ffdcf6508d5312bdcc3617138c926c8041ec5b04213fbad43986b329191c0c4243d4bf8c76a63d6e33f2a6e48dfbe829daa6ed \ No newline at end of file +1c36ea3b508b1e8a77ef4ffad8fa6ac894b4735d176f513b54199f838e44488f29c410fb93c625dcd012c0785a1706b10a91f734c2589e3692f61bc6dd5306ad \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/combined/Gus.zip.sha512 b/data/human/adult/baselines/scenarios/combined/Gus.zip.sha512 index b35196c81..b965b50fd 100644 --- a/data/human/adult/baselines/scenarios/combined/Gus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/combined/Gus.zip.sha512 @@ -1 +1 @@ -0867f0ed785b09021116e9e4dc22a24e0bef1cfe40d5989bbf5aee5703ebf20ec0de6397efccb0436ea034ac7d8c1c60c5eb783375e9aba0baa57dd1d926c052 \ No newline at end of file +0d21b78ee506e4339171d78edd25656fa35ae81fb45debde79b102f878cb23d1089106409c9eb742e2564dfe8ce93fd75be6bf9b477051ce84ef23c618ac863a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/combined/Hassan.zip.sha512 b/data/human/adult/baselines/scenarios/combined/Hassan.zip.sha512 index e14a85abe..62ed5fa86 100644 --- a/data/human/adult/baselines/scenarios/combined/Hassan.zip.sha512 +++ b/data/human/adult/baselines/scenarios/combined/Hassan.zip.sha512 @@ -1 +1 @@ -d03573240dc1ddb2fff3751564ed9a7726b2f8111d96ea8714a1b3b27e6f092605c7454cacaa795eda2c71d12d1a9bcaddc4052e45607935c1b01eed8911df78 \ No newline at end of file +81eef719dddf98a8064ebed36b7944fcce82cc231bd83dc2f06eb0faedc49434fc338dd7062fce013a9851557808cf2917f9da75df2641824e171b3f3030048a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/combined/Joel.zip.sha512 b/data/human/adult/baselines/scenarios/combined/Joel.zip.sha512 index 312cf43fa..93b45bbff 100644 --- a/data/human/adult/baselines/scenarios/combined/Joel.zip.sha512 +++ b/data/human/adult/baselines/scenarios/combined/Joel.zip.sha512 @@ -1 +1 @@ -676fdd101e64af976ddc0bbc5b3e69f71a8e003552fa37785016c61a03abf1ee70f2d49e4e5a1629c3c162ec2bed6807c5409e6865b34f7c00a8a7f237c02d05 \ No newline at end of file +318d13c9c5346df6d0942d52c3e67e568d32560eb00f27a5661c7dda2af2db03c4887a9f4eda7e0472bfa506b9d645b75651759a4e9c743287febf8296f7a50c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/combined/Nathan.zip.sha512 b/data/human/adult/baselines/scenarios/combined/Nathan.zip.sha512 index 736161166..422e72b91 100644 --- a/data/human/adult/baselines/scenarios/combined/Nathan.zip.sha512 +++ b/data/human/adult/baselines/scenarios/combined/Nathan.zip.sha512 @@ -1 +1 @@ -bd5d2b559a1dced706c8f4f7ae5f2cbe3f38e9437f9de062ae1c44b02855281b74b5a8adc4ab9cdb06658f755cd3d1220d5aa588d18a2c2aaef799c5923b005a \ No newline at end of file +06bade1fd48b237dba97878fb5e20e66fef8211a4177efca01f74424c0dc3595f71a380906e34bb3292f88710f8b593f411c15004993ec4fcb7a4ff461dd12aa \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Albuterol.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Albuterol.zip.sha512 index bada7d351..557eabc62 100644 --- a/data/human/adult/baselines/scenarios/drug/Albuterol.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Albuterol.zip.sha512 @@ -1 +1 @@ -ced5c0b6d2831c784d7e3ef73d0a58c777e20bf715837d9735b83932e37cd7ac86d586bad593862b50639d5ae143299cccfcc179c71be2f62b15200b79ab7020 \ No newline at end of file +9d379b6eb1d39a17ecc19974befb751f6a4fdee81661ee7a69624e6159c6c4a35a944ee456054c35d84d165d491a485f595280d33fb284e249d3e5316bfd0125 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Desflurane.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Desflurane.zip.sha512 index 8f922fdd9..3869d9b56 100644 --- a/data/human/adult/baselines/scenarios/drug/Desflurane.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Desflurane.zip.sha512 @@ -1 +1 @@ -dfe23f3b97e2bba93cb6ba50c55419f5267af85d128e2eeb2eed4447b05007eb1dd142cf5b0a0db9b635f62a4afe6bc6750d85377547e57a0eaa556a844effe2 \ No newline at end of file +ae50d8adf371056702cc9deaa8106b525d3d93de55785dae4022e7d66420f473d614138f83e46123e377e0741ecd28ee630e4939f636006ee6a708017cad0a16 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Epinephrine.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Epinephrine.zip.sha512 index 16f6d434a..a7e81f3ab 100644 --- a/data/human/adult/baselines/scenarios/drug/Epinephrine.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Epinephrine.zip.sha512 @@ -1 +1 @@ -9bcd3f36fc27ced0c0637adf85d46a27e46a4f1176eff46c26c0c4662f4bd45a30e6ebf080f524d91c55b44fe067965074bdf40cdd7ecbbe3762d589031470ed \ No newline at end of file +b7340b2b4f394ea0ffc86c39e8f57015ce72f4fe5ab27da8828388bde827c3d72f1a2d1828466f244a6746e267ba533320ea1eb71450aef9889d35128616833e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Etomidate.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Etomidate.zip.sha512 index 379b83485..56efa29bb 100644 --- a/data/human/adult/baselines/scenarios/drug/Etomidate.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Etomidate.zip.sha512 @@ -1 +1 @@ -3cd9e8b74381cf54d0c932e336bfae9b9b6ef265df3627cd4acf57f7e1a5d469580c633be58879cb12e53daf394b34259183d4df971007692b12cf9778b69a88 \ No newline at end of file +9da127f20435d617aa446a04f2d517dbb0284b5bdeea770a062a9539458d3eb9858250275188000a2c6133d47adc8e87b579bedc1b23683819dec089f339f2de \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Fentanyl.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Fentanyl.zip.sha512 index 0606ef49b..f966a60e1 100644 --- a/data/human/adult/baselines/scenarios/drug/Fentanyl.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Fentanyl.zip.sha512 @@ -1 +1 @@ -9537cf2be8ca0600ef0ade688213a8aaf7d611b3f2e8b35097f8cce2fe740ea98eab531dc43b7cc20c6011a07f9ffb6217b64c84de83fe139410c4416dce1f47 \ No newline at end of file +c9321dfc54f1dfcb688f0cfb176f77d33f65ff3739def65a68652d63291118fb03dfca180d64e425ed914ecaae42ad9a1bea2724797594b610a89a08ee25b07f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Furosemide.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Furosemide.zip.sha512 index 030316ac3..7484e9e6f 100644 --- a/data/human/adult/baselines/scenarios/drug/Furosemide.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Furosemide.zip.sha512 @@ -1 +1 @@ -d7f4fb623da594098557f8e0c11a2984048093b1aa10c65f1ab54e60c0873eed2bf5991ac12e82e9118c7484eed7ba328f5dbea57976ec5d6e8709343e17c98b \ No newline at end of file +8fe6af9fdc15d8504211928dbca5819116a38ee8f7d598d26907eca88ee42b3603df40b30d201499fa6a8bb76f9eefd1ac393f3042dcacea0b0ec0540981cbc6 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Ketamine.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Ketamine.zip.sha512 index d41416e38..f76e651da 100644 --- a/data/human/adult/baselines/scenarios/drug/Ketamine.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Ketamine.zip.sha512 @@ -1 +1 @@ -4a315bebe73f6add81c742e7c63b8476ba4c2426b0ca06b62fe33b3b48954c645c17dc2e480a781b12ee11ee1750a12229b5166ad478d2196e26b93c0126e11f \ No newline at end of file +a9986cd53a2957d2f6c3bf252a103f8ac0627036dd39877411950ec7f570c658c068df378b00099b6fd061afef68ff6ef9cf25df6a222c2a31dc995c6904684f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Lorazepam.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Lorazepam.zip.sha512 index bd0e6b40d..1020fa143 100644 --- a/data/human/adult/baselines/scenarios/drug/Lorazepam.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Lorazepam.zip.sha512 @@ -1 +1 @@ -c26b65332f46b8bdb87581da40687f3ebdb7dac417a50b35e2ccc2f1e76bab3c6c252750f55af259e4c332e9d51507998cafb1334ded02f57df4f766245f6b0a \ No newline at end of file +9ed65d27542cfcb1b45c88b21cdc699700ce2f7f58124dc59b76e163d016934ef18e5d3be63097d84bfff1b7c9c099dc9f903483b2eba559e7225ad5936d64a4 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Midazolam.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Midazolam.zip.sha512 index 462e5c195..d253f7626 100644 --- a/data/human/adult/baselines/scenarios/drug/Midazolam.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Midazolam.zip.sha512 @@ -1 +1 @@ -e80c095a3403fc328f1969d99f5edb2604d0188d0009b6286c4ca2f0c63561dd0494a7f391c4bf61a38f320c59eedb4dc662787a111c3fd8000017099adbb14d \ No newline at end of file +d5d6e63bd7df0c95d2535a385fcc154305648bdc3770831af194e253dc7472dbe51e0fb0970b90be86530a95db3f58652be3c823140ed6ac5547aed1f968d0a9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Morphine.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Morphine.zip.sha512 index fdfc3b7f6..e1eb8da18 100644 --- a/data/human/adult/baselines/scenarios/drug/Morphine.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Morphine.zip.sha512 @@ -1 +1 @@ -8d7577f6a975b6cc5d86fb35946834a4282ca3f778c3070eccb7d5aa5a9a3d70b95347c30bb5942cf49702ed5797c59270cfacb2a3d3b2f6bf31b4556b1b2e05 \ No newline at end of file +e061a0764b73432aec1f9613b4e145392575ef0081951e02f3bf5462c1f9c3c7ac0288f2a688ed78ca683194e1f05aefae23d84c767762c63b73d65ce4ba89c9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Naloxone.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Naloxone.zip.sha512 index e0d2602f2..f8ee337c2 100644 --- a/data/human/adult/baselines/scenarios/drug/Naloxone.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Naloxone.zip.sha512 @@ -1 +1 @@ -7560f9da54e2c2f0b17067fc82ffbd6b9c198617d1b06353d1c11b1e5d46f0ac24540391cf02d1228687d5024b1502a7335ef075b19fba2a437da3f0462b0881 \ No newline at end of file +14211bf45b8b7273183d72c5421cf5ea2028ffc0eab69a6af08f68e3bac0f15ff98ff3aaf3e2c932ce821a7f9d44939d6d315f61e96feeddfc65a5c5b7b32a9d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Norepinephrine.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Norepinephrine.zip.sha512 index ba56d84a1..cabe1b39a 100644 --- a/data/human/adult/baselines/scenarios/drug/Norepinephrine.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Norepinephrine.zip.sha512 @@ -1 +1 @@ -87ed3cf18b716394dfad8250d55f5e77966a425aeccaab506b48d39c90b4b6f781d877fa36e1d82b418211b925ea23e33a24881865b1ee8dbeae98f9fecf3228 \ No newline at end of file +a66631f95ab68b84186246d820c9f70c1f7596210187edb4fa12f7e82b88812e7deb077aeb63840ec01280a73baf14328f20452a7c3904c90fb0f48860815ae7 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/NorepinephrineBolus.zip.sha512 b/data/human/adult/baselines/scenarios/drug/NorepinephrineBolus.zip.sha512 index 7a9d27641..bf8428230 100644 --- a/data/human/adult/baselines/scenarios/drug/NorepinephrineBolus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/NorepinephrineBolus.zip.sha512 @@ -1 +1 @@ -6786f15c10958f38a4b8dfda5f458074994d8ea54f4574ead8863c4d78e1282001b5133a853cae37446f8ee48910cff0ecccbf14832d3a4e235e432412d752e8 \ No newline at end of file +017139d389371f90e9fa9e936cb7596fee58ef479278bef7b7dd66e4e77fd15fea2e1d6a5f9d1aabf19da74c1ba7852178062fb87c988dea9e1d1f12c8b477a5 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Phenylephrine.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Phenylephrine.zip.sha512 index dbe8606b4..307e13619 100644 --- a/data/human/adult/baselines/scenarios/drug/Phenylephrine.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Phenylephrine.zip.sha512 @@ -1 +1 @@ -6ff7634a9dc4a24a574c062d4132ab9f70ca5e2f0f91a3d503e7fa9afac5a6f2e72d9f51622821bcc90847035c1840d3620d88ef598341fc06f2363e455017e3 \ No newline at end of file +8e6af7cacd9cabc408792b0b80cc9ed0baca566ad4ea864d33b8aa8cbe4aa1cc19c9a30ca0e1c5e913a6e27a580947f8a96d67578524264c45824560dc6e24e6 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Pralidoxime.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Pralidoxime.zip.sha512 index edcfb1151..541bc2c70 100644 --- a/data/human/adult/baselines/scenarios/drug/Pralidoxime.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Pralidoxime.zip.sha512 @@ -1 +1 @@ -10feb988d96270c685f6b884093f5c283ab065bb5fe8374c6b9f08b641c93873df490f77fe1d3bef1f4acce637dba24325771624c548b2dbd89fecabfaaba8aa \ No newline at end of file +2942e7f4364b4f9582e4ca3e53001c3ee871580b330ea4c6891acd3fc2382dbad8ca3672940442c65687cf5198b777d10c6eda8cb3e43568820de3a319dad71a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Prednisone.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Prednisone.zip.sha512 index 8465256c9..569828657 100644 --- a/data/human/adult/baselines/scenarios/drug/Prednisone.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Prednisone.zip.sha512 @@ -1 +1 @@ -305b2d2ab0ae36a0fef705b6f6677c262bba05cf11b6a1baa462250b2e8f74361bf89da507c4971193bcebcfa58546548111064f6c29af9ce8cf87f3b538dc95 \ No newline at end of file +314981e18cafbaec5461356c264c61c241091f69be33a8139aaef2cdeaa1354a2a389b380a8c4c6da64fc20352f4857a102978c409d216530d756fd27cd50a4f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Propofol.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Propofol.zip.sha512 index 947965f5d..6ea123609 100644 --- a/data/human/adult/baselines/scenarios/drug/Propofol.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Propofol.zip.sha512 @@ -1 +1 @@ -909548992f73b2767cc12e32a87e76951cc2a8e46c36c0f41bffae02ceed701fb6d4a7e7d283759ac2c2e120580f94ee1b3d8538d076dc18e451a970cf0cef00 \ No newline at end of file +aee88c050daaef24a7329becaa8b165c3b74a565f53550710782d4098ee253a6375b9dee452131c1522c0d61b7fda31121647f25ac7974675a55e0a439c882ac \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Rocuronium.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Rocuronium.zip.sha512 index bdba0a69b..40a636e06 100644 --- a/data/human/adult/baselines/scenarios/drug/Rocuronium.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Rocuronium.zip.sha512 @@ -1 +1 @@ -5bfedb5b474650a0972f2380025314d2286023e35b043da103661f8b1804e57220c3bfc2238f683d6983e400287b9e74d4edacc6620dc2048cdb1b9240fe0a1c \ No newline at end of file +37dea1564d7472aaa9a262eaf63c0f020985ee8a8fd01b6c47a63c0c0f5c07a21a5261b56f80ade931205834878f8435a758c50a2e7893b009e5f3b7b58b122b \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/drug/Succinylcholine.zip.sha512 b/data/human/adult/baselines/scenarios/drug/Succinylcholine.zip.sha512 index b672e1f30..f778cdf14 100644 --- a/data/human/adult/baselines/scenarios/drug/Succinylcholine.zip.sha512 +++ b/data/human/adult/baselines/scenarios/drug/Succinylcholine.zip.sha512 @@ -1 +1 @@ -0c44b5654aa6165c13ef3a2f7789d2cdceb3db40964cfddea64f0fa721be4251dbd17c793a9ca1a8ddcba5869e7830c0ead64ce67d751f29d9c12d7896e061e7 \ No newline at end of file +2471182cbdd7aae46973750d08f536448986659d84f72a0a1c2f487ced891fd9c9508d7a1308b3009d32be7f840589db6557620b08e4bc982daa753919809845 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/AlveolarArterialGradientEnvironments.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/AlveolarArterialGradientEnvironments.zip.sha512 index 78fc2153f..98f2d4c5b 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/AlveolarArterialGradientEnvironments.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/AlveolarArterialGradientEnvironments.zip.sha512 @@ -1 +1 @@ -daba8869e489ee02ab4afe1cf95f512dca38fe12b35d9ed20d33c71a39b6e5f18037c767ed0aaf7970dd8c7a30673a883f351b29b527592c2b9cd638bcdf7f6a \ No newline at end of file +62e4efee24a54c475a8ed9755a45dd43b725f7a87d8eefc4a56a078b866cd2b9d4e7aecbc7074723bb0f228f633ac2c4d6e02462941e905d44e8bf34ad8b0330 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideExtreme.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideExtreme.zip.sha512 index c383368e4..f81990a28 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideExtreme.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideExtreme.zip.sha512 @@ -1 +1 @@ -1a939b0e85c8a808c859eb500fffad755b2acd173f91fcbe95f9c15a2bbbab52a85e747ebcf217f461a726393c42b9af097fd907ff96df105df74fc3312a6b5f \ No newline at end of file +0354819cd19f07ce47f4778358fbed109d31a6bab9da7b3904790c6ca32d92cfa1730ea9dcc1c1d774507c644c2e9e5bab105bdbd49111e0a6ee4bbe53795bc8 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideThreshold.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideThreshold.zip.sha512 index 92b6f774c..5533d4edc 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideThreshold.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/CarbonMonoxideThreshold.zip.sha512 @@ -1 +1 @@ -07deb4aaeb32fa569b5a36f76d3fd1f8bb760bacced28e072877b830664d47ea8f64c514a32b870b65115d23ca0162bcbaaa96cf115f66dece10ef397b2bae76 \ No newline at end of file +4385ebc1ffb895a06a729ab1a1c220bcfe7ebcbe208dab173dc6b12455583ccb729e52824425886bf0fda786dd3eeb1ad7db9d65d64e7e9a777abf83f5fbd3a9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/ColdWaterSubmersion.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/ColdWaterSubmersion.zip.sha512 index 85312f8d1..e9b915fb1 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/ColdWaterSubmersion.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/ColdWaterSubmersion.zip.sha512 @@ -1 +1 @@ -efe028491d39f236a000276e6b6e1a69130beef62f038c0c0b204594a54e37ee33774947569be6e4637748b7b3768e2ade728fec6884b42e19ec128ad9bd93a8 \ No newline at end of file +2ca9d2a007396e9233128be793462227ec5199844b652869d8b66d4de165452927dd63c0a0fec55f09f9ef5323559d32b3d348a9dc0410552a7744506054f14a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/ExerciseStages.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/ExerciseStages.zip.sha512 index 23fd9c284..b646fd654 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/ExerciseStages.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/ExerciseStages.zip.sha512 @@ -1 +1 @@ -20458195f6ca94944abf3fb0671c4148afa06252f5498ccc716281fb929e3dff36f550dc5a5f0fcc5938b42508ffe9f95208f3b7e840943f77e73e3824989351 \ No newline at end of file +a1c0923fa7e376b825c6895ef31fc6a31d12ff5b9b904b62b845be15707064758e335725d64830caa8741b834486a3b976aa55453ada87146d734897d1a702b1 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/ExerciseVO2max.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/ExerciseVO2max.zip.sha512 index f7ea1cdb0..d7dd3b4b7 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/ExerciseVO2max.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/ExerciseVO2max.zip.sha512 @@ -1 +1 @@ -38c7e09aacb495a1f43ebb92461e79164386dac2c43c5ae6fb1713586e662ac2f5951252a3d32be91ba21875b5a99f240e29466238aec824fff683150267e39a \ No newline at end of file +4826f8fe5681678513f3b43d8b93c28570f6d4da45e156705d225946d7c9d74b88f8030e362fe31ea01c866ec7952a55dee580e6a3b2816fcd09e0d658bd05ce \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/FireFighter.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/FireFighter.zip.sha512 index a38736937..9eda6dcf9 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/FireFighter.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/FireFighter.zip.sha512 @@ -1 +1 @@ -ba24cec5fce4418609470d15b8bba6ad2cba4aa5becf39210c73615c674c00ce5602445327a83e8734c22fa916ad9a602bbad6fa96505a6722195075a3caa420 \ No newline at end of file +f9102c08e6734c554f2444a34173c8495e1c905df7a0f57bbc970d79450608c33108bb61481f70ccb7692bd3b643fe15ca2a40d13aa29907ba9cc4b73bdd38fd \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentChange.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentChange.zip.sha512 index c988d26c2..346f379fc 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentChange.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentChange.zip.sha512 @@ -1 +1 @@ -c7f513c511bddfcf40bb411d5b9c6c688e1b17114f89a5c6956bd505100d24f846cc5adfd4d12c809c3153b537378ec4215d758da2946608431be4b47e3aa92b \ No newline at end of file +28c8e8a6fbe1d4076ea71669a14ee7de36cf26b3e833c60da62275ec5e245b65f98fa47dc41e888e0a5b8886a7c70cc063003f8e18d0c08c97f069f703157bcd \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentFileChange.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentFileChange.zip.sha512 index 2fb1c5410..932db70a2 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentFileChange.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/HighAltitudeEnvironmentFileChange.zip.sha512 @@ -1 +1 @@ -9136a495512a439d498881a25f5e84ba6f151d7ba5b5be9d91572bde8cdbc256d4f047e1de5b531f5eb688453d9c5b53ead9917b4788940d835e897431508b9d \ No newline at end of file +d06d27519b1734b4cbc18a0d32cea59acd4e4ae6b969f953e99b171007233023430de620609b915a75bfb77892e2ab9c5e08b33f3bbd661ce19e4eec893e508f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentFile.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentFile.zip.sha512 index 569b9e55c..102c53165 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentFile.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentFile.zip.sha512 @@ -1 +1 @@ -5117117537ad9573b707d0be7c2bb535fe12911d75296fd12a119787304d74349349a38de491bfa641f6450b4575528c83d50d7964dec1e51f40a858a8238355 \ No newline at end of file +7772b0155a95cd1d8b27cb77605459249ff81a278e02d21587e2ed9f56ce396dd8a66eec79f5399ae9fb35e6aa7e868ad31c31db1d718b03cc66e1df120988de \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentState.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentState.zip.sha512 index 27e6b9ef1..3046883a4 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentState.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/InitialHighAltitudeEnvironmentState.zip.sha512 @@ -1 +1 @@ -4739390a8a793f1a51083a63ecf809dd6793aea06120b3cfd3ebc1cfff441f13b4b9b410c22c5e4c8390c05441eb7a77410503dda4d4e098c2639c6c1bcb2a17 \ No newline at end of file +797ffea57248d62e3ab25c72c13d6641d2aba1830df7a8641e23648ce5d9917e6530a483053894621b421bb6377b5c42f1fa22b59322b106197c286ae452b20b \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/MechanicalDeadSpace.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/MechanicalDeadSpace.zip.sha512 index 181ec3fc5..13fe144c7 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/MechanicalDeadSpace.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/MechanicalDeadSpace.zip.sha512 @@ -1 +1 @@ -ac936353afab87289fb66805ab66fe4119084642926efc4f3acdead527629bfa136c002adbb7ede14a8c15eeaa1368b87afbac5d0348cd64b135729a5e4523f4 \ No newline at end of file +0bc3975f77177231f3c7e49a2f85a4dcd0f8b284207cc271f53d2d81b5396f53078ee032775af09c24623b9a4625696bdd7ffd62d3734aa6a390edb8a21e034d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/energyenvironment/ThermalApplication.zip.sha512 b/data/human/adult/baselines/scenarios/energyenvironment/ThermalApplication.zip.sha512 index 79c704195..6c8e2d53e 100644 --- a/data/human/adult/baselines/scenarios/energyenvironment/ThermalApplication.zip.sha512 +++ b/data/human/adult/baselines/scenarios/energyenvironment/ThermalApplication.zip.sha512 @@ -1 +1 @@ -7875af154186d8c83eaeaecb8cc32934e404301eafa20c2653cee2d82da68b94f2495a3a5e0e915acc83dcc1320ce830aaf2189a74457b9e59b381e897816aa3 \ No newline at end of file +b097c9e589114efd64d198d6a37febd56a1f99a9d645c85dda53012797a6a27717b2008b0a52a91a2af925a2a05d51cdeae77bf9fb30df669e3ac8b4eda99016 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineEndotrachealTubeLeakVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineEndotrachealTubeLeakVaried.zip.sha512 index 141360fff..c5e3f0a19 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineEndotrachealTubeLeakVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineEndotrachealTubeLeakVaried.zip.sha512 @@ -1 +1 @@ -82d77f06d020d9a9997b640d3015c9025047099cdc54168ebd36019d9ec643c00fa4e7198fa61e29b60fb16d0b82cd2383d8cb2e0621c8e8d78954322f7b84b0 \ No newline at end of file +468c1f48545d33edbd010825062a4dfd9c28ed2455cdbce0476096108f84be6c9ae256aef69a16f83b81c3fc623504d9c22a9b39294ebd63f65b5ccbc2272671 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveLeakVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveLeakVaried.zip.sha512 index a1edbcb3b..9b4560fbe 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveLeakVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveLeakVaried.zip.sha512 @@ -1 +1 @@ -9d4b54ec44b56ae559cc4ca2489d1adcc06de97e801a096946c27579d3dfac942ed21c2d22404d51f051740a3d343cc5e75a88df563cd5a8ef2d99943152210f \ No newline at end of file +35fb56d1939394d83d58db13ce5ddff93f4aa15c3866b5a27df867b4f3d1e77292a7761b24bdd66f1552a5bd1cc04b865b691a122eba9a8d8cff135aa8910aa6 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveObstructionVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveObstructionVaried.zip.sha512 index 6a57e9485..05a357cd8 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveObstructionVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineExpiratoryValveObstructionVaried.zip.sha512 @@ -1 +1 @@ -9ecbe6e9f3ba1730c96d75d63e572764d221ca5a8ce6379ab031875392943cd8bd41383f6c2ff1cfb508a76c80c272b6c7aa1455363d552c56e61488a5986b41 \ No newline at end of file +e5e73aeaa932ab94112dfdf9c5f2130dc9748afaba47ec06d45175fc7d4f439d56effdf9f8928e72beadeacb5160f53259a32620de000b5a401aeb709809562e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveLeakVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveLeakVaried.zip.sha512 index 288843770..e5b632324 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveLeakVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveLeakVaried.zip.sha512 @@ -1 +1 @@ -e2615d56254e40de87742fb643584feb28ed61738df9d08708b369f86b7b5eff53dbddd8f4f5671c50dafb83345ea2cba3fd64c1211df4aaf3453519b0f1396e \ No newline at end of file +9373d7f49e85b7c2ee6f2c9fb3b33a5e38f5a2d616b52d0440e837c37a38431cf35101521c10a75db9e88b34a4ff5808ed0c526f7cd6bfcc454a3a20e399a9de \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveObstructionVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveObstructionVaried.zip.sha512 index 352969a90..b04959f8b 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveObstructionVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineInspiratoryValveObstructionVaried.zip.sha512 @@ -1 +1 @@ -210e3e15e5b1bf1461fa6c77376858d5417e6556ce55a854d45716c285ae09c9f590fcac416da854dfeb2873dfeff9f39923abd3ae3fbb5de2866dce29bfa41a \ No newline at end of file +5c30ad63624c2d119d17f2e84e4c37705726a136dda6cca763d671bca81b31c11936cf3b376c532b9c83a40b3b022f3f3cbca76eaf3b1ccd2770677d104beb13 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineMaskLeakVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineMaskLeakVaried.zip.sha512 index 075915eae..7c4050541 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineMaskLeakVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineMaskLeakVaried.zip.sha512 @@ -1 +1 @@ -4ec9bd23c7b5215911bffbb0f09b51b25ad9d4a40219532f78d4ebc2bdafc6f5a2482bc71ff07e8bb9256c3bd7ac2e73956afcafac132905e2ec8cd88a6e5b68 \ No newline at end of file +067fdfbde0c9ad386d246cbc48a8cc7882493a548f823213453d78b94edfacf9598a2cc10282fdcc6758cb63dad77431b15ae169a72beab81f19ff3780856b53 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenTankPressureLoss.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenTankPressureLoss.zip.sha512 index cb1daf44b..3d1382796 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenTankPressureLoss.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenTankPressureLoss.zip.sha512 @@ -1 +1 @@ -8a879164b872ba2ef7b100ac804a3b7ecdee0912e3a579fe9d398d9366a1532f442051c69971d04dc7327c31f055f101aa51b422a96f102d7741ccc57949d282 \ No newline at end of file +8b2a4a65221fdd91345b9a8eb3de0c5cb363f58bed83d9229bc5fc0aca905a81ad524305d4d1bbb3d7fb6518fec55e5f1fa6a9d7a7591511e10ffbefc68cb6a2 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenWallPressureLoss.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenWallPressureLoss.zip.sha512 index 9e80fbdaa..12391d4b4 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenWallPressureLoss.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineOxygenWallPressureLoss.zip.sha512 @@ -1 +1 @@ -d735c8bb7b5f05c90ef05f3c373ead075c53e21776a9423148692cc24c51b8bf9d39d2abe400effb6979be60849efefceeb55b57ec4d490d1d46fa3108f92c75 \ No newline at end of file +2b06f51b408b587a60b3cb73a68ed8353136a1d4640dceafb6e4b7a85af923d3dde4bbf16949b0c23d64ace6369e2942e1300573914f20a0ab953dbcc270e08a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineSodaLimeFailureVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineSodaLimeFailureVaried.zip.sha512 index a9f2e8c3a..40a43de74 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineSodaLimeFailureVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineSodaLimeFailureVaried.zip.sha512 @@ -1 +1 @@ -7fc9baed3d7ee5055ad7874f8d426bb43dad53c36138840cf39ac1652c7815f26ec5175297f0de9ff107bb3b854d7c627ae6c3a111bf5abf6ff729a87fe52b31 \ No newline at end of file +9962c5e12ee1cd05cd7c6c348121e2eeb532543ff6e1f01638fc70e6e4d7d3ff272dbff89b138746e54858e1e1d5a95dc391ff523b1ad11ac33c40f5f5944076 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVaporizerFailureVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVaporizerFailureVaried.zip.sha512 index 400f4492f..d67af9b9d 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVaporizerFailureVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVaporizerFailureVaried.zip.sha512 @@ -1 +1 @@ -923464c5b6c46d0e272d0ad09935e463ffc1f82302ca477e58c1aa23c7883f36bee195bd44157d9bbcc73d5c01a0620a9bbbcd06b3c043fdad9466b743b21240 \ No newline at end of file +c7756a39f2e70581fbe9a26b15f8196eb4035d0168c5d5608c438b95ddbb02fe1ad421af93273620295f840cee42a7f3bbed632283d9a494ab6d19cb124b6fb0 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVariedConfiguration.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVariedConfiguration.zip.sha512 index e725b0e8a..d626bba28 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVariedConfiguration.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVariedConfiguration.zip.sha512 @@ -1 +1 @@ -4676c716783894364cd8185ccaa8ce31e116226dc13a11507baa4cdd44d4bd0de7711c22cc728a16bb4ed4a70f734128c0281d95e5360fae40f3798e6de00372 \ No newline at end of file +08b37772d0d9ea4af420858ba1aa05b86f6b67d7cfefac4922ae05f22e73de0dc1c04770d5b4403f212e3be595b17b6c022e1c17ea83600c59656ed483a85b93 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVentilatorPressureLossVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVentilatorPressureLossVaried.zip.sha512 index 40071b836..36efdfd3e 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVentilatorPressureLossVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineVentilatorPressureLossVaried.zip.sha512 @@ -1 +1 @@ -5fa2ef2f8a711213acae35e206cfd7da6f5369ff3d31436592efe3b6858d2a5d75dfef2997e7d90797206f0e8fd33131f12205bff47b2607eebfdffcb1069f13 \ No newline at end of file +47db5ccb4f709082604f2c131f91c53798028b868b330ce215e00e98ee5d490ba579c8cf621c516f88b6bd83bcd3ac3a759756bbe07a732494c265d0f393e8ad \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineYpieceDisconnectVaried.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineYpieceDisconnectVaried.zip.sha512 index 5f980c7cf..d2d53967f 100644 --- a/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineYpieceDisconnectVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/AnesthesiaMachineYpieceDisconnectVaried.zip.sha512 @@ -1 +1 @@ -142e9a7ac0a294f674d0a78e6a5a5305cfee9314b0759d3d65c250ea1540c22e76375cd4f4b508e2c007911328692a4af915e7795f7f2813b295fd47fa3734a5 \ No newline at end of file +0fe417a9d192dd8b951ee41c971f2d61639c4a144413f7319bc94e335e49ecf7176e1d465d217091a0f0297d8a6467a2dba1a2d7416a17cc6005c58bd0d1124e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/BagValveMaskApnea.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/BagValveMaskApnea.zip.sha512 index 92439170b..8e9a9ea83 100644 --- a/data/human/adult/baselines/scenarios/equipment/BagValveMaskApnea.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/BagValveMaskApnea.zip.sha512 @@ -1 +1 @@ -435a654ba12b2c70f1fc153202783c9ed31d058a84d19dc6c108bc410419be92f2628f9318cc55c60d5a4d659c2018829d8c99905270fa9ab2d684ec294781e5 \ No newline at end of file +2d909ec9c0a5221da8735ae09b0892c13b37394bb43406800da3d65957ad382023b7cb880f891af7a0bfda3964428cad281bb4b8e721b6fe1faa5aeacb84ef8f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/BagValveMaskVariedConfiguration.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/BagValveMaskVariedConfiguration.zip.sha512 index 94ea85a89..e0ba794c8 100644 --- a/data/human/adult/baselines/scenarios/equipment/BagValveMaskVariedConfiguration.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/BagValveMaskVariedConfiguration.zip.sha512 @@ -1 +1 @@ -a8ddc8906d7fe4dda9d66e6105981fa04435f159cbcbca2815467bdb1806e68a134e054adc3a14543e1ac65dd0426da83df6d8c9d8b3a277fdd98841ada66646 \ No newline at end of file +bcd540bd0d0a607ba39dc9dc992c32d2721fb2350360fc4d205b57e39d4a5448e5b422828cc9cd82486e0c0837e8c4c4812a293cb8ba2388765eff5d951206ed \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/ECMOARDSOxygenation.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/ECMOARDSOxygenation.zip.sha512 index 800323d8c..12ab03956 100644 --- a/data/human/adult/baselines/scenarios/equipment/ECMOARDSOxygenation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/ECMOARDSOxygenation.zip.sha512 @@ -1 +1 @@ -60bcca5f39878a856309aad2aede9838c3440156e667da6215949abe2ac52bb787c29cf6bbc70814320e85aecc8fa437427248bcd36d73b22e538092c63ab527 \ No newline at end of file +29cd583f26883aa0d76729b8fa2321d417e63e40bfedf6df2cd6e552df310e970b886c8fbcf0f6205049b53af4731627935b012105554b31fec037b088ce3be5 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/ECMOVariedConfiguration.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/ECMOVariedConfiguration.zip.sha512 index 00db10a40..409f39dbf 100644 --- a/data/human/adult/baselines/scenarios/equipment/ECMOVariedConfiguration.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/ECMOVariedConfiguration.zip.sha512 @@ -1 +1 @@ -a39e11bbad386bea64da21dcbbbdfe587d50d036133bf5f280f74265c2922a1cfc860e18bd55b9c686b603809d11b8ac30a6e9989c211b96fe85ff4e2102f531 \ No newline at end of file +f034243c08c9942e24cb524fdb232efb8e3dac0511de6a596eaa74a2bf2480a75dde44d3b0c939866a68e1a095f7598f2e5e0acdf5dfcfa91ec77355dd5fea59 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/EsophagealIntubation.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/EsophagealIntubation.zip.sha512 index c92c4ebda..ff7033b20 100644 --- a/data/human/adult/baselines/scenarios/equipment/EsophagealIntubation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/EsophagealIntubation.zip.sha512 @@ -1 +1 @@ -fe3eb497bdc0bb22ed5be9f3517aabf0a9aeb0abe5522f210320e15e87c984da91854d005fd622155f3144ddd431ac95a5ed838fe472ab201f3bb344f1373f50 \ No newline at end of file +45be9a833b6ecf18ad8e2b9549a7dc37a049c9e990ec9e2d3472ef67b3d81cbf1d7f3ed1b51110e582b92bb2e0d7936eeeca1b77e5bb9a539794c0535f973781 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuation.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuation.zip.sha512 index 1870ef312..387640723 100644 --- a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuation.zip.sha512 @@ -1 +1 @@ -83db306b1670aaf4aaa335b940f2799fc875223b2a2642a2da786d7516974364451b64868861504c65ab76bde0971c6940e3310cb7ba3c9fe8094663a8bda6aa \ No newline at end of file +6d10441eee15721a1404c10930c187ad72b5878bd6f6d1b90e8caa27c693d66f73e04029f43280c3e6129987accddb251a34ecfec517829a4d49925c3685c21c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationIncorrectUse.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationIncorrectUse.zip.sha512 index d842c17fd..0d3ecaceb 100644 --- a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationIncorrectUse.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationIncorrectUse.zip.sha512 @@ -1 +1 @@ -58676c02c4211e9d41cd06daf20f4233d7eb52286f6b5b474c94226d3e12773b423c5c3c663d91d7714fa2d028402d3db2de001642aa130989c70a076f2a0c1f \ No newline at end of file +57c092860c3eed7bb97ea3ce588853f6019fa4b41391bf5874ba4674c4594cb3e4f4f7c0099bf4ed9ab78c51b13d06b230bb549ef877c505c957228426a79991 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacer.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacer.zip.sha512 index b9c604b81..b0acf1c97 100644 --- a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacer.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacer.zip.sha512 @@ -1 +1 @@ -0536c5a9b5740c3c498ee20ee4f29dc20af41093660edaae2307dd17308d7381398b3ac6b582c03d2fe3db59db1741f53dc592fb761c000ba32189fb86f18e1d \ No newline at end of file +6653efa2a200485fc4bd810c3ebef45bbb95e6224ed562fae694404b4281156e56154fe4b6a641faff764f78fa9df015f4e230a8cb256fee68b9c6c03a3ad8f0 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacerIncorrectUse.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacerIncorrectUse.zip.sha512 index adeb088ec..28d5b79d9 100644 --- a/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacerIncorrectUse.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/InhalerOneActuationWithSpacerIncorrectUse.zip.sha512 @@ -1 +1 @@ -d57249e8805c6b4c8f5b1ad2a2788da6e9c28d6d05d1f820f798e7f4ea4823b525c541d4ace27ff18523e90574e82e4909247f23d7cfaa780eb54d947f03293f \ No newline at end of file +9ae8424e144f2a513fc6c8d83cd213d2b58752eedea9fd3db4e8842c97bb53e1f6eb09cb9f12fd4f667fb68f8d1d49fd796b2bb2618ef42debdc5ef73b932219 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/InhalerTwoActuations.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/InhalerTwoActuations.zip.sha512 index ebeda15cf..621207886 100644 --- a/data/human/adult/baselines/scenarios/equipment/InhalerTwoActuations.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/InhalerTwoActuations.zip.sha512 @@ -1 +1 @@ -9ac02f333505000716b12cb7dce73d6fad29657bfce7a3f6f884f08a977bd8fc710aca3ff0f886795c73bd8ab2d93a280892350b7194fb37566e43a8b8fff836 \ No newline at end of file +f26fefe78d644aff5bf5382a9a2003baea8de81103208a4efb627faad20c4286cea87802ab0422aed5dba095b6c5d657da09f1ea8c670e056319643f5a915d2a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MainstemIntubation.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MainstemIntubation.zip.sha512 index 3a53e1952..3ea107ccf 100644 --- a/data/human/adult/baselines/scenarios/equipment/MainstemIntubation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/MainstemIntubation.zip.sha512 @@ -1 +1 @@ -6dac3413f17cabe371b410902d782fc8dee688b145df08b4137f256b6184c790257e6e2841f42354878c9abcc95cebea26a63a32678c0a154be74071fce46224 \ No newline at end of file +e8e105c83638946ca2b72bcec77081b53e11029b5f0f56e104f9b5704a7ea79792d23bdbdf320c2613802c8f20e8af3e4ee11855fb403ffd6d7d4f30b857ce51 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilation.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilation.zip.sha512 index 4cfe52a86..18c98f83a 100644 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilation.zip.sha512 @@ -1 +1 @@ -b3f9803cca55f670e59eb849baa1ce3db85cf927793ffc75f155cda2355989881b70cef1de113a1ed6e4f4d5b331110827029f13182cb2500c881aba805bfed5 \ No newline at end of file +44d709e4db82622582b071ce62a7051971b7ef3eba71f9df2091268a0a019bcf3d16acb01dd0aa834656efb68dd06a09e23f3b96c9ed9fa3941e45dd9d9cc98c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ReliefValve.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ReliefValve.zip.sha512 index ba045369f..c9671a5c1 100644 --- a/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ReliefValve.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/MechanicalVentilator_VC-AC_ReliefValve.zip.sha512 @@ -1 +1 @@ -bf21cdab12abd4fd3338387f1376b54169f452dcf33c382b20ac3f587adfe1234a11c102b062b424a20188845b52bc831728efdb8ab40d396d806b401cc95a71 \ No newline at end of file +a8ef6557b57feca8f837f9dddd0e0626e1585a03f3f9fee7f9d4951756d4c624f837b3b7d33b96344d275253cd55fabc120e1e948c7daa0fde06389feb04ccaf \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/Mechanoreceptors.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/Mechanoreceptors.zip.sha512 index b4d80756b..24a09d365 100644 --- a/data/human/adult/baselines/scenarios/equipment/Mechanoreceptors.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/Mechanoreceptors.zip.sha512 @@ -1 +1 @@ -179900273b41f2f441dbf93ee42c45ffe5c516898a3f64b7960c01891bf368412d00aa6b9fb233e436026ebf974178f3a2c627b902df1206f70c368c3e12bf80 \ No newline at end of file +cff6e95b3427b0898d6abe82e7bd75de4cb92974d5b4ce2cdfbd22e25a9600695c14a61f9aa04cda053d06a2eb5a2718d77707dd897cf5482bd736fea3cbe08e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/NasalCannula.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/NasalCannula.zip.sha512 index 2b4a91a5c..372d90a34 100644 --- a/data/human/adult/baselines/scenarios/equipment/NasalCannula.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/NasalCannula.zip.sha512 @@ -1 +1 @@ -f23da917a2c479d03e735611bb850f848969eba652aa53f5a6948db0d0edd7d8ceb6235a967e344af2f51e232d44fb789e459a8d45d7d9b43ed82a227df5e19c \ No newline at end of file +e3429dd10b272c3b90d5c3fb16427ae02ab2057389d4266a132ebcc28bf7ce2163032017635dc3753df7c108171bc4817a0e98ffce1fbf5b2b3d40bdd2f97d98 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/NonRebreatherMask.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/NonRebreatherMask.zip.sha512 index be2b2e5b6..5c5d15d2b 100644 --- a/data/human/adult/baselines/scenarios/equipment/NonRebreatherMask.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/NonRebreatherMask.zip.sha512 @@ -1 +1 @@ -1b748cbccfb92c5ec35a6b5ef08158deb95e5a213c5741ab9e2d29c849044d6073710c5ccc5443901651a8c82670d2a71818a2bfd13e36af7ad5c18d90fa7d52 \ No newline at end of file +58a7432086d69e1663c8a7d829c943eee2604d1aff7c1735d2852e5f399ea6b09ac4d5739403522918b19af475f0583f36c656cc214157f63919348b6d76e4bc \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/PositivePressureVentilation.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/PositivePressureVentilation.zip.sha512 index 0ea2d285b..30caadeb5 100644 --- a/data/human/adult/baselines/scenarios/equipment/PositivePressureVentilation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/PositivePressureVentilation.zip.sha512 @@ -1 +1 @@ -1a75c772d9527e1878c1d4367eae88ee7c59da52b026492433134d8624446315778bb7b076e559847872c40cfe2c00cce66a38387d59fce15416e1d9c992503d \ No newline at end of file +57e42443e3730f1086d5c778126a2ccdb582027e6dbb06bb1c94996767de7788aec93f67d70c9ee9ff59964de8aa033b1357f56936739e2fe54b101d3817e2ef \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/equipment/SimpleMask.zip.sha512 b/data/human/adult/baselines/scenarios/equipment/SimpleMask.zip.sha512 index aa5d7b176..f994c49f9 100644 --- a/data/human/adult/baselines/scenarios/equipment/SimpleMask.zip.sha512 +++ b/data/human/adult/baselines/scenarios/equipment/SimpleMask.zip.sha512 @@ -1 +1 @@ -0eb769b6265160488a0bb062529820616fd51220a06784379fb7e1a943cb38e7afadb90d12e7487ad1616aa9fafcaa0ac65bc3d4fe4aa1feb6ef9867fd7dbae4 \ No newline at end of file +d2cbc25cec75011a4536280ad4fb76e2fdab5bcb003f23270c9a296258513ba7a55d089311d7f842487ea063dfd758ea9273503617fd2ca031a6f1ddcb72ff7e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/AirwayObstructionDeath.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/AirwayObstructionDeath.zip.sha512 index e02834f3c..c3d465fda 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/AirwayObstructionDeath.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/AirwayObstructionDeath.zip.sha512 @@ -1 +1 @@ -3449b2aeffb0af318182957c6aee3b499e8cd941298dbf34ec158d35e5bac405cb0e98c733689b2db1886834feb9db4ddac2786054777766819aa6c7c615b1cb \ No newline at end of file +c46cf35d03ad5fd9cb247f5756ed8f02f1b9942e06cd4af7c878564d8878b55bd7cd924da80763529c38acfa3759dd91a04abbfc8ea9ed9b551e7a249740409d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/AsthmaAttackDeath.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/AsthmaAttackDeath.zip.sha512 index e7a2c0778..8ede4d1fd 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/AsthmaAttackDeath.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/AsthmaAttackDeath.zip.sha512 @@ -1 +1 @@ -5f846023dcfcab736845789525efc2158ba1ae06801ced44ec41c030ecaa5694edd16fb6ce1e55998d98efb52700041f8321a730499fca920502db6b07d51ef2 \ No newline at end of file +3777b8ec60c4982060b868ca8d387cb05ef585da469bbc68125284c7b3853ded4b0401e153e22ac3298cdce16c49d32b494d0c6e97b585716e8368de8782d4c9 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/BronchoconstrictionDeath.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/BronchoconstrictionDeath.zip.sha512 index 418fd201f..d747a4af9 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/BronchoconstrictionDeath.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/BronchoconstrictionDeath.zip.sha512 @@ -1 +1 @@ -44e194561094a08cec465ff93f16f9106120f4ddda8a0bc11b76dea1cb59186a8ba788d1c4d04493154733b45994041030ab01f8b522b6ef3cbdab2de9cfde82 \ No newline at end of file +df5b858be859233f7dacdb376f19d02d23c8f5bc9cfe39768ba0d50447366e0b2e23dcd5c46c339303964b229a3069b033eda148d59e2910f67dc4d3c9023db3 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/ComplianceCurve.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/ComplianceCurve.zip.sha512 index 14c1bd4cf..f3652f2a7 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/ComplianceCurve.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/ComplianceCurve.zip.sha512 @@ -1 +1 @@ -4e43009982a8b35e8440379396a263fa52d8ad660913e845218654ee9b1a71976a012629147396358dfc87e3b253f49699ae271b3cb6c5f5bfc47b9c3672d997 \ No newline at end of file +9015e62984e949c012c1ef11229d7bef09322762e8290bc69e5bf944201326141b0ffe86bc9157b725e0ab609a823a38025c57077245a67261372021b272f178 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/Comprehensive.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/Comprehensive.zip.sha512 index dc004b6f5..89d3f7998 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/Comprehensive.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/Comprehensive.zip.sha512 @@ -1 +1 @@ -5c92c6c3a28cbd2bab41b47dd15685c474f820bff97ddcb62425dc14035384000cbb1cc20626dd47fe0959fcf44b08a249ec8200846e7215229cefd412a6f3a2 \ No newline at end of file +7807c8872b44c92176bbe80a8206cc2e3a25f9e506d2080225d0fe514d956d2527abe6d8c847e0a458be4ce2bb1ae5f1b5e6112575d04c6463285036cf53f808 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/ConsciousRespiration.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/ConsciousRespiration.zip.sha512 index 57e6e50da..591cbbdb3 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/ConsciousRespiration.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/ConsciousRespiration.zip.sha512 @@ -1 +1 @@ -01fec6a2b409a21756c3f826455c3e85efc62496035551232195e2b52a94d10ff7d0513e43ad66b0ad78014ce1d1056c05ca87cb7a7fa2cb7d4b0e828036946e \ No newline at end of file +0555f7ef8935c11709183b0d38a71cd969e6402ad93ab739aa97c9b8f75c84ae7219a7068e88fd146a7b72e33b86ee5d5aefb5762479e505254b74bc616a36c5 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/HouseFireSmoke.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/HouseFireSmoke.zip.sha512 index 12170db0a..a8af401b8 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/HouseFireSmoke.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/HouseFireSmoke.zip.sha512 @@ -1 +1 @@ -f53590a87e5e54cb2742b073560e836af7030a23dbc2b0463d97c927c158295920252716444e3e06cdc2e23e50932702b0275d07c7bb3212b466d9118860d9f7 \ No newline at end of file +a6dd110a590db4e86fef6014c3dfd50f30278cb4bc63f7ad527e88bfd3c6999198f33ad916fbabdb1447a6c60a383f130063cc61dd29cd8031264a11e765a1b7 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeFraction.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeFraction.zip.sha512 index 6eafed301..f7e9a8d5f 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeFraction.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeFraction.zip.sha512 @@ -1 +1 @@ -4abccdd5f2cf269f6fe3a6910a88a4a5524701460633bb5cb54b5dcd5355ebbb20a686d82b8714d041721707690546152264095258b1f17244552c38435762b9 \ No newline at end of file +d017605b53a1a14be71d5de3f3574f830ba63d89e4e27597101f08c26af6691f5073e33c55d5d389e61c9fcede48e4c7f481be78699e40d0ac57de864ad8773b \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSeverity.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSeverity.zip.sha512 index 91b0c76bd..3c785594e 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSeverity.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSeverity.zip.sha512 @@ -1 +1 @@ -867df3b77c99837a6d738c51c99808269cce82eb93493f8faa7002411b1c4f53913ec1f31b34a025ec63efbb1a01350a1f27d99dc13800941927e6e168d7e43e \ No newline at end of file +a3145fc225f07f68bd10330c366ae91f82c68b03f2abc02146d77c77971d3dd9178af7fbfb1b624a2c1721ae6117e8c0250babfaaca9329cbf87ad8c8f2cd058 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSurfaceArea.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSurfaceArea.zip.sha512 index 1bc40ea3c..b37616b5b 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSurfaceArea.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/ImpairedAlveolarExchangeSurfaceArea.zip.sha512 @@ -1 +1 @@ -f915d409cc9cd857c6cc54aa2798d387205813c9545933c20a3a01fbde112e616dfc2457a7e7e8e2ce31a9600cab1005cb139513e0521f5e31fb2841c7d5c1d5 \ No newline at end of file +634e9cbd2f2ac3105fbfd4fbbc01d0aef890e9f1902092fedbd17b236b2bf7d72caeb1d147166a5111a27ef65652c581c3cd8be42a57226836971f83454a6fdd \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/MultiDrug.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/MultiDrug.zip.sha512 index 071597e5c..fc3f761d5 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/MultiDrug.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/MultiDrug.zip.sha512 @@ -1 +1 @@ -b1bd54560e5f22367f3f396432739c205adc9618a85c5eb594b53fe46650ff9084377c1945588fb297d7feed33a143b240117502265a85192b6cf2f7f7573074 \ No newline at end of file +96d2bd02498d3876b1e2c6afd3994b8307d2aeb164ebad79c4815ca5b6627ea79ac4f3159d5415bf8487aebcd85bd5b2ff367685c7a499535162d5ff4a771795 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/Oversedation.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/Oversedation.zip.sha512 index 6d2dec61b..93d5a8d1d 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/Oversedation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/Oversedation.zip.sha512 @@ -1 +1 @@ -ff475cd38441cc47a430d57de93d3806fb74aa3b493d3976fddcd251fe9ca530764a5ccd76275d88c0617f45892afce6be3deb4d7f96a67cd0de7859ba633777 \ No newline at end of file +a028f5c0e22a5e64e261e286a0320857f5b6d854b2b736df68483c8f28a24b0e4e12e9cf5b3e1cc57544ea57e5f61e10047a65188a71d75038135f1962aeb95c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/PulmonaryShunt.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/PulmonaryShunt.zip.sha512 index e4d69f8ef..1f3c31191 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/PulmonaryShunt.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/PulmonaryShunt.zip.sha512 @@ -1 +1 @@ -f52fa3e6d9771fbf0ae286a2f44fb1ca2f15ae0f743dbe4f08d52f5e57af67045b1de82008634996efb1b6599bdc27e23e0f6f9ff8ba055e5f181d17f6e56a83 \ No newline at end of file +f72258fe796e055bf6505e8a68cfd11490c8833f08ab176433cbe1778608612b418ac31a284b9461819cc64b926de6de9b19ed5f129201de84df0894578874ec \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/SpirometryComparison.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/SpirometryComparison.zip.sha512 index ffff5c516..a4683b80f 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/SpirometryComparison.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/SpirometryComparison.zip.sha512 @@ -1 +1 @@ -0c7666a6c66b8af63463a7265996744be6d0b7e080920f91b83caed89649ffbe2592bba42e4aec2992e9507130270b53e44466ef4ee5081a84fcab159fc564c7 \ No newline at end of file +8205a9c1b77e83c8f476b311a6818404d780d2b34dc676d7f5520288b539adbaede77fda24d1bf2c08d0187c19d1c44349b191e69c48f3f99efe29c4ac413db7 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/SpirometryHealthy.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/SpirometryHealthy.zip.sha512 index 7f84056e3..9a3910f13 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/SpirometryHealthy.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/SpirometryHealthy.zip.sha512 @@ -1 +1 @@ -15f8ae1c891bbb2066511f32ad74febe928fe80d816bb37f078bb2167202427b10c34d5e4640f6a21f0e4f37233fadd51a27d8ec995dd4d9d04780ea2872f8fe \ No newline at end of file +3a5267d48750f9098557250bb1807e8afaecc773ddaee63b63a03ad1dba9a8ff9c5f3dfcf1e1f6df62fe9ff002772ced65581c6968fd3f7048177ce3ab2dac0d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/SpirometryPulmonaryFibrosis.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/SpirometryPulmonaryFibrosis.zip.sha512 index 5b23b429e..4dc34f129 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/SpirometryPulmonaryFibrosis.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/SpirometryPulmonaryFibrosis.zip.sha512 @@ -1 +1 @@ -07dbb7b67610902b6991d64551388edb8f4011a997fdd8c5adc10fe510ec8b81e0dff8fde5598c9b76fcb797a8b36f6963adccd8a39d455aea80399fcd22a494 \ No newline at end of file +87f0a7fd7fbacf24baf9961e585e5224c0f35c08c4aa9c0143780b0fdea13d651fd35b689de27bd35c6a35490e8c0e66e4465a565b6523104783eae3330270a2 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/TBIandDrugs.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/TBIandDrugs.zip.sha512 index 1303cf434..8c73fd9cf 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/TBIandDrugs.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/TBIandDrugs.zip.sha512 @@ -1 +1 @@ -31446417de7ec79814bde9dd58437f29124d838a9a729d59b83d550a4de0ad7fec507093fb16f012511f64c54a561ccf043b0a9498fbdc636b4cd8301dbdd06c \ No newline at end of file +edd0106889d72d6615ec13e691ba6eba4dc91ac96b07bbdc6370889b82cc4a404b58916e046abd0dbfeb8c5712d8be41454069e66515eca9958ba84a133df5dc \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/ZeroImpairedAlveolarExchange.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/ZeroImpairedAlveolarExchange.zip.sha512 index 440a4d527..9452b8307 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/ZeroImpairedAlveolarExchange.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/ZeroImpairedAlveolarExchange.zip.sha512 @@ -1 +1 @@ -4344bbb434d2b0923108378189eb0091ad05a818dd3f326a7d223168c2277f59c216bcf8c7e2ef8cdafb9ea638eda02a34b152e598837ca2f4290e784d3fe27e \ No newline at end of file +c7937a7c22b824997abf4e35a98e935b034ecb28e0c4738b5fe3f1a72f785728b8214603924475c2879f2fc9db2b2192ebd4bbc9d2cf3a1e75124195a3972e10 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/miscellaneous/ZeroPulmonaryShunt.zip.sha512 b/data/human/adult/baselines/scenarios/miscellaneous/ZeroPulmonaryShunt.zip.sha512 index c5b268703..4c8687aed 100644 --- a/data/human/adult/baselines/scenarios/miscellaneous/ZeroPulmonaryShunt.zip.sha512 +++ b/data/human/adult/baselines/scenarios/miscellaneous/ZeroPulmonaryShunt.zip.sha512 @@ -1 +1 @@ -cfbe11512b0da9e95dcafb2f5a40d2be18a51a49b4713f9a0910e488b0638f7916c59157286cdc1e423aa778e35943d4b583563b02ac31833e784c1b0122afe4 \ No newline at end of file +8ae709aa432e6e90b0c2f9041ca842ea4a5f221da344c0af3690d4013eec3aff1440e728444317c3fa9c87b07db61854e046e0a1d1a008078b5c963cf8b4532a \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/modification/CardiovascularModification.zip.sha512 b/data/human/adult/baselines/scenarios/modification/CardiovascularModification.zip.sha512 index 5e723ce2e..6d3c9c797 100644 --- a/data/human/adult/baselines/scenarios/modification/CardiovascularModification.zip.sha512 +++ b/data/human/adult/baselines/scenarios/modification/CardiovascularModification.zip.sha512 @@ -1 +1 @@ -ceb82c0f07ce113b736b94dbac96e2e0256757d37384d045f0ad618fdf7e4ed54093fa5231f5b1e281954920174e1c6e2e439c370a513a471600d4efa30785e5 \ No newline at end of file +9b3f3c869b7a5025897a9c9e5f18512d2f064caa5f24fe81b897be90fe757d32bc2e184067f1fe095ea3fa9db74194398880cfb97a2620e1bec959ef2b58a67b \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/modification/RespiratoryModification.zip.sha512 b/data/human/adult/baselines/scenarios/modification/RespiratoryModification.zip.sha512 index be78cd3a9..500bf29e3 100644 --- a/data/human/adult/baselines/scenarios/modification/RespiratoryModification.zip.sha512 +++ b/data/human/adult/baselines/scenarios/modification/RespiratoryModification.zip.sha512 @@ -1 +1 @@ -609b7d98383959148874cda67a78dc46d055a071995a1122d87785cf32f0d560f56068b33297f6b4d05216a203e1b9f44bb7c8a0c1186d46290a0ce60f0a60bb \ No newline at end of file +acc6af85d6aa9fcb55fca51f674b7f8a2831cbd0beff3c6fdcd039b70527943724d8eeec13b5f3e7b3b22d4722921c312d9a34c2aef1895eb65fb8739fa25daa \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/nutrition/ModerateDehydrationWithSaltWater.zip.sha512 b/data/human/adult/baselines/scenarios/nutrition/ModerateDehydrationWithSaltWater.zip.sha512 index 77fb6b587..50a5cc5f5 100644 --- a/data/human/adult/baselines/scenarios/nutrition/ModerateDehydrationWithSaltWater.zip.sha512 +++ b/data/human/adult/baselines/scenarios/nutrition/ModerateDehydrationWithSaltWater.zip.sha512 @@ -1 +1 @@ -5be1f49645cda4e5ed3854348f5686f0751b9654c3484bf43756ad2acc39d40dca09ec7eebf2aa586944d6ef355aca8c6128741d474e909fa4f015941c79b000 \ No newline at end of file +667b00184632d4d4a642b8e9244fa74767b9a2e1519e71c9edc8fcc10f920fa5557ff4dff46f6ac8bb14045975f710ba05e4655562efde82d6b39bff355d3651 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/nutrition/Nutrition.zip.sha512 b/data/human/adult/baselines/scenarios/nutrition/Nutrition.zip.sha512 index 40c6c4d22..a3f57c238 100644 --- a/data/human/adult/baselines/scenarios/nutrition/Nutrition.zip.sha512 +++ b/data/human/adult/baselines/scenarios/nutrition/Nutrition.zip.sha512 @@ -1 +1 @@ -184d7b9783156c96ff40a1ca7df5702b85fdbc348477e435fc7737932239d90d0469e8014f972f59160ab23da28d8d02930266ef51bbe9c8461861e12c86266b \ No newline at end of file +5fcf8f97c92a78d6e00dc728f79dfc6f703cc97895a9deb8ccb2d5289dc381fa5653a157bdd8e115b68f5c6cf6d0e072f284bafb931acc75c33aba83404a7955 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/nutrition/SodiumIngestion.zip.sha512 b/data/human/adult/baselines/scenarios/nutrition/SodiumIngestion.zip.sha512 index 22bbc05f2..393a86989 100644 --- a/data/human/adult/baselines/scenarios/nutrition/SodiumIngestion.zip.sha512 +++ b/data/human/adult/baselines/scenarios/nutrition/SodiumIngestion.zip.sha512 @@ -1 +1 @@ -ee1818eb29d8cba67ff551effef61981a60db2f2b348a52d63e32d737834ff9deedbd006bb8fedb163363da25e6f55d03190f6eaf37fe01b7475ada0da0a2b10 \ No newline at end of file +d9756f2de150211f316a1b913dabd309ead2ae99a648944384feb37b3058e79af57c05daa1d3ea0ea49a7f15fc0474693c97ef071a0336307c07b07c43033102 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/nutrition/WaterIngestion.zip.sha512 b/data/human/adult/baselines/scenarios/nutrition/WaterIngestion.zip.sha512 index 392cd95ef..ccae30bd5 100644 --- a/data/human/adult/baselines/scenarios/nutrition/WaterIngestion.zip.sha512 +++ b/data/human/adult/baselines/scenarios/nutrition/WaterIngestion.zip.sha512 @@ -1 +1 @@ -effa0b0d8cbcecc3a4708942c2b4e184fd0b8413f8ebedd385a0ef403473f4c96d368add8ac2e9d5b0fcc8229fc6b482253b18f67c7d25f7b33725bed4cfcf98 \ No newline at end of file +643b54fcd38be2d969570b573be946f5e1d08914088bb2c6f9fcb9ecb900050b642fa8f0037b62f850775acaf9b55c4f8c1fa71c76dfce8935661ee3641dd9ba \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ARDSExacerbation.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ARDSExacerbation.zip.sha512 index c26bed0c5..e50a261fd 100644 --- a/data/human/adult/baselines/scenarios/patient/ARDSExacerbation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ARDSExacerbation.zip.sha512 @@ -1 +1 @@ -a93b98930693d1b60eea0e15905b3a70f72b9771954e4761788ed52c90b72e3d1e055e1a547924b762454d60c60958dd01ac348497c9f73e6d25b23e55fac84d \ No newline at end of file +1a568ffd907cf3afd47221fa8a06e1b2bb8e6a9d770d37abbee2ea1607f414db80d0ecfad25a23f397948601a8edde8b9b73da874ce4dddc5c26b28793791f18 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ARDSModerateBothLungs.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ARDSModerateBothLungs.zip.sha512 index e979d3531..fe28b530a 100644 --- a/data/human/adult/baselines/scenarios/patient/ARDSModerateBothLungs.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ARDSModerateBothLungs.zip.sha512 @@ -1 +1 @@ -d3538ae02406668f58c41ed39b8bf09db6a830720f350581ccc12f9f6249f70b22fbbbbde69c7a2cb3cac00650d57f0360daabbbb7edee9ed9ccfae90b38d28c \ No newline at end of file +4f1b8032be96de096af0a47475283742daf7dd5feea04d4fcec649ba4c2ee89c92fc5ef5c91a1964a5f53a67b55dcf6cd03b34154b605609343dd7e7b1ec7698 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/AcuteStress.zip.sha512 b/data/human/adult/baselines/scenarios/patient/AcuteStress.zip.sha512 index b993f3c87..90d1b3831 100644 --- a/data/human/adult/baselines/scenarios/patient/AcuteStress.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/AcuteStress.zip.sha512 @@ -1 +1 @@ -63aff51bf9dd70639fabb3652d6c1debe4920a2eb9066337a14382b465ad388fe4377c3a6b0e32bb679c938e31a196304355e2ec69b5abde2decc29f2a0a044b \ No newline at end of file +8b2366cb993268d1eb1ab5b41b17fa97dbe19f55caffae0fe7056a7252643e14fcaa1ec33b78c77226d6338ee05504a88ce1a79dd6fc2a2bffffc992fac55f92 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/AsthmaAttackLifeThreateningAcute.zip.sha512 b/data/human/adult/baselines/scenarios/patient/AsthmaAttackLifeThreateningAcute.zip.sha512 index 097633c1a..e5485d5b6 100644 --- a/data/human/adult/baselines/scenarios/patient/AsthmaAttackLifeThreateningAcute.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/AsthmaAttackLifeThreateningAcute.zip.sha512 @@ -1 +1 @@ -41cf030e19ecc061cb1532d5d03dee737d6132009cf6d28219fd82e219e4c2068ff82ff702a8a50c84b9c620699a8649a0a42ccf3e45645f1b57ddf648e5c708 \ No newline at end of file +2408773f5362bd2aac99fd9ea3ba088c5a5dc31250554778b503846bfce8e282a23d86d0e328f35de99ce23c5602c05ede8b1d02d7ee08d3530873faf8cd372c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/AsthmaAttackModerateAcute.zip.sha512 b/data/human/adult/baselines/scenarios/patient/AsthmaAttackModerateAcute.zip.sha512 index 510c0b16e..794b2c87c 100644 --- a/data/human/adult/baselines/scenarios/patient/AsthmaAttackModerateAcute.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/AsthmaAttackModerateAcute.zip.sha512 @@ -1 +1 @@ -fd2f62e53ebe60f7d9ba740b13036e00c964e27496ca3f21161c2c16b3b10001c920b0de46bc55bf7ba1d6d15ef5e88c748a9bb43e77aa3e7ebbea59f06a15b8 \ No newline at end of file +5b543f7f026c30b38ac214300549821bece4ac71b8a50b984adf9d44ec24a020a4f1557c1daaf087c3612bd572f3faff841f11303d9069942bc1de7bdd2c9506 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/AsthmaAttackSevereAcute.zip.sha512 b/data/human/adult/baselines/scenarios/patient/AsthmaAttackSevereAcute.zip.sha512 index e13bce82c..fa7ad9df4 100644 --- a/data/human/adult/baselines/scenarios/patient/AsthmaAttackSevereAcute.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/AsthmaAttackSevereAcute.zip.sha512 @@ -1 +1 @@ -21443ee9f4f2e53ab4df0c49d48abf5f7be5e85eff69ef0a216a9360b8ffd4ad8f6dfd8b57c48cbd6d485029b2c5f89147c552ce2d409c82ccfd27adb964c4a8 \ No newline at end of file +d172cb820ecc67ae01deff420e2aa2e4b641adbc3c7a7bc04d7a1ff33716c54cefde26bea825f27cc1972576c91c2bfddb094b4e7843d473bb20b5b9123373cd \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/Baroreceptors.zip.sha512 b/data/human/adult/baselines/scenarios/patient/Baroreceptors.zip.sha512 index 538e72450..894afd96c 100644 --- a/data/human/adult/baselines/scenarios/patient/Baroreceptors.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/Baroreceptors.zip.sha512 @@ -1 +1 @@ -7e98e70688dbf246789266bd2314cf77377e65bfb9db9bfe77ffb26933da9634da398c5ffdf76f116f4ecbfba5cfbbe5fefcdd25ae6da025f88953a97607c754 \ No newline at end of file +b5852484205c0d88ff44c323d8724159529760ab436d02ed3126c1ddd0a3b37c37bfe24ed890fd8fdcc63569bb6f984baeb3bbd085994d2a52e8be043b853b65 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/BasicStandard.zip.sha512 b/data/human/adult/baselines/scenarios/patient/BasicStandard.zip.sha512 index dc5f67c35..e996df5c1 100644 --- a/data/human/adult/baselines/scenarios/patient/BasicStandard.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/BasicStandard.zip.sha512 @@ -1 +1 @@ -45ae9b0af95781c937804d959a6cea424f78ebdf8217d2dc49cf9551cc61e3d43110f59bb096d795607cf1efbd1331e0e754567c0c68d52745a3bbd4bf55b8b7 \ No newline at end of file +9e87ee1cd92a4f65d9adea9b2694d6a8c418fcee3b626acb669762d4c93abea55fef5c19870ed0728889ee55007dd0edb485b4eb87128b6da4f41b9ab2a58370 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/BrainInjury.zip.sha512 b/data/human/adult/baselines/scenarios/patient/BrainInjury.zip.sha512 index 7da5ef762..a0e0fece2 100644 --- a/data/human/adult/baselines/scenarios/patient/BrainInjury.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/BrainInjury.zip.sha512 @@ -1 +1 @@ -a4f930b2a88ceda5391a154e0987da021f003395239f79a4d9ebdae29c5624830c1e88b610d14cb40adecb64120aaaf9d564bde420c9d92722d6311fe38c59d1 \ No newline at end of file +fae54a4568eeee2a1cce2c042f370f5ff8ea31f32424a34646b22fa625d2bafa823fb36b5bccb5ea44552266529d23e145d1d19d17dc02d835f479fd31fa878d \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/BronchoConstrictionVaried.zip.sha512 b/data/human/adult/baselines/scenarios/patient/BronchoConstrictionVaried.zip.sha512 index c95bc7798..bdc52a3cf 100644 --- a/data/human/adult/baselines/scenarios/patient/BronchoConstrictionVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/BronchoConstrictionVaried.zip.sha512 @@ -1 +1 @@ -20427f3626c6e3c4de0bf5aea1f35e5bba2dbd5838fa9f1dda265c588a4938fd7b1e063861ceb471aedf9deef99708d8d38ea655cc09497cf667d8bcd5e7dfba \ No newline at end of file +14ff6f404d014200c5c1b4b09b77c70b8ac31ad9901d1c67f4fef922f8e36521a2671becd379aa7cf4350ca3a2c89d3bfd552b5f3f95d30b3d8abbeb40a9f31c \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/COPDExacerbation.zip.sha512 b/data/human/adult/baselines/scenarios/patient/COPDExacerbation.zip.sha512 index 5807f9dee..904ff6b77 100644 --- a/data/human/adult/baselines/scenarios/patient/COPDExacerbation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/COPDExacerbation.zip.sha512 @@ -1 +1 @@ -1234aa0f6025b32ab5fbee091c369521b493b86c8ffa367fbea63bc5d22e94e96346171902c8fe37ac24964faa71756575c8dd04da9b7149775103453d42daa5 \ No newline at end of file +85d4f62a4671e2c859ad410f3cc365e5308b3de1050ba76d54822891ab9921e4f5bd868b6113ebb78eeb1ff7abfec8864afa34152884448a4b830703562c1432 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/COPDSevereBronchitis.zip.sha512 b/data/human/adult/baselines/scenarios/patient/COPDSevereBronchitis.zip.sha512 index 8a0230cee..8e301f3e7 100644 --- a/data/human/adult/baselines/scenarios/patient/COPDSevereBronchitis.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/COPDSevereBronchitis.zip.sha512 @@ -1 +1 @@ -4ce44fe3242b95926ba511c10ac8f39d440f519e69a5d50e7e5aea5405cb97e1633c06256a45798d1e7b47e4b1476c79744ee135054139fcbcbd6659fb2bda95 \ No newline at end of file +c65eb4b530dd3f74f5ab65bfd726197e5a073f463ab92430f264544276421129ab679aa09a38b001b8332194d459185f72f8c73a6905874caf569adc60129cbf \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/COPDSevereEmphysema.zip.sha512 b/data/human/adult/baselines/scenarios/patient/COPDSevereEmphysema.zip.sha512 index 4a67b4ae0..a5b2ceeec 100644 --- a/data/human/adult/baselines/scenarios/patient/COPDSevereEmphysema.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/COPDSevereEmphysema.zip.sha512 @@ -1 +1 @@ -ed2f706e8c344656154aca17ceafad509a7ffaf0d19f399f3f3b0557ba8c8bfcb38dbcf6e04e6ad3f51a7ee9afa06f1a54266be17b4a4ce16215774aca0fc84d \ No newline at end of file +8221876a66082978a40479c109058f11198d43cfe651ffc457ffacdad4824af4fca17c63cf9a641f76f118edad5ab9696b45f6e4a1558025bbb97572d631b57f \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/Cough.zip.sha512 b/data/human/adult/baselines/scenarios/patient/Cough.zip.sha512 index e0c2c47bf..837fb7e55 100644 --- a/data/human/adult/baselines/scenarios/patient/Cough.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/Cough.zip.sha512 @@ -1 +1 @@ -41390394e1ccdf503402ecacdc107b23b3c600282a9df810e2248078cfd37dfdfed05596d6e6bcfc22bf783e53ad3b86978bec9f495f23e54b76d349ccac912f \ No newline at end of file +b011548115972b659ef1b5ba3ead2a8d4130c11071cabb57cc062be529c24159168e53cb1822aeb37b500ab1cb487a81a9661a72616c7e31eed2b15f61656a56 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/DyspneaVaried.zip.sha512 b/data/human/adult/baselines/scenarios/patient/DyspneaVaried.zip.sha512 index 87dbb72b1..fb3bcbdb4 100644 --- a/data/human/adult/baselines/scenarios/patient/DyspneaVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/DyspneaVaried.zip.sha512 @@ -1 +1 @@ -faee3a8853439f667731ab7c375178858d984c80a4ccfafa74a0646223c907df0741401ac9fc0d3f084498edf67860a49d04edb0fdea804304c5289dc84fa14f \ No newline at end of file +b50e3488fbee23e75b5356d58c51a5a945282ad8f8eb5573ef4dc258bd9a842fc0fd0ab1069cccf42a656607f36f0f7d40b78efcac4db71c9d11e85b8029f8d8 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/EffusionCondition.zip.sha512 b/data/human/adult/baselines/scenarios/patient/EffusionCondition.zip.sha512 index f4c534fd0..086af1727 100644 --- a/data/human/adult/baselines/scenarios/patient/EffusionCondition.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/EffusionCondition.zip.sha512 @@ -1 +1 @@ -734245ce18466f489448d4b9b4803493b4184425e504966f6af09d37c9132e2378aeb598f011846f35a79e6c4bca92f72424107a8ca8809aa23d2ab06f0d100b \ No newline at end of file +c56bb6c1b2fdf53b01fff2c581a3eefd3ee735bc8590105e968fbbfe33533fe29f9ea6bde0bdb4dea5c3495118513440baab61aad857b769dadc467da34054a3 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/EffusionConditionPlus.zip.sha512 b/data/human/adult/baselines/scenarios/patient/EffusionConditionPlus.zip.sha512 index c05531a94..af4446dda 100644 --- a/data/human/adult/baselines/scenarios/patient/EffusionConditionPlus.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/EffusionConditionPlus.zip.sha512 @@ -1 +1 @@ -dedff8cd3bc4d29d3a00ef04e1b6919c4d9f3fe01be9614e8d78301db795ba4696dfcf5e0cbba05dd1c823f918b839b7d7772d5f8abb4446aff26e293c3c076a \ No newline at end of file +94a57530843fcd9bf75a85ee5040790c013d7f411b8996ded0e05bd15f4514c83b72f0c9946099149c3035a4fe3922d530372d0da98d03f4c99884d517c78669 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/HemothoraxVaried.zip.sha512 b/data/human/adult/baselines/scenarios/patient/HemothoraxVaried.zip.sha512 index 15be43d24..a594592b0 100644 --- a/data/human/adult/baselines/scenarios/patient/HemothoraxVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/HemothoraxVaried.zip.sha512 @@ -1 +1 @@ -cdc255bfe16ba8cb4955d4a1c407f9de98db744499e0d4a30e4878d158d57d258eefabcde60b7c3cd8bf271bc47a68b9592997f4aa2399e81ab5cfac1b7b5471 \ No newline at end of file +5ba60ad2fd0d9a96f4c53ddce5d5a25539c1b448eb5dfa5e03cf79573f1eb1d3f6410333815529808bd1ac4a2692f7108e15b5178365b74ddd9fbd71a42eee55 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/PneumoniaExacerbation.zip.sha512 b/data/human/adult/baselines/scenarios/patient/PneumoniaExacerbation.zip.sha512 index 98dddf2b4..6ac6daf22 100644 --- a/data/human/adult/baselines/scenarios/patient/PneumoniaExacerbation.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/PneumoniaExacerbation.zip.sha512 @@ -1 +1 @@ -bcd50210a91422466a2fc115606d098963e210217688b5f69e349479b7190f85a23c8d4926b45635f0278c8455028c71da1170b2f4e4fe6f25af8afac8567e33 \ No newline at end of file +5ef2b841db6ae085f2befc4f5cc910d0598e5775e1eb0a761fc75dd67888465af8d6f197ae14b00e5a2b8607c46d4958ae74a11de8541f2259c6248dfa97af61 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/PneumoniaModerateBothLungs.zip.sha512 b/data/human/adult/baselines/scenarios/patient/PneumoniaModerateBothLungs.zip.sha512 index 1dc8c348b..8636189a9 100644 --- a/data/human/adult/baselines/scenarios/patient/PneumoniaModerateBothLungs.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/PneumoniaModerateBothLungs.zip.sha512 @@ -1 +1 @@ -847116fae6e0d65b969aa6af657360ad8216eeb8d9cc5db96cc4ba24e6ec1aa11cc19bc32be37ef12bf6fd4dab436042ddff3bd92b95d05ce4a7cab588b21b90 \ No newline at end of file +dc0d90dd99d1e659ac4ac2326b901cbdcd00057c36b93f54abb4920f2f20334b2f1a9ad7df09ded88dbaa9dab4e868c88c523801bc6050b9d1dcdc3da6a28eea \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/PneumoniaSevereLeftLobe.zip.sha512 b/data/human/adult/baselines/scenarios/patient/PneumoniaSevereLeftLobe.zip.sha512 index a7429036e..bc0213d85 100644 --- a/data/human/adult/baselines/scenarios/patient/PneumoniaSevereLeftLobe.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/PneumoniaSevereLeftLobe.zip.sha512 @@ -1 +1 @@ -06a24e7efe12d4407c1118964c5d07a748b48fef9197ddcbba137d9c64e1f1fe994132e668a033bc7d840d4a8dcc8009b79438b956694c7742e4ab22b204787a \ No newline at end of file +8446dfbaf7aba6d698e4872b9c012c1a4bb88173627cfc0e2a39bd13429f6de0bbfc5aa43d3cf30065658f69d4bf39e6dde9bb02dd051abb19396a15887deb87 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/PneumoniaSevereRightLung.zip.sha512 b/data/human/adult/baselines/scenarios/patient/PneumoniaSevereRightLung.zip.sha512 index 0d1581c55..a5bb95af1 100644 --- a/data/human/adult/baselines/scenarios/patient/PneumoniaSevereRightLung.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/PneumoniaSevereRightLung.zip.sha512 @@ -1 +1 @@ -1edbd8c071aef1d4037bd4f1ec0b8104c2bcaae0f40c59f935075a9b219db7c66b3404c4acaeef9b28d506c544c09058a9b3f6a61084829cc6e500e2adb571f9 \ No newline at end of file +efa4b25db3df868946117579f055fd96981c7b11ce2d272542a59236d08b2e569b7f9f8629af4880981291b8058eda8db443a79d8a18c2a2a7986d6223c23ff1 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/PulmonaryFibrosisSevere.zip.sha512 b/data/human/adult/baselines/scenarios/patient/PulmonaryFibrosisSevere.zip.sha512 index 6e92db8bf..740256572 100644 --- a/data/human/adult/baselines/scenarios/patient/PulmonaryFibrosisSevere.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/PulmonaryFibrosisSevere.zip.sha512 @@ -1 +1 @@ -67231009f989055638ab2e83901163c01fd665f8eb860a0947cc4cd0960146367b6cf175c572ea2a149dfd1212aca1259aa625e73a7658d336c4ffc22fbe05cb \ No newline at end of file +d7327a73b0af215e1b33b9e92b3c166433cc6e0fc441b76afcfc51ba50a965b9b216610b6f50a87121a92665352a4df273c11dd9e224cde7c4480f06cf9bedb2 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/RenalStenosisModerateUnilateral.zip.sha512 b/data/human/adult/baselines/scenarios/patient/RenalStenosisModerateUnilateral.zip.sha512 index f90fb009f..6d7328958 100644 --- a/data/human/adult/baselines/scenarios/patient/RenalStenosisModerateUnilateral.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/RenalStenosisModerateUnilateral.zip.sha512 @@ -1 +1 @@ -94b9b7c97fd1b5817cef3ecdf3ad504e76eab7ce2419142692aa3448a77186252b8d3e17a25641a6f203fde6bda6c35a1516f4ccf83abd62de38e6cba5ae1020 \ No newline at end of file +b8bc7d6ead1f8fff6b09a54dcf136317ac59056daabadbe938fd696abcaa088be2e7885381620dca72e65844f5b47f48d6c2ed7c41b97c11d4e151f0813f9270 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/RenalStenosisSevereBilateral.zip.sha512 b/data/human/adult/baselines/scenarios/patient/RenalStenosisSevereBilateral.zip.sha512 index 56042cced..c72bb09c7 100644 --- a/data/human/adult/baselines/scenarios/patient/RenalStenosisSevereBilateral.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/RenalStenosisSevereBilateral.zip.sha512 @@ -1 +1 @@ -be9ec903fd8b31777d95fb34cefb4b4d37170569d6e12d56b8a46f89b62d4e62099420c7f547a3e96b7ce16c5533722ae165f54a7405c03829a599fbb97d5796 \ No newline at end of file +e5004bfcd2ce4ea9c40b88a7a0a85cfc0cf394783842562210210bf43532bc10fba8f941a25907d4dcc2f53a5f16eb9c4ecaed4d7a2c6eda57181514964d4b2e \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/RespiratoryFatigue.zip.sha512 b/data/human/adult/baselines/scenarios/patient/RespiratoryFatigue.zip.sha512 index 487b8bb2a..9370ef164 100644 --- a/data/human/adult/baselines/scenarios/patient/RespiratoryFatigue.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/RespiratoryFatigue.zip.sha512 @@ -1 +1 @@ -232bbf73101c87607f4fb0676202ed85694cfa1dedbc8d79a5dfa3a85b59d6df82e2df8c8e37d77350ff77dd1b47c730cd2a6696ce0775761b945b0c3dae0e0c \ No newline at end of file +313240c0676e11a35d77465f133d71b938818895119d4844bf6e5e3ae5c7022d5f4238af09c264ab6297462e202c1a1fd7710678dcbe3176295333e3e13b7808 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxBilateral.zip.sha512 b/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxBilateral.zip.sha512 index 6a6c6bc6e..4c6f27e59 100644 --- a/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxBilateral.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxBilateral.zip.sha512 @@ -1 +1 @@ -42efa93fdaad57ca0801472ea6e326ac5ed536e4288453ae3b6b45d1ce58f56c867c20c2c0dad1f23dc9ff100feca6e243e74f0221a004d3af699dd9245e2747 \ No newline at end of file +39cdf6bdff1e9f50d0776d52c5ebd7c030be65d455c8fe48d05cefc59babc13a88acb4f3b5571b862adf815576e63768f07d67eeacb7e82c312537add3cb0ab6 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxClosedVaried.zip.sha512 b/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxClosedVaried.zip.sha512 index 8cd2678fa..a85455ef2 100644 --- a/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxClosedVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxClosedVaried.zip.sha512 @@ -1 +1 @@ -1b7051ddc93ef35a6adbde01ff91c099bb97e65245c4f8e2419a51bc85f37aeb844714a5ce22fbe7673c9a5dbb839cf07aa0dcb2a490c3b5c508bb24ef033368 \ No newline at end of file +022e1014ec978d32e96f9549fcccd8bd2a1935f31a6d80561df8456ad6f803fb1af279e221497db1e1461c3b2f222d54e55f677a12168b657072dfbf0f3d6486 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxOpenVaried.zip.sha512 b/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxOpenVaried.zip.sha512 index ce5d3959b..a66ccc443 100644 --- a/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxOpenVaried.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/TensionPneumothoraxOpenVaried.zip.sha512 @@ -1 +1 @@ -f422abcb5d296c28ec0b44521aadbc82eb55d71a36bb78f39ee9a73f9eb6565233826da26ead9aeb9b324e2d7fcf291e2d0522d3d1cc915b4bda742f0d11ff40 \ No newline at end of file +768c76b1745ed16ff382399791b63919cdee730712da0cf10098e013072757632da396374667e246112ece88c50b474606a4d0ccb7cb385c7ef6014b236b40cc \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ZeroARDS.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ZeroARDS.zip.sha512 index 25d95316f..9e684ad5d 100644 --- a/data/human/adult/baselines/scenarios/patient/ZeroARDS.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ZeroARDS.zip.sha512 @@ -1 +1 @@ -69ba6fa3c2023c3b4392df8a90ffc8f833e65d17ed6549032f1dce48b57794c1d98788166ab05dd9c56fe0fb63648a1651aa64ce8951a7c0887f946bbfa82c8e \ No newline at end of file +3d50ef1f6405ef520a2b2638a7d0eac4ccf0cc7a1baa149d7a6aef594aac787fc2195593122cec037b983387b333b0b0eec52bb94d5fe8ede5d0f77fb7c50c52 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ZeroAnemia.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ZeroAnemia.zip.sha512 index 1bfdbe1f4..0fc33f554 100644 --- a/data/human/adult/baselines/scenarios/patient/ZeroAnemia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ZeroAnemia.zip.sha512 @@ -1 +1 @@ -a40a6559f85c6fe389c3857320fa67524041cbc503f382513601a31bc6fd45fb7d5fdeec5c2600e11b5034219faf3a24aca4846f99e2bb36cfaa3dc0e83101c2 \ No newline at end of file +2b1815373a82c3cb3199e140c34dadcb6a222dc980fb4136f123102ece83e554a20d203f813a41c941ff2473b6e9cac9a7428c04a2d01e33754bcdc93629685b \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ZeroCOPD.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ZeroCOPD.zip.sha512 index c231f518f..073b0b09f 100644 --- a/data/human/adult/baselines/scenarios/patient/ZeroCOPD.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ZeroCOPD.zip.sha512 @@ -1 +1 @@ -745afac91ca87249bbad49d08b97ac6ed47fc94cdb4fca5ed62c2bcec73a19cf3f64025e92aec08201c2c4cf1233b861ef7e1d1ed0f26b247ecedbce36930543 \ No newline at end of file +5b8ca03d488d3d4b3b22c70640ac14ba1871102d68c2085817065aa096e7eaf5890e45a5a774a2e29a416184f3bf8d9b4bfb6fe2ed50d1b1f5a41717acac70c2 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ZeroPericardialEffusion.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ZeroPericardialEffusion.zip.sha512 index e7de3e41d..1057cb598 100644 --- a/data/human/adult/baselines/scenarios/patient/ZeroPericardialEffusion.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ZeroPericardialEffusion.zip.sha512 @@ -1 +1 @@ -9b41778bd673538b7dd1d9a9a79cd39a4edc94cacc15f7d50b09144ca8eca0709f637d63468f40cd90417493c6bda2ccdcb8dd1fcaeb12e1f4b404533564d876 \ No newline at end of file +03c2585d4604768dcaf7c27eb655e9b7eec683c75f055a1e96307cca60678c3081bcb0a9df5a48169a3c7ce6db7281da77491be4d9d7a4397802dad66b0227c8 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ZeroPneumonia.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ZeroPneumonia.zip.sha512 index 4e9a3825f..5c0046c5e 100644 --- a/data/human/adult/baselines/scenarios/patient/ZeroPneumonia.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ZeroPneumonia.zip.sha512 @@ -1 +1 @@ -af835297630846b65ecf2c5f4d64382ad9e8bdacd7408ab5a0658fca2d691870f6424a4b8b6ca093764deae4a3f41d34cb9376be78228001cc33e8b1b78a5b9c \ No newline at end of file +e29abd5bb5a1e24a5daa722a398b33a0e96b53fccc9a1c16bdd1262e4e610a1f8def9b25c5c4ec0e65f43dfff9e222e83a4664564e1e84cedabc6f7daa3b6789 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ZeroPulmonaryFibrosis.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ZeroPulmonaryFibrosis.zip.sha512 index dbb35b03c..dbbb834c0 100644 --- a/data/human/adult/baselines/scenarios/patient/ZeroPulmonaryFibrosis.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ZeroPulmonaryFibrosis.zip.sha512 @@ -1 +1 @@ -f4b721be0bead5806e7d94dc7ec371d88b6d2d9efa92b3a6da9a71fbc0e174ff0de336680758a19ed52a474f0b40acbf78993e6f069cf4b8a12af4cac4471458 \ No newline at end of file +ab06215105fae40734cff68067c7405e854adf531dff5ad13dfedab94288dc5cd2ad7f2f2b0d2350290fbf249698292bc5f12f567030653c6dce58712c5cd007 \ No newline at end of file diff --git a/data/human/adult/baselines/scenarios/patient/ZeroRenalStenosis.zip.sha512 b/data/human/adult/baselines/scenarios/patient/ZeroRenalStenosis.zip.sha512 index 4488b409a..dfee713a5 100644 --- a/data/human/adult/baselines/scenarios/patient/ZeroRenalStenosis.zip.sha512 +++ b/data/human/adult/baselines/scenarios/patient/ZeroRenalStenosis.zip.sha512 @@ -1 +1 @@ -f4538ef743b84ee3b1a8986c020d1255e9fe2bad4a668a12ac295975d18fa6c75773db85a82ea11b95ef40b28c5752be5d04f3f07b64ef7ff966aba6fafccaab \ No newline at end of file +8a1e4c76de3c64538326969dedf4b8915f28c89d6a9fc6e408542e0b8ce2c47f1802d3f98f789c90f2fd3945f8d71c2834a6b71c2f57d08543b4ab6c5d570ce1 \ No newline at end of file -- GitLab From 26acc2fad1b02bd0e93bd2f3bf253bdafdc03d7f Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Thu, 30 Jan 2025 18:03:21 -0500 Subject: [PATCH 16/18] Clean up hemorrhage documentation --- .../Scenarios/Hemorrhage/Hemorrhage.json | 127 ++++-------------- .../Scenarios/Hemorrhage/Hemorrhage_Action.md | 34 ++--- .../HemorrhageGroupsValidation.jpg | Bin 14989 -> 0 bytes .../Hemorrhage/HemorrhageGroupsValidation.jpg | Bin 0 -> 195991 bytes .../HemorrhageSeverity.png | Bin .../HemorrhageSeverityAndFlow.png | Bin .../HemorrhageShockValidation.jpg | Bin docs/Methodology/CardiovascularMethodology.md | 13 +- src/python/pulse/cdm/utils/markdown.py | 9 +- 9 files changed, 58 insertions(+), 125 deletions(-) delete mode 100644 docs/Images/Cardiovascular/HemorrhageGroupsValidation.jpg create mode 100644 docs/Images/Hemorrhage/HemorrhageGroupsValidation.jpg rename docs/Images/{Cardiovascular => Hemorrhage}/HemorrhageSeverity.png (100%) rename docs/Images/{Cardiovascular => Hemorrhage}/HemorrhageSeverityAndFlow.png (100%) rename docs/Images/{Cardiovascular => Hemorrhage}/HemorrhageShockValidation.jpg (100%) diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json index a4572278b..d6560939d 100644 --- a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage.json @@ -46,56 +46,6 @@ ] } }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 4 No Fluid", - "PlotConfig": - { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage", "PercentOfBaselineMode": "All" - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" } - ], - "ValidationSource": { "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicCardiacOutputShockValidation.csv" }, - "Series": - [ - { "Title": "Cardiac Output - Response to Hemorrhage", "OutputFilename": "CardiacOutputShock", - "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", - "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "CardiacOutput(L/min)" ], - "YLabel": "Pulse Normalized Cardiac Output", "X2Header": "BloodVolumeLost(%)", - "Y2Header": [ "NormalizedCardiacOutput" ], "Y2Label": "Validation Normalized Cardiac Output" } - ] - } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 4 No Fluid", - "PlotConfig": - { - "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage", "PercentOfBaselineMode": "All" - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" } - ], - "ValidationSource": - { - "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicMeanArterialPressureShockValidation.csv" - }, - "Series": - [ - { "Title": "Mean Arterial Pressure - Response to Hemorrhage", "OutputFilename": "MeanArterialPressureShock", - "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", - "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "MeanArterialPressure(mmHg)" ], - "YLabel": "Pulse Normalized Mean Arterial Pressure", "X2Header": "BloodVolumeLost(%)", - "Y2Header": [ "NormalizedMeanArterialPressure" ], - "Y2Label": "Validation Normalized Mean Arterial Pressure" } - ] - } - }, { "MultiHeaderSeriesPlotter": { @@ -121,54 +71,6 @@ ] } }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 2 Blood", - "PlotConfig": - { - "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Hemorrhage/", "PlotActions": true, "PlotEvents": true - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2BloodResults.csv" } - ], - "Series": - [ - { "OutputFilename": "Class2Blood_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, - { "OutputFilename": "Class2Blood_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, - { "OutputFilename": "Class2Blood_Systolic", "Title": "", "YHeader": [ "SystolicArterialPressure(mmHg)" ] }, - { "OutputFilename": "Class2Blood_Diastolic", "Title": "", "YHeader": [ "DiastolicArterialPressure(mmHg)" ] }, - { "OutputFilename": "Class2Blood_Legend", - "PlotConfig": { "LegendMode": "OnlyActionEventLegend", - "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } - ] - } - }, - { - "MultiHeaderSeriesPlotter": - { - "Comment": "Hemorrhages - Class 2 Saline", - "PlotConfig": - { - "ImageProperties": { "Height_inch": 7, "Width_inch": 11 }, "LegendMode": "NoLegends", - "OutputPathOverride": "./docs/html/plots/Hemorrhage/", "PlotActions": true, "PlotEvents": true - }, - "PlotSource": - [ - { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class2SalineResults.csv" } - ], - "Series": - [ - { "OutputFilename": "Class2Saline_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, - { "OutputFilename": "Class2Saline_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, - { "OutputFilename": "Class2Saline_Legend", - "PlotConfig": { "LegendMode": "OnlyActionEventLegend", - "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } - ] - } - }, { "MultiHeaderSeriesPlotter": { @@ -184,9 +86,9 @@ ], "Series": [ - { "OutputFilename": "Class4NoFluid_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, - { "OutputFilename": "Class4NoFluid_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, - { "OutputFilename": "Class4NoFluid_Legend", + { "OutputFilename": "ToShock_BloodVolume", "Title": "", "YHeader": [ "BloodVolume(L)" ] }, + { "OutputFilename": "ToShock_Hb", "Title": "", "YHeader": [ "HemoglobinContent(g)" ] }, + { "OutputFilename": "ToShock_Legend", "PlotConfig": { "LegendMode": "OnlyActionEventLegend", "ImageProperties": { "DimensionMode": "Unbound" }, "PlotEvents": false } } ] @@ -552,6 +454,29 @@ "DataRequestedFile": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults-Segments.json" } }, + { + "MultiHeaderSeriesPlotter": + { + "Comment": "Hemorrhages - Class 4 No Fluid", + "PlotConfig": + { + "Gridlines": true, "OutputPathOverride": "./docs/html/plots/Hemorrhage", "PercentOfBaselineMode": "All" + }, + "PlotSource": + [ + { "CSVData": "$VERIFICATION_DIR/scenarios/Hemorrhage/Class4NoFluidResults.csv" } + ], + "ValidationSource": { "CSVData": "$VALIDATION_DIR/Cardiovascular/HemorrhagicCardiacOutputShockValidation.csv" }, + "Series": + [ + { "Title": "Cardiac Output - Response to Hemorrhage", "OutputFilename": "CardiacOutputShock", + "XHeader": "BloodVolume(L)", "XLabel": "Percent Of Blood Loss", + "XBounds": { "LowerBound": 0, "UpperBound": 50 }, "YHeader": [ "CardiacOutput(L/min)" ], + "YLabel": "Pulse Normalized Cardiac Output", "X2Header": "BloodVolumeLost(%)", + "Y2Header": [ "NormalizedCardiacOutput" ], "Y2Label": "Validation Normalized Cardiac Output" } + ] + } + }, { "MultiHeaderSeriesPlotter": { diff --git a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md index 5cb173caf..1fcc4d493 100644 --- a/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md +++ b/data/human/adult/validation/Scenarios/Hemorrhage/Hemorrhage_Action.md @@ -20,9 +20,9 @@ Where Rmin is the minimum resistance, P is the blood pressure at the
- -
+ +
@@ -39,9 +39,9 @@ The hemorrhage response was validated with a comparison to the literature. The m
- -
+ +
@@ -60,9 +60,9 @@ The different types of shock are evident in the data collected for groups of dog
- -
+ +
@@ -82,14 +82,14 @@ We also saw the expected blood volume, pressure, heart rate, and substance conce
- -
+ +

- +

@endhtmlonly
@@ -101,14 +101,14 @@ We also saw the expected blood volume, pressure, heart rate, and substance conce
- -
+ +

- +
@endhtmlonly @@ -122,20 +122,20 @@ We also saw the expected blood volume, pressure, heart rate, and substance conce
- - - -
+ +
+ +

- +
@endhtmlonly diff --git a/docs/Images/Cardiovascular/HemorrhageGroupsValidation.jpg b/docs/Images/Cardiovascular/HemorrhageGroupsValidation.jpg deleted file mode 100644 index 5d36b765f32742197bdac7cebe1f5c53e1589ab0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14989 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

-A pressure-volume curve is used to represent the evolution of the cardiac cycle from the systolic contraction to diastolic relaxation. The pressure-volume curve for the left ventricle is shown in @equationref {PVLoop}. Starting from the bottom left and moving clockwise, the curve demonstrates a rapid increase in pressure with no change in volume. This indicates the systolic contraction of the cardiac cycle. Following this, the pressure declines rapidly as the heart expands during diastole. The last portion of the curve shows decreasing volume at constant pressure. Normally, the pressure would decrease slightly due to the imperfect mitral valve, which does not close instantly. The engine uses ideal valves, which close instantaneously, causing the pressure to be maintained as volume decreases. +A pressure-volume curve is used to represent the evolution of the cardiac cycle from the systolic contraction to diastolic relaxation. The pressure-volume curve for the left ventricle is shown in @figureref {PVLoop}. Starting from the bottom left and moving clockwise, the curve demonstrates a rapid increase in pressure with no change in volume. This indicates the systolic contraction of the cardiac cycle. Following this, the pressure declines rapidly as the heart expands during diastole. The last portion of the curve shows decreasing volume at constant pressure. Normally, the pressure would decrease slightly due to the imperfect mitral valve, which does not close instantly. The engine uses ideal valves, which close instantaneously, causing the pressure to be maintained as volume decreases. @htmlonly
@@ -177,7 +177,7 @@ This data is stored in a text file. To account for the variable heart rate, rhythms are time series of voltage that is representative of a single cardiac cycle. The points are then interpolated based on the length of the cardiac cycle. -@equationref {SinusECG} shows the lead 3 sinus waveform in Pulse compared to an example sinus waveform with the key features highlighted. +@figureref {SinusECG} shows the lead 3 sinus waveform in Pulse compared to an example sinus waveform with the key features highlighted. @htmlonly
@@ -382,7 +382,7 @@ Pulse will transition the patient to this heart rate over 60s. For stable ventricular tachycardia, the heart rate baseline is set to 130. For unstable ventricular tachycardia, the heart rate baseline is set to 160. The blood pressure was reduced through for unstable ventricular tachycardia by adding systemic compliance and resistance modifiers. -The heart rate and blood pressure for stable and unstable ventricular tachycardia are shown in @equationref {ECGHRVentricularTachy}. +The heart rate and blood pressure for stable and unstable ventricular tachycardia are shown in @figureref {ECGHRVentricularTachy}. All feedback and imapcts from additional actions will still impact the hemodynamics of the cardiovascular system from this new starting rate.
@@ -700,6 +700,7 @@ There are three CPR scenarios for validation. Each scenario perscribes the same | Chest CompressionsForce Scale | 40 | 165-170 | 80 per minute [Direct calculation] | 39.27 @cite redberg1993physiology Approx. 70-80 @cite gruben1990system 105 +/- 41 @cite kim2008direction | 13.97 @cite redberg1993physiology Approx. 40 @cite gruben1990system 33 +/- 10 @cite kim2008direction | 21.13 @cite redberg1993physiology | 17-27% Normal @cite kim2008direction | 19.7 @cite redberg1993physiology 25 +/- 8 @cite kim2008direction | > 0 during compression (translated from dog study) @cite rudikoff1980mechanisms | 34% +/- 16 @cite kim2008direction | +### Hemorrhage @anchor hemorrhage-validation @insert ./validation/markdown/Hemorrhage_Validation.md diff --git a/src/python/pulse/cdm/utils/markdown.py b/src/python/pulse/cdm/utils/markdown.py index b44e9dec8..5f9ec3844 100644 --- a/src/python/pulse/cdm/utils/markdown.py +++ b/src/python/pulse/cdm/utils/markdown.py @@ -133,6 +133,7 @@ def process_file(fpath: Path, ref_dir: Path, dest_dir: Path, ref_defs.append(ref_name) return ref_defs + table_num = 1 fig_num = 1 eq_num = 1 @@ -166,6 +167,9 @@ def process_file(fpath: Path, ref_dir: Path, dest_dir: Path, for idx, word in enumerate(words): if tag in word: ref_name = get_table_tag(words[idx + 1]) + if ref_name not in ref_defs: + _pulse_logger.fatal(f"Could not find {ref_name} in {ref_defs}") + exit(0) words[idx] = word.replace(tag, f"{replacement}") words[idx+1] = words[idx + 1].replace(ref_name, f"{ref_defs[ref_name]}") words[:] = [word for word in words if word] @@ -186,10 +190,13 @@ def process_file(fpath: Path, ref_dir: Path, dest_dir: Path, line = _replace_refs(line, "@equationref", "Equation", eq_refs) lines[idx] = line + return lines def _process_file(fpath: Path, ancestors: Set[Path]) -> List[str]: _pulse_logger.info(f"Processing file: {fpath}") + # if "Hemorrhage_Validation.md" in str(fpath): + # print("Here") if fpath.resolve() in ancestors: raise RuntimeError(f"Circular insert involving {fpath} detected. Aborting.") ancestors.add(fpath.resolve()) @@ -264,7 +271,7 @@ def main(): _pulse_logger.error(f"Cannot find source directory: {sys.argv[1]}") else: _pulse_logger.error( - "Command arguments are: " \ + "Command arguments are: " " [Directory where to find references for insert tags]" ) except Exception as e: -- GitLab From 69c65c4cee0eeaf5697f7a3324cc74d0b010cff5 Mon Sep 17 00:00:00 2001 From: Aaron Bray Date: Thu, 30 Jan 2025 17:06:11 -0500 Subject: [PATCH 17/18] Add generation date and git hash to web page footer --- CMakeLists.txt | 6 +++++- bin/run.cmake.in | 8 ++++---- docs/Doxygen/{footer.html => footer.html.in} | 4 +++- .../{footer_minimum.html => footer_minimum.html.in} | 1 + 4 files changed, 13 insertions(+), 6 deletions(-) rename docs/Doxygen/{footer.html => footer.html.in} (90%) rename docs/Doxygen/{footer_minimum.html => footer_minimum.html.in} (87%) diff --git a/CMakeLists.txt b/CMakeLists.txt index ec974dce7..21324a791 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -387,7 +387,6 @@ configure_file(${CMAKE_SOURCE_DIR}/bin/run.config.in "${CMAKE_INSTALL_PREFIX}/bi configure_file(${CMAKE_SOURCE_DIR}/docs/Doxygen/full.doxy.in ${CMAKE_INSTALL_PREFIX}/bin/docs/full.doxy @ONLY) configure_file(${CMAKE_SOURCE_DIR}/docs/Doxygen/report.doxy.in ${CMAKE_INSTALL_PREFIX}/bin/docs/report.doxy @ONLY) - #----------------------------------------------------------------------------- # This variable controls the prefix used to generate the following files: # PulseConfigVersion.cmake @@ -412,6 +411,11 @@ endif() configure_file(cmake/PulseBuildInformation.cpp.in ${CMAKE_BINARY_DIR}/src/cpp/PulseBuildInformation.cpp) +string(TIMESTAMP build_year "%Y") +string(TIMESTAMP build_date "%Y-%m-%d") +configure_file(${CMAKE_SOURCE_DIR}/docs/Doxygen/footer.html.in ${CMAKE_INSTALL_PREFIX}/bin/docs/footer.html @ONLY) +configure_file(${CMAKE_SOURCE_DIR}/docs/Doxygen/footer_minimum.html.in ${CMAKE_INSTALL_PREFIX}/bin/docs/footer_minimum.html @ONLY) + #------------------------------------------------------------------------------ # Configure PulseConfigVersion.cmake common to build and install tree include(CMakePackageConfigHelpers) diff --git a/bin/run.cmake.in b/bin/run.cmake.in index f0794a4f2..21a9c5d2f 100644 --- a/bin/run.cmake.in +++ b/bin/run.cmake.in @@ -72,9 +72,9 @@ elseif(cmd STREQUAL "doxygen" OR cmd STREQUAL "validate") file(APPEND ./docs/panel_footer.html "${FOOTER}") endfunction() if(cmd STREQUAL "doxygen") - clean_docs(TRUE) file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/header.html HEADER) - file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/footer.html FOOTER) + file(READ ./docs/footer.html FOOTER) + clean_docs(TRUE) # Clean needs HEADER and FOOTER set before its called file(COPY @CMAKE_SOURCE_DIR@/docs/Sources.bib DESTINATION @CMAKE_INSTALL_PREFIX@/bin/docs/) # These are run above execute_process(COMMAND "@Python_CMD@" "../python/pulse/pipelines/patient_validation.py" -i=verification RESULT_VARIABLE py_result) @@ -100,9 +100,9 @@ elseif(cmd STREQUAL "doxygen" OR cmd STREQUAL "validate") setup_landing_page(focus.html) setup_landing_page(support.html) elseif(cmd STREQUAL "validate") - clean_docs(TRUE) file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/header_minimum.html HEADER) - file(READ @CMAKE_SOURCE_DIR@/docs/Doxygen/footer_minimum.html FOOTER) + file(READ ./docs/footer_minimum.html FOOTER) + clean_docs(TRUE) # Clean needs HEADER and FOOTER set before its called # Assumption: always use the test results when explicitly running validation on a xlsx file(COPY @CMAKE_SOURCE_DIR@/docs/Sources.bib DESTINATION @CMAKE_INSTALL_PREFIX@/bin/docs/) set(exec_opt "-tf") diff --git a/docs/Doxygen/footer.html b/docs/Doxygen/footer.html.in similarity index 90% rename from docs/Doxygen/footer.html rename to docs/Doxygen/footer.html.in index 6f6c7fe55..282785739 100644 --- a/docs/Doxygen/footer.html +++ b/docs/Doxygen/footer.html.in @@ -15,7 +15,9 @@