Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GSoC 2018] LIMS Integration into EHR #1204

Merged
merged 16 commits into from
Aug 28, 2018

Conversation

Perseus
Copy link
Contributor

@Perseus Perseus commented Jul 13, 2018

I had to create a new branch due to some rebase/merge issues with my earlier one.

What this branch currently contains:

  • Base directory structure supporting multiple LIMS implementations
  • Guzzle as the cURL library
  • Documentation both for the user and the developer

The following features are fully functional in the branch:

  • Login
  • Dashboard
  • Instrument Management ( Locations, Types and Instruments )
  • Manufacturers and Suppliers Management
  • Methods
  • Laboratory Management ( Lab contacts, Lab departments and Lab Products )
  • Analysis Management ( Clients so far, there were some issues with the Senaite API regarding updating data so I'm currently figuring that out with the help of their community )

WIP:

  • Sample Management (Types, Points, Matrices, Conditions)
  • Calculations (This goes hand in hand with the Methods, I need to create a small parser that is able to calculate based on a string provided by the user )
  • Analysis ( Categories, Requests, Services, Profiles )
  • Worksheets ( Templates and the Worksheets themselves )
  • Data transfer between the LIMS and EHR
  • Containers (Containers, Container Types)
  • Ability to create new users (This has to deal directly with Plone and not Senaite, looking into the limitations for this)

Screenshots:
image

image

image

image
The UI is completely responsive and usable on mobiles and desktops alike. I intend to re-do the design for the dashboard to something more pleasing after I've finished the rest of the project.

@aethelwulffe
Copy link
Contributor

Very very nice.

@aethelwulffe
Copy link
Contributor

I really hope you can manage a demo of this. The project is...takes a pretty good lot of upcurve of learning!

@aethelwulffe
Copy link
Contributor

Any updates this week?

@Perseus
Copy link
Contributor Author

Perseus commented Aug 1, 2018

Yup, sorry, I'll push a commit asap. Been having some issues with the API

@aethelwulffe
Copy link
Contributor

aethelwulffe commented Aug 2, 2018 via email

apooravc and others added 11 commits August 12, 2018 12:48
* Changed file name for statement download

Changed file name for statement download

* Conforming to Linix

Conforming to Linix
* Initial round of actual measure updates for MIPS module 2018

Includes menu_data updates to provide better use of QA features.

* First pass complete

Several measures need revision, direct entry tables need update, reporting refinements yet to come, but initial first update pass for 2018 complete.

* Engine Updates

Engine and utility updates, and one installer sql error.

* Report rename bug fixed

Duplicate Key based update method non-optimal.  Was sometimes not firing, probably due to INNODB thingies.

* Report UI updates

Allows active removal of rows from direct entry attestation screen.  json data update in report_results.field_id = data is next.  This will be followed by added report status columns to indicate each status of the report elements including pass, not passed, and not reported.

* Function updates

Hardening report rename, doing cleanup.
Direct entry table updates to follow.

* Some direct entry changes

* Remove legacy files and XML editor

XML editor is too heavy (38 files) to keep around if it is not generally needed.  It is pretty small compared to some junk piles, but I prefer that my PR show more removed code than added!
)

* updater icon added

* administration panel - step one

* review changes

* user control panel added

* loader added to load templates

* saving the changes

* Updater settings Module Implemented

* bug fix in updater setting

* backup the local changes to branch

* progress towards user mode

* fix

* saving the progress

* saving progress  - downloading files

* downloading and backup files - progress

* backup, download functions added

* replacement function progress

* enabling backup functions

* clearing backup as well as download directory before updating

* user mode almost ready

* ui for user mode

* preparing for review

* db changes for review

* db patch

* db mistake correction

* add download and backup directory

* fix for updater : show when repo is already up to date

* developer mode ui added

* bug fix during file addition

* loader icon added

* missed comma

* fix

* prevent deletion of readme.md

* sql bindings done

* copyright information - done

* send notification on update

* developer mode initialisation

* developer mode  - progress save

* missed semicolon

* clearing errors

* developer mode - experimental

* validation for developer mode

* prevent developer mode to sync from start

* show progress when developer mode is running

* progress showing in developer mode

* adding restore button to the developer mode

* wrong button id -fixed

* error in sql statement fixed

* review system from client was added

* error in sql statement - fixed

* fix the broken features

* settings.json PR number changed

