DICOM forwarder

488 views
Skip to first unread message

Rai Se

unread,
Jun 2, 2014, 4:31:11 PM6/2/14
to fo-d...@googlegroups.com
hi,
has anyone done a dicom forwarder?

Store SCP receiving files and in its OnStoreRequest open a new assoc. to the destination store scp and forward the datasets?

The cstore results from second cstore should be sent to first cstore i.o. to be aware of possible errors.

Anyone done that?

Thanks
raise


Rai Se

unread,
Jun 3, 2014, 6:21:11 AM6/3/14
to fo-d...@googlegroups.com
... I am getting closer, but still many questions.

It works for one image, but for more images, each image is sent in a new association, which slows the sending a lot!

I use DicomClient class AddRequest and add each DicomRequest I get into my store scp.

public void AddRequest(DicomRequest request)
       
{
           
if (_service != null && _service.IsConnected)
           
{
                _service
.SendRequest(request);
               
if (_service._timer != null)
                    _service
._timer.Change(Timeout.Infinite, Timeout.Infinite);
           
}
           
else
                _requests
.Add(request);
       
}


From the code I would say, if Linger option is set, that the addiational requests should be sent in the same association, or am I wrong?

Thanks

Mahesh Dubey

unread,
Jun 5, 2014, 4:36:25 AM6/5/14
to fo-d...@googlegroups.com
Hello;
      You are creating the new association for each image i.e. on OnStoreRequest this is why it is slow. What I suggest you to open the new association  when you receive the association request i.e. in OnReceiveAssociationRequest and just forward the DicomCStoreRequest on the opened association.
 
The ideal way of creating the simple mediator is

1) OnAssociation request receive simply pass the same request to the final receiver and send the response which you receive from final receiver to the originator requester.    

2) OnCStore request receive pass the  request to the final receiver and send the response which you receive from final receiver to the originator requester.    

3) Close the association with the final receiver when  originator requester closes the association.

Advance mediators have some more functionality like making the request compatible, if the final receiver are not comfortable with the presentation context negotiated by the original requester. 
 

Rai Se

unread,
Jun 5, 2014, 10:51:30 AM6/5/14
to fo-d...@googlegroups.com
Hi Mahesh,
thanks for your answer.

Basically it works, but some SCU open many connections,
how can I make the my c-store scp accept only one by one?

Thank you!



Mahesh Dubey

unread,
Jun 6, 2014, 3:08:40 AM6/6/14
to fo-d...@googlegroups.com
Hello;
          This is little bit difficult because every dicom entity which request has wait  for a response only for a particular time known as dimse timeout also there is a issue of socket timeout, so you cannot put the association in a queue for long time unless and until you have full control on receiving and sending side both, 

One way is to reject the association if the maximum connection(decided by you) reached (but I think this is not you want.).

SCU are free to open as many connection as it want there no restriction mention in document, But ideally (In case of CStore) SCU should open the association series vise, and send all the images in that series on that association.  

Mahesh  

devsif...@gmail.com

unread,
Jun 4, 2018, 11:44:33 PM6/4/18
to Fellow Oak DICOM
Hi,

Are you still working on that forwarder project?

BB
Dev

Rai Se

unread,
Jun 10, 2018, 5:04:29 AM6/10/18
to Fellow Oak DICOM
no, switched to dcm4che (java)
cheers

Reply all
Reply to author
Forward
0 new messages