syntax = "proto3";
package pulse.study.bind.sensitivity_analysis;
option java_package = "com.kitware.pulse.study.bind.sensitivity_analysis";
option csharp_namespace = "pulse.study.bind.sensitivity_analysis";
option optimize_for = SPEED;

import "pulse/cdm/bind/Properties.proto";

message SimulationData
{
  // A filename without an extension (can/should have path also)
  // The engine will use this to create multiple output files (*.log and *.csv)
  uint32                                ID                                            = 1;
  string                                Name                                          = 2;
  map<string,pulse.cdm.bind.ScalarData> Overrides                                     = 3;
  
  // New mean variables
  double                                MeanAortaInFlow_mL_Per_s                      = 4;
  double                                MeanArterialOxygenPartialPressure_mmHg        = 5;
  double                                MeanBoneVasculatureInFlow_mL_Per_s            = 6;
  double                                MeanBrainVasculatureInFlow_mL_Per_s           = 7;
  double                                MeanFatVasculatureInFlow_mL_Per_s             = 8;
  double                                MeanKidneyVasculatureInFlow_mL_Per_s          = 9;
  double                                MeanLargeIntestineVasculatureInFlow_mL_Per_s  = 10;
  double                                MeanLeftArmVasculatureInFlow_mL_Per_s         = 11;
  double                                MeanLeftHeartInFlow_mL_Per_s                  = 12;
  double                                MeanLeftHeartPressure_mmHg                    = 13;
  double                                MeanLeftKidneyVasculatureInFlow_mL_Per_s      = 14;
  double                                MeanLeftLegVasculatureInFlow_mL_Per_s         = 15;
  double                                MeanLeftPulmonaryArteriesInFlow_mL_Per_s      = 16;
  double                                MeanLeftPulmonaryCapillariesInFlow_mL_Per_s   = 17;
  double                                MeanLeftPulmonaryVeinsInFlow_mL_Per_s         = 18;
  double                                MeanLiverVasculatureInFlow_mL_Per_s           = 19;
  double                                MeanMuscleVasculatureInFlow_mL_Per_s          = 20;
  double                                MeanMyocardiumVasculatureInFlow_mL_Per_s      = 21;
  double                                MeanPulmonaryArteriesInFlow_mL_Per_s          = 22;
  double                                MeanPulmonaryCapillariesInFlow_mL_Per_s       = 23;
  double                                MeanPulmonaryCapillariesPressure_mmHg         = 24;
  double                                MeanPulmonaryVeinsInFlow_mL_Per_s             = 25;
  double                                MeanPulmonaryVeinsPressure_mmHg               = 26;
  double                                MeanRightArmVasculatureInFlow_mL_Per_s        = 27;
  double                                MeanRightHeartInFlow_mL_Per_s                 = 28;
  double                                MeanRightHeartPressure_mmHg                   = 29;
  double                                MeanRightKidneyVasculatureInFlow_mL_Per_s     = 30;
  double                                MeanRightLegVasculatureInFlow_mL_Per_s        = 31;
  double                                MeanRightPulmonaryArteriesInFlow_mL_Per_s     = 32;
  double                                MeanRightPulmonaryCapillariesInFlow_mL_Per_s  = 33;
  double                                MeanRightPulmonaryVeinsInFlow_mL_Per_s        = 34;
  double                                MeanSkinVasculatureInFlow_mL_Per_s            = 35;
  double                                MeanSmallIntestineVasculatureInFlow_mL_Per_s  = 36;
  double                                MeanSplanchnicVasculatureInFlow_mL_Per_s      = 37;
  double                                MeanSpleenVasculatureInFlow_mL_Per_s          = 38;
  double                                MeanVenaCavaInFlow_mL_Per_s                   = 39;
  double                                MeanVenousCarbonDioxidePartialPressure_mmHg   = 40;
  double                                MeanVenousOxygenPartialPressure_mmHg          = 41;
  
  // System variables
  double                                BloodVolume_mL                                = 42;
  double                                CardiacOutput_mL_Per_min                      = 43;
  double                                DiastolicArterialPressure_mmHg                = 44;
  double                                HeartEjectionFraction                         = 45;
  double                                HeartStrokeVolume_mL                          = 46;
  double                                MeanArterialCarbonDioxidePartialPressure_mmHg = 47;
  double                                MeanArterialPressure_mmHg                     = 48;
  double                                MeanCentralVenousPressure_mmHg                = 49;
  double                                PulmonaryDiastolicArterialPressure_mmHg       = 50;
  double                                PulmonaryMeanArterialPressure_mmHg            = 51;
  double                                PulmonaryMeanCapillaryFlow_mL_Per_s           = 52;
  double                                PulmonarySystolicArterialPressure_mmHg        = 53;
  double                                SystolicArterialPressure_mmHg                 = 54;
  double                                SystemicVascularResistance_mmHg_s_Per_L       = 55;

  // Stabilization Information
  bool                                  AchievedStabilization                         = 56;
  double                                StabilizationTime_s                           = 57;
  double                                TotalSimulationTime_s                         = 58;
  
}

message SimulationListData
{
  string                       OutputRootDir                                 = 1;
  repeated SimulationData      Simulation                                    = 2;
}
