Bahmni-OpenELIS integration

OK. This helps.

Is the reference-data webapp also involved in this data exchange? (I couldn’t find much information about it at all.)

Also: Is the webapp openerp-atomfeed-service required for OpenMRS <–> OpenELIS communication or only needed for the Pharmacy component?

This is required only for Openmrs --> openERP connection.

Actually reference-data webapp is deprecated. We had built it to create reference-data(drugs, tests, panel, concepts etc), and other three systems (MRS, ELIS, ERP) listened for events to sync these data. But now all reference data are directly created in OpenMRS and synced to ELIS & ERP.

Great. Is it then safe for me to remove both webapps from Tomcat (as long as I don’t need the ERP component)?

Yes, it will be safe to remove these webapps.

Thanks for the explanations. Now that I understand the technical foundation better, I would like to get a better sense of the ‘logical coupling’.

I still get the same error as indicated by the stacktrace above. In the access log I see this request: “GET /openelis/ws/feed/patient/18 HTTP/1.1” 500 5859 25

So indeed a resources does not exists. This stacktrace appears every 15 seconds (as currently configured), so it makes it almost impossible to detect other problems/stacktraces in the log.

The URL for this patient with ID 18 does not exist, but none of the parent pathes for the URL do either; like /openelis/es, /openelis/ws/feed/, … (but htis might be ok).

Now for tests I’ve played around with my installation quite a bit. Started and stopped OpenELIS and OpenMRS independent from each other. Exexcuted SQL statements (e.g. deletes to get rid of my temporary test data) in the OpenMRS DB. Could this be the reason for this 'instability’?

Can you recommend a way how I could ‘clear’ the backlog for these feeds to get rid of these messages/errors?

This should not cause any issue.

This can cause issue.

So just to debug more, can you try to see “/openelis/ws/feed/patient/recent” returns.

Also, maybe you can just delete all atomfeed related data and start afresh -

Stop tomcat & openerp(if installed) service Login to openmrs database and run following statements.

mysql -uroot -p openmrs
delete from failed_events;
delete from event_records;
delete from markers;
delete from event_records_offset_marker;
delete from event_records_queue;

Similarly login to openerp & openelis DB and run same statements.

 psql -Uclinlims clinlims
 psql -Uopenerp openerp

Start tomcat and openerp (if installed)

Yep. That worked.

But table event_records_queue doesn’t exist in my DBs. Do I have an outdated schema?

And I’m getting one initial stack trace. But it seems as a 'self-organising’ activity and it doesn’t occur afterwards. So I’m simply ignoring it:

