Commit eec1b8ca authored by Jeff Webb's avatar Jeff Webb
Browse files

Updates to mechanical ventilator methodology for VC-AC mode.

parent 08fd71f3
......@@ -355,6 +355,12 @@ MechanicalVentilatorPressureControlledVaried=ActionEventPlotter NoGrid Header=Ti
MechanicalVentilatorPressureControlledVaried=ActionEventPlotter NoGrid Header=InspiratoryExpiratoryRatio VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorPressureControlledVaried_InspiratoryExpiratoryRatio.jpg
MechanicalVentilatorPressureControlledVaried=ActionEventPlotter Header=TidalVolume(mL) VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents LegendOnly Title=MechanicalVentilatorPressureControlledVariedLegend ImageDimensions=1800,820
MechanicalVentilatorVolumeControlledARDS=ActionEventPlotter NoGrid Header=TotalLungVolume(L) VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorVolumeControlledARDS_TotalLungVolume.jpg
MechanicalVentilatorVolumeControlledARDS=ActionEventPlotter NoGrid Header=RespirationRate(1/min) VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorVolumeControlledARDS_RR.jpg
MechanicalVentilatorVolumeControlledARDS=ActionEventPlotter NoGrid Header=TidalVolume(mL) VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorVolumeControlledARDS_TidalVolume.jpg
MechanicalVentilatorVolumeControlledARDS=ActionEventPlotter NoGrid Header=InspiratoryExpiratoryRatio VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorVolumeControlledARDS_InspiratoryExpiratoryRatio.jpg
MechanicalVentilatorVolumeControlledARDS=ActionEventPlotter Header=TidalVolume(mL) VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents LegendOnly Title=MechanicalVentilatorVolumeControlledARDSLegend ImageDimensions=1800,820
MechanicalVentilatorPressureControlledARDS=ActionEventPlotter NoGrid Header=TidalVolume(mL) VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorPressureControlledARDS_TidalVolume.jpg
MechanicalVentilatorPressureControlledARDS=ActionEventPlotter NoGrid Header=OxygenSaturation VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorPressureControlledARDS_OxygenSaturation.jpg
MechanicalVentilatorPressureControlledARDS=ActionEventPlotter NoGrid Header=CarricoIndex(mmHg) VerificationDir=equipment OutputOverride=./docs/html/plots/MechanicalVentilator/ NoEvents RemoveLegends OutputFilename=MechanicalVentilatorPressureControlledARDS_CarricoIndex.jpg
......
......@@ -84,7 +84,12 @@ download the executable.-->
<COLOR>000000</COLOR>
<THICKNESS>1</THICKNESS>
</STYLE>
<STYLE id='4'>
<STYLE id='3'>
<STYLE>0</STYLE>
<COLOR>000000</COLOR>
<THICKNESS>1</THICKNESS>
</STYLE>
<STYLE id='5'>
<STYLE>0</STYLE>
<COLOR>000000</COLOR>
<THICKNESS>1</THICKNESS>
......@@ -103,39 +108,39 @@ download the executable.-->
<TinyCAD>
<PIN pos='70.00000,34.00000' which='0' elec='4' direction='1' part='0' number='2' show='0' length='30' number_pos='0' centre_name='0'></PIN>
<PIN pos='70.00000,54.00000' which='0' elec='4' direction='0' part='0' number='1' show='0' length='30' number_pos='0' centre_name='0'></PIN>
<POLYGON pos='68.00000,40.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,40.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='2.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,41.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,41.60000' style='3' fill='0' polygon='0'>
<POINT pos='4.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,42.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,42.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,43.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,43.60000' style='3' fill='0' polygon='0'>
<POINT pos='4.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,44.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,44.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,45.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,45.60000' style='3' fill='0' polygon='0'>
<POINT pos='4.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='70.00000,46.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='70.00000,46.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='2.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='70.00000,47.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='70.00000,47.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='0.00000,0.40000' arc='0'/>
</POLYGON>
<POLYGON pos='70.00000,40.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='70.00000,40.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.60000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
......@@ -151,27 +156,27 @@ download the executable.-->
<TinyCAD>
<PIN pos='40.00000,26.00000' which='0' elec='0' direction='0' part='0' number='1' show='1' length='30' number_pos='0' centre_name='0'></PIN>
<PIN pos='40.00000,12.00000' which='0' elec='0' direction='1' part='0' number='2' show='1' length='30' number_pos='0' centre_name='0'></PIN>
<POLYGON pos='38.00000,20.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='38.00000,20.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='40.00000,18.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='40.00000,18.00000' style='3' fill='0' polygon='0'>
<POINT pos='2.00000,2.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='38.00000,18.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='38.00000,18.00000' style='3' fill='0' polygon='0'>
<POINT pos='2.00000,0.00000' arc='0'/>
<POINT pos='0.00000,2.00000' arc='0'/>
</POLYGON>
<POLYGON pos='38.00000,18.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='38.00000,18.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='40.00000,20.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='40.00000,20.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='0.00000,1.00000' arc='0'/>
</POLYGON>
<POLYGON pos='40.00000,17.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='40.00000,17.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
......@@ -213,7 +218,7 @@ download the executable.-->
</FIELD>
<REF_POINT power='0' part='0' pos='74.00000,60.00000'/>
<TinyCAD>
<POLYGON pos='50.00000,36.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='50.00000,36.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,12.00000' arc='0'/>
<POINT pos='12.00000,0.00000' arc='0'/>
<POINT pos='24.00000,12.00000' arc='0'/>
......@@ -233,39 +238,39 @@ download the executable.-->
<TinyCAD>
<PIN pos='70.00000,34.00000' which='0' elec='4' direction='1' part='0' number='2' show='0' length='30' number_pos='0' centre_name='0'></PIN>
<PIN pos='70.00000,54.00000' which='0' elec='4' direction='0' part='0' number='1' show='0' length='30' number_pos='0' centre_name='0'></PIN>
<POLYGON pos='68.00000,40.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,40.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='2.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,41.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,41.60000' style='3' fill='0' polygon='0'>
<POINT pos='4.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,42.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,42.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,43.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,43.60000' style='3' fill='0' polygon='0'>
<POINT pos='4.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,44.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,44.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='68.00000,45.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='68.00000,45.60000' style='3' fill='0' polygon='0'>
<POINT pos='4.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='70.00000,46.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='70.00000,46.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='2.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='70.00000,47.60000' style='4' fill='0' polygon='0'>
<POLYGON pos='70.00000,47.60000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='0.00000,0.40000' arc='0'/>
</POLYGON>
<POLYGON pos='70.00000,40.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='70.00000,40.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.60000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
......@@ -281,32 +286,106 @@ download the executable.-->
<TinyCAD>
<PIN pos='40.00000,26.00000' which='0' elec='0' direction='0' part='0' number='1' show='1' length='30' number_pos='0' centre_name='0'></PIN>
<PIN pos='40.00000,12.00000' which='0' elec='0' direction='1' part='0' number='2' show='1' length='30' number_pos='0' centre_name='0'></PIN>
<POLYGON pos='38.00000,20.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='38.00000,20.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='40.00000,18.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='40.00000,18.00000' style='3' fill='0' polygon='0'>
<POINT pos='2.00000,2.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='38.00000,18.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='38.00000,18.00000' style='3' fill='0' polygon='0'>
<POINT pos='2.00000,0.00000' arc='0'/>
<POINT pos='0.00000,2.00000' arc='0'/>
</POLYGON>
<POLYGON pos='38.00000,18.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='38.00000,18.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='4.00000,0.00000' arc='0'/>
</POLYGON>
<POLYGON pos='40.00000,20.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='40.00000,20.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='0.00000,1.00000' arc='0'/>
</POLYGON>
<POLYGON pos='40.00000,17.00000' style='4' fill='0' polygon='0'>
<POLYGON pos='40.00000,17.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,1.00000' arc='0'/>
<POINT pos='0.00000,0.00000' arc='0'/>
</POLYGON>
</TinyCAD>
</SYMBOLDEF>
<SYMBOLDEF id='12'>
<NAME type='0'>New Symbol</NAME>
<REF type='0'>U?</REF>
<DESCRIPTION>CurrSrc</DESCRIPTION>
<PPP>1</PPP>
<GUID></GUID>
<FIELD>
<NAME>$$SPICE_PROLOG_PRIORITY</NAME>
<DEFAULT>5</DEFAULT>
<FT>000002</FT>
<VALUE></VALUE>
<POS>0.00000,0.00000</POS>
</FIELD>
<FIELD>
<NAME>$$SPICE_EPILOG_PRIORITY</NAME>
<DEFAULT>5</DEFAULT>
<FT>000002</FT>
<VALUE></VALUE>
<POS>0.00000,0.00000</POS>
</FIELD>
<FIELD>
<NAME>Package</NAME>
<DEFAULT>package name for PCB layout</DEFAULT>
<FT>000001</FT>
<VALUE></VALUE>
<POS>0.00000,0.00000</POS>
</FIELD>
<REF_POINT power='0' part='0' pos='80.65800,83.65600'/>
<TinyCAD>
<ELLIPSE a='72.25800,69.05600' b='80.65800,77.05600' style='5' fill='0'/>
<POWER pos='76.45800,75.85600' which='3' direction='0'></POWER>
<WIRE a='76.45800,69.25600' b='76.45800,64.45600'/>
<WIRE a='76.45800,76.85600' b='76.45800,83.65600'/>
</TinyCAD>
</SYMBOLDEF>
<SYMBOLDEF id='16'>
<NAME type='0'>ARROW</NAME>
<REF type='0'>T?</REF>
<DESCRIPTION>Arrow for annotations</DESCRIPTION>
<PPP>1</PPP>
<GUID></GUID>
<FIELD>
<NAME>$$SPICE_PROLOG_PRIORITY</NAME>
<DEFAULT>5</DEFAULT>
<FT>000002</FT>
<VALUE></VALUE>
<POS>0.00000,0.00000</POS>
</FIELD>
<FIELD>
<NAME>$$SPICE_EPILOG_PRIORITY</NAME>
<DEFAULT>5</DEFAULT>
<FT>000002</FT>
<VALUE></VALUE>
<POS>0.00000,0.00000</POS>
</FIELD>
<FIELD>
<NAME>Package</NAME>
<DEFAULT>package name for PCB layout</DEFAULT>
<FT>000001</FT>
<VALUE></VALUE>
<POS>0.00000,0.00000</POS>
</FIELD>
<REF_POINT power='0' part='0' pos='62.00000,34.00000'/>
<TinyCAD>
<POLYGON pos='60.00000,32.00000' style='3' fill='0' polygon='0'>
<POINT pos='1.00000,0.00000' arc='0'/>
<POINT pos='0.00000,2.00000' arc='0'/>
</POLYGON>
<POLYGON pos='61.00000,32.00000' style='3' fill='0' polygon='0'>
<POINT pos='0.00000,0.00000' arc='0'/>
<POINT pos='1.00000,2.00000' arc='0'/>
</POLYGON>
</TinyCAD>
</SYMBOLDEF>
<OPTIONS>
<GRID>0</GRID>
<UNITS>1</UNITS>
......@@ -364,7 +443,7 @@ download the executable.-->
<FIELD type='0' description='Name' value='' show='1' pos='1.00000,-12.00000'/>
</SYMBOL>
<WIRE a='107.58635,75.16977' b='107.58635,80.68813'/>
<TEXT pos='121.60472,79.54859' direction='3' font='5' color='000000'>ExpiratoryValve</TEXT>
<TEXT pos='122.30498,70.37524' direction='3' font='5' color='000000'>Or</TEXT>
<TEXT pos='81.35975,79.66694' direction='3' font='5' color='000000'>InspiratoryValve</TEXT>
<SYMBOL id='4' pos='127.64921,83.09889' part='0' rotate='2' can_scale='0' show_power='0' scale_x='1.00000' scale_y='1.00000'>
<FIELD type='0' description='Ref' value='R10v' show='0' pos='-12.00000,2.00000'/>
......@@ -380,5 +459,29 @@ download the executable.-->
<JUNCTION pos='107.59179,80.92600'/>
<JUNCTION pos='87.56448,81.06605'/>
<JUNCTION pos='87.49446,95.42129'/>
<SYMBOL id='12' pos='144.39555,79.92997' part='0' rotate='5' can_scale='0' show_power='0' scale_x='1.00000' scale_y='1.00000'>
<FIELD type='0' description='Ref' value='U?' show='0' pos='1.00000,-17.20000'/>
<FIELD type='0' description='Name' value='New Symbol' show='0' pos='1.00000,-17.20000'/>
<FIELD type='2' description='$$SPICE_PROLOG_PRIORITY' value='5' show='0' pos='0.00000,0.00000'/>
<FIELD type='2' description='$$SPICE_EPILOG_PRIORITY' value='5' show='0' pos='0.00000,0.00000'/>
<FIELD type='1' description='Package' value='package name for PCB layout' show='0' pos='1.00000,-14.80000'/>
</SYMBOL>
<POWER pos='140.19555,63.52997' which='3' direction='0'></POWER>
<SYMBOL id='16' pos='133.42172,71.53502' part='0' rotate='3' can_scale='0' show_power='0' scale_x='1.00000' scale_y='1.00000'>
<FIELD type='0' description='Ref' value='' show='1' pos='-2.00000,2.00000'/>
<FIELD type='0' description='Name' value='' show='1' pos='-2.00000,-2.00000'/>
<FIELD type='2' description='$$SPICE_PROLOG_PRIORITY' value='5' show='0' pos='0.00000,0.00000'/>
<FIELD type='2' description='$$SPICE_EPILOG_PRIORITY' value='5' show='0' pos='0.00000,0.00000'/>
<FIELD type='1' description='Package' value='package name for PCB layout' show='0' pos='-2.00000,4.40000'/>
</SYMBOL>
<SYMBOL id='16' pos='115.40701,71.53937' part='0' rotate='6' can_scale='0' show_power='0' scale_x='1.00000' scale_y='1.00000'>
<FIELD type='0' description='Ref' value='' show='1' pos='-2.00000,2.00000'/>
<FIELD type='0' description='Name' value='' show='1' pos='-2.00000,-2.00000'/>
<FIELD type='2' description='$$SPICE_PROLOG_PRIORITY' value='5' show='0' pos='0.00000,0.00000'/>
<FIELD type='2' description='$$SPICE_EPILOG_PRIORITY' value='5' show='0' pos='0.00000,0.00000'/>
<FIELD type='1' description='Package' value='package name for PCB layout' show='0' pos='-2.00000,4.40000'/>
</SYMBOL>
<WIRE a='123.56130,70.54025' b='113.56130,70.54025'/>
<WIRE a='133.39660,70.53151' b='123.39660,70.53151'/>
</TinyCAD>
</TinyCADSheets>
......@@ -8,7 +8,7 @@ Mechanical Ventilator Methodology {#MechanicalVentilatorMethodology}
The Mechanical Ventilator Model is a generic representation of a positive-pressure ventilation device and
inhaled gas/agent administration. It models a semi-closed circuit breathing system. The current implementation is limited, but the data model is designed for future expansion.
The results of this system were evaluated for pressure control-continuous mandatory ventilation (PC-CMV) ventilation mode. The results show excellent correlation with the expected values.
The results of this system were evaluated for pressure control - continuous mandatory ventilation (PC-CMV) and volume control - assist control (VC-AC) ventilation modes. The results show excellent correlation with the expected values.
Future work will add more ventilation modes, including assisted breathing functionality.
@anchor ventilator-intro
......@@ -54,7 +54,7 @@ The Mechanical Ventilator model consists of a pressure source with tubes and val
<img src="./Images/MechanicalVentilator/MechanicalVentilatorCircuit.png" width="400">
<center>
<i>Figure 1. Circuit diagram of the Mechanical Ventilator. The circuit employs the a driver pressure source, resistance, and valves.</i>
<i>Figure 1. Circuit diagram of the Mechanical Ventilator. The circuit employs a driver source (either pressure or flow, depending on the mode and settings), resistances, and valves.</i>
</center><br>
### Connecting to the %Respiratory Circuit
......@@ -72,12 +72,14 @@ The Mechanical Ventilator parameters were defined to allow for setting all types
- Connection (Off, Mask, Tube): Connection type to the %Respiratory System
- Inspiration Phase
- Trigger: Transition to inspiration
- Time: Total length of expiration phase to trigger inspiration phase
- Pressure: Ventilator sensor pressure value to trigger inspiration phase
- Flow: Ventilator sensor flow value to trigger inspiration phase
- Machine Trigger: Control triggers
- Time: Total length of expiration phase to trigger inspiration phase
- Patient Trigger: Assisted triggers
- Volume: Ventilator sensor volume change value to trigger inspiration phase
- Pressure: Ventilator sensor pressure value to trigger inspiration phase
- Waveform (square, exponential, ramp, sinusoidal, sigmoidal): Pattern of driver function
- Pause: Time of plateau (i.e., constant driver pressure) between inspiration and expiration
- Target (PIP, TV, EtCO2, etc.): Value to set/achieve
- Target (PIP, TV, etc.): Value to set/achieve
- Limit: Cutoff/maximum
- Pressure: Ventilator sensor pressure cutoff/maximum
- Flow: Ventilator sensor flow cutoff/maximum
......@@ -86,6 +88,7 @@ The Mechanical Ventilator parameters were defined to allow for setting all types
- Cycle: Transition to expiration
- Time: Total length of inspiration phase to trigger expiration phase
- Pressure: Ventilator sensor pressure value to trigger expiration phase
- Volume: Ventilator sensor volume change (i.e., TV) to trigger expiration phase
- Flow: Ventilator sensor flow value to trigger expiration phase
- Waveform (square, exponential, ramp, sinusoidal, sigmoidal): Pattern of driver function
- Baseline (PEEP or FRC): Value to set/achieve
......@@ -147,7 +150,7 @@ System that regulates the atmospheric/reference pressure.
@anchor ventilator-assumptions
## Assumptions and Limitations
Currently, the Mechanical Ventilator uses ideal pressure sources and one-way valves. Only setting appropriate for a PC-CMV mode are allowed and tested. However, the system is defined and implemented to allow for future mode expansion without data model changes.
Currently, the Mechanical Ventilator uses ideal pressure sources and one-way valves. Only setting appropriate for a PC-CMV or VC-AC modes are allowed and tested. However, the system is defined and implemented to allow for future mode expansion without data model changes.
@anchor ventilator-results
# Results and Conclusions
......@@ -155,7 +158,7 @@ Currently, the Mechanical Ventilator uses ideal pressure sources and one-way val
@anchor ventilator-settingsvalidation
## Validation - Settings
The Mechanical ventilator settings are fully dynamic and do not have any bounds enforced. A scenario that varies these settings in several different combinations is included with the code base and produces the outputs shown in Figure 2.
The Mechanical ventilator settings are fully dynamic and do not have any bounds enforced. A scenario that varies the PC-CMV settings in several different combinations is included with the code base and produces the outputs shown in Figure 2.
<center>
<table border="0">
......@@ -174,10 +177,29 @@ The Mechanical ventilator settings are fully dynamic and do not have any bounds
</center>
<center><i>Figure 2. These plots show the successful implementation of varying Mechanical Ventilator settings without patient spontaneous breathing.</i></center><br>
A scenario that varies the VC-AC settings for assisted breathing for a patient with moderate ARDS produces the outputs shown in Figure 3.
<center>
<table border="0">
<tr>
<td><img src="./plots/MechanicalVentilator/MechanicalVentilatorVolumeControlledARDS_TotalLungVolume.jpg" width="550"></td>
<td><img src="./plots/MechanicalVentilator/MechanicalVentilatorVolumeControlledARDS_RR.jpg" width="550"></td>
</tr>
<tr>
<td><img src="./plots/MechanicalVentilator/MechanicalVentilatorVolumeControlledARDS_TidalVolume.jpg" width="550"></td>
<td><img src="./plots/MechanicalVentilator/MechanicalVentilatorVolumeControlledARDS_InspiratoryExpiratoryRatio.jpg" width="550"></td>
</tr>
<tr>
<td colspan="2"><img src="./plots/MechanicalVentilator/MechanicalVentilatorVolumeControlledARDSLegend.jpg" width="1100"></td>
</tr>
</table>
</center>
<center><i>Figure 3. These plots show the successful implementation of varying Mechanical Ventilator settings without patient spontaneous breathing.</i></center><br>
@anchor ventilator-ardsvalidation
## Validation - ARDS
The %Respiratory ARDS model with mild, moderate, and severe severities is extensively tested in this scenario. The patient is administered a neuromuscular blockade to prevent spontaneous breathing and ideal PIP, PEEP, and FiO2 values are set in the ventilator to maintain adequate SpO2 values. Results successfully match expected empirical data and trends, as shown in table 1. Example outputs are shown in Figure 3.
The %Respiratory ARDS model with mild, moderate, and severe severities is extensively tested in this scenario. The patient is administered a neuromuscular blockade to prevent spontaneous breathing and ideal PIP, PEEP, and FiO2 values are set in the ventilator to maintain adequate SpO2 values. Results successfully match expected empirical data and trends, as shown in table 1. Example outputs are shown in Figure 4.
<center>
<table border="0">
......@@ -194,7 +216,7 @@ The %Respiratory ARDS model with mild, moderate, and severe severities is extens
</tr>
</table>
</center>
<center><i>Figure 3. These plots show the successful implementation of a ventilated patient with varying ARDS severities.</i></center><br>
<center><i>Figure 4. These plots show the successful implementation of a ventilated patient with varying ARDS severities.</i></center><br>
<center><br>
Table 1. Cumulative validation results for Anesthesia Machine specific conditions and actions scenarios.
......@@ -229,7 +251,7 @@ future development.
## Coming Soon
Logic and results for handling more ventilation modes, including assisted breathing.
Logic and results for handling more ventilation modes.
## Recommended Improvements
......
......@@ -70,7 +70,7 @@ message MechanicalVentilatorData
oneof InspirationPatientTrigger
{
ScalarVolumePerTimeData InspirationPatientTriggerFlow = 19;/**<< @brief Ventilator sensor flow value to trigger inspiration phase. */
ScalarVolumePerTimeData InspirationPatientTriggerFlow = 19;/**<< @brief Ventilator sensor volume change value to trigger inspiration phase. */
ScalarPressureData InspirationPatientTriggerPressure = 20;/**<< @brief Ventilator sensor pressure value to trigger inspiration phase. */
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment