Device interfaces
Client: 3M
Overview
The Medical Solutions Division (MSD) at 3M creates handheld and desktop devices to read results from consumables. PC applications were developed to communicate with these devices. There are two main projects to speak of. CleanTrace montiors how clean hospital surfaces are. It uses a luminometer to read a swab and detect ATP (Adenosine triphosphate). ATP is present in all living cells.
Attest is a program to guarantee sterilizers process loads of surgical tools successfully. There are Biological Indicators (BI) that are added to a sterilization load and tested after sterilization is complete. If successful, the spores in the BI will all be killed. Attest Connect was created to interface with the auto-readers that will “read” the sterilized Bis
Architecture
For CleanTrace there is an application called the Sync Manager that will connect to the luminometer and synchronize it with the backend server. The Sync manager uses a serial connection to communicate with the luminometer and restless web services to communicate with the backend server. Attest Connect uses a serial protocol to communicate with the auto-reader and restful web servers to send results to a backend cloud server.
Implementation
I created both the Sync Manager and Attest Connect to present a virtual device to the user that looks and behaves like the actual device. Both use Windows Presentation Foundation for the main applications. They both have proprietary serial protocols that provide a secure connection to the device. The also use restful JSON web services to interact with a backend.
Liaison MDX Studio
Client: DiaSorin
Overview
The Integrated Cycler project was sold from 3M to Focus diagnostics. Soon after the sale to Focus, that company was purchased by DiaSorin in 2016. DiaSorin consulted with me for the last 5 years to develop software fore the cycler. The 3M Integrated Cycler was rebranded to the DiaSorin Liaison MDX Cycler. The Integrated Cycler Studio was renamed to the Liaison MDX studio (LMS). More info can be found on the DiaSorin Molecular web site.
Architecture
LMS is a .NET WinForm application written in C#. It uses a Microsoft SQL server for the backend. The architecture of the application includes a data model, script engine and presentation layer. The data model is used to access data in the SQL server it uses Linq to SQL as a base. The Script Engine is a state based control system that controls the Integrated Cycler. Its design was based on two common design patterns from the “gang of four” known as the state pattern and command pattern. Finally, the presentation layer is a multi-document interface allowing users to edit assays, run assays on an Integrated Cycler and analyze runs.
Implementation
I lead the development of 3 major releases of LMS between 2016 to 2020. The releases helped rebrand the studio software and provide new functionality for assay developers. One of those assays is the Covid-19 diagnostic which still remains one of the best on the market being the fastest PCR test and has the best specificity and sensitivity.
Integrated Cycler Studio
Client: 3M Health Care
Overview
The integrated Cycler is a polymerase chain reaction (PCR) thermocycler developed by 3M Corporation. It is used to amplify DNA and detect diseases such as the Flu or MRSA. It contains 5 control systems. Each had a PIC microcontroller that is used to do the work. Firmware has been written that allows the PIC to perform its function. Each PIC is controlled by a host computer over a serial port link. The main software on the computer is called Integrated Cycler Studio (ICS)
Architecture
ICS is a .NET WinForm application written in C#. It uses a Microsoft SQL server for the backend. The architecture of the application includes a data model, script engine and presentation layer. The data model is used to access data in the SQL server it uses Linq to SQL as a base. The Script Engine is a state based control system that controls the Integrated Cycler. Its design was based on two common design patterns from the “gang of four” known as the state pattern and command pattern. Finally, the presentation layer is a multi-document interface allowing users to edit assays, run assays on an Integrated Cycler and analyze runs.
Implementation
There have been 6 major releases of ICS deployed between 2009 and 2016. Each new release provided new features for assay developers to design new diagnostic tests. The development process followed a simplified agile approach where new sprint releases were provided every 3 weeks. Being in an FDA controlled space the development conformed to 62304 specifications. The project team varied over the 7 years of development from upwards of 5 developers to a single developers and QA expert. I was the project lead and architect for the entirety. I have also maintained and updated the PIC controller firmware for the 5 control systems in the Integrated Cycler.
Extract Fluid Check
Client: 3M Health Care
Overview
The extract fluid check (EFC) program is a small utility used to extract information from the Integrated Cycler Studio database.
Architecture
Extract fluid check was build using the Windows Presentation Foundation (WPF) and uses the Model-View-ViewModel design (MVVM) pattern. The MVVM allows a very thin presentation layer and leverages databinding to have all the business logic in the ViewModel
Implementation
This is an example of a short project which was implemented, documented, verified and validated over the course of a couple months.
Model 3200 stethoscope to iPhone Feasibility
Client: 3M Health Care
Overview
3M Littmann® stethoscopes are the industry standard. The Model 3200 has Bluetooth connectivity and is the base for the scope to scope technology. This allows for one stethoscope to talk to another one over the internet and cardiologists can hear someone heart sounds around the world. It is part of 3M’s telemedicine http://www.littmann.com/wps/portal/3M/en_US/3M-Littmann/stethoscope/telemedicine/ and is the basis for TeleSteth ™ software
http://www.littmann.com/wps/portal/3M/en_US/3M-Littmann/stethoscope/
Architecture
The Model 3200 uses BlueCore 5.0 technology from CSR to collect and transmit heart sounds. iPhone and the iOS has a proprietary blue tooth protocol called iPod Accessory Protocol (iAP). The Model 3200 scope needs a fairly high amount of bandwidth to transmit heart sounds to a PC or smart phone.
Implementation
To develop an iOS application that uses iAP, developers need to be part of the MFi apple developer program. Then applications can be developed using xCode on a Mac and downloaded to provisioned devices. On the BlueCore side CSR provides an IDE to build and download BlueCore applications. Using a development kit from CSR and the sample iAP version 1.0 protocol I was able to get a prototype up and running in a short amount of time. However the iAP V1.0 did not provide the necessary bandwidth necessary to transmit heart sounds to an iOS device. I found a third party called that has developed an iAP V2.0 protocol stack and was able to work with them to get the necessary bandwidth to transfer heart sounds.
Veeco Protocol drivers
Client: Veeco
Overview
Veeco offers a range of industry-leading MOCVD equipment that produce LED products. One of these devices is controlled with a software architecture called the Input Output Controller (IOC) that controls peripherals. The IOC connects to various different peripherals.
Architecture
Implementation
Wrote protocol drivers for Modbus TCP, Modbus RTU, EIAA BiSynch, Eurotherm proprietary, and DeviceNet.
Atrium Building Monitoring
Client: Honeywell
Overview
Atrium was a building monitoring system. The original vision was to monitor main power usage and control various equipment in the building to reduce energy consumption. A device was placed at locations such as big box retail customers that would connect to power meters on the main switch gear and collect 15 minute power data. That was sent up to a backend application built on SQL server. It had a web interface that allowed analysts the ability to compare similar stores and provide recommendation on how to save electric usage.
The web application used to monitor the trends of energy consumption was built on SQL server. There was a datamodel layer and the presentation was built on ASP. This was pre .NET and everything was built with C++ and COM. The remote device was built on a distribution of Linux. Veris power meters were connected over Modbus to collect the 15 Minute data. A data file was sent up and parsed into the database once a day.
Implementation
I lead and developed the remote device creating our own Linux image and supporting software. On the main server there was also a kernel service that would use data collected to eventually control at remote customers sites. The kernel would interact with the backend database with the common datamodel. It was built on the BACnet protocol.