* translating text - stage one

* translations - second phase

* Updater icon toggle

* pr number showing on developer mode
Wasgetting warnings in error log with php 7
…breHealthIO#1176)

* interface add

* resolve menu data conflict, add track appt. link

* cover non-recurring appointments

* status change and appt. list size

* status description and date range filtering

* fix log window order

* add time format and license headers
…code to allow creation of analysis requests and worksheets
@Perseus
Copy link
Contributor Author

Perseus commented Aug 12, 2018

What I've added with this commit:

  • Sample Management (Types, Points, Matrices, Conditions)
  • Analysis ( Categories, Requests, Services, Profiles )
  • Worksheets ( Templates and the Worksheets themselves )
  • Data transfer between the LIMS and EHR
  • Workflow diagram on how to go about setting it all up and manage procedure orders

How the data integration currently works :

  1. User issues procedure order in the EHR
  2. Procedure orders show up in the LIMS and can be accepted by lab management faculty
  3. Once accepted, analysis requests can be created and assigned to those procedure orders
  4. Each step of the Analysis Request( sample received, worksheet created, results updated) are reflected in a table I created linking procedures and analysis requests.
  5. Once the AR is resolved and a result is produced, results are updated in the procedure_order_results table and also a page/pdf is created for printing with all the results in them.

There are currently some issues that I'm unable to solve due to senaite's API. I've raised the issues on their github. The community has been super helpful so these should be resolved quickly
Those can be seen here:
senaite/senaite.jsonapi#27
senaite/senaite.jsonapi#28 ( I made a temporary workaround for this so this should work )
senaite/senaite.jsonapi#29 ( Due to this issue, unique sample types cannot be created leading to a difficulty creating analysis requests. The code is all there, it will function the moment this issue is fixed )

I've also updated the developer docs to include instructions on updating/maintaining the latest version of senaite,

image
Picture of the workflow, can also be found in PDF form in the documentation folder.

WIP:

Creating new users (analysts) - I'm adding this functionality to senaite's code so will have to create a PR and wait for it to be merged. Till then, I can upload a version of the code that has the function in it. ( need input here )

@aethelwulffe @teryhill
Sorry for the long gap between commits, quite the learning curve figuring out the API.

@teryhill
Copy link
Contributor

@tmccormi can you rebase this and clean up the commit?


}

</script>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Newline! :)

@aethelwulffe
Copy link
Contributor

@Perseus
Hi buddy, for the "final review" if you could do the cleanbranch rebase for this it would be helpful.
In the meantime, we are doing final project evals at this time, so it might be too late to help for that, but will still be good just to check the non-module code.

In the meantime, I think I will write my current impressions of your project for the review. Mind you I am on pain meds at the moment:
Basic status impressions:

  1. This new module interfacing with the LIMS is prototyped and apparently fires on most cylinders.
  2. Current known bi-directional limits and work-arounds have been made or documented for the full workflow communications as best I can see from the example output and the described flowchart.
  3. Issues and direct engagement with parent project(s) is active to solve items with workarounds, or the code is positioned to take advantage of finalized implementations of solutions on the senaite side.
  4. Documentation is very high quality.

Standing issues (some mentioned above):
1.There is a work-around code change you could implement to allow adding users to our deployed version of the code in near term, but not guaranteed to keep us in lock-step with senaite.
2. "Unique" sample types (assuming something not ordinary) cannot be handled at the moment, but the issue should disappear once the solution is merged up in senaite.

Project evaluation: Ready for Alpha, if not Beta deployments in the wild.
-Seems like the definition of a GSOC success.

@Perseus
Copy link
Contributor Author

Perseus commented Aug 21, 2018

@aethelwulffe I'll get right on it.

For the user issue, I'm working on integrating a user creator into the LIMS itself. I had a couple interviews the last few days so I wasn't able to finish that feature.

The sampletype issue is the one that was holding back the creation of unique analysis requests. I did add in the code that should work once that issue is resolved but I can't be sure unless I test it. It should be fixed over the next few days and everything else will work.

Thanks for the kind words 😄

Copy link
Contributor

@aethelwulffe aethelwulffe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beta merge ready.
Should integrate now, will not affect other operation.

@teryhill teryhill self-requested a review August 27, 2018 21:38
@aethelwulffe aethelwulffe merged commit b468657 into LibreHealthIO:master Aug 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants