I first want to thank you guys for all the work you put in to build such a useful and beneficial tool. I recently started work on an existing project, and have been learning the ins and outs of XNAT.
We recently came across a need to handle images in a new modality. We have been processing ultrasound images for some time now, but have are now receiving images of the Other Type (OT) modality. When trying to upload these to XNAT through the upload images gui, I receive the following error:
2013-08-16 15:29:26,169 [http-8080-39] ERROR org.nrg.xnat.turbine.utils.ImageUploadHelper -
org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:277)
at org.nrg.xft.schema.Wrappers.XMLWrapper.SAXReader.parse(SAXReader.java:188)
at org.nrg.xnat.turbine.utils.ImageUploadHelper.call(ImageUploadHelper.java:83)
at org.nrg.xnat.helpers.PrearcImporterHelper.reorganize(PrearcImporterHelper.java:304)
at org.nrg.xnat.helpers.PrearcImporterHelper.call(PrearcImporterHelper.java:160)
at org.nrg.xnat.restlet.actions.SessionImporter.importToPrearc(SessionImporter.java:96)
at org.nrg.xnat.restlet.actions.SessionImporter.call(SessionImporter.java:207)
at org.nrg.xnat.restlet.services.Importer.handlePost(Importer.java:176)
at org.restlet.Finder.handle(Finder.java:357)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112)
at org.restlet.Application.handle(Application.java:341)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
at org.restlet.Component.handle(Component.java:673)
at org.restlet.Server.handle(Server.java:331)
at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68)
at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147)
at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881)
at org.nrg.xnat.restlet.servlet.XNATRestletServlet.service(XNATRestletServlet.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - processing
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - looking for DICOM files
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - found 1 DICOM files
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - found DICOM study 900617918_000 (1.2.3.170.2.78170057980817579347912993222222557722)
2013-08-16 15:29:26,169 [http-8080-39] ERROR org.nrg.xnat.turbine.utils.ImageUploadHelper - Decompression error :org.dcm4che2.data.ConfigurationError: No Image Reader of class com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader available for format:jpeg. Storing in original format.
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - done finding DICOM
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - looking for ECAT files
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - found 0 ECAT files
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - done finding ECAT
2013-08-16 15:29:26,169 [http-8080-39] INFO org.nrg.xnat.turbine.utils.ImageUploadHelper - done
2013-08-16 15:29:26,170 [http-8080-39] ERROR org.nrg.xnat.restlet.services.Importer -
org.nrg.action.ServerException: Premature end of file.
at org.nrg.xnat.helpers.PrearcImporterHelper.call(PrearcImporterHelper.java:179)
at org.nrg.xnat.restlet.actions.SessionImporter.importToPrearc(SessionImporter.java:96)
at org.nrg.xnat.restlet.actions.SessionImporter.call(SessionImporter.java:207)
at org.nrg.xnat.restlet.services.Importer.handlePost(Importer.java:176)
at org.restlet.Finder.handle(Finder.java:357)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.java:112)
at org.restlet.Application.handle(Application.java:341)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Router.handle(Router.java:504)
at org.restlet.Filter.doHandle(Filter.java:150)
at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:130)
at org.restlet.Filter.handle(Filter.java:195)
at org.restlet.Filter.doHandle(Filter.java:150)
at org.restlet.Filter.handle(Filter.java:195)
at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:124)
at org.restlet.Component.handle(Component.java:673)
at org.restlet.Server.handle(Server.java:331)
at com.noelios.restlet.ServerHelper.handle(ServerHelper.java:68)
at com.noelios.restlet.http.HttpServerHelper.handle(HttpServerHelper.java:147)
at com.noelios.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:881)
at org.nrg.xnat.restlet.servlet.XNATRestletServlet.service(XNATRestletServlet.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:198)
at org.nrg.xdat.bean.reader.XDATXMLReader.parse(XDATXMLReader.java:465)
at org.nrg.xnat.helpers.prearchive.PrearcTableBuilder.parseSession(PrearcTableBuilder.java:54)
at org.nrg.xnat.restlet.actions.PrearcImporterA$PrearcSession.<init>(PrearcImporterA.java:121)
at org.nrg.xnat.helpers.PrearcImporterHelper.call(PrearcImporterHelper.java:177)
... 57 more
I have inspected the OT dicom, and haven't found any glaring differences between this dicom and the other US dicoms we have been able to process. I am at a bit of a loss given that we have not had issues with the US images we've been processing previously. If you would be able to point me in the right direction in how to resolve this, I will be eternally grateful!