Receiving DICOM data error

Hi all,

I’m trying to push DICOM data from a MRI scanner to orthanc, and it frequently get the error messages as below:

E1012 10:58:02.912763 FindScp.cpp:257] Find SCP Failed: DIMSE Failed to send message

0006:031d TCP I/O Error (Broken pipe) occurred in routine: writeDataPDU

Could you please kindly tell us the reason and help to solve it? Thanks.

Best,
Young

Hi,

First of all, the error message comes from the C-Find SCP handler which should not be related to a C-Store but who knows what your MRI is doing :slight_smile: ?

Secondly, you should probably analyze your logs in verbose mode to understand exactly when it happens (https://book.orthanc-server.com/faq/log.html).

Third, the error “broken pipe” seems to suggest that the TCP connection has been closed. Since Orthanc complains while acting as a C-Find SCP, it seems that the C-Find SCU (the MRI) has closed the connection too early. This can happen if Orthanc requires a lot of time to answer the C-Find. Again, you should see the time required by Orthanc in the logs.

Then, you might want to increase the SCU timeout on your MRI or you may try to optimize the C-Find execution time by setting the StorageAccessOnFind to Never:

  // Performance setting to specify how Orthanc accesses the storage[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l694)
  // area during find operations (C-FIND, /tools/find API route and[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l695)
  // QIDO-RS in dicom-web). Three modes are available: (1) "Always"[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l696)
  // allows Orthanc to read the storage area as soon as it needs an[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l697)
  // information that is not present in its database (slowest mode),[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l698)
  // (2) "Never" prevents Orthanc from accessing the storage area, and[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l699)
  // makes it uses exclusively its database (fastest mode), and (3)[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l700)
  // "Answers" allows Orthanc to read the storage area to generate its[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l701)
  // answers, but not to filter the DICOM resources (balance between[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l702)
  // the two modes). By default, the mode is "Always", which[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l703)
  // corresponds to the behavior of Orthanc <= 1.5.0.[](https://hg.orthanc-server.com/orthanc/file/tip/OrthancServer/Resources/Configuration.json#l704)
  "StorageAccessOnFind" : "Always",

HTH

Alain

Hi Alain,

Thanks very much for your reply. It’s very helpful.
After discussion with my colleagues, I think there was a misunderstanding from my aspect. Sorry about that.
The situation was that the MRI scanner has completed the data push process to orthanc. And we were trying to get data from orthanc and frequently get the error as I said before.

Do you have any suggestions? Thanks.

Best regards,
Young

All my previous suggestions remain valid.