logicahealth / InfoButtons

Infobuttons are context-sensitive links embedded in the electronic health record (EHR). They use clinical context information from the EHR, such as patient demographics, medications, diagnoses, user role, and clinical setting to help find answers to clinicians' and patients' questions using online health information resources.
28 stars 29 forks source link

error responder #30

Open felipearaujodev opened 4 years ago

felipearaujodev commented 4 years ago

good morning friends

I installed oib-responder and am running at url: "http: // localhost: 8080 / openInfobutton / responder? mainSearchCriteria.v.c = 48447003 & mainSearchCriteria.v.cs = 2.16.840.1.113883.6.96 & taskContext.c.c = PROBLISTREV"

`HTTP Status 500 – Internal Server Error Type Exception Report

Message Request processing failed; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:965) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364) org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170) Root Cause

org.hibernate.exception.SQLGrammarException: could not extract ResultSet org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82) org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:61) org.hibernate.loader.Loader.getResultSet(Loader.java:2031) org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1832) org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1811) org.hibernate.loader.Loader.doQuery(Loader.java:899) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341) org.hibernate.loader.Loader.doList(Loader.java:2516) org.hibernate.loader.Loader.doList(Loader.java:2502) org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2332) org.hibernate.loader.Loader.list(Loader.java:2327) org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490) org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195) org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268) org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) org.openinfobutton.responder.dao.impl.ResponderAssetDaoImpl.findByInfobuttonRequest(ResponderAssetDaoImpl.java:68) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198) com.sun.proxy.$Proxy314.findByInfobuttonRequest(Unknown Source) org.openinfobutton.responder.service.impl.ResponderServiceImpl.findAssetsByInfobuttonRequest(ResponderServiceImpl.java:321) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) com.sun.proxy.$Proxy322.findAssetsByInfobuttonRequest(Unknown Source) org.openinfobutton.responder.controller.OpenInfobuttonResponderController.openInfobuttonRequestHandler(OpenInfobuttonResponderController.java:164) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:743) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:672) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:82) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364) org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170) Root Cause

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'asset0_.KNOWLEDGE_CONTENT' in 'field list' sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.lang.reflect.Constructor.newInstance(Constructor.java:423) com.mysql.jdbc.Util.handleNewInstance(Util.java:411) com.mysql.jdbc.Util.getInstance(Util.java:386) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054) com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237) com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169) com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617) com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778) com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2825) com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2156) com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2313) org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:56) org.hibernate.loader.Loader.getResultSet(Loader.java:2031) org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1832) org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1811) org.hibernate.loader.Loader.doQuery(Loader.java:899) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341) org.hibernate.loader.Loader.doList(Loader.java:2516) org.hibernate.loader.Loader.doList(Loader.java:2502) org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2332) org.hibernate.loader.Loader.list(Loader.java:2327) org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490) org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195) org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268) org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) org.openinfobutton.responder.dao.impl.ResponderAssetDaoImpl.findByInfobuttonRequest(ResponderAssetDaoImpl.java:68) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198) com.sun.proxy.$Proxy314.findByInfobuttonRequest(Unknown Source) org.openinfobutton.responder.service.impl.ResponderServiceImpl.findAssetsByInfobuttonRequest(ResponderServiceImpl.java:321) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) com.sun.proxy.$Proxy322.findAssetsByInfobuttonRequest(Unknown Source) org.openinfobutton.responder.controller.OpenInfobuttonResponderController.openInfobuttonRequestHandler(OpenInfobuttonResponderController.java:164) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:743) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:672) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:82) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:364) org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:170)`

My answer is generating error I do not know how to solve, can someone help please?

aniskand commented 4 years ago

Hello,

The newest version of the responder includes some new functionality that requires a database update. The migration file is here,

https://github.com/VHAINNOVATIONS/InfoButtons/blob/2.3-SNAPSHOT/oib-responder/oib-rdbms-model/migration2223.sql

Thanks.

felipearaujodev commented 4 years ago

Thanks for the help, I followed the update and already have the columns created. the error persists

My jdbc.proprerties is configured on port 3307 mysql 5.7 connected.

jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc: mysql: // localhost: 3307 / OIB
jdbc.username = root
jdbc.password = MyPass
jdbc.dialect = org.hibernate.dialect.MySQLDialect

structure of my oib-asset table:

`oib_asset` (                                                                                                                                                                                                                                                                                                                                                                                                                        
             `ASSET_ID` bigint(20) NOT NULL AUTO_INCREMENT,                                                                                                                                                                                                                                                                                                                                                                                                  
             `NAMESPACE_CD` varchar(100) DEFAULT NULL,                                                                                                                                                                                                                                                                                                                                                                                                       
             `DISPLAY_NAME` varchar(255) DEFAULT NULL,                                                                                                                                                                                                                                                                                                                                                                                                       
             `LAST_UPDATE_DTS` date DEFAULT NULL,                                                                                                                                                                                                                                                                                                                                                                                                            
             `ASSET_URL` varchar(1000) DEFAULT NULL,                                                                                                                                                                                                                                                                                                                                                                                                         
             `ASSET_MIME_TYPE` varchar(1000) DEFAULT NULL,                                                                                                                                                                                                                                                                                                                                                                                                   
             `KNOWLEDGE_CONTEXT` text,                                                                                                                                                                                                                                                                                                                                                                                                                       
             `KNOWLEDGE_SUMMARY` text,                                                                                                                                                                                                                                                                                                                                                                                                                       
             PRIMARY KEY (`ASSET_ID`)                                                                                                                                                                                                                                                                                                                                                                                                                        
           ) ENGINE=InnoDB AUTO_INCREMENT=4348 DEFAULT CHARSET=utf8  
jedimik commented 4 years ago

Hello, did you solve this error? Iam stucked with that for a while...

aniskand commented 4 years ago

Looks like this is a bug in the creation script for the asset table. KNOWLEDGE_CONTEXT should be KNOWLEDGE_CONTENT.

jedimik commented 4 years ago

Looks like this is a bug in the creation script for the asset table. KNOWLEDGE_CONTEXT should be KNOWLEDGE_CONTENT.

That's right. I figured it out two days after. But I didnt had enough time to write the solution here.