132763 [Thread-201] INFO org.quartz.core.QuartzScheduler - Scheduler OpenELIS-Scheduler_$_NON_CLUSTERED started.
2015-11-29 12:46:47,736 [http-nio-8080-exec-2] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/openmrs].[openmrs]- Servlet.service() for servlet [openmrs] in context with path [/openmrs] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: Unexpected error] with root cause
	at org.ict4h.atomfeed.Configuration.getSchema(
	at org.ict4h.atomfeed.server.repository.jdbc.AllEventRecordsOffsetMarkersJdbcImpl.getAll(
	at org.ict4h.atomfeed.server.service.feedgenerator.NumberFeedGenerator.findMarker(
	at org.ict4h.atomfeed.server.service.feedgenerator.NumberFeedGenerator.getRecentFeed(
	at org.ict4h.atomfeed.server.service.EventFeedServiceImpl.getRecentFeed(
	at org.ict4h.atomfeed.server.service.helper.EventFeedServiceHelper$1.execute(
	at org.ict4h.atomfeed.server.service.helper.EventFeedServiceHelper$1.execute(

Thanks a lot, christian

And as another maybe unrelated question: Is the OpenMRS AtomFeed module used behind the scenes? It is available in my installation, but the OpenMRS System Admin page (http://localhost:8080/openmrs/module/atomfeed/manage.form) for it is broken and gives the stacktrace below:

2015-11-29 12:48:14,991 [http-nio-8080-exec-5] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/openmrs].[openmrs]- Servlet.service() for servlet openmrs threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: [180] in the generated java file: [/home/bahmni/apache-tomcat-8.0.12/work/Catalina/localhost/openmrs/org/apache/jsp/]
Syntax error, insert "}" to complete Block

at org.apache.jasper.compiler.DefaultErrorHandler.javacError(
at org.apache.jasper.compiler.ErrorDispatcher.javacError(
at org.apache.jasper.compiler.JDTCompiler.generateClass(
at org.apache.jasper.compiler.Compiler.compile(
at org.apache.jasper.compiler.Compiler.compile(
at org.apache.jasper.compiler.Compiler.compile(
at org.apache.jasper.JspCompilationContext.compile(


Yes OpenMRS Atomfeed module is being used behind the scenes. It publishes “Patient” & “Encounter” events whenever they are saved.

Looks like its admin page is broken.


Yes, but in normal dev environment should not be much of an issue. Installing latest bahmni should resolve this.

>> Also: Is the webapp openerp-atomfeed-service required for OpenMRS <–> OpenELIS communication or only needed for the Pharmacy component? Yes

OpenElis page was blank ( http:///openelis). I checked the log file and saw the following . “clinlims” does not exist. Using my psql , i checked that clinlims actually existed but was empty, so i downloaded the openElis dump file and put it in the clinlims database using " psql -Uclinlims clinlims < ~/Downloads/base.backup". Now when i try open OpenElis page, it still comes blank, but the log shows the following …

Caused by: org.postgresql.util.PSQLException: ERROR: relation “clinlims.quartz_cron_scheduler” does not exist

Can anyone help me with this? My aim is to get OpenElis to working.

Please try the following. I am assuming you are workign with V0.80 of Bahmni:

  1. Stop OpenELIS

service bahmni-lab stop

  1. Execute the commands in the method: restore_pgsql_db( ). This will download a database, and restore databases for OpenELIS, and OpenERP (since both systems use postgresql).

  2. Once DB has been restored, start OpenELIS again.

service bahmni-lab start

  1. Check the logs in /var/log/bahmni-lab for any errors.

Yes I am working with Bahmni 0.80 version. I followed the above steps and my OpenELIS is working now, thank you Gurpreet. As of now i am able to log into the http:///openelis using admin\adminADMIN!.. I am getting the OpenELIS dashboard with most funcionality working, except the PANELS when Adding a SAMPLE of a SAMPLETYPE, there is no panel generation, like for “BLOOD”. For this I assume we need to configure openmrs modules first.

The only error in OpenElis is the following. A few sub-pages in the OpenElis for example "Admin → Test " show

I then decided to integrate OpenElis with OpenMRS using the following standard link A>>>> AND B>>>>

THE BAHMNI-LAB LOG SHOWS THIS (still not able to see the panels on the OpenElis).

7079874 [OpenELIS-Scheduler_Worker-2] ERROR org.quartz.core.ErrorLogger - Job (atom-feed-openmrs-encounter-failed.atom-feed-openmrs-encounter-failedJob threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: org.ict4h.atomfeed.client.exceptions.AtomFeedClientException: java.lang.RuntimeException: java.lang.RuntimeException: org.postgresql.util.PSQLException: ERROR: column “tags” does not exist Position: 89] at at org.quartz.simpl.SimpleThreadPool$ Caused by: org.ict4h.atomfeed.client.exceptions.AtomFeedClientException: java.lang.RuntimeException: java.lang.RuntimeException: org.postgresql.util.PSQLException: ERROR: column “tags” does not exist


The “” shows blank. The “” has 27 pages FILLED

I’m not really sure what is the error or how it was caused.

With this as reference, Is it true that OpenERP should work to set up panels in OpenElis?

@deepakrv: The documentation URL you have pasted is of SEARCH hospital. There we had deployed EMR, OpenELIS, and OpenERP. So, for them, the documentation for more assertive on the process to follow, since they would charge customers for lab tests done, and billing for done in OpenERP. For OpenELIS and OpenERP to sync, the data should be the same in both.

Please see this discussion: (Default) workflow between OpenMRS and OpenELIS

If you don’t want to use OpenERP, you don’t need to worry. You can use just EMR, and OpenELIS.

Thanks gurpreet,

I re-installed the whole Bahmni again on a new computer(v=0.80 as per instructions on site), and now its working fine. The lab tests referred in the Bahmni UI are showing up in the OpenELIS dashboard. When i click collect sample, it redirects me to another page where all the samples added in Bahmni are loaded on panels, But, I am unable to SAVE ( the button is not turning green as shown in the video ) and this is after generating the accession number (by clicking on the Generate button). I have filled all the necessary fields ( as shown by a red star) and sill unable to activate the SAVE button.

Is this a privilege issue? What settings can i change ? I have not configured anything as Bahmni installation configured everything itself, neither have i completed anything from this given page. “

P.S I am able to add sample(Sample>Add sample) and give the same patient(oh Bahmni) the same tests, and then it works. But it does not work through “collect sample”.

The “Save” button not turning green is a bug, I have it on Firefox, but not on Chrome. If you click outside on any area it turns green. In Firefox, additionally you have to scroll up on the page and click on the Patient radio button next to it’s ID - then the “Save” button should be green.