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

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


enum eHeartRhythm
{
  NormalSinus = 0;
  Asystolic   = 1;
}

/** @brief 
    @details */
message PupillaryResponseData
{
  ScalarNegative1To1Data              ReactivityModifier                             = 1; /**<< @brief Change in pupil reaction time -1 complete reduction/no response, 0 is normal, and 1 is the fastest reaction time. */
  ScalarNegative1To1Data              ShapeModifier                                  = 2; /**<< @brief Percentage change in pupil shape from normal. Positive is vertical ovoid. Negative is horizontal ovoid. */
  ScalarNegative1To1Data              SizeModifier                                   = 3; /**<< @brief Pupil size change from normal. -1 is fully constricted, 0 is no change, +1 is fully dilated. */
}


/** @brief Provides clinician level data reflecting the composition of the blood.
    @details Blood Chemistry is complete analysis on the blood at any given point during the simulation.
    The blood chemistry system houses all of the blood concentrations and compositions needed to assess a patient's health. This system is under development
    and will be improved in future releases to include more substances that can provide clinician level details and assessments, such as a CBC and blood panel.*/
message BloodChemistrySystemData
{
  ScalarMassPerVolumeData             BloodDensity                                   = 1; /**<< @brief Mass per unit volume of the blood. */
  ScalarData                          BloodPH                                        = 2; /**<< @brief Measure of acidity or basicity of the blood. */
  ScalarHeatCapacitancePerMassData    BloodSpecificHeat                              = 3; /**<< @brief The amount of energy required to raise one kilogram of blood by one degree Celsius. */
  ScalarMassPerVolumeData             BloodUreaNitrogenConcentration                 = 4; /**<< @brief The BUN concentration in the blood.*/  
  Scalar0To1Data                      CarbonDioxideSaturation                        = 5; /**<< @brief The fraction of hemoglobin that is carbon dioxide bound.*/          
  Scalar0To1Data                      CarbonMonoxideSaturation                       = 6; /**<< @brief The fraction of hemoglobin that is carbon monoxide bound.*/  
  Scalar0To1Data                      Hematocrit                                     = 7; /**<< @brief Volume percentage of red blood cells in the blood.*/
  ScalarMassData                      HemoglobinContent                              = 8; /**<< @brief The total amount of hemoglobin in the blood.*/
  Scalar0To1Data                      OxygenSaturation                               = 9; /**<< @brief The fraction of hemoglobin that is oxygen bound.*/
  ScalarAmountPerVolumeData           Phosphate                                      = 10;/**<< @brief Sum of all inorganic phosphate in the blood.*/
  ScalarVolumeData                    PlasmaVolume                                   = 11;/**<< @brief Volume of the plasma.*/
  Scalar0To1Data                      PulseOximetry                                  = 12;/**<< @brief The fraction of hemoglobin with bound oxygen as measured optically, which can include Carbon Monoxide.*/
  ScalarAmountPerVolumeData           RedBloodCellCount                              = 13;/**<< @brief Total number of red blood cells in the blood.*/
  Scalar0To1Data                      ShuntFraction                                  = 14;/**<< @brief Fraction of the blood flow that bypasses the alveoli; therefore, does not engage is gas exchange.*/
  ScalarAmountPerVolumeData           StrongIonDifference                            = 15;/**<< @brief Difference between the positive and negative strong ion concentrations in the blood.*/
  ScalarMassPerVolumeData             TotalProteinConcentration                      = 16;/**<< @brief The concentration of urea in the blood.*/
  Scalar0To1Data                      VolumeFractionNeutralLipidInPlasma             = 17;/**<< @brief Fraction of the plasma that is made up of neutral lipids.*/
  Scalar0To1Data                      VolumeFractionNeutralPhospholipidInPlasma      = 18;/**<< @brief Fraction of the plasma that is made up of neutral phospholipids.*/
  ScalarAmountPerVolumeData           WhiteBloodCellCount                            = 19;/**<< @brief Total number of white blood cells in the blood.*/
  /** Substance Pressures */
  ScalarPressureData                  ArterialCarbonDioxidePressure                  = 20;/**<< @brief Partial pressure of carbon dioxide in the aorta.*/
  ScalarPressureData                  ArterialOxygenPressure                         = 21;/**<< @brief Partial pressure of oxygen in the aorta.*/
  ScalarPressureData                  PulmonaryArterialCarbonDioxidePressure         = 22;/**<< @brief Partial pressure of carbon dioxide in the pulmonary arteries.*/
  ScalarPressureData                  PulmonaryArterialOxygenPressure                = 23;/**<< @brief Partial pressure of oxygen in the pulmonary arteries.*/
  ScalarPressureData                  PulmonaryVenousCarbonDioxidePressure           = 24;/**<< @brief Partial pressure of carbon dioxide in the pulmonary veins.*/
  ScalarPressureData                  PulmonaryVenousOxygenPressure                  = 25;/**<< @brief Partial pressure of oxygen in the pulmonary veins.*/
  ScalarPressureData                  VenousCarbonDioxidePressure                    = 26;/**<< @brief Partial pressure of carbon dioxide in the vena cava.*/        
  ScalarPressureData                  VenousOxygenPressure                           = 27;/**<< @brief Partial pressure of oxygen in the vena cava.*/  
}

