Error dcm4chee-arc-light running on Docker

808 views
Skip to first unread message

Yuanduo Li

unread,
Jan 21, 2019, 8:04:26 PM1/21/19
to dcm4che
Hello,

I need help with running DCM4CHEE. I have highlighted my problems.
The docker is installed and three images :  slapd-dcm4chee , postgres-dcm4chee and dcm4chee-arc-psql (latest version) are downloaded from https://github.com/dcm4che/dcm4chee-arc-light/wiki/Running-on-Docker
Docker is running these three container:

e07e022d7d82        dcm4che/dcm4chee-arc-psql:5.15.1     "/docker-entrypoint.…"   7 days ago          Up 7 days           0.0.0.0:2575->2575/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, 0.0.0.0:9990->9990/tcp, 0.0.0.0:11112->11112/tcp   arc

7d9326bed8d2        dcm4che/postgres-dcm4chee:10.0-12    "docker-entrypoint.s…"   7 days ago          Up 7 days           0.0.0.0:5432->5432/tcp                                                                                                     db

3aa98dee5dea        dcm4che/slapd-dcm4chee:2.4.44-15.1   "/docker-entrypoint.…"   7 days ago          Up 7 days           0.0.0.0:389->389/tcp
 
Here are the commands to start these three container. 

sudo docker run --network=dcm4chee_default --name arc            -p 8080:8080            -p 8443:8443            -p 9990:9990            -p 11112:11112            -p 2575:2575            -e POSTGRES_DB=pacsdb            -e POSTGRES_USER=pacs            -e POSTGRES_PASSWORD=pacs            -e WILDFLY_WAIT_FOR="ldap:389 db:5432"            -v /etc/localtime:/etc/localtime:ro            -v /etc/timezone:/etc/timezone:ro            -v /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone            -d dcm4che/dcm4chee-arc-psql:5.15.1


sudo docker run --network=dcm4chee_default --name db            -p 5432:5432            -e POSTGRES_DB=pacsdb            -e POSTGRES_USER=pacs            -e POSTGRES_PASSWORD=pacs            -v /etc/localtime:/etc/localtime:ro            -v /etc/timezone:/etc/timezone:ro            -v /var/local/dcm4chee-arc/db:/var/lib/postgresql/data            -d dcm4che/postgres-dcm4chee:10.0-12


sudo docker run --network=dcm4chee_default --name ldap            -p 389:389            -v /etc/localtime:/etc/localtime:ro            -v /etc/timezone:/etc/timezone:ro            -v /var/local/dcm4chee-arc/ldap:/var/lib/ldap            -v /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d            -d dcm4che/slapd-dcm4chee:2.4.44-15.1


At the moment, I am able to access interface by visiting http://localhost:8080/dcm4chee-arc/ui2/#/studies 

Also, I am able to access dcm4chee-arc-psql and see datatables like STUDY and PATIENT.

DCM4CHEE is able to echo AE Title from other devices and search studies using External AET. Other devices can also echo DCM4CHEE.

However, I cannot search studies using internal AET. I cannot send studies to DCM4CHEE or receive studies from it.

If I use any internal AET like IOCM_REGULAR_USE OR DCM4CHEE, it shows Error 500 internal server error.


Here is the detail of error:

Error detail

org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79) at org.hibernate.loader.Loader.getResultSet(Loader.java:2122) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1905) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1881) at org.hibernate.loader.Loader.scroll(Loader.java:2698) at org.hibernate.loader.hql.QueryLoader.scroll(QueryLoader.java:570) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.scroll(QueryTranslatorImpl.java:423) at org.hibernate.engine.query.spi.HQLQueryPlan.performScroll(HQLQueryPlan.java:350) at org.hibernate.internal.StatelessSessionImpl.scroll(StatelessSessionImpl.java:701) at org.hibernate.internal.QueryImpl.scroll(QueryImpl.java:75) at com.querydsl.jpa.hibernate.AbstractHibernateQuery.iterate(AbstractHibernateQuery.java:163) at org.dcm4chee.arc.query.impl.AbstractQuery.executeQuery(AbstractQuery.java:136) at org.dcm4chee.arc.qido.QidoRS.search(QidoRS.java:427) at org.dcm4chee.arc.qido.QidoRS.searchForStudies(QidoRS.java:206) at org.dcm4chee.arc.qido.QidoRS$Proxy$_$$_WeldClientProxy.searchForStudies(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140) at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:511) at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:402) at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:366) at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:361) at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:368) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:340) at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:313) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:441) at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:231) at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:137) at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:361) at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:140) at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:217) at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:67) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68) at org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:101) at org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:150) at org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:62) at org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526) at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1526) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:360) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378) at java.lang.Thread.run(Thread.java:748) Caused by: org.postgresql.util.PSQLException: ERROR: column patient1_.verification_time does not exist Position: 139 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169) at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:117) at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:504) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70) ... 77 more


Leo



gunterze

unread,
Jan 22, 2019, 3:02:41 AM1/22/19
to dcm4che
The docker image for postgres (dcm4che/postgres-dcm4chee:10.0-12) does not match the archive version (dcm4che/dcm4chee-arc-psql:5.15.1)! You have to use dcm4che/postgres-dcm4chee:X.Y-15). You have to purge the DB initialized by previous start of the postgres container to force the creation with the new DB schema.

Yuanduo Li

unread,
Jan 23, 2019, 10:53:34 PM1/23/19
to dcm4che
Hi Gunterze,

Thank you. I did what you said. It works!
I remove images, container and volume of postgres and delete all files by 'rm -rf dcm4chee-arc/db'. After reinstalling new version, I can receive and send studies to new dcm4chee now.

By the way, I am using an application on Mac called HOROS to send and receive studies. It works. This means DCM4CHEE is working fine. On a windows computer, I used Inteleviewer to send and receive studies. DCM4CHEE and windows can echo other. However, Interleviewer can retrieve study from DCM4CHEE but Interleviewer can not send study to new DCM4CHEE. There is no error on Inteleviewer when sending. I do not have a clue why it does not work.

Yuanduo Li

unread,
Jan 24, 2019, 1:39:21 AM1/24/19
to dcm4che
Hi 
Do not worry. I had a look on log. It turns out DCM4CHEE never get study from windows. Now I solve it.
Reply all
Reply to author
Forward
0 new messages