i am having trouble receiving laboratory results on openmrs from openelis. here are screen shots for the event_records, markers and failed events on both openmrs and openelis
i have the same issue from bahmni patient dashboard LAB order showing to openELIS and all the lab test completed however the LAB result is not showing in bahmni patient dashboard what could be the issue ?
this is my first installation and i have register 2 patient.
<img src="/uploads/default/original/2X/5/52d43d1b5227927cf119694c2bd775a0e4e232cf.png" width="690" height="387"><img<img src="/uploads/default/original/2X/2/252926ee3c68ad2a18820f5d59a10dc20fff5740.png" width="690" height="387">
bahmni-lab log showing
[root@localhost log]# cat bahmni-lab.log
43 [localhost-startStop-1] INFO org.quartz.impl.StdSchedulerFactory - Using default implementation for ThreadExecutor
81 [localhost-startStop-1] INFO org.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
81 [localhost-startStop-1] INFO org.quartz.core.QuartzScheduler - Quartz Scheduler v.2.2.0 created.
83 [localhost-startStop-1] INFO org.quartz.simpl.RAMJobStore - RAMJobStore initialized.
84 [localhost-startStop-1] INFO org.quartz.core.QuartzScheduler - Scheduler meta-data: Quartz Scheduler (v2.2.0) 'OpenELIS-Scheduler' with instanceId 'NON_CLUSTERED'
Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
NOT STARTED.
Currently in standby mode.
Number of jobs executed: 0
Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 4 threads.
Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
84 [localhost-startStop-1] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'OpenELIS-Scheduler' initialized from default resource file in Quartz package: 'quartz.properties'
84 [localhost-startStop-1] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 2.2.0
2017-06-07 23:22:49,751 WARN [ELIS][RootClass] composite-id class does not override equals(): us.mn.state.health.lims.analyzerimport.valueholder.AnalyzerTestMappingPK
2017-06-07 23:22:49,752 WARN [ELIS][RootClass] composite-id class does not override hashCode(): us.mn.state.health.lims.analyzerimport.valueholder.AnalyzerTestMappingPK
2017-06-07 23:22:49,753 WARN [ELIS][RootClass] composite-id class does not override equals(): us.mn.state.health.lims.userrole.valueholder.UserRolePK
2017-06-07 23:22:49,753 WARN [ELIS][RootClass] composite-id class does not override hashCode(): us.mn.state.health.lims.userrole.valueholder.UserRolePK
2017-06-07 23:22:49,755 WARN [ELIS][RootClass] composite-id class does not override equals(): us.mn.state.health.lims.address.valueholder.AddressPK
2017-06-07 23:22:49,755 WARN [ELIS][RootClass] composite-id class does not override hashCode(): us.mn.state.health.lims.address.valueholder.AddressPK
2017-06-07 23:22:49,758 WARN [ELIS][RootClass] composite-id class does not override hashCode(): us.mn.state.health.lims.requester.valueholder.SampleRequester
2017-06-07 23:22:49,759 WARN [ELIS][RootClass] composite-id class does not override equals(): us.mn.state.health.lims.testcodes.valueholder.TestSchemaPK
2017-06-07 23:22:49,759 WARN [ELIS][RootClass] composite-id class does not override hashCode(): us.mn.state.health.lims.testcodes.valueholder.TestSchemaPK
2017-06-07 23:22:49,763 WARN [ELIS][RootClass] composite-id class does not override equals(): us.mn.state.health.lims.address.valueholder.AddressPK
2017-06-07 23:22:49,763 WARN [ELIS][RootClass] composite-id class does not override hashCode(): us.mn.state.health.lims.address.valueholder.AddressPK
2017-06-07 23:22:49,764 WARN [ELIS][RootClass] composite-id class does not override equals(): us.mn.state.health.lims.testcodes.valueholder.OrganizationSchemaPK
2017-06-07 23:22:49,764 WARN [ELIS][RootClass] composite-id class does not override hashCode(): us.mn.state.health.lims.testcodes.valueholder.OrganizationSchemaPK
2017-06-07 23:22:53,073 ERROR [ELIS][FormSet] Form 'organizationForm' already exists in FormSet[default] - ignoring.
Jun 07, 2017 11:22:53 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8052"]
123600 [Thread-6] INFO org.quartz.core.QuartzScheduler - Scheduler OpenELIS-Scheduler_$_NON_CLUSTERED started.
2017-06-07 23:51:44,030 WARN [ELIS][NewPooledConnection] [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
2017-06-07 23:51:44,040 WARN [ELIS][NewPooledConnection] [c3p0] Another error has occurred [ org.postgresql.util.PSQLException: This connection has been closed. ] which will not be reported to listeners!
org.postgresql.util.PSQLException: This connection has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:714)
at org.postgresql.jdbc2.AbstractJdbc2Connection.rollback(AbstractJdbc2Connection.java:731)
at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:855)
at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.rollback(AtomFeedHibernateTransactionManager.java:88)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.executeWithTransaction(AtomFeedHibernateTransactionManager.java:49)
at org.bahmni.feed.openelis.feed.job.event.EventRecordsPublisherTask.execute(EventRecordsPublisherTask.java:22)
at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:560)
2017-06-07 23:51:44,046 ERROR [ELIS][JDBCTransaction] JDBC rollback failed
org.postgresql.util.PSQLException: This connection has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:714)
at org.postgresql.jdbc2.AbstractJdbc2Connection.rollback(AbstractJdbc2Connection.java:731)
at com.mchange.v2.c3p0.impl.NewProxyConnection.rollback(NewProxyConnection.java:855)
at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.rollback(AtomFeedHibernateTransactionManager.java:88)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.executeWithTransaction(AtomFeedHibernateTransactionManager.java:49)
at org.bahmni.feed.openelis.feed.job.event.EventRecordsPublisherTask.execute(EventRecordsPublisherTask.java:22)
at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:560)
2017-06-07 23:51:44,049 WARN [ELIS][NewPooledConnection] [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
2017-06-07 23:51:44,050 WARN [ELIS][NewPooledConnection] [c3p0] Another error has occurred [ org.postgresql.util.PSQLException: This connection has been closed. ] which will not be reported to listeners!
org.postgresql.util.PSQLException: This connection has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:714)
at org.postgresql.jdbc2.AbstractJdbc2Connection.getWarnings(AbstractJdbc2Connection.java:578)
at com.mchange.v2.c3p0.impl.NewProxyConnection.getWarnings(NewProxyConnection.java:907)
at org.hibernate.util.JDBCExceptionReporter.logAndClearWarnings(JDBCExceptionReporter.java:22)
at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:406)
at org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:293)
at org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:225)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:174)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.rollback(AtomFeedHibernateTransactionManager.java:88)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.executeWithTransaction(AtomFeedHibernateTransactionManager.java:49)
at org.bahmni.feed.openelis.feed.job.event.EventRecordsPublisherTask.execute(EventRecordsPublisherTask.java:22)
at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:560)
2017-06-07 23:51:44,052 WARN [ELIS][NewPooledConnection] [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
2017-06-07 23:51:44,052 WARN [ELIS][NewPooledConnection] [c3p0] Another error has occurred [ org.postgresql.util.PSQLException: This connection has been closed. ] which will not be reported to listeners!
org.postgresql.util.PSQLException: This connection has been closed.
at org.postgresql.jdbc2.AbstractJdbc2Connection.checkClosed(AbstractJdbc2Connection.java:714)
at org.postgresql.jdbc2.AbstractJdbc2Connection.clearWarnings(AbstractJdbc2Connection.java:597)
at com.mchange.v2.c3p0.impl.NewProxyConnection.clearWarnings(NewProxyConnection.java:933)
at org.hibernate.util.JDBCExceptionReporter.logAndClearWarnings(JDBCExceptionReporter.java:31)
at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:406)
at org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:293)
at org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:225)
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:174)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.rollback(AtomFeedHibernateTransactionManager.java:88)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.executeWithTransaction(AtomFeedHibernateTransactionManager.java:49)
at org.bahmni.feed.openelis.feed.job.event.EventRecordsPublisherTask.execute(EventRecordsPublisherTask.java:22)
at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:560)
1735821 [OpenELIS-Scheduler_Worker-1] ERROR org.quartz.core.JobRunShell - Job atom-feed-events-publisher.atom-feed-events-publisherJob threw an unhandled Exception:
org.hibernate.TransactionException: JDBC rollback failed
at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:170)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.rollback(AtomFeedHibernateTransactionManager.java:88)
at org.bahmni.feed.openelis.feed.transaction.support.AtomFeedHibernateTransactionManager.executeWithTransaction(AtomFeedHibernateTransactionManager.java:49)
at org.bahmni.feed.openelis.feed.job.event.EventRecordsPublisherTask.execute(EventRecordsPublisherTask.java:22)
Your results from LAB is not getting to EMR (OpenMRS)
Few questions
Have you published your results? (Stupid question - but have to ask)
Do you have the “schedulers” running in OpenMRS?
for that, Check - openmrs => admin => manage schedulers - and ensure that " OpenElis Patient Atom Feed Task" is running.
(Btw, if you see duplicate tasks in there, you should delete one of them. Check the release notes for further details on this)
Have you checked if the “circuit breaker” kicked in - any system in Bahmni will tolerate a certain level of errors, till it can no longer take a risk of processing further information. The synchronization happens through feeds between systems. To check
Check the feed status on Clinical side for processing events from LAB. If you have atomfeed-console installed, you can check by going to the following URL
Hello @angshuonline, I also seem to having run into the same senario with bahmni 0.9, the lab results are captured, but do not show on the Patient dashboard
On checking on the schedulers the had stopped, have tried start and they don’'t.
You have some of the schedulers stopped! check “OpenELIS Patient Atom Feed Task”; you need to keep that job running.
Also, seems like you some schedulers duplicate. You can verify whether you have duplicate task configured by either checking the scheduler console (as above) or running the following query
Actually, you want to check duplicate schedulers by the schedulable_class here. So you want to put the other query. The above query had a space between “count” and “(”. Run the below one.
select schedulable_class, count(*) from scheduler_task_config group by schedulable_class;
Remove the duplicates - keep one for per schedulable_class entry in the scheduler_task_config table.
(Note: it is possible to have multiple rows per schedulable_class in openmrs, but in Bahmni so far we haven’t had any, and all the existing schedulers are supposed to be declared just once.
@angshuonline I have created a new patient and added all the info in the consultation, For labs I went to Openelis and filled the data but it is not displaying in the patient dashboard.
I am using bahmni version 0.92.
@angshuonline My “Failed_events” as suggested by @ejustine I have removed my “Failed_eventns” table. and as I already told my atomfeed console is showing empty, Is there any other way to identify them.
Don’t delete the “failed_events” table, before you figure out whats wrong! failed events table lets you know which event has failed and if there is any associated error! So try to figure out which event and why it failed first. also there is a “retries” column - try setting it to 0 for that record. then it will be retried again (max 5 attempts). and you can then tail and keep watching the log “/var/log/openmrs.log” … and see if you get more information in it.
@angshuonline
Lab results are not syncing with OpenMRS
Used all the standard methods of clearing markers, failed_events etc. But we keep seeing this error failed_events of openmrs database.