What changes should I make to the config file to make c-find work?

I’m using pynetdicom3 to make a c-find call on the orthanc server. The same code works for a dcm4che server but fails to produce similar results with Orthanc. Since the same code is working for other servers I believe the problem is at Orthanc’s end and I feel it can be fixed by making changes to the config file. I made changes to the DicomModalities field but it didn’t do any help, is there anything else that needs to be changed? thank you.

I am using pynetdicom3 and the find request works fine.
Could you put a sample of your code and your “dicommodalities” section?

I think the code is correct because it works for other server. I think issue lies somewhere in the config file, probably at the “DicomModalities” field. I tried with having just local, it didn’t work. Then I added local2, still doesn’t work.

“DicomModalities” : {

  • Uncommenting the following line would enable Orthanc to
  • connect to an instance of the “storescp” open-source DICOM
  • store (shipped in the DCMTK distribution) started by the
  • command line “storescp 2000”.
    “local” : [ “ORTHANC”, “”, 4242 ],
    “local2” : [ “PYNETDICOM”, “”, 4242 ],


  • A fourth parameter is available to enable patches for
  • specific PACS manufacturers. The allowed values are currently:
    • “Generic” (default value),
    • “GenericNoWildcardInDates” (to replace “*” by “” in date fields
  • in outgoing C-Find requests originating from Orthanc)
    • “GenericNoUniversalWildcard” (to replace “*” by “” in all fields
  • in outgoing C-Find SCU requests originating from Orthanc)
    • “StoreScp” (storescp tool from DCMTK),
    • “ClearCanvas”, “Dcm4Chee” and “Vitrea”.
  • This parameter is case-sensitive.
    // “clearcanvas” : [ “CLEARCANVAS”, “”, 104, “ClearCanvas” ]

Since you are doing against your localhost, remoteaccessallowed shouldn’t matter.
When you create the association what parameters you input?

This is a example of my code:

ae = AE('FINDSCU', port=3123, scu_sop_class=QueryRetrieveSOPClassList) assoc = ae.associate('', 4242)
In my dicommodalities there’s one with AET FINDSCU, port does not care in find request.

I was using this for association -

ae = AE(scu_sop_class=QueryRetrieveSOPClassList) assoc = ae.associate(addr='', port=4242, ae_title='ORTHANC')
These parameters worked for dcm4chee.
Should I include the parameters that you have used? And what’s that port number that you’re using?
Can you please paste that line for AET FINDSCU in DicomModalities?
Btw I’m able to establish association and do C-ECHO and C-STORE, this issue is only with C-FIND. I haven’t tried C-MOVE and C-GET yet.

My line in modalities is this

“FINDSCU” : [ “FINDSCU”, “”, 10 ],

Try to set your aet when you create the AE(with the c-move you will need to set also the port)

ae = AE('ORTHANC',scu_sop_class=QueryRetrieveSOPClassList)

PD: I think Orthanc does not support c-get

Thank you so much. It is working now after adding aet while creating AE. Yes, I’ve also read C-GET is not supported. How should one go about downloading the dicom image from the server in this case?

Sorry, i didn’t get to that point yet (started yersterday with pyneticom3). The only advice i can give you now is set the port when creating the AE.
If i get how to do it, i’ll post it here.

No problem. I’ll also try to find solution for this. And, thanks again for the help!

C-GET is in fact not supported. You should use C-MOVE instead.

I thought c-move is used to move files between servers, can we download it to local machine using c-move?

sure, simply provide your AET as the destination. Note that it requires that your local machine is accepting incoming DICOM connection and implements C-STORE SCP and this also requires that your local server is declared as a modality in Orthanc.

By the way, since you want to download studies from python, you might just want to use the Rest API so your orthanc server does not need to know about your client (http://book.orthanc-server.com/users/rest.html)

Thanks for your response, but I cannot use Rest API even though it’s more convenient. There may be other servers involved so I am forced to use the DICOM protocol.
I have to figure out what’s the AET of my local server.