/** @brief Provides a representation of the human vasculature.
    @details The heart is the driving force that creates blood flow through the cardiovascular system. 
    The resulting blood flow is utilized by other physiologic systems as a means of transporting the oxygen, carbon dioxide
    and other substances throughout the human body.*/
message CardiovascularSystemData
{
  ScalarPressureData                  ArterialPressure                               = 1; /**<< @brief The current arterial pressure.*/
  ScalarVolumeData                    BloodVolume                                    = 2; /**<< @brief The total volume of fluid within the cardiovascular system.*/
  ScalarVolumePerTimeAreaData         CardiacIndex                                   = 3; /**<< @brief Relates heart performance to the size of the individual.*/
  ScalarVolumePerTimeData             CardiacOutput                                  = 4; /**<< @brief The volume of blood being pumped from the heart in a given time interval.<br> It is defined as the heart rate multiplied by the stroke volume.*/
  ScalarPressureData                  CentralVenousPressure                          = 5; /**<< @brief The instantaneous pressure of the venus return.*/
  ScalarVolumePerTimeData             CerebralBloodFlow                              = 6; /**<< @brief The rate of blood flow into the skull, thus supplying the brain.*/
  ScalarPressureData                  CerebralPerfusionPressure                      = 7; /**<< @brief The difference between the mean arterial pressure and the cerebral blood pressure. Defines the hydrostatic diffusion gradient.*/
  ScalarPressureData                  DiastolicArterialPressure                      = 8; /**<< @brief The minimum pressure in the aorta over the course of a cardiac cycle.*/
  Scalar0To1Data                      HeartEjectionFraction                          = 9; /**<< @brief The current pressure in the aorta.*/
  ScalarFrequencyData                 HeartRate                                      = 10;/**<< @brief The fraction of the blood that is pumped out of the ventricle during a cardiac cycle.*/
  eHeartRhythm                        HeartRhythm                                    = 11;/**<< @brief @ref eHeartRhythmTable */
  ScalarVolumeData                    HeartStrokeVolume                              = 12;/**<< @brief The volume of blood pumped from the left ventricle in one contraction.*/
  ScalarPressureData                  IntracranialPressure                           = 13;/**<< @brief The pressure inside the skull. Equal to the cerebral blood pressure with the cerebrospinal fluid pressure being assumed equal.*/
  ScalarPressureData                  MeanArterialPressure                           = 14;/**<< @brief The average arterial pressure throughout each cardiac cycle.*/
  ScalarPressureData                  MeanArterialCarbonDioxidePartialPressure       = 15;/**<< @brief The mean of the partial pressure of carbon dioxide in the aorta over a cardiac cycle.*/
  ScalarPressureData                  MeanArterialCarbonDioxidePartialPressureDelta  = 16;/**<< @brief The change of the the mean of the partial pressure of carbon dioxide in the aorta from the previous cardiac cycle.*/
  ScalarPressureData                  MeanCentralVenousPressure                      = 17;/**<< @brief The average pressure in the vena cava over the course of a cardiac cycle.*/
  ScalarVolumePerTimeData             MeanSkinFlow                                   = 18;/**<< @brief The blood flow to the skin  averaged over the current cardiac cycle time*/
  ScalarPressureData                  PulmonaryArterialPressure                      = 19;/**<< @brief The current pressure in the pulmonary arteries.*/
  ScalarPressureData                  PulmonaryCapillariesWedgePressure              = 20;/**<< @brief The pressure within the pulmonary capillaries.*/
  ScalarPressureData                  PulmonaryDiastolicArterialPressure             = 21;/**<< @brief The minimum pressure that occurs in the pulmonary arteries over the course of a cardiac cycle.*/
  ScalarPressureData                  PulmonaryMeanArterialPressure                  = 22;/**<< @brief The average pressure that occurs in the pulmonary arteries over the course of a cardiac cycle.*/
  ScalarVolumePerTimeData             PulmonaryMeanCapillaryFlow                     = 23;/**<< @brief The average blood flow in the pulmonary capillaries over the course of a cardiac cycle.*/
  ScalarVolumePerTimeData             PulmonaryMeanShuntFlow                         = 24;/**<< @brief The average blood flow diverted from the pulmonary capillaries (not oxygenated) over the course of a cardiac cycle.*/
  ScalarPressureData                  PulmonarySystolicArterialPressure              = 25;/**<< @brief The maximum pressure in the pulmonary arteries over the course of a cardiac cycle.*/
  ScalarPressureTimePerVolumeData     PulmonaryVascularResistance                    = 26;/**<< @brief The resistance offered by the pulmonary circulation.*/
  ScalarPressureTimePerVolumeAreaData PulmonaryVascularResistanceIndex               = 27;/**<< @brief Relates pulmonary circulation performance to the size of the individual. */
  ScalarPressureData                  PulsePressure                                  = 28;/**<< @brief The difference between the systolic and diastolic pressures.*/
  ScalarPressureTimePerVolumeData     SystemicVascularResistance                     = 29;/**<< @brief The resistance to blood flow through the entire systemic vasculature, not including the pulmonary circulation.*/
  ScalarPressureData                  SystolicArterialPressure                       = 30;/**<< @brief The maximum pressure in the aorta over the course of a cardiac cycle.*/
  ScalarVolumePerTimeData             TotalHemorrhageRate                            = 31;/**<< @brief The total rate of blood loss due to all active hemorrhages.*/
  ScalarVolumeData                    TotalHemorrhagedVolume                         = 32;/**<< @brief The total amount of blood lost due to all hemorrhages.*/
}

