A desktop app that can be used to interface between Lab machines and LIS. The app is written in Electron and uses SQLite as data storage.
Clone the project
git clone https://github.com/udsm-dhis2-lab/machine-interfacing
Go to the project directory
cd machine-interfacing
Install dependencies
npm install --legacy-peer-deps
Start the server
npm start
-
The app can be built as an executable depending on the environment you choose since the underlying electron technology produces a cross-platform app.
-
From your app directory in the terminal, run
npm run package
-
By default, the above command produces an executable similar to the os used to run.
-
The executable will be available in
releases
Client: Angular, Redux, Bootstrap, and Angular Material
Renderer: Electron
-
In-app (App users)
-
External login
- External login is Supported since the app was built to link with any LIS and not just ETL so a user can either log in with in app user credentials or external system credentials.
1. General Settings(Machine configurations and General System Settings)
2. Functions and Secrets(To the core, the app uses functions for communication to any LIS)
3. Mapping(If an external LIS uses mapped items for data, then you can add the mappings to be used in data sync)
4. Users, Roles and Privileges(Creating in-app users and their credentials)
-
From this page, we can add new machines and their respective settings ready for connection.
-
Adding new Machine with details
-
You can add new JavaScript functions that are used to sync between the app and LIS. Also, these externally written functions are the ones used for external login.
-
Every function contains optional secrets that can be sensitive information inserted in the functions at the time of execution.
- This section of settings helps with adding mappings if the LIS with which the app sending data requires that.
-
The dashboard shows the following
-
We can sync data between the app and LIS with the following methods
The App is currently closed source but this information will be updated as soon as it is open sourced
This project is used by the following companies:
-
Add support for FTP communication machines
-
Add support for Serial communication machines
-
Add support for multiple parallel connections