OpenELIS synch failure

Hello all, can anyone suggest a possible cause for this error? Synch from OpenElis to openmrs

Failed processing event in feed [http://localhost:8052/openelis/ws/feed/patient/58] ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an errororg.openmrs.api.ValidationException: ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an error at org.openmrs.validator.ValidateUtil.validate(ValidateUtil.java:79) at org.openmrs.aop.RequiredDataAdvice.before(RequiredDataAdvice.java:124) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at

@jaghatise: Can you mention whether this is happening for all patient sync of data from ELIS to OpenMRS, or only happening for specific patients?

Can you share openmrs / atom feed logs? Error seems to look like its unable to find the observation against which it needs to store the result.

Thanks @gsluthra. Only a few orders/results fail to sync. Here is the atom feed log file

Thanks

If I remember right, there was a bug 1212 that was something similar, but on the ERP side Can you reproduce this on demo?

The solution to the problem is here

Hi any update regarding the issue ,i am getting the same issue while openelis lab result data is syncing to the opnemrs

Failed processing event in feed [http://localhost:8052/openelis/ws/feed/patient/19] ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an errororg.openmrs.api.ValidationException: ‘obs id is null’ failed to validate with reason: groupMembers

if the issue is found while entering the decimal value in lab this may help-OpenMRS lab test concept has “Allow Decimal” that was set to No. Changing it to Yes, consistently synced OpenELIS to Bahmni for all panels!

Done that but still no use same error shows even the concepts has allow_decimal set to true

Hi, any update regarding the issue? We are getting the same issue while Openelis lab result data is syncing to the Openmrs for specific patients.

Failed processing event in feed [https://xxx.xxx.xxx.xxx:8052/openelis/ws/feed/patient/61744] ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an errororg.openmrs.api.ValidationException: ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an error

@kannan if I understand - you are unable to sync the lab results to the EMR, for a specific patient. Is it possible for you to DM/email only the relevant log section to me? Please do not share/upload production logs publicly. Alternatively lets schedule a zoom/g-meet call in the evenings.

Hello, did you find a work around on this issue?

Hello, am running a test on bahmni standard v1.0.0 on docker and we are getting the same issue with Openelis lab result data NOT syncing to the Openmrs. Kindly assist on this.

Failed processing event in feed [https://xxx.xxx.xxx.xxx:8052/openelis/ws/feed/patient/61744] ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an errororg.openmrs.api.ValidationException: ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an error

Is this happening with all tests ? Please check the range of the results for numeric concepts.

@mohant @angshuonline This is not happening for all tests. Today, we saw the same issue with the CBC panel. Orders from 3rd to 5th June 2025 the results didn’t sync, but results from 2nd June synced fine. Not sure what’s causing the problem.

    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
    at com.sun.proxy.$Proxy140.saveEncounter(Unk', feedUri='http://localhost:8052/openelis/ws/feed/patient/recent'}

org.openmrs.api.ValidationException: ‘obs id is null’ failed to validate with reason: groupMembers: A member of this obs group has an error at org.openmrs.validator.ValidateUtil.validate(ValidateUtil.java:79) at org.openmrs.aop.RequiredDataAdvice.before(RequiredDataAdvice.java:124) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy138.saveObs(Unknown Source) at org.openmrs.api.impl.EncounterServiceImpl.saveEncounter(EncounterServiceImpl.java:207) at sun.reflect.GeneratedMethodAccessor1404.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy139.saveEncounter(Unknown Source) at sun.reflect.GeneratedMethodAccessor1404.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:52) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:303) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.openmrs.aop.LoggingAdvice.invoke(LoggingAdvice.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy140.saveEncounter(Unknown Source) at org.bahmni.module.elisatomfeedclient.api.worker.OpenElisAccessionEventWorker.saveUpdatedEncounters(OpenElisAccessionEventWorker.java:176) at org.bahmni.module.elisatomfeedclient.api.worker.OpenElisAccessionEventWorker.process(OpenElisAccessionEventWorker.java:133) at org.bahmni.module.elisatomfeedclient.api.worker.OpenElisPatientFeedWorker.process(OpenElisPatientFeedWorker.java:17) at org.ict4h.atomfeed.client.service.AtomFeedClient$FailedEventProcessor.doInTransaction(AtomFeedClient.java:251) at org.ict4h.atomfeed.transaction.AFTransactionWorkWithoutResult.execute(AFTransactionWorkWithoutResult.java:6) at org.openmrs.module.atomfeed.transaction.support.AtomFeedSpringTransactionManager$1.doInTransaction(AtomFeedSpringTransactionManager.java:41) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at org.openmrs.module.atomfeed.transaction.support.AtomFeedSpringTransactionManager.executeWithTransaction(AtomFeedSpringTransactionManager.java:38) at org.ict4h.atomfeed.client.service.AtomFeedClient.processFailedEvents(AtomFeedClient.java:98) at org.bahmni.module.elisatomfeedclient.api.client.impl.OpenElisPatientFailedEventsFeedClientImpl.processFailedEvents(OpenElisPatientFailedEventsFeedClientImpl.java:69) at sun.reflect.GeneratedMethodAccessor1622.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:201) at com.sun.proxy.$Proxy295.processFailedEvents(Unknown Source) at org.bahmni.module.elisatomfeedclient.api.task.OpenElisPatientFeedFailedEventsTask.execute(OpenElisPatientFeedFailedEventsTask.java:13) at org.openmrs.scheduler.tasks.TaskThreadedInitializationWrapper.execute(TaskThreadedInitializationWrapper.java:67) at org.openmrs.scheduler.timer.TimerSchedulerTask.execute(TimerSchedulerTask.java:94) at org.openmrs.api.context.Daemon$2.run(Daemon.java:135) 05-06-2025 11:39:06 [WARN ] HibernateConceptDAO - Multiple concepts found for ‘Day(s)’

1 Like

@mozzy do you have a hint on this ?

@kannan Do you have any limits configured for one of the failing tests ? If yes, check whether the entered results is within the allowed limit