/** @brief Provides transport of drugs through the blood and air in the cardiovascular and respiratory systems, respectively.
    @details The exchange of gases across the alveoli/pulmonary capillary barrier, and the diffusion of substances into and out of tissues. 
    Important substances required for cell function are transported to the organs, while waste material is transported away for expulsion from the body.
    Drugs impact physiologic behavior, such as heart rate, respiration rate, and blood pressure through modifiers.
    Totals are from all active drugs in the body.*/
message DrugSystemData
{
  ScalarNegative1To1Data              BronchodilationLevel                           = 1; /**<< @brief */
  ScalarFrequencyData                 HeartRateChange                                = 2; /**<< @brief */
  ScalarPressureData                  MeanBloodPressureChange                        = 3; /**<< @brief */
  Scalar0To1Data                      NeuromuscularBlockLevel                        = 4; /**<< @brief */
  ScalarPressureData                  PulsePressureChange                            = 5; /**<< @brief */
  PupillaryResponseData               PupillaryResponse                              = 6; /**<< @brief */
  ScalarFrequencyData                 RespirationRateChange                          = 7; /**<< @brief */
  Scalar0To1Data                      SedationLevel                                  = 8; /**<< @brief */
  ScalarVolumeData                    TidalVolumeChange                              = 9; /**<< @brief */
  ScalarNegative1To1Data              TubularPermeabilityChange                      = 10;/**<< @brief */
}

/** @brief Releases hormones to maintain homeostasis and regulate body functions, including metabolism and behavior.
    @details The release of the hormones in response to the stimuli to represent the response of the sympathetic nervous system.*/
message EndocrineSystemData
{

  ScalarAmountPerTimeData             InsulinSynthesisRate                           = 1; /**<< @brief Insulin production rate. */
                
}

/** @brief Provides heat transfer, nutrition, and exercise physiology in the human body.
    @details */
message EnergySystemData
{
  Scalar0To1Data                      AchievedExerciseLevel                          = 1;/**<< @brief The fraction of how much of the requested exercise the patient is able to achieve. 1.0 means the the patient is performing at the requested level. Nan is the patient is not exercising (no Action)*/
  ScalarTemperatureData               CoreTemperature                                = 2; /**<< @brief The internal body temperature.*/
  ScalarAmountPerTimeData             CreatinineProductionRate                       = 3; /**<< @brief The generation of creatinine in the muscle tissue per */  
  ScalarPressureData                  ExerciseMeanArterialPressureDelta              = 4;/**<< @brief The pressure delta that occurs during exercise. Used to modify the baroreceptor set-point */
  Scalar0To1Data                      FatigueLevel                                   = 5; /**<< @brief The exhaustion level of the body, or inability to perform physical exercise @details The amount of energy available for activity divided by the normal rested energy */
  ScalarAmountPerTimeData             KetoneProductionRate                           = 6; /**<< @brief The molar amount of ketones generated in the liver */          
  ScalarAmountPerTimeData             LactateProductionRate                          = 7; /**<< @brief The molar amount of lactate generated on the tissue level from anaerobic metabolism */
  ScalarTemperatureData               SkinTemperature                                = 8; /**<< @brief The skin surface temperature.*/
  ScalarMassPerTimeData               SweatRate                                      = 9; /**<< @brief Mass of sweat generated per unit time due to elevated core temperature */
  ScalarPowerData                     TotalMetabolicRate                             = 10;/**<< @brief The basal metabolic rate plus additional energy expenditure rates due to activity.*/
  Scalar0To1Data                      TotalWorkRateLevel                             = 11;/**<< @brief The current patient work rate above basal over the maximum work rate capable by the patient */
}

