syntax = "proto3";
package pulse.proto;
option java_package = "com.kitware.physiology.pulse";
option optimize_for = SPEED;

import "cdm/Properties.proto";
import "cdm/Physiology.proto";


message BloodChemistryData
{
  cdm.BloodChemistrySystemData   Common                                              = 1;
  cdm.RunningAverageData         ArterialOxygenAverage_mmHg                          = 2;
  cdm.RunningAverageData         ArterialCarbonDioxideAverage_mmHg                   = 3;
}

message CardiovascularData
{
  cdm.CardiovascularSystemData   Common                                              = 1;
  bool                           StartSystole                                        = 2;
  bool                           HeartFlowDetected                                   = 3;
  bool                           EnterCardiacArrest                                  = 4;
  double                         CardiacCyclePeriod_s                                = 5;
  double                         CurrentCardiacCycleDuration_s                       = 6;
  double                         LeftHeartElastanceModifier                          = 7;
  double                         LeftHeartElastance_mmHg_Per_mL                      = 8;
  double                         LeftHeartElastanceMax_mmHg_Per_mL                   = 9;
  double                         LeftHeartElastanceMin_mmHg_Per_mL                   = 10;
  double                         RightHeartElastance_mmHg_Per_mL                     = 11;
  double                         RightHeartElastanceMax_mmHg_Per_mL                  = 12;
  double                         RightHeartElastanceMin_mmHg_Per_mL                  = 13;
  
  double                         CompressionTime_s                                   = 14;
  double                         CompressionRatio                                    = 15;
  double                         CompressionPeriod_s                                 = 16;
  
  double                         CurrentCardiacCycleTime_s                           = 17;
  double                         CardiacCycleDiastolicVolume_mL                      = 18;
  double                         CardiacCycleAortaPressureLow_mmHg                   = 19;
  double                         CardiacCycleAortaPressureHigh_mmHg                  = 20;
  double                         CardiacCyclePulmonaryArteryPressureLow_mmHg         = 21;
  double                         CardiacCyclePulmonaryArteryPressureHigh_mmHg        = 22;
  double                         LastCardiacCycleMeanArterialCO2PartialPressure_mmHg = 23;
  double                         CardiacCycleStrokeVolume_mL                         = 24;
  
  cdm.RunningAverageData         CardiacCycleArterialPressure_mmHg                   = 25;
  cdm.RunningAverageData         CardiacCycleArterialCO2PartialPressure_mmHg         = 26;
  cdm.RunningAverageData         CardiacCyclePulmonaryCapillariesWedgePressure_mmHg  = 27;
  cdm.RunningAverageData         CardiacCyclePulmonaryCapillariesFlow_mL_Per_s       = 28;
  cdm.RunningAverageData         CardiacCyclePulmonaryShuntFlow_mL_Per_s             = 29;
  cdm.RunningAverageData         CardiacCyclePulmonaryArteryPressure_mmHg            = 30;
  cdm.RunningAverageData         CardiacCycleCentralVenousPressure_mmHg              = 31;
  cdm.RunningAverageData         CardiacCycleSkinFlow_mL_Per_s                       = 32;
  
  repeated string                HemorrhageLinks                                     = 33;
  repeated string                HemorrhagePaths                                     = 34;
  repeated string                InternalHemorrhageLinks                             = 35;
  repeated string                InternalHemorrhagePaths                             = 36;
}

message DrugData
{
  cdm.DrugSystemData             Common                                              = 1;
}

message EndocrineData
{
  cdm.EndocrineSystemData        Common                                              = 1;
}

message EnergyData
{
  cdm.EnergySystemData           Common                                              = 1;
  double                         EnduranceEnergyStore_J                              = 2;
  double                         MediumPowerEnergyStore_J                            = 3;
  double                         PeakPowerEnergyStore_J                              = 4;
  double                         UsableEnergyStore_J                                 = 5;
  
  cdm.RunningAverageData         BloodpH                                             = 6;
  cdm.RunningAverageData         BicarbonateMolarity_mmol_Per_L                      = 7;
}

message GastrointestinalData
{
  cdm.GastrointestinalSystemData Common                                              = 1;
}

message HepaticData
{
  cdm.HepaticSystemData          Common                                              = 1;
}

message NervousData
{
  cdm.NervousSystemData          Common                                              = 1;
  double                         ArterialOxygenBaseline_mmHg                         = 2;
  double                         ArterialCarbonDioxideBaseline_mmHg                  = 3;
  bool                           BaroreceptorFeedbackStatus                          = 4;
  double                         BaroreceptorActiveTime_s                            = 5;
  double                         BaroreceptorMeanArterialPressureBaseline_mmHg       = 6;
}

message RenalData
{
  cdm.RenalSystemData            Common                                              = 1;
  bool                           Urinating                                           = 2;
  double                         LeftAfferentResistance_mmHg_s_Per_mL                = 3;
  double                         RightAfferentResistance_mmHg_s_Per_mL               = 4;
  double                         LeftSodiumFlowSetPoint_mg_Per_s                     = 5;
  double                         RightSodiumFlowSetPoint_mg_Per_s                    = 6;
  
  cdm.RunningAverageData         UrineProductionRate_mL_Per_min                      = 7;
  cdm.RunningAverageData         UrineOsmolarity_mOsm_Per_L                          = 8;
  cdm.RunningAverageData         SodiumConcentration_mg_Per_mL                       = 9;
  cdm.RunningAverageData         SodiumExcretionRate_mg_Per_min                      = 10;
  cdm.RunningAverageData         LeftSodiumFlow_mg_Per_s                             = 11;
  cdm.RunningAverageData         RightSodiumFlow_mg_Per_s                            = 12;
  cdm.RunningAverageData         LeftRenalArterialPressure_mmHg                      = 13;
  cdm.RunningAverageData         RightRenalArterialPressure_mmHg                     = 14;
}

message RespiratoryData
{// Next value : 45
  cdm.RespiratorySystemData      Common                                              = 1;
  
  bool                           BreathingCycle                                      = 2;
  bool                           NotBreathing                                        = 3;
  double                         TopBreathTotalVolume_L                              = 4;
  double                         TopBreathAlveoliVolume_L                            = 5;
  double                         TopBreathPleuralVolume_L                            = 6;
  double                         TopBreathAlveoliPressure_cmH2O                      = 7;
  double                         TopBreathDriverPressure_cmH2O                       = 8;
  double                         TopBreathPleuralPressure_cmH2O                      = 9;
  double                         LastCardiacCycleBloodPH                             = 10;
  double                         TopCarinaO2                                         = 11;
  double                         TopBreathElapsedTime_min                            = 12;
  double                         BottomBreathElapsedTime_min                         = 13;
  double                         BottomBreathTotalVolume_L                           = 14;
  double                         BottomBreathAlveoliVolume_L                         = 15;
  double                         BottomBreathPleuralVolume_L                         = 16;
  double                         BottomBreathAlveoliPressure_cmH2O                   = 17;
  double                         BottomBreathDriverPressure_cmH2O                    = 18;
  double                         BottomBreathPleuralPressure_cmH2O                   = 19;
  double                         PeakAlveolarPressure_cmH2O                          = 20;
  double                         MaximalAlveolarPressure_cmH2O                       = 21;
  cdm.RunningAverageData         BloodPHRunningAverage                               = 22;
  
  double                         ArterialO2PartialPressure_mmHg                      = 23;
  double                         ArterialCO2PartialPressure_mmHg                     = 24;
  double                         BreathingCycleTime_s                                = 25;
  double                         DriverPressure_cmH2O                                = 26;
  double                         ElapsedBreathingCycleTime_min                       = 27;
  double                         IERatioScaleFactor                                  = 28;
  double                         PeakInspiratoryPressure_cmH2O                       = 29;
  double                         PeakExpiratoryPressure_cmH2O                        = 30;
  double                         PreviousTargetAlveolarVentilation_L_Per_min         = 31;
  double                         VentilationFrequency_Per_min                        = 32;
  double                         VentilationToTidalVolumeSlope                       = 33;
  cdm.RunningAverageData         ArterialO2RunningAverage_mmHg                       = 34;
  cdm.RunningAverageData         ArterialCO2RunningAverage_mmHg                      = 35;
  // Muscle Pressure Waveform
  double                         ExpiratoryHoldFraction                              = 36;
  double                         ExpiratoryReleaseFraction                           = 37;
  double                         ExpiratoryRiseFraction                              = 38;
  double                         InspiratoryHoldFraction                             = 39;
  double                         InspiratoryReleaseFraction                          = 40;
  double                         InspiratoryRiseFraction                             = 41;
  double                         InspiratoryToExpiratoryPauseFraction                = 42;
  
  // Conscious Breathing
  bool                           ActiveConsciousRespirationCommand                   = 43;
}

message TissueData
{
  cdm.TissueSystemData           Common                                              = 1;
  double                         RestingTissueGlucose_g                              = 2;
  double                         RestingBloodGlucose_g_Per_L                         = 3;
  double                         RestingBloodLipid_g_Per_L                           = 4;
  double                         RestingBloodInsulin_g_Per_L                         = 5;
  double                         RestingPatientMass_kg                               = 6;
  double                         RestingFluidMass_kg                                 = 7;
}