Welcome Guest! To enable all features, please Login or Register.

Notification

Icon
Error

Options
View
Last Go to last post Unread Go to first unread post
#1 Posted : Tuesday, June 11, 2013 9:40:37 PM(UTC)
dkrijnen

Groups: Registered
Posts: 22


We use QueryRetrieveScu component for retrieving images from a PACS, but would like to control which offerered transfer syntax we accept and which one we won't.

How can we control this as part of the C-Store Acc. from the PACS ?

(Medical imaging suite v17)
 

Try the latest version of LEADTOOLS for free for 60 days by downloading the evaluation: https://www.leadtools.com/downloads

Wanna join the discussion? Login to your LEADTOOLS Support accountor Register a new forum account.

#2 Posted : Wednesday, June 12, 2013 7:20:54 AM(UTC)

mohamed  
mohamed

Groups: Registered, Tech Support
Posts: 179


You can check the transfer syntax by calling the DicomAssociate. GetTransfer() method inside the OnReceiveAssociateRequest method. If the transfer syntax is supported you then accept the connection otherwise reject the connection.
Mohamed Abedallah
Developer Support Engineer
LEAD Technologies, Inc.

LEAD Logo
 
#3 Posted : Thursday, June 13, 2013 5:13:24 AM(UTC)
dkrijnen

Groups: Registered
Posts: 22


Thanks,

The problem is that the PACS we are retrieving from sends a list of TS, with a private syntax that we seem to accept and later cannot process.
You can see it here with UID: 1.2.276.0.50.1.2.1

Presentation Context ID: 1
SOP Class: XRay Angiographic Image Storage[1.2.840.10008.5.1.4.1.1.12.1]
SCU Role: Implicit
Transfer Syntax(proposed): Unknown Transfer Syntax[1.2.276.0.50.1.2.1]
Transfer Syntax(proposed): Explicit VR Little Endian[1.2.840.10008.1.2.1]
Transfer Syntax(proposed): Implicit VR Little Endian[1.2.840.10008.1.2]

We want to use this context id, but not the involved private TS ofcourse.
 
#4 Posted : Friday, June 14, 2013 2:59:41 AM(UTC)
dkrijnen

Groups: Registered
Posts: 22


Hello Support,


We inherited the class from QueryRetrieveScu and ovverrided the method
OnReceiveAssociateRequest. But one isn't invoked when PACS started the negotiation for C-Store.
See the code below:


QueryRetrieveScuEx retrieveInstance = new QueryRetrieveScuEx();

retrieveInstance.EnableMoveToSelf = true;
retrieveInstance.Moved += new MovedDelegate(retrieveInstance_Moved);
retrieveInstance.AfterCMove += new AfterCMoveDelegate(retrieveInstance_AfterCMove);

retrieveInstance.Move(paxs, String.Empty, StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID);

void retrieveInstance_AfterCMove(object sender, AfterCMoveEventArgs e)
{
// invoked
}

void retrieveInstance_Moved(object sender, MovedEventArgs e)
{
// invoked too
}


class QueryRetrieveScuEx : QueryRetrieveScu
{

protected override void OnReceiveAssociateRequest(DicomAssociate association)
{
// doesn't invoked
}

}
 
#5 Posted : Sunday, June 16, 2013 4:32:07 AM(UTC)

mohamed  
mohamed

Groups: Registered, Tech Support
Posts: 179


I want to investigate more about this, so please send an email to support@leadtools.com and include the following:
1. Your toolkit serial number (Don't post it here).
2. What is the build number (file version info) of Leadtools.dll on your machine?
3. A link to this forum post.
Mohamed Abedallah
Developer Support Engineer
LEAD Technologies, Inc.

LEAD Logo
 
#6 Posted : Tuesday, June 25, 2013 12:35:18 AM(UTC)
dkrijnen

Groups: Registered
Posts: 22


Hello Support,

We updated to version 17.5 but still have the same problem:

The method OnReceiveAssociateRequest is not invoked.

We need to control the accepted offered transfer syntaxes as currently we seem to accept a private transfer syntax.
 
#7 Posted : Monday, July 1, 2013 5:43:30 AM(UTC)

mohamed  
mohamed

Groups: Registered, Tech Support
Posts: 179


Here's an update to the 2 issues as discussed earlier by email.
The 2 issues were:
1) The OnReceiveAssociateRequest is not being called.
2) The QueryRetreiveScu is accepting a transfer syntax it does not support.

After discussing these issues with our engineers, we have learned that both of these issues are by design.

The QueryRetrieveScu object is meant to be a quick object to both query, and then retrieve images from a PACS. However, it is not as robust as a workstation.

Why the OnReceiveAssociateRequest is not being called:
When a query is performed with the object (using the Find function) the object sends a request and receives a response. When a retrieve is performed, the QueryRetrieveObject internally creates a listening service, which accepts a connection from the PACS, where the PACS will then issue a CStore request to the listening service, once the CStore finishes, the CMove is complete.

This is why the OnReceiveAssociateRequest function is never called, because the internal listening service is who the remote PACS will be communicating with. The OnReceiveAssociateRequest function that you have access to and are overriding is from the QueryRetrieveScu object, not the internal listening service.

Why the QueryRetreiveScu is accepting a transfer syntax it does not support:
Currently the QueryRetrieveScu's listener service is not able to handle filtering out unsupported transfer syntax. The code required to handle these cases would bloat the object and fall outside the design constraints of object itself.

A typical Workstation has both an SCU component and a listener service component.

To handle the type of communication you're faced with, you can use the QueryRetrieveScu to query, and then move, but when specifying where to move the DICOM file, you should specify a listener service that is robust enough to handle filtering out unsupported transfer syntax.
Mohamed Abedallah
Developer Support Engineer
LEAD Technologies, Inc.

LEAD Logo
 
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF.NET | YAF.NET © 2003-2024, Yet Another Forum.NET
This page was generated in 0.087 seconds.