/** @brief Provides nutrients to the body
    @details Balances out the fluid and substances lost through other functionalities such as urination, sweating, and water loss from breathing.*/
message GastrointestinalSystemData
{
  ScalarVolumePerTimeData             WaterAbsorptionRate                            = 1; /**<< @brief Rate of the absorption of water from the stomach into the blood stream*/
  NutritionData                       StomachContents                                = 2; /**<< @brief The contents in the stomach*/
}

/** @brief Provides liver function by clearing and maintaining substances in the blood
    @details Carries blood from parts of the gastrointestinal (GI) tract to the liver. The products of digestion are processed in the liver.*/
message HepaticSystemData
{

}

/** @brief 
    @details
 */
message NervousSystemData
{
  eSwitch                             ChemoreceptorFeedback                          = 1;/**<< @brief Signals if the Chemoreceptors are on or off. */
  ScalarData                          ChemoreceptorHeartRateScale                    = 2;/**<< @brief Heart rate multiplier used to scale the heart rate due to baroreceptor feedback*/
  ScalarData                          ChemoreceptorHeartElastanceScale               = 3;/**<< @brief Heart elastance multiplier used to scale the heart rate due to baroreceptor feedback*/
  eSwitch                             BaroreceptorFeedback                           = 4;/**<< @brief Signals if the Baroreceptors are on or off. */
  ScalarData                          BaroreceptorHeartRateScale                     = 5;/**<< @brief Heart rate multiplier used to scale the heart rate due to baroreceptor feedback*/
  ScalarData                          BaroreceptorHeartElastanceScale                = 6;/**<< @brief Heart elastance multiplier used to scale the heart rate due to baroreceptor feedback*/
  ScalarData                          BaroreceptorResistanceScale                    = 7;/**<< @brief %Cardiovascular resistance multiplier used to scale the heart rate due to baroreceptor feedback*/
  ScalarData                          BaroreceptorComplianceScale                    = 8;/**<< @brief %Cardiovascular compliance multiplier used to scale the heart rate due to baroreceptor feedback*/  
  PupillaryResponseData               LeftEyePupillaryResponse                       = 9;/**<< @brief */  
  PupillaryResponseData               RightEyePupillaryResponse                      = 10;/**<< @brief */
}

/** @brief Provides kidney function by clearing and maintaining substances in the blood
    @details Maintain substance balance in the blood by removing and maintaining fluid and
    substances in the blood with behavior dependent upon factors such as dehydration and the presence of diuretics.*/
message RenalSystemData
{
  Scalar0To1Data                      FiltrationFraction                             = 1; /**<< @brief Scalar used to compute reabsorption for substances*/
  ScalarVolumePerTimeData             GlomerularFiltrationRate                       = 2; /**<< @brief Flow rate of filtrate into the tubules */
  
  ScalarPressureTimePerVolumeData     LeftAfferentArterioleResistance                = 3; /**<< @brief resistance to flow going into the glomerular capillaries in the left Kidney*/
  ScalarPressureData                  LeftBowmansCapsulesHydrostaticPressure         = 4; /**<< @brief Pressure generated from fluid in the bowmans capsules in the left Kidney */
  ScalarPressureData                  LeftBowmansCapsulesOsmoticPressure             = 5; /**<< @brief Pressure generated from substances in the bowmans capsules in the left Kidney*/
  ScalarPressureTimePerVolumeData     LeftEfferentArterioleResistance                = 6; /**<< @brief Resistance to flow into the peritubular capillaries in the left Kidney */
  ScalarPressureData                  LeftGlomerularCapillariesHydrostaticPressure   = 7; /**<< @brief Pressure generated from fluid in the glomerular capillaries in the left Kidney */
  ScalarPressureData                  LeftGlomerularCapillariesOsmoticPressure       = 8; /**<< @brief Pressure generated from substances in the capillaries in the left Kidney */
  ScalarVolumePerTimePressureData     LeftGlomerularFiltrationCoefficient            = 9; /**<< @brief Calculated for each substance to determine ease of transport into the tubules in the left Kidney */
  ScalarVolumePerTimeData             LeftGlomerularFiltrationRate                   = 10;/**<< @brief Flow rate of filtrate into the tubules in left Kidney */
  ScalarAreaData                      LeftGlomerularFiltrationSurfaceArea            = 11;/**<< @brief Surface area of glomerular capillaries that experiance filtration in the left Kidney */
  ScalarVolumePerTimePressureAreaData LeftGlomerularFluidPermeability                = 12;/**<< @brief Permeability coefficient of the capillary tissue in the left Kidney */
  Scalar0To1Data                      LeftFiltrationFraction                         = 13;/**<< @brief Scalar used to compute reabsorption for substances in left Kidney */
  ScalarPressureData                  LeftNetFiltrationPressure                      = 14;/**<< @brief Total pressure directed into the tubules in the left Kidney */
  ScalarPressureData                  LeftNetReabsorptionPressure                    = 15;/**<< @brief Total pressure directed into the peritubular capillaries in the left Kidney */
  ScalarPressureData                  LeftPeritubularCapillariesHydrostaticPressure  = 16;/**<< @brief Pressure generated by the fluid in the peritubular capillaries in the left Kidney */
  ScalarPressureData                  LeftPeritubularCapillariesOsmoticPressure      = 17;/**<< @brief Pressure generated by the substance concentration in the peritubular capillaries in the left Kidney*/
  ScalarVolumePerTimePressureData     LeftReabsorptionFiltrationCoefficient          = 18;/**<< @brief Value which determines how much of a substance is reabsorbed into the blood stream in the left Kidney*/
  ScalarVolumePerTimeData             LeftReabsorptionRate                           = 19;/**<< @brief Rate at which fluid or a substance is transported into the peritubular capillaries in the left Kidney */  
  ScalarPressureData                  LeftTubularOsmoticPressure                     = 20;/**<< @brief Pressure generated by substances in the tubules in the left Kidney */  
  ScalarPressureData                  LeftTubularHydrostaticPressure                 = 21;/**<< @brief Pressure generated by the fluid in the tubules in the left Kidney */
  ScalarAreaData                      LeftTubularReabsorptionFiltrationSurfaceArea   = 22;/**<< @brief Surface ares of the tubules which is subject to fluid transport (reabsorption) in the left Kidney */
  ScalarVolumePerTimePressureAreaData LeftTubularReabsorptionFluidPermeability       = 23;/**<< @brief Permeability of the tissue in the tubules, influencing resistance to flow into peritubular capillaries in the left Kidney */

  ScalarVolumePerTimeData             RenalBloodFlow                                 = 24;/**<< @brief Blood flow into the kidney that is not filtered into the tubules */
  ScalarVolumePerTimeData             RenalPlasmaFlow                                = 25;/**<< @brief Plasma flow into the kidney that is not filtered into the tubules */  
  ScalarPressureTimePerVolumeData     RenalVascularResistance                        = 26;/**<< @brief Total resistance o f the kidney vasculature  */

  ScalarPressureTimePerVolumeData     RightAfferentArterioleResistance               = 27;/**<< @brief resistance to flow going into the glomerular capillaries in the right Kidney */
  ScalarPressureData                  RightBowmansCapsulesHydrostaticPressure        = 28;/**<< @brief Pressure generated from fluid in the bowmans capsules in the right Kidney  */
  ScalarPressureData                  RightBowmansCapsulesOsmoticPressure            = 29;/**<< @brief Pressure generated from substances in the bowmans capsules in the right Kidney  */
  ScalarPressureTimePerVolumeData     RightEfferentArterioleResistance               = 30;/**<< @brief Resistance to flow into the peritubular capillaries in the left Kidney */
  ScalarPressureData                  RightGlomerularCapillariesHydrostaticPressure  = 31;/**<< @brief Pressure generated from fluid in the glomerular capillaries in the left Kidney */
  ScalarPressureData                  RightGlomerularCapillariesOsmoticPressure      = 32;/**<< @brief Pressure generated from substances in the capillaries in the left Kidney */
  ScalarVolumePerTimePressureData     RightGlomerularFiltrationCoefficient           = 33;/**<< @brief Calculated for each substance to determine ease of transport into the tubules in the left Kidney */
  ScalarVolumePerTimeData             RightGlomerularFiltrationRate                  = 34;/**<< @brief Flow rate of filtrate into the tubules in left Kidney */
  ScalarAreaData                      RightGlomerularFiltrationSurfaceArea           = 35;/**<< @brief Surface area of glomerular capillaries that experiance filtration in the left Kidney */
  ScalarVolumePerTimePressureAreaData RightGlomerularFluidPermeability               = 36;/**<< @brief Permeability coefficient of the capillary tissue in the left Kidney*/
  Scalar0To1Data                      RightFiltrationFraction                        = 37;/**<< @brief Scalar used to compute reabsorption for substances in left Kidney */
  ScalarPressureData                  RightNetFiltrationPressure                     = 38;/**<< @brief  Total pressure directed into the tubules in the left Kidney */
  ScalarPressureData                  RightNetReabsorptionPressure                   = 39;/**<< @brief Total pressure directed into the peritubular capillaries in the left Kidney */
  ScalarPressureData                  RightPeritubularCapillariesHydrostaticPressure = 40;/**<< @brief Pressure generated by the fluid in the peritubular capillaries in the left Kidney */
  ScalarPressureData                  RightPeritubularCapillariesOsmoticPressure     = 41;/**<< @brief Pressure generated by the substance concentration in the peritubular capillaries in the left Kidney */
  ScalarVolumePerTimePressureData     RightReabsorptionFiltrationCoefficient         = 42;/**<< @brief Value which determines how much of a substance is reabsorbed into the blood stream in the left Kidney */
  ScalarVolumePerTimeData             RightReabsorptionRate                          = 43;/**<< @brief Rate at which fluid or a substance is transported into the peritubular capillaries in the left Kidney */
  ScalarPressureData                  RightTubularOsmoticPressure                    = 44;/**<< @brief Pressure generated by substances in the tubules in the left Kidney  */  
  ScalarPressureData                  RightTubularHydrostaticPressure                = 45;/**<< @brief Pressure generated by the fluid in the tubules in the left Kidney */            
  ScalarAreaData                      RightTubularReabsorptionFiltrationSurfaceArea  = 46;/**<< @brief Surface ares of the tubules which is subject to fluid transport (reabsorption) in the left Kidney */
  ScalarVolumePerTimePressureAreaData RightTubularReabsorptionFluidPermeability      = 47;/**<< @brief Permeability of the tissue in the tubules, influencing resistance to flow into peritubular capillaries in the left Kidney */

  ScalarVolumePerTimeData             UrinationRate                                  = 48;/**<< @brief Rate that fluid exits the bladder  */ 
  ScalarOsmolalityData                UrineOsmolality                                = 49;/**<< @brief The osmolar pressure contributions of the sodium, urea and glucose divided by the mass of the fluid */
  ScalarOsmolarityData                UrineOsmolarity                                = 50;/**<< @brief The osmolar pressure contributions of the sodium, urea and glucose divided by the volume of the fluid */
  ScalarVolumePerTimeData             UrineProductionRate                            = 51;/**<< @brief The rate of fluid flow to the bladder */
  ScalarData                          UrineSpecificGravity                           = 52;/**<< @brief The density of the fluid relative to water */
  ScalarVolumeData                    UrineVolume                                    = 53;/**<< @brief The volume of the urine in the bladder */ 
  ScalarMassPerVolumeData             UrineUreaNitrogenConcentration                 = 54;/**<< @brief Scaled concentration of Urea in the bladder  */ 
}

