Utsavi Gajjar · Dec 3, 2020

DICOM Routing to Storage production to Enable sending of images from PACS to PACS via Ensemble


I am attempting to setup a DICOM Routing to Storage Production using Ensemble 2017.1. I have followed the Routing to Storage production given in Ensemble Demo Namespace. I have created association with appropriate “Presentation Context” for inbound and outbound PACS system.  I am attempting send a Computed Radiography Image from one PACS to another via Ensemble but its failing when sending the image to the receiving PACS with following error :

 ERROR <Ens>ErrException: <READ>zAcceptPDU+4^EnsLib.DICOM.Adapter.TCP.1 -- logged as '-' number - @' Use ..IPDevice Read tHdr#6:pTimeout Else Set tSC=##class(Ens.Util.Error).EnsError($classname(),"AcceptPDU","<EnsDICOM>TimedOutWaitingForResponseFromPeer",..State) Quit'


I have already upped the ARTIM and TXTIM settings to 120 seconds with no luck.  And looking at the trace, it doesn't seem like its waiting for 2  minutes.  I have got the PACS guys to double check their config and it looks OK.

 I have installed an SCU client on Ensemble TEST Server (this is the server where I am setting up DICOM interfaces). Using that SCU client, I am successfully able to send DICOM images to the destination PACS from Ensemble TEST Server. I am using the same association details, i.e. CallingAET, CalledAET, IP and Port, as defined on Ensemble DICOM operation. Also using the same Transfer Syntax. This tells me that config at receiving PACS end must be OK.

 Has anyone seen this error before ?  Is anyone aware of any specific config required on PACS end to make it work with Ensemble ?

 Appreciate any help!




Cache for Windows (x86-64) 2017.1 (Build 792U) Mon Mar 20 2017 19:13:14 EDT)
Product version: 
Ensemble 2017.1
0 0 2 55


I had not worked with DICOM for quite a while but my first tack would be to enable logging on the receiving PACS and try to see what the errors look like.

Thanks Vitaly Furman

We enabled logging on receiving PACS and figured out that Ensemble was sending same ID for 2 different SOP classes. I had been using the "CreateAssociation" command with third argument as blank to create associations.  When doing so , Ensemble adds all Abstract Syntaxes it knows about with default TransferSyntax of Implicit VR. I believe the receiving PACS didn't cater for one of the Abstract Syntax. 

To solve the problem, I removed the association. Created it using GUI so no default Presentation COntext is added. I then manually added a few Abstract Syntax with Basic Transfer syntax of Implicit VR and retested and this time the communication worked.

I then created an Import file for the PACS based on Conformation Statement provided by PACS and imported in Ensmeble using the ImportAssociation command.