ProtoLink was asked by a manufacturer of medical infusion pumps to architect a
system to collect status information transmitted wirelessly by their pumps, and
make that data available to both end users and other software systems within a
medical facility.  To achieve the desired objectives, ProtoLink designed and
developed a system comprised of a relational database, a Data Collection Application,
and a browser-based Configuration and Reporting Application.
The relational database was implemented using Microsoft SQL Server 2000.  It
consists of a set of database tables (and associated stored procedures, views,
and triggers) for storing the data received from the pumps.
The Data Collection Application was written in C# and runs as a Windows Service. 
It uses TCP/IP sockets to monitor a wireless LAN for data being transmitted by the
pumps and then logs the received data to the database using ADO.NET.  If the database
is inaccessible, the application buffers the data to a local file until the database
becomes available, at which time the data is automatically transferred from the file
to the database.  The Data Collection Application is also responsible for periodically
initiating database maintenance tasks, such as creating backups and purging old data.
The Configuration and Reporting Application is an ASP.NET web application written in C#
and JavaScript.  It is used to perform configuration tasks, such as maintaining the
tables that define the pumps, users, and reports in the system.  In addition, the
application accesses the stored pump data and generates real-time status and historical reports.
To aid with testing, ProtoLink also developed an application that simulates multiple
pumps transmitting status messages to the Data Collection Application.  The simulator
is used to assess the load imposed by a particular number of pumps on a network and to
identify bottlenecks that affect system performance.