enum eBreathState
{
  Inhale = 0;
  Pause  = 1;
  Exhale = 2;
}
/**@brief Provides ventilation and gas exchange of the human respiratory system.
   @details Supports changes in the lungs volume and pressure data during the flow
   and transfer of gases between the lungs, the blood and the outside environment.*/
message RespiratorySystemData
{
  ScalarPressureData                  AlveolarArterialGradient                       = 1; /**<< @brief Measure of the difference between the alveolar concentration of oxygen and the arterial concentration of oxygen to assess the integrity of the alveolar capillary unit.*/
  ScalarVolumeData                    AlveolarDeadSpace                              = 2; /**<< @brief The volume of unperfused alveoli.*/
  ScalarVolumeData                    AnatomicDeadSpace                              = 3; /**<< @brief The total volume of the conducting airways from the nose or mouth down to the level of the terminal bronchioles that does not participate in gas exchange.*/
  ScalarPressureData                  CarricoIndex                                   = 4; /**<< @brief The ratio of arterial partial pressure O2 and the inspired O2. O2 level in blood vs. Concentration of O2 in a breath.*/
  ScalarVolumePerPressureData         ChestWallCompliance                            = 5; /**<< @brief The relationship between the transmural pressure across the chest wall compared with the chest cavity's volume.*/
  ScalarEnergyData                    ElasticWorkOfBreathing                         = 6; /**<< @brief The work (generally during the inhalation phase) that is stored as potential energy which is recovered during exhalation.*/
  Scalar0To1Data                      EndTidalCarbonDioxideFraction                  = 7; /**<< @brief The fraction of gas in the mouth/nose that is carbon dioxide at the end of each respiratory cycle.*/
  ScalarPressureData                  EndTidalCarbonDioxidePressure                  = 8; /**<< @brief The pressure of gas in the mouth/nose that is carbon dioxide at the end of each respiratory cycle.*/
  Scalar0To1Data                      EndTidalOxygenFraction                         = 9; /**<< @brief The fraction of gas in the mouth/nose that is oxygen at the end of each respiratory cycle.*/
  ScalarPressureData                  EndTidalOxygenPressure                         = 10;/**<< @brief The pressure of gas in the mouth/nose that is oxygen at the end of each respiratory cycle.*/
  ScalarVolumePerTimeData             ExpiratoryFlow                                 = 11;/**<< @brief Instantaneous airflow out of the lungs (negative value when inhaling).*/
  ScalarPressureTimePerVolumeData     ExpiratoryPulmonaryResistance                  = 12;/**<< @brief The total resistance to airflow through the lungs during exhalation. */
  Scalar0To1Data                      FractionOfInsipredOxygen                       = 13;/**<< @brief Fraction of Oxygen being taking into the body. */
  ScalarPowerData                     ImposedPowerOfBreathing                        = 14;/**<< @brief Externally imposed work of breathing (e.g., from a ventilator).*/
  ScalarEnergyData                    ImposedWorkOfBreathing                         = 15;/**<< @brief Externally imposed power of breathing (e.g., from a ventilator).*/
  ScalarData                          InspiratoryExpiratoryRatio                     = 16;/**<< @brief The ratio of the length of time of inspiration to the length of time of expiration.*/
  ScalarVolumePerTimeData             InspiratoryFlow                                = 17;/**<< @brief The instantaneous airflow into the lungs (negative value when exhaling).*/
  ScalarPressureTimePerVolumeData     InspiratoryPulmonaryResistance                 = 18;/**<< @brief The total resistance to airflow through the lungs during inhalation. */
  ScalarPressureData                  IntrapleuralPressure                           = 19;/**<< @brief The pressure difference across the whole lung.*/
  ScalarPressureData                  IntrapulmonaryPressure                         = 20;/**<< @brief The total respiratory recoil pressure relative to body surface.*/
  ScalarVolumePerPressureData         LungCompliance                                 = 21;/**<< @brief The measure of the lung's ability to stretch and expand.*/
  ScalarPressureData                  MaximalInspiratoryPressure                     = 22;/**<< @brief The strength of inspiratory muscles.*/
  ScalarPressureData                  MeanAirwayPressure                             = 23;/**<< @brief Mean pressure applied during positive-pressure mechanical ventilation. */
  ScalarData                          OxygenationIndex                               = 24;/**<< @brief Used in intensive care medicine to measure the usage of oxygen within the body and predict outcomes.  A lower oxygenation index is better. */
  ScalarPressureData                  OxygenSaturationIndex                          = 25;/**<< @brief Usage of oxygen within the body and predict outcomes. */
  ScalarPowerData                     PatientPowerOfBreathing                        = 26;/**<< @brief Internally imposed work of breathing from the respiratory muscles.*/
  ScalarEnergyData                    PatientWorkOfBreathing                         = 27;/**<< @brief Internally imposed power of breathing from the respiratory muscles.*/
  ScalarPressureData                  PeakInspiratoryPressure                        = 28;/**<< @brief The highest pressure applied to the lungs (alveolar pressure) above atmospheric pressure during inhalation.*/
  ScalarVolumeData                    PhysiologicDeadSpace                           = 29;/**<< @brief The sum of the anatomic and alveolar dead space.*/
  ScalarPressureData                  PositiveEndExpiratoryPressure                  = 30;/**<< @brief The pressure in the lungs (alveolar pressure) above atmospheric pressure at the end of expiration.*/
  ScalarVolumePerPressureData         PulmonaryCompliance                            = 31;/**<< @brief The total compliance of the lungs.*/
  ScalarPressurePerVolumeData         PulmonaryElastance                             = 32;/**<< @brief The inverse of lung compliance.*/
  ScalarEnergyData                    ResistiveExpiratoryWorkOfBreathing             = 33;/**<< @brief The work to overcome the frictional resistance to gas flow due to viscosity during exhalation.*/
  ScalarEnergyData                    ResistiveInspiratoryWorkOfBreathing            = 34;/**<< @brief The work to overcome the frictional resistance to gas flow due to viscosity during inhalation.*/
  ScalarFrequencyData                 RespirationRate                                = 35;/**<< @brief The frequency of the respiratory cycle.*/
  Scalar0To1Data                      RespiratoryMuscleFatigue                       = 36;/**<< @brief A measure of respiratory muscle weakness caused by excessive effort relative to the strength and endurance of the muscles.*/
  ScalarPressureData                  RespiratoryMusclePressure                      = 37;/**<< @brief Pressure of the muscles that contribute to inhalation and exhalation, by aiding in the expansion and contraction of the thoracic cavity.*/
  ScalarData                          SaturationAndFractionOfInspiredOxygenRatio     = 38;/**<< @brief A noninvasive surrogate for PiO2/FiO2 ratio (carrico index). */
  ScalarData                          SpecificVentilation                            = 39;/**<< @brief The ratio of the volume of gas entering a region of the lung following an inspiration and the end-expiratory volume of that same lung region.*/
  ScalarVolumeData                    TidalVolume                                    = 40;/**<< @brief The volume of air moved into or out of the lungs during normal respiration.*/
  ScalarVolumePerTimeData             TotalAlveolarVentilation                       = 41;/**<< @brief The air flow to the alveoli.*/
  ScalarVolumePerTimeData             TotalDeadSpaceVentilation                      = 42;/**<< @brief The air flow to the dead space.*/
  ScalarVolumeData                    TotalLungVolume                                = 43;/**<< @brief The total volume of air within the lungs at any given time.*/
  ScalarPowerData                     TotalPowerOfBreathing                          = 44;/**<< @brief The sum of the imposed and patient power of breathing.*/
  ScalarVolumePerTimeData             TotalPulmonaryVentilation                      = 45;/**<< @brief The flow rate representing the exchange of air between the lungs and ambient air.*/
  ScalarEnergyData                    TotalWorkOfBreathing                           = 46;/**<< @brief The sum of the imposed and patient work of breathing.*/
  ScalarPressureData                  TransairwayPressure                            = 47;/**<< @brief The pressure difference between the airway opening and alveoli.*/
  ScalarPressureData                  TransalveolarPressure                          = 48;/**<< @brief The pressure difference between the alveoli and pleural space.*/
  ScalarPressureData                  TransChestWallPressure                         = 49;/**<< @brief The pressure difference between the pleural space and body surface.*/
  ScalarPressureData                  TransMusclePressure                            = 50;/**<< @brief The respiratory muscle driver pressure relative to body surface.*/
  ScalarPressureData                  TranspulmonaryPressure                         = 51;/**<< @brief The pressure difference between the alveoli and the intrapleural space.*/
  ScalarPressureData                  TransrespiratoryPressure                       = 52;/**<< @brief The pressure difference between the airway opening and body surface.*/
  ScalarPressureData                  TransthoracicPressure                          = 53;/**<< @brief The pressure difference between the alveoli and body surface.*/
}

/** @brief Provides data pertaining to the extracellular and intracelluar space */
message TissueSystemData
{
  ScalarVolumePerTimeData             CarbonDioxideProductionRate                    = 1;/**<< @brief The carbon dioxide generated on the tissue level from aerobic metabolism*/
  ScalarVolumeData                    ExtracellularFluidVolume                       = 2;/**<< @brief Volume of fluid outside of cells AND outside of the blood vessels*/
  ScalarVolumeData                    ExtravascularFluidVolume                       = 3;/**<< @brief Total fluid volume outside of the blood vessels. */
  ScalarData                          IntracellularFluidPH                           = 4;/**<< @brief The acidity or alkalinity of the extravascular intercellular fluid.*/
  ScalarVolumeData                    IntracellularFluidVolume                       = 5;/**<< @brief Volume of fluid in the cells outside of the blood vessels. */  
  ScalarVolumePerTimeData             OxygenConsumptionRate                          = 6; /**<< @brief The oxygen consumed on the tissue level from aerobic metabolism*/
  ScalarData                          RespiratoryExchangeRatio                       = 7; /**<< @brief The true ratio of carbon dioxide produced to oxygen consumed */   
}