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

import "pulse/cdm/bind/AnesthesiaMachine.proto";
import "pulse/cdm/bind/BagValveMask.proto";
import "pulse/cdm/bind/ElectroCardioGram.proto";
import "pulse/cdm/bind/Inhaler.proto";
import "pulse/cdm/bind/MechanicalVentilator.proto";
import "pulse/cdm/bind/Physiology.proto";

message AnesthesiaMachineData
{
  pulse.cdm.bind.AnesthesiaMachineData             Common                         = 1;
  bool                                             Inhaling                       = 2;
  double                                           CurrentBreathingCycleTime_s    = 3;
  double                                           InspirationTime_s              = 4;
  double                                           OxygenInletVolumeFraction      = 5;
  double                                           TotalBreathingCycleTime_s      = 6;
}

message BagValveMaskData
{
  pulse.cdm.bind.BagValveMaskData                  Common                         = 1;
  pulse.cdm.bind.eBreathState                      CurrentBreathState             = 2;
  double                                           CurrentPeriodTime_s            = 3;
  double                                           SqueezeFlow_L_Per_s            = 4;
  double                                           SqueezePressure_cmH2O          = 5;
}

message ElectroCardioGramData
{
  pulse.cdm.bind.ElectroCardioGramData             Common                         = 1;
  double                                           HeartRythmTime_s               = 2;
  double                                           HeartRythmPeriod_s             = 3;
  pulse.cdm.bind.ElectroCardioGramWaveformListData Waveforms                      = 4;
}


message InhalerData
{
  pulse.cdm.bind.InhalerData                        Common                         = 1;
}

message MechanicalVentilatorData
{
  pulse.cdm.bind.MechanicalVentilatorData          Common                         = 1;
  pulse.cdm.bind.eBreathState                      CurrentBreathState             = 2;
  double                                           CurrentInspiratoryVolume_L     = 3;
  double                                           CurrentPeriodTime_s            = 4;
  double                                           DriverPressure_cmH2O           = 5;
  double                                           DriverFlow_L_Per_s             = 6;
}
