Laboratory Analyser Interfacing Tools: ASTM Sender / CSV2ASTM

Here are two tools that I've written in Python 3 to help with testing Laboratory Analyser to LIMS/Middleware interfaces. They are main available to download, entirely free, in the public domain. I offer no guarantees of any sort. They might work, they might not. But hopefully you find them useful. I have used them to test various interfaces for i.Lab TP, WinPath Enterprise LIMS systems as well as Halia, Centralink, Atellica Data Manager and Instrument Manager middleware systems.

ASTM Sender window running on Windows 11

ASTM Sender

ASTM Sender was written to implement the low level ASTM protocol so I could simulate an analyser when implementing and debugging an interface. Files containing predefined ASTM messages can be loaded, edited and sent to a host system. Responses are received and acknowledged and displayed on screen. A record of the messages and response can then be saved. As well as the originally intended ASTM protocol I have also implemented support for a few others: XML over ASTM, and the non standard HMJACKarc messaging and Siemens BN-II messaging. ASTM Sender can also take a folder full of messages created using CSV2ASTM and send them back to back (chained messages) with or without a delay.

Note that it does not implement HL7 in any way. If you need something similar to handle HL7 then I recommend Smart HL7 Tools

Python 3 Script

This is basically the source code. You'll need a recent version of Python 3 installed along with the additional library: PySimpleGUI (tk).

Download ASTM_Sender_Python_3.zip

Windows 10/11 Application

This is a fully packaged Windows application made using PyInstaller. It works on Windows 10 and 11 without needing to have Python installed. It doesn't work on Windows 7, however.

Download ASTM_Sender_Windows_10_11.zip

macOS Application

This is a fully packaged macOS application made using py2app. I've tested it on macOS 13.1 Ventura. It might work on some earlier versions too.

ASTM Sender window running on macOS Ventura Download ASTM_Sender_macOS.zip
ASTM Sender window running on macOS Ventura

CSV2ASTM

CSV2ASTM takes a CSV file containing a list of test codes, test libraries, associated PID and results as well as a JSON file containing a template message structure. It then builds a directory full of test messages for each of the tests in the CSV file along with another CSV file containing a test script. These can then be fed into ASTM Sender. It is able to generate simulated numeric or text results for each of the tests (which can be weighted as required), or use results specified in the CSV file.

Python 3 Script

The source code which needs Python 3 to run. Requires the following additional libraries: PySimpleGUI (tk), Matplotlib, seaborn and NumPy

Download CSV2ASTM_Python_3.zip

Windows 10/11 Application

This is a fully packaged Windows application made using PyInstaller. It works on Windows 10 and 11 without needing to have Python installed. It doesn't work on Windows 7, however.

Download CSV2ASTM_Windows_10_11.zip

macOS Application

This is a fully packaged macOS application made using py2app. I've tested it on macOS 13.1 Ventura. It might work on some earlier versions too.

Download CSV2ASTM_macOS.zip