Weird errors in prearchive

88 views
Skip to first unread message

Simon Doran

unread,
Mar 9, 2020, 1:22:21 PM3/9/20
to xnat_discussion
Hi All,

  Has anyone ever come across either of these two situations before?

Untitled.png



1. Blank subject (top and bottom case in screenshot above)

  Symptom: Sessions received in XNAT via the DicomReceiver show up with an Error flag in the prearchive. Clicking on Details in the top right pane yields



Untitled.png

  Digging into the cause a bit more reveals that in the directory corresponding to this scan, there is an XML file (e.g., for the top entry above it is 20100621_120836.xml) that is empty, whereas it should contain the session information. (I'm presuming that the creation of this is one of the things that the session build process does. However, when I remove the file and click on the "Rebuild" button, I just recreate an empty XML file with the same name.)


 Most of the logs don't tell me anything that I don't know already:


xdat.log


2020-03-09 16:31:15,180 [http-bio-8080-exec-58] ERROR org.nrg.xdat.turbine.modules.screens.SecureScreen -

org.xml.sax.SAXParseException: Premature end of file.


prearchive.log


2020-03-09 16:59:54,121 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.xnat.helpers.prearchive.PrearcUtils - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836.xml is empty.


application.log


2020-03-09 16:59:54,105 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.session.SessionBuilder - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836 must contain exactly one session

org.nrg.session.SessionBuilder$NoUniqueSessionException: No session found



  However, dicom.log does provide a bit of clarity:

2020-03-09 16:59:53,991 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.dcm.xnat.DICOMSessionBuilder - Session builder not implemented for SOP class [1.2.840.10008.5.1.4.1.1.11.1] or modality [PR]

 


  Resolution: Not found one yet. What do we do about this? Is XNAT going to reject any session that happens to get sent with a presentation state file in there and throw an error like this? If so, isn't this going to be a big problem going forward?




2. Subject name present (blanked out with purple blob above)

  Symptom: Clicking on Details leads to a screen like the following:

Untitled.png


  Resolution: Easy, just click on Archive in the action box. But the point is that this is a manual intervention and I shouldn't have to do it.



  System details: XNAT 1.7.6 build 1694 running under Vagrant.


  Any help with either or both of these errors would be much appreciated.


  Best wishes,


Simon



Moore, Charlie

unread,
Mar 9, 2020, 2:02:08 PM3/9/20
to xnat_di...@googlegroups.com

Hi Simon,

 

To clarify, for issue (1), does the session just include presentation states, or is the data that reached the prearchive nothing other than presentation states?

 

Thanks,

Charlie

--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/xnat_discussion/270a81f3-345b-4790-855c-caadca4acaa0%40googlegroups.com.

 


The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.

Simon Doran

unread,
Mar 9, 2020, 5:53:13 PM3/9/20
to xnat_discussion
Hi Charlie,

  In the first case, I'm pretty sure that there are normal image data there as well as presentation states, but will have to dig in the cache and prearchive to verify this 100%. For the second case, I'm not sure whether presentation states are there at all, but there are certainly normal images, as you can see in the third screenshot.

  Thanks for taking a look.

  Best wishes,

Simon,

Moore, Charlie

unread,
Mar 11, 2020, 11:04:16 AM3/11/20
to xnat_di...@googlegroups.com

Hi Simon,

 

The reason I ask is that the message in the logs implies XNAT (thinks it) only received presentation states. If that’s true, XNAT will fail to create a session from the DICOM, which is documented:

1.       Here: https://groups.google.com/d/msg/xnat_discussion/aK8R4rzLRSs/mdL2EEuqAAAJ

2.       And here: https://issues.xnat.org/browse/XNAT-4527

 

Thanks,

Charlie

 

From: xnat_di...@googlegroups.com <xnat_di...@googlegroups.com> On Behalf Of Simon Doran


Sent: Monday, March 09, 2020 4:53 PM
To: xnat_discussion <xnat_di...@googlegroups.com>

--

You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.

Simon Doran

unread,
Mar 11, 2020, 12:25:23 PM3/11/20
to xnat_discussion
Hi Charlie,

  I was trying not to splurge too long a stack trace in my message and keep it concise. The full stack trace looks like this and you will see it refers to multiple sessions and no session.

2020-03-09 16:59:53,992 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.session.SessionBuilder - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836 must contain exactly one session

org.nrg.session.SessionBuilder$NoUniqueSessionException: Multiple sessions found: [no session type identified]

        at org.nrg.dcm.xnat.DICOMSessionBuilder.call(DICOMSessionBuilder.java:372)

        at org.nrg.dcm.xnat.DICOMSessionBuilder.call(DICOMSessionBuilder.java:44)

        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:283)

        at org.nrg.xnat.archive.XNATSessionBuilder.call(XNATSessionBuilder.java:203)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1065)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1032)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase$LockAndSync.run(PrearcDatabase.java:1633)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase.buildSession(PrearcDatabase.java:1084)

        at org.nrg.xnat.helpers.prearchive.handlers.PrearchiveRebuildHandler.execute(PrearchiveRebuildHandler.java:64)

        at org.nrg.xnat.services.messaging.prearchive.PrearchiveOperationRequestListener.onRequest(PrearchiveOperationRequestListener.java:27)

        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.util.MethodInvoker.invoke(MethodInvoker.java:265)

        at org.springframework.jms.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:314)

        at org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:243)

        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:1168)

        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1160)

        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1057)

        at java.lang.Thread.run(Thread.java:748)

2020-03-09 16:59:54,105 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.session.SessionBuilder - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836 must contain exactly one session

org.nrg.session.SessionBuilder$NoUniqueSessionException: No session found

        at org.nrg.session.SessionBuilder.writeSession(SessionBuilder.java:210)

        at org.nrg.session.SessionBuilder.run(SessionBuilder.java:249)

        at org.nrg.xnat.archive.XNATSessionBuilder.buildPetSession(XNATSessionBuilder.java:248)

        at org.nrg.xnat.archive.XNATSessionBuilder.call(XNATSessionBuilder.java:207)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1065)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1032)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase$LockAndSync.run(PrearcDatabase.java:1633)

        at org.nrg.xnat.helpers.prearchive.PrearcDatabase.buildSession(PrearcDatabase.java:1084)

        at org.nrg.xnat.helpers.prearchive.handlers.PrearchiveRebuildHandler.execute(PrearchiveRebuildHandler.java:64)

        at org.nrg.xnat.services.messaging.prearchive.PrearchiveOperationRequestListener.onRequest(PrearchiveOperationRequestListener.java:27)

        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.util.MethodInvoker.invoke(MethodInvoker.java:265)

        at org.springframework.jms.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:314)

        at org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:243)

        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:1168)

        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1160)

        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1057)

        at java.lang.Thread.run(Thread.java:748)


Reply all
Reply to author
Forward
0 new messages