roy-harmon / UniversaLIS

UniversaLIS is a laboratory information system (LIS) for ASTM/CLSI-compliant clinical laboratory analyzers using serial and TCP connections.
MIT License
38 stars 12 forks source link

API Overhaul #9

Open roy-harmon opened 1 year ago

roy-harmon commented 1 year ago

I'm switching communications over from an external database server to a REST API backed by an internal SQLite database. This includes a lot of minor improvements to the code base, too. The LIS still communicates with analyzers via serial ports and TCP sockets, but from now on, test orders will be sent to the LIS through the web API and stored in its internal database. Then the orders will be sent to the analyzer, the test will be run, the results will be stored in the internal database, and then those results will be available through the web API.

I'll be leaving this open while I add the rest of the endpoints (no pun intended) and workflow. At the moment, only GET requests to the /reports/patients, /reports/patients/{id}, and /requests/patients endpoints and POST, PUT, and DELETE requests to the /requests/patients endpoint are supported, but a lot of progress has been made recently and more will be added soon.

Next steps:

In the meantime, feel free to leave any feedback here.

roy-harmon commented 1 year ago

I think this branch is almost ready to merge. It needs a bit more testing to ensure that the existing UniversaLIS functions still work with the new modifications, but once that's done, I think it's ready. Any additional improvements can be added separately.

roy-harmon commented 11 months ago

I've done a bit of an overhaul this week, moving the database management functions to the REST-LIS process and having UniversaLIS communicate with that process via the REST API to fetch pending requests and store result reports. I've been struggling to configure a service installer package for the project, and since it's kept me stalled for months, I'm going to focus on getting the working executables into testing. That's the next step, and to that end, I'm going to post those files soon in the hopes that someone with a physical setup can help test the system.