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/Actions.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;
  pulse.cdm.bind.OverridesData 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;
}
