Skip to content

eSmart-LIS-Connector is a lightweight tool for connecting medical analyzers to a Laboratory Information System (LIS). Real-time data exchange, parsing, and database integration for lab automation are made possible by its support of ASTM and HL7 protocols over serial and network ports.

License

Notifications You must be signed in to change notification settings

iam-ariful-islam/eSmart-LIS-Connector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eSmart LIS Connector

A Python3 gui-based lis connector using Tkinter GUI

Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit, and is Python's defacto standard GUI.

eSmart LIS Connector is a communication bridge between medical pathology analyzers and LIS servers. It supports both serial and network connections in unidirectional or bidirectional modes using ASTM or HL7 protocols. The connector receives raw byte data, parses it and sends it to a local or API-based server/database. It is capable of handling multiple analyzers simultaneously, ensuring seamless and real-time data communication.

eSmart LIS Connector supports serial and network communication protocols, simulates and exchanges data using ASTM and HL7 formats and is compatible with all types of pathology analyzers.

Task Descriptions

This project is fully customizable and dynamic. It is designed to build a Python and Tkinter-based desktop application that connects directly to any type of analyzer via network or serial port communication, receives data, parses the results and sends them to an api server or database. You can add pathologist information, doctor information with signature. Everyday create report folder with file name is current date and printed result stored as pdf. Already 35+ Company or Category Analyzers use this. Here are some special features added.

  • Theme Switch: Toggle between Dark and Light modes for better visibility.
  • Running Time Clock: Displays the application's digital uptime clock.
  • Log File Generation: Saves terminal logs as .txt files in the output folder for future debugging or reference.
  • Live Data from Analyzers: Displays parsed data received from multiple analyzers in real time.
  • Multi-Target Data Sync: Sends parsed data to multiple databases or API servers simultaneously.

Task Requirements & Testing Environments

This project was developed using the latest operating systems, software and tools.

  • Operating System : Windows11, Kali Linux
  • Software : Python3.12 and Visual Studio Code
  • System Type : 32-bit and 64-bit
  • Analyzer Company : Sysmex, ExcBio, Hermes, Genrui, Dymind, Rayto, ZECEN, Arrows, GeteIn, Arkray, Drawray, Erba, Mindray, ZyBio, Randox, Snibe, Cobas, Beckman Coulter, Indiko etc as tested.
  • Connection : Multiple analyzers connect at a time.
  • Mode : Single/Bidirectional/Unidirectional.
  • Protocol : ASTM/HL7 (TCP/IP, COM).
  • Options : 3/5/6 parts or others.
  • Types : Hematology, Auto-Biochemistry, Auto-Horme/Immunology or any type of analyzers.
  • Database : Multiple(SQLite3, MySQL, Oracle, MongoDB etc) database connection at a time.

Installation

First download, install and configure python. Then use the package manager pip to install on.

  • Windows installation
  • Kali linux installation

The project is structured as follows:

esmart-lis-connector/
├── assets/
├── components/
├── database/
├── logs/
├── output/
├── screenshots/
|   ├── welcome.png
|   ├── ...
├── doc_note.txt
├── MainWindow.py        # main file
├── notes.txt            # how to use
├── README.md            # project description
├── requirements.txt     # lists of all python libraries
└── LICENSE              # license file

Clone the Repository

git clone https://github.com/iam-ariful-islam/esmart-lis-connector.git

Notes

The requirements.txt file, lists of all the Python libraries that my "esmart lis connector system" depends on and installs those packages from the file and for better use, configure the system by looking at the notes.txt name file:

pip install -r requirements.txt

or

sudo pip install -r requirements.txt

Project screenshots

Welcome Page
welcome

Main Window
main

Add Information
add_info

System Configure
system_configure

Parameters Setup
setup_parameters

Analyzers Setup
setup_analyzers

Setup Extra Database
setup_extra_database

API Server Setup
setup_api_server

Code Snapshot
code_snapshot

Output-Data is sent to a MySQL server | Old Version | Windows 7
data_send

Code Explanation

Data received from analyzers is parsed according to the protocol, queued for processing and then inserted into the appropriate database or forwarded to an API server. The GUI is designed with ease-of-use and diagnostics in mind, making the tool both powerful and accessible.

Acknowledgments

  • Python & Tkinter: For enabling a robust, platform-independent GUI.
  • PySerial & Socket Libraries: For seamless serial and network communication.
  • ASTM/HL7 Community: For providing documentation and open protocol references.
  • Stack Overflow & GitHub: For helpful discussions, examples and troubleshooting support.
  • Open Source Community: For inspiration, libraries and continuous contributions to healthcare integration tools.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

  • Fork the repository.
  • Create a new branch (git checkout -b feature-name).
  • Commit your changes (git commit -am 'Add new feature').
  • Push to your branch (git push origin feature-name).
  • Create a new Pull Request.

Please make sure to update tests as appropriate.

For more or connect with me

                   

License

The MIT License (MIT)

About

eSmart-LIS-Connector is a lightweight tool for connecting medical analyzers to a Laboratory Information System (LIS). Real-time data exchange, parsing, and database integration for lab automation are made possible by its support of ASTM and HL7 protocols over serial and network ports.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages