Hi all,
We are seeing an issue with some sessions that are uploaded to the XNAT server (v1.8.10) prearchive via the SCP receiver. The sessions appear in the prearchive with a blank subject field. Examining the dicom.log file we'll see errors like those shown below. Clicking the Details button resulted in a page displaying an XML parsing error (sorry, I didn't grab the text of that). The Archive and Review and Archive buttons give similar XML parsing error messages.
With these sessions I can click the Rebuild button, which results in the subject field filling in correctly, and then I can successfully archive the session. This pattern only occurs with sessions that contain scans with a "secondary" type instead of DICOM.
Has anyone else dealt with a similar situation? Thank you!
Here's an example of the errors found in dicom.log from one of the recent scans.
ERROR org.nrg.dcm.xnat.CatalogBuilder - Unable to move /data/xnat/prearchive/example1/20240909_080125562/240909_example1/SCANS/6/DICOM/8tncf4.dcm to /data/xnat/prearchive/example1/20240909_080125562/240909_example1/SCANS/6/secondary
java.nio.file.NoSuchFileException: /data/xnat/prearchive/example1/20240909_080125562/240909_example1/SCANS/6/DICOM/8tncf4.dcm -> /data/xnat/prearchive/example1/20240909_080125562/240909_QA/SCANS/6/secondary/8tncf4.dcm
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:457)
at sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:262)
at java.nio.file.Files.move(Files.java:1395)
at org.nrg.dcm.xnat.CatalogBuilder.moveFile(CatalogBuilder.java:295)
at org.nrg.dcm.xnat.CatalogBuilder.fixLocation(CatalogBuilder.java:278)
at org.nrg.dcm.xnat.CatalogBuilder.call(CatalogBuilder.java:185)
at org.nrg.dcm.xnat.DICOMScanBuilder$ResourceCatalogCollector.call(DICOMScanBuilder.java:304)
at org.nrg.dcm.xnat.DICOMScanBuilder$ResourceCatalogCollector.iterator(DICOMScanBuilder.java:341)
at org.nrg.dcm.xnat.DICOMScanBuilder.call(DICOMScanBuilder.java:242)
at org.nrg.dcm.xnat.DICOMSessionBuilder.call(DICOMSessionBuilder.java:586)
at org.nrg.dcm.xnat.DICOMSessionBuilder.call(DICOMSessionBuilder.java:56)
at org.nrg.session.SessionBuilder.writeSession(SessionBuilder.java:208)
at org.nrg.session.SessionBuilder.run(SessionBuilder.java:249)
at org.nrg.xnat.archive.XNATSessionBuilder.buildDicomSession(XNATSessionBuilder.java:262)
at org.nrg.xnat.archive.XNATSessionBuilder.call(XNATSessionBuilder.java:172)
at org.nrg.xnat.helpers.prearchive.PrearcUtils.buildSession(PrearcUtils.java:809)
at org.nrg.xnat.helpers.prearchive.PrearcUtils.buildSession(PrearcUtils.java:772)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1035)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1033)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$LockAndSync.run(PrearcDatabase.java:1596)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase.buildSession(PrearcDatabase.java:1047)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase.buildSession(PrearcDatabase.java:1015)
at org.nrg.xnat.helpers.prearchive.handlers.PrearchiveRebuildHandler.execute(PrearchiveRebuildHandler.java:65)
at org.nrg.xnat.services.messaging.prearchive.PrearchiveOperationRequestListener.onRequest(PrearchiveOperationRequestListener.java:38)
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.springframework.messaging.handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:180)
at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:112)
at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:104)
at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:69)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:719)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:679)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:649)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:317)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1167)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1159)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1056)
at java.lang.Thread.run(Thread.java:750)
2024-09-09 09:52:17,734 [DefaultMessageListenerContainer-4] ERROR org.nrg.dcm.xnat.DICOMScanBuilder - Unable to build catalog for scan 6