An Open-Source Anaesthesia Workstation (Linux) revision2014β Richard W. D. Nickalls Simon Dales Adrian K. Nice ii The single biggest problem we face is that of visualisation RichardP.Feynman(1918–1988)1 1TheMathematicalGazette(1996);80,267. iii An open source Anaesthesia Workstation Richard W. D. Nickalls, formerly:DepartmentofAnaesthesia, NottinghamUniversityHospitals, CityHospitalCampus,Nottingham,UK. [email protected] http://www.nickalls.org/ Simon Dales, Purrsoft,Oxford,UK [email protected] Adrian K. Nice, DepartmentofInformationandComputingTechnology, CityHospital,Nottingham,UK. [email protected] iv Copyright c RWDNickalls,SDales,AKNice,GDean 1994–2014 ○ r w d n December2014 revision 2014β Contents Contents ix I Background 1 1 Ananaesthesiaworkstation 2 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 DifficultywithfundingandR&D . . . . . . . . . . . . . . . . . . . . 2 1.3 TheLinuxproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4.1 Printing/archivingmodule . . . . . . . . . . . . . . . . . . . 4 1.4.2 Dataacquisitionanddisplaymodule . . . . . . . . . . . . . . 4 1.4.3 MACdisplaywidget . . . . . . . . . . . . . . . . . . . . . . 5 1.4.4 Decision-supportmodule . . . . . . . . . . . . . . . . . . . . 5 1.4.5 Adiabetesalertmodule . . . . . . . . . . . . . . . . . . . . 5 1.4.6 Drug-menumodule . . . . . . . . . . . . . . . . . . . . . . . 5 1.5 Screen-shots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 Dataprocessinginanaesthesia 16 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2 Historyoftheanaesthesiarecord . . . . . . . . . . . . . . . . . . . . 16 2.2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.2 Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.3 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3 Theanaesthesiaworkstation . . . . . . . . . . . . . . . . . . . . . . 18 2.3.1 Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.2 Thefuture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3 TEXintheOperatingTheatre 23 4 TheDatexAS/3anaesthesiamonitor 26 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.1 Softwareversion . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1.2 Availablesoftware . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 Serialinterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.1 Serialportconnector . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.2 Cableconnections . . . . . . . . . . . . . . . . . . . . . . . 28 4.2.3 Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 v CONTENTS vi 4.3 TransmissionRequeststring . . . . . . . . . . . . . . . . . . . . . . 29 4.3.1 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3.2 Transmissionrequestcommand . . . . . . . . . . . . . . . . 30 4.4 Outputdata-stringformat . . . . . . . . . . . . . . . . . . . . . . . . 32 4.5 Listofparameternames. . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.6 Exampleofdataoutput . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.7 Correspondence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5 Interfacingtheserialport—usingPerl 49 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2 Device::SerialPort.pm . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.3 Sendingprogram(as3sim.pl) . . . . . . . . . . . . . . . . . . . . . 50 5.4 Receivingprogram(dn-getfile2.pl) . . . . . . . . . . . . . . . . 52 6 AgecorrectedMAC 56 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.1.1 MACsubroutine(MS-DOS) . . . . . . . . . . . . . . . . . . . 57 6.2 AgecorrectedMACcharts . . . . . . . . . . . . . . . . . . . . . . . 59 6.3 Generatingthecharts . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.3.1 Adatafileforasingleiso-MACcurve . . . . . . . . . . . . . . 61 6.3.2 mathsPICscriptfordrawingthewholegraph . . . . . . . . . 62 6.3.3 FinalmathsPICprogramformakingtheversionofBJAcharts fortheOxfordHandbookofAnaesthesia . . . . . . . . . . . 75 6.3.4 Outputmac-iso8t.mtcodefromthepreviousmathsPICprogram 79 6.4 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7 Age&temperaturecorrectedMAC-charts 92 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.2 Program: macatdes2.pl . . . . . . . . . . . . . . . . . . . . . . . . 93 7.3 Program: macatdes2.m . . . . . . . . . . . . . . . . . . . . . . . . 102 7.4 TEXfilemacdes034.mt . . . . . . . . . . . . . . . . . . . . . . . . .107 7.5 ProgrammacATdes2batch.plforautomatingthepdfoutput . . . . . 115 7.6 TestprogramMACsolver.pl . . . . . . . . . . . . . . . . . . . . . . 124 7.6.1 Outputdatafile(macsolver-out.txt) . . . . . . . . . . . . 130 7.7 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 II Thefront-endcoordinatingprogram 134 8 ThePerl/Tkfront-end 135 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 8.2 TheBASHscriptruncamomile . . . . . . . . . . . . . . . . . . . . . 136 8.3 Pressingthe“RUN”button . . . . . . . . . . . . . . . . . . . . . . . .137 8.3.1 Program: tklaunch2.pl . . . . . . . . . . . . . . . . . . . .137 8.4 UsefulLinuxtoolstousewiththelauncher . . . . . . . . . . . . . . 140 9 Thelaunchcam12.plprogram 141 9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.2 Theprogramlaunchcam12.pl . . . . . . . . . . . . . . . . . . . . 143 CONTENTS vii III Thedataprogram—Camomile 147 10 Systemoverview 148 10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 10.2 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 10.2.1 Graphicalfront-endmodule . . . . . . . . . . . . . . . . . . 148 10.2.2 Datacollectionanddisplaymodule . . . . . . . . . . . . . . 149 10.2.3 Printingmodule. . . . . . . . . . . . . . . . . . . . . . . . . 149 10.2.4 Epiduraldatabase . . . . . . . . . . . . . . . . . . . . . . . . 149 10.2.5 Helpfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 10.3 Directorystructure . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 11 TheCamomileprogram 151 11.1 Directorylistingofcamomile.v.0.1 040413b . . . . . . . . . . . . 151 − 12 Configurationfiles 156 12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 12.2 c as3rn.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 12.3 x−configrn.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 12.4 pr−ojectdir.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 12.5 w-monitor-datexas3.conf . . . . . . . . . . . . . . . . . . . . . . . . 160 12.6 People.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 12.7 Drugs.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 12.8 x-widgets.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 13 Drugdictionary 167 13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 13.2 Initialdruglist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 13.3 Downloadbundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 13.4 VTMFileformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 13.5 Perlprogramdn-dmd5.pl . . . . . . . . . . . . . . . . . . . . . . . 170 13.6 Perlprogramreverse.pl . . . . . . . . . . . . . . . . . . . . . . . 178 13.7 Initialdatalisting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 13.8 Theorderedlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 13.9 Addingdrugstothelist . . . . . . . . . . . . . . . . . . . . . . . . . 180 13.10Perlprogramadd2list.pl . . . . . . . . . . . . . . . . . . . . . . . 181 13.11Logfilegeneratedbyadd2list.pl . . . . . . . . . . . . . . . . . . 182 13.12Finallistforpull-downmenu . . . . . . . . . . . . . . . . . . . . . . 184 14 Diabetesdecision-supportsystem 185 14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 14.1.1 KalarmandtheiCalendarstandard . . . . . . . . . . . . . . 186 14.1.2 VALARMspecificationfromtheRFC-2445manual(v:2,Nov 1998) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 14.2 Kalarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 14.2.1 ToshowKalarmicon . . . . . . . . . . . . . . . . . . . . . . 192 14.2.2 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . 192 14.2.3 Initiatingadiabetesalarm . . . . . . . . . . . . . . . . . . . 194 14.2.4 Displayingafile . . . . . . . . . . . . . . . . . . . . . . . . 195 14.2.5 Currentalarmstatus . . . . . . . . . . . . . . . . . . . . . . 196 CONTENTS viii 14.2.6 Cancellinganalarm . . . . . . . . . . . . . . . . . . . . . . 196 14.3 Alarmwidgetprogram(dn-tkalarm.pl) . . . . . . . . . . . . . . . 196 14.4 Testdemoprograms(dn-alarm-demoRED.pl) . . . . . . . . . . . . 205 14.5 Diabetesalarmprogram(dn-alarm-diabetes3.pl) . . . . . . . . . 208 14.6 Fileviewerprogram(dn-tkviewer.pl). . . . . . . . . . . . . . . . 213 14.7 Errormessagewidgetprogram(dn-errorbox.pl) . . . . . . . . . . 215 14.8 Screenshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 15 Datastorage,filesandformats 219 15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 15.2 Filenames—time/dateencoding . . . . . . . . . . . . . . . . . . . . 219 15.3 D-data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 15.4 binlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 15.5 Drug-data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 IV Dataprocessing—inlineprintingmodule 222 16 Printingmodule—overview 223 16.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 16.2 Thestart-time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 16.3 RunningtheCamomiledataprogram . . . . . . . . . . . . . . . . . . 225 16.4 AftertheCamomiledataprogramexits. . . . . . . . . . . . . . . . . 225 16.5 Readingthestarttime.datfile. . . . . . . . . . . . . . . . . . . . .227 16.6 AccessingtheCamomile-storeddata . . . . . . . . . . . . . . . . . . .227 16.7 WritetheGNUplotscriptsforeachgraph . . . . . . . . . . . . . . . 232 16.8 RunGNUplotonallthe.gnufiles . . . . . . . . . . . . . . . . . . . 235 16.9 Writetheheaderlinefortheprintouts . . . . . . . . . . . . . . . . . 235 16.10TypesetthegraphicpagesusingLATEX2ε . . . . . . . . . . . . . . . 236 16.11TypesetthedrugfileusingLATEX2ε . . . . . . . . . . . . . . . . . . 236 16.12Printingthepapersheets . . . . . . . . . . . . . . . . . . . . . . . . .237 17 Typesettingprograms 238 17.1 prtanes6.tex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 17.2 prtdrug2.sty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 17.3 prtdrug.tex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 17.4 printall.tex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 V Dataprocessing—stand-aloneprintingmodule 246 18 Printing—thestand-alone(SA)module 247 18.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247 18.2 Runningtheprocessdata.plscript . . . . . . . . . . . . . . . . . 248 18.3 WritetheGNUplotscriptsforeachgraph . . . . . . . . . . . . . . . 258 18.4 RunGNUplotonallthe.gnufiles . . . . . . . . . . . . . . . . . . . . 261 18.5 Writetheheaderlinefortheprintouts . . . . . . . . . . . . . . . . . . 261 18.6 TypesetthegraphicpagesusingLATEX2ε . . . . . . . . . . . . . . . . 261 18.7 TypesetthedrugfileusingLATEX2ε . . . . . . . . . . . . . . . . . . 262 18.8 Printingthepapersheets . . . . . . . . . . . . . . . . . . . . . . . . 262 CONTENTS RWDNickalls 𝑖𝑥 19 Printing—thestand-alone(SA-06)module 264 19.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 19.2 Runningtheprocessdata.plscript . . . . . . . . . . . . . . . . . 265 19.3 WritetheGNUplotscriptsforeachgraph . . . . . . . . . . . . . . . 275 19.4 RunGNUplotonallthe.gnufiles . . . . . . . . . . . . . . . . . . . 279 19.5 Writetheheaderlinefortheprintouts . . . . . . . . . . . . . . . . . 279 19.6 TypesetthegraphicpagesusingLATEX2ε . . . . . . . . . . . . . . . 279 19.7 TypesetthedrugfileusingLATEX2ε . . . . . . . . . . . . . . . . . . 280 19.8 Printingthepapersheets . . . . . . . . . . . . . . . . . . . . . . . . 280 20 processdata.pl 282 21 fields2PDATA.pl 286 Part I Background
Description: