Sync rejected Test results to Openmrs

Context: Currently we are only syncing the accepted lab results from openelis to openmrs. Now we need a way to store the test results of other statuses(eg: Biologist Rejected).

Approach: Currently we are able to find a way to store the rejected results in obs table. But we are not able to differentiate between the accepted results and rejected results in openmrs.

One approach is that to have a new column in obs table which stores the status of the lab result or we can have a new concept to store the status of lab result.

Which approach out of the above two is better or please do suggest if there is any other way to achieve this.

@angshuonline @mksd @darius @pramidat @sruti @prabakaran87 @swathivarkala @binduak @nehagupt

1 Like

Hi @sowmika,

Could you expand on this? How is it stored in the obs table and why can’t this be used for differentiation in OpenMRS?

Adding columns to the obs table should be seen as a last resort.

Right now only the accepted results in openelis are synced back to openmrs. These records are inserted into obs table with status as “final”. The rejected lab results are not synced in openmrs. When we are trying to sync the rejected records to openmrs. Even they are be stored as “final”( as the default value of status column is set to final in db). So we are not sure whether we should use this status field to indicate the difference between accepted and rejected lab results or create a new column/concept( as explained above).

Yes. So far we didn’t have the Rejected Lab Results syncing back to OpenMRS.

I am trying to understand what is the value that the user(Doctor /orderer) gets out of the rejected results? What are different statuses currently and what do they convey to the Lab Test Orderer? Is there any action that is expected by Orderer depending on the reason/status of Rejected Test Results? @sowmika, @nehagupt, @prabakaran87

In OpenELISS, when the test results are updated and validated positively, the results are sync back to MRS and displayed(including Notes). Sometimes when the tests couldn’t be conducted say because of issues like Sample is not conforming or Machine Fault or when the results are rejected, the status for that particular test is not synced back to MRS and hence the users of MRS who placed the orders do not have a visibility on the status of the test.

In those cases, if the ordered gets to know the status, possibly a re-order for failed tests can be placed

I am not sure if I understand this.

  1. If I understand - the intent is to show the doctor the “Status” of a particular order.
  • OpenMRS model does not have a “fulfilment status” for any order.
  • I am not sure if from EMR perspective, tracking the status makes sense! An apparently fulfilled order (published lab results) can be retracted as well - I wonder if that was a reason! Maybe @burke can shed more light.
  1. If the sample has been rejected - then there is no question of sync back to OpenMRS. Most likely the sample will be redrawn. This is also particularly so, since we do not track the accession in MRS. MRS only tracks the lab orders and the results.
  • At best, I can think of a line-entry in the obs table against that order id, to say a particular sample was rejected. (I personally don’t like this solution)
  • Subsequent redrawing of the sample against the same order can update the results when published.
  • One way to track, IMO, would be to associate and track the accession as well. In which case, the order status is fulfilled only any of the lab results against a drawn sample for a particular order is verified and published. @darius, @burke - would like to know how it is done in other OpenMRS implementations, considering MRS model does not have a “status” for order.
  1. If the lab results of a particular test is rejected - then I think we can just show a line item (obs table) against the order saying a test result is rejected, but the status of the order still remains “unfulfilled”. (same as point above, and I don’t really favor this)

Ideally for such things, the idea would be to notify the doctor of a delay and reason! (I wonder why Doctor would be interested in results rejection otherwise - as it is purely a lab function.).

  1. Another approach would be to just get the status from OpenELIS for the ordered test when requested. i.e. Imagine the Lab Results display control saying “pending” for a test and when clicked on a button, we just get the status and reason and show it to doctor.

Incidentally, in FHIR DSTU2 - DiagnositicOrder had a status field to capture the current order status. However in the the current version where DiagnositcOrder has been replaced with generic ProcedureRequest, the status meaning seems different. Check description here - where it says that " … States relating to the activities of the performer are reflected on either the corresponding event or using the Task resource".

I am inclined to keep the Orders model as they are, and if at all required, think of alternate ways - like integration with an API on the Lab System side to get status for an order.

(Note, Please do not add any additional column in the obs table for this. )