eurekaclinical / eureka Goto Github PK
View Code? Open in Web Editor NEWRETIRED - Clinical phenotyping and ETL system
Home Page: http://www.eurekaclinical.org/docs/analytics/
License: Apache License 2.0
RETIRED - Clinical phenotyping and ETL system
Home Page: http://www.eurekaclinical.org/docs/analytics/
License: Apache License 2.0
Before fix the function for "Save" button, I noticed that CSS style is wrong if the "Save" button does not work and gives an error msg. Even I closed the error msg, the CSS still not right.
But after I fix the "Save" button problem, I do not see it anymore, because the page is redirect to Cohort Home page.
Appears not to be implemented.
The phenotypes concept is not loaded into the phenotypes table in this case, which triggers the error in the i2b2 web client.
The superuser role and account is problematic. The role is completely unused in Eureka, and we can't mandate a particular username in environments that use enterprise authentication. An alternative would be just to require at least one account be active at all times with an admin role. The "superuser" account we create at installation would just be an admin account.
This error occurs when
The issue seems to be in JpaEtlGroupDao, and it seems to be yet another issue with postgresql not automatically casting booleans to integers in aggregation operators (max in this case). Here is the stack trace:
org.postgresql.util.PSQLException: ERROR: function max(boolean) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 8
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270)
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998)
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570)
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420)
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:305)
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70)
org.hibernate.loader.Loader.getResultSet(Loader.java:2116)
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1899)
org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1875)
org.hibernate.loader.Loader.doQuery(Loader.java:919)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336)
org.hibernate.loader.Loader.doList(Loader.java:2611)
org.hibernate.loader.Loader.doList(Loader.java:2594)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2423)
org.hibernate.loader.Loader.list(Loader.java:2418)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:501)
org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371)
org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216)
org.hibernate.internal.SessionImpl.list(SessionImpl.java:1326)
org.hibernate.internal.QueryImpl.list(QueryImpl.java:87)
org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:593)
org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:470)
org.hibernate.jpa.criteria.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:50)
edu.emory.cci.aiw.cvrg.eureka.etl.dao.JpaEtlGroupDao.resolveDestinationPermissions(JpaEtlGroupDao.java:140)
edu.emory.cci.aiw.cvrg.eureka.etl.resource.DestinationsDTOExtractor.resolvePermissions(DestinationsDTOExtractor.java:65)
edu.emory.cci.aiw.cvrg.eureka.etl.resource.DestinationsDTOExtractor.resolvePermissions(DestinationsDTOExtractor.java:52)
edu.emory.cci.aiw.cvrg.eureka.etl.resource.ConfigsDTOExtractor.perm(ConfigsDTOExtractor.java:73)
edu.emory.cci.aiw.cvrg.eureka.etl.resource.ConfigsDTOExtractor.extractDTO(ConfigsDTOExtractor.java:58)
edu.emory.cci.aiw.cvrg.eureka.etl.resource.DestinationDTOExtractorVisitor.visit(DestinationDTOExtractorVisitor.java:88)
edu.emory.cci.aiw.cvrg.eureka.common.entity.PatientSetExtractorDestinationEntity.accept(PatientSetExtractorDestinationEntity.java:108)
edu.emory.cci.aiw.cvrg.eureka.etl.resource.Destinations.getAll(Destinations.java:238)
edu.emory.cci.aiw.cvrg.eureka.etl.resource.DestinationResource.getAll(DestinationResource.java:133)
com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:66)
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:497)
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
edu.emory.cci.aiw.cvrg.eureka.common.filter.RolesFilter.doFilter(RolesFilter.java:139)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:201)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:116)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
bower install reports:
[INFO] Please note that,
[INFO] eureka depends on angular#~1.3 which resolved to angular#1.3.20
[INFO] angular-ui-tree#2.9.0 depends on angular#1.2.x || 1.3.x which resolved to angular#1.3.20
[INFO] angular-messages#1.3.20 depends on angular#1.3.20 which resolved to angular#1.3.20
[INFO] angular-animate#1.4.8, angular-aria#1.4.8, angular-mocks#1.4.8 depends on angular#1.4.8 which resolved to angular#1.4.8
[INFO] angular-material#0.11.4, angular-material#0.11.4 depends on angular#^1.3.0 || >1.4.0-beta.0 which resolved to angular#1.4.8
[INFO] tg-angular-validator#1.2.8 depends on angular#>=1.3.0 which resolved to angular#1.4.8
[INFO] ui-router#0.2.15 depends on angular#>= 1.0.8 which resolved to angular#1.4.8
[INFO] angular-material-data-table#0.8.14 depends on angular#^1.4.0 which resolved to angular#1.4.8
[INFO] ng-flow#2.6.1 depends on angular#~1 which resolved to angular#1.4.8
[INFO] Resort to using angular#~1.4 which resolved to angular#1.4.8
[INFO] Code incompatibilities may occur.
Rename /eureka-services/protected/systemelement to /eureka-services/protected/concepts. Rename the *Resource class appropriately.
The GET endpoint is problematic because it requires the String key not the numerical id. There are two issues with this:
So, I'd like the following changes:
Currently logic:
Only when userVerficationPerformed == true, then the banner actually shows.
-If the user already logged in, the 4 menu items show
-If the user not already logged in, the login shows
Before user is verified, the banner is blank.
Banner only decides what to show, until the user is verified.
Problem is:
If user verification takes long time, like 2 or 3 seconds, this feels like a performance issue. Or there maybe a better way to design how the homepage is loaded.
Rename /eureka-services/protected/dataelement to /eureka-services/protected/phenotypes. Rename the *Resource class appropriately.
eureka.common.demoMode
and
eureka.common.ephiProhibited
should be
eureka.common.demomode
eureka.common.ephiprohibited
Read-only app properties will be application properties with defaults that cannot be changed by specifying them in /etc/eureka/application.properties.
Rename eureka-protempa-etl/protected/proposition to eureka-protempa-etl/protected/concepts. Rename *Resource class appropriately.
Here is the stack trace:
edu.emory.cci.aiw.cvrg.eureka.etl.job.EtlException: ETL failed for job ---
at edu.emory.cci.aiw.cvrg.eureka.etl.job.ETL.run(ETL.java:144)
at edu.emory.cci.aiw.cvrg.eureka.etl.job.Task.run(Task.java:164)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: DestinationOffset is not mapped [DELETE FROM DestinationOffset do WHERE do.destination = :d]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1679)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1608)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:294)
at edu.emory.cci.aiw.cvrg.eureka.etl.dao.JpaDestinationOffsetDao.deleteAll(JpaDestinationOffsetDao.java:82)
at edu.emory.cci.aiw.cvrg.eureka.etl.dest.ProtempaDestinationFactory.getInstance(ProtempaDestinationFactory.java:105)
at edu.emory.cci.aiw.cvrg.eureka.etl.dest.ProtempaDestinationFactory.getInstance(ProtempaDestinationFactory.java:83)
at edu.emory.cci.aiw.cvrg.eureka.etl.job.ETL.run(ETL.java:123)
... 4 more
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: DestinationOffset is not mapped [DELETE FROM DestinationOffset do WHERE do.destination = :d]
at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:79)
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:218)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142)
at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:115)
at org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:76)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:302)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:240)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1894)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291)
... 8 more
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: DestinationOffset is not mapped
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:171)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:91)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:76)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:321)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3701)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3590)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:716)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.deleteStatement(HqlSqlBaseWalker.java:445)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:273)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:262)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:190)
... 16 more
Has references to app/*, for example, which doesn't exist any longer.
Eureka application properties go into /etc/eureka/application.properties, and because we have used servlets and JSP pages to serve up web content, we have been able to insert application properties into web content server-side. Now that we are moving away from the servlet/JSP model to static content, we need a REST endpoint for client-side code to retrieve application properties.
Server-side, in the services layer we need an AppPropertiesResource with a GET call that retrieves an AppProperties object with selected properties that the client side needs. Later, we could potentially add full CRUD capability to change application properties dynamically.
Client-side, it seems to make the most sense to retrieve the properties from inside eureka-webapp/src/main/webapp/eureka/config/app-properties.js. I believe we can introduce an angular factory object that retrieves the AppProperties and sets properties in the existing appProperties object in app-properties.js dynamically.
The properties exposed through the REST API should be properties that are:
At the moment, the properties in app-properties.js that satisfy those requirements are:
There are other properties in /etc/eureka/application.properties that should be in this REST API and in the appProperties object in app-properties.js too:
Rename thresholdops, and redo the REST API to make it consistent with best practices (e.g., get rid of /lists).
eureka/register/services/register-service.js
line 20 col 32 'appProperties' is not defined.
⚠ 1 warning
JSHint failed, fix the issues and rerun task.
This is referring to the box about half-way down the page that contains the Register button (if registration is enabled). The box contents change over the course of several seconds as information about whether user registration is enabled, etc. become available. We should just display a progress indicator (a spinner?) until we have all of the information needed to populate the box's contents. There may be a spinner icon in the bootstrap icon library or in the fontastic library.
Files that hard-code superuser:
eureka-protempa-etl/src/main/resources/dbmigration/changelog-master.xml
eureka-services/src/main/resources/dbmigration/changelog-master.xml
Use changelog parameters, described at http://www.liquibase.org/documentation/changelog_parameters.html, to parameterize the superuser username.
Will then need to set the superuser account name for mvn tomcat7:run.
The correct behavior seems to be that when the first name and last name is null, the username needs to be displayed on the top right have side of the Eureka! logo. currently when first name and last name is null the name shows something like (null):(null)
eureka-webapp is hardcoded few places, this affects the reusability of our code.
For example, at eureka.cohorts.js, currently I use:
url: '/eureka-webapp/proxy-resource/destinations'
Problem is:
if I change to '/proxy-resource/destinations', the url changes to: https://localhost:8443/proxy-resource/destinations
if I change to 'proxy-resource/destinations', the url changes to: https://localhost:8443/eureka-webapp/protected/proxy-resource/destinations
There are other places like this, need to figure out a better way than hardcoded url path.
In eureka-webapp/src/main/webapp/eureka/config/app-properties.js there's an apiEndpoint property defined that hardcodes a path to the eureka-services layer. All REST calls should be going through the proxy (defined by the dataEndpoint property in app-properties.js) instead.
So, three things need to happen:
Rename both to ConceptResource.
In eureka-webapp/src/main/webapp/eureka/config/app-properties.js, dataEndpoint and filterEndpoint properties are defined that hard code a path to the server-side of eureka-webapp. These should be relative paths instead.
[INFO] [ERROR] npm WARN deprecated [email protected]: Please use gulp-clean-css
[INFO] [ERROR] npm WARN deprecated [email protected]: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
[INFO] [ERROR] npm WARN deprecated [email protected]: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
[INFO] [ERROR] npm WARN deprecated [email protected]: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
[INFO] [ERROR] npm WARN deprecated [email protected]: graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
[INFO] [ERROR] npm WARN deprecated [email protected]: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
I'm looking at the angular-material pages that are enabled (help, account settings), and the result is highly inconsistent with the rest of the site. There may be widgets that would be useful to include from angular-material, but I think we need to walk back from wholesale adoption of it.
Rename class PhenotypeResource
Revise the REST API as follows:
PUT: /api/protected/phenotypes/{id}
DELETE: /api/protected/phenotypes/{id}
POST: return the URI to the created phenotype and return the CREATED status code
There may be a several second period where the menu bar in the upper left corner does not have any menus. Please display a spinner while that is happening.
The variables names in the html files in eureka-webapp were not updated to match the variable names now used.
Follow the general style of the user registration page (one field per line, etc.).
On the right side of the job status line, links should appear when a completed job is shown. They do not appear when the job status switches to completed. You have to reload the page.
Minimum 4 GB of heap is required to run Eureka and process the default spreadsheet. At least part of the problem is that at least 3 copies of the spreadsheet data are in memory at the same time:
Possible options include:
java.lang.NullPointerException
edu.emory.cci.aiw.cvrg.eureka.servlet.worker.admin.SaveUserWorker.execute(SaveUserWorker.java:59)
edu.emory.cci.aiw.cvrg.eureka.servlet.AdminManagerServlet.doGet(AdminManagerServlet.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
edu.emory.cci.aiw.cvrg.eureka.servlet.filter.PasswordExpiredFilter.doFilter(PasswordExpiredFilter.java:111)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
edu.emory.cci.aiw.cvrg.eureka.servlet.filter.HaveUserRecordFilter.doFilter(HaveUserRecordFilter.java:71)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
edu.emory.cci.aiw.cvrg.eureka.servlet.filter.UserInfoFilter.doFilter(UserInfoFilter.java:75)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
edu.emory.cci.aiw.cvrg.eureka.servlet.filter.MessagesFilter.doFilter(MessagesFilter.java:64)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
edu.emory.cci.aiw.cvrg.eureka.common.filter.RolesFilter.doFilter(RolesFilter.java:119)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:201)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:107)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
The version of hibernate that we’re on has a bug that causes it to pick the wrong schema sometimes when it generates queries when we’re using postgresql. I am seeing the issue manifest as a "Missing column" exception during schema validation when eureka-services starts up and hibernate is initialized. Hibernate reports:
...
Caused by: org.hibernate.HibernateException: Missing column: active in eurekabackend.users
at org.hibernate.mapping.Table.validateColumns(Table.java:366)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1305)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155)
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:509)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1794)
at org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:96)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914)
... 25 more
Hibernate should be validating the eureka service schema, but instead it is validating the eureka backend schema, which happens also to have a users table but without the active column.
Possibly relevant hibernate bug reports:
https://hibernate.atlassian.net/browse/HHH-9607 (closed as duplicate)
https://hibernate.atlassian.net/browse/HHH-9910 (fixed in version 5.0.0.CR3)
At first I thought that we could address the issue through privileges on the database, but that appears not to be the case. In postgresql there's no way to prevent a user from seeing the structure of schemas to which they have no privileges. For example, the eureka services user can see the structure of the eureka backend schema even though the eureka services user has no privileges on the eureka backend schema. So, the solution needs to come from hibernate. Hopefully, upgrading hibernate to version 5 will address the issue.
The phenotype is defined as follows:
The error when deleting is:
Error while deleting "Trying to reproduce the bug". Error trying to delete phenotype. The phenotype is in use. There is a problem with Eureka!.. Status Code: error
I believe the problem has to do with a constraint violation because the same encounter record is referred to in multiple places.
Some of the configuration here is duplicated in the application.properties mechanism, and some configuration information from application.properties is not here at all (like enabling OAuth-based authentication). We need a mechanism for selected properties from application.properties to be available from a web service.
Create an AppProperties comm class with three fields for links, modes and registration returning AppPropertiesLinks, AppPropertiesModes and AppPropertiesRegistration. Have GET calls to eureka-webapp/proxy-resource/appproperties/ return the new object.
Demo mode should not be on here. It's supposed to be off by default. Not sure if it's erroneously on by default, or the Eureka configuration files for mvn tomcat7:run are somehow turning it on.
Depends on eurekaclinical/protempa#11.
As you enter data in these fields and move to the next field, the amount of vertical space between the fields changes.
The News and Funding boxes are populated when the Eureka index.html page is first loaded. However, if you go to another page (like Help) and go back to the index page, the News and Funding boxes are unpopulated. This happens consistently. Reloading the page is the only way to bring the News and Funding back. See screenshot:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.