During the period 1994--2009 I was involved in a project to develop an open-source anaesthesia workstation. This project involved writing software relating to (a) data access and processing from the various anaesthesia devices, (b) screen presention of useful anaesthesia data, (c) smart alarms, (d) decision support and drug information, and (e) presentation of the anaesthesia record. An overview of the project (a Linux-based anaesthesia workstation) was presented at the ESCTAIC-2010 meeting. A brief overview regarding the anaesthesia record and the role of an anaesthesia workstation is in the following:-
The workstation project started as an MS-DOS program (1994--2001) I wrote to display data and automate the production of the anaesthetic record (see DOS screenshots). Some aspects of this early work (including the real-time age-adjusted MAC (aaMAC) were presented in 1998 in the following paper TeX in the operating theatre: an anaesthesia application (1998) (PDF, 201 KB).
Initially we used the serial data output from the Datex Ultima and Capnomac monitors, updating later to the Datex AS/3 monitor, and more recently, to the Datex/Ohmeda S/5 monitor. While the DOS program worked well for many years in one of the thoracic operating theatres, the limitations of MS-DOS eventually led us in 2001 to port it to the more versatile Linux operating system.
In 2001 Simon Dales joined the group and the project was greatly extended, and developed into a Linux-based support tool for anaesthetists and ran extremely well, meeting all expectations, during 2001--2006 (see theatre shot of the Linux workstation). Electrical safety was overseen by Department of Medical Physics. The software now consists essentially of two main modules: (a) Camomile (data acquisition, storage and display), and (b) Xenon (generation of the anaesthesia record). Other modules relate to MAC display and decision support for diabetes and drugs (see Linux screenshots). For full details regarding development and documentation, see below.
The current project team is as follows:
A useful journal for articles in this area is the Journal of Clinical Monitoring and Computing (see also the Table of Contents)
Development and documentation
The following project documentation covers both the recent Linux version and the early DOS version (prototype)
aaMAC -- real-time display of age-adjusted MAC
We first implemented a visual and alarmed real-time display of age-adjusted MAC (aaMAC) in September 1996, using the data of Mapleson (1996). The aaMAC display was initially just a simple colour-encoded (turned red in the alarm state) numeric display (see DOS screenshots), which was updated at 10 second intervals, derived from the serial data output from Datex anaesthesia monitors. We believe this was the first automated anaesthesia record system to include a real-time alarmed aaMAC display. It was presented briefly in the following paper TeX in the operating theatre: an anaesthesia application (1998) (PDF, 201 KB). For details of the MAC subroutine used in the original MS-DOS program (version 5a) see Anaesthesia Record System 5a (1994--2001): [documentation] (--> / data program / subroutines / MAC).
With the later Linux implementation (2001--2006) we were able make the real-time graphic display in the form of a colour-encoded dial
(see Linux MAC-dials) in the bottom right-hand of the screen (Linux screenshots).
For MAC details in Linux implementation see Documentation (2001--2006) [PDF, 3.9 MB (273 pages)]
The real-time aaMAC display proved so useful that printable iso-MAC chart versions were subsequently developed (see below) to guide dosage where the real-time computer display was unavailable.
The iso-MAC charts are also available in The Oxford Handbook of Anaesthesia (2006; 2nd ed), pp 1160-1162.
The aaMAC data is available for various portable hand-held devices; for example, the iPhone/iPad ChronoMAC app, MACpalm , and the ACTc Anesthesia Clinical Tutor and Calculator (see ACTc Documentation [PDF])
The anaesthetic record is typeset using TeX (TeX website), which is particularly well suited for this purpose since it is programmable, open source, and free. Graphs are generated using the open source utility GNUplot (GNUplot website). Coordination and manipulation of the graphic data is automated via Perl scripts, and then displayed via an HTML front-end, which allows the viewer to see all the data, program scripts, log files etc in a very convenient way before printing out the version for the patient notes. Current work relates to improving the HTML display and the printing (for patient notes) of the anaesthesia record.
An anaesthesia record system needs to be able to present the data in at least two resolutions: (a) a regular low resolution, say 1 hour per A4 page (ie data points at approximately 40 sec intervals), and (b) a high resolution format of data points at 5 sec intervals, which is useful for following the physiology or an untoward event.
An example of the standard 1-hour/page anaesthesia record output by this system is shown in the following paper we presented in 1998.
An example of the detail of the printed high resolution graphic record (data at 5 sec intervals: 7-mins/page format) is shown in the following example Anaesthetic Record, which shows a transient fall in ETCo2 output associated with a brief episode of low cardiac output during one-lung anaesthesia for thoracic carcinoid resection.
Diabetes module (Perl)
This is a small module which combines timely reminders for blood sugar sampling with some decision support information. This module is written in Perl and uses the standard `calendar' software to coordinate sampling and generate nice screen alerts with a minimum of mouse clicks.
This is a searchable database of several years worth of epidural and double-lumen tube data, and is part of the open source anaesthesia workstation project (see above). The database consists of 12 columns of data collected during the period 1995--2005 (mostly by RWD Nickalls, but including a small number from other anaesthetists in our department). Some single-lumen tube data is also included.
At the beginning the data was collected somewhat haphazardly, and this is reflected in the somewhat patchy data initially (data not collected is indicated by either a -- or a zero). However, as the database grew in size it became progressively more useful in predicting epidural depth, tube size and length, and was used by the author as a useful guide for each patient. The author is not aware of any other equivalent database to compare it with, but would be glad to hear from anyone wishing to make use of it or to develop or extend it.
The data collected is as follows: date / age (yrs) / gender(MF) / wt (kg) / ht (cms) / tube(Left DLT, Right DLT, Single lumen) / tube size (Fr=French)(cms) / distance (tip from teeth) / fibrescope used to check position (F) / depth of epidural space / Midline or Paramedian / epidural level BS().
Note that the epidural level is relative to Bottom of Scapular [BS(0)=T7/8 interspace approximately] (=inferior tip of scapular) with -ve sign indicating headward direction, +ve sign indicating lumbar direction; ie BS(-1)=T6/7; BS(+1) = T8/9 etc.
This database is available for both Linux and Microsoft systems, and I have made a software (Perl) front-end for it (see screenshot below) to facilitate using the database. Access for Linux users is quite routine since Perl is available on all Linux systems as standard. However, Microsoft users will need to install Perl in order to access the TEPID database via the Perl front-end search program and coordinating widget (the free ActivePerl Win32 implementation can be downloaded from the web). (see the documentation for details). Since the TEPID database is just a simple text file it can of course be accessed using any text-editor.
The following image is a typical TEPID screenshot showing the Perl Tk screen widget front-end on the left, and a typical data-output for a given patient in the window on the right (see TEPID screenshot detail ).