how can I use dcmtk for C-Get?

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
graceandy
Posts: 4
Joined: Sat, 2006-04-29, 08:30

how can I use dcmtk for C-Get?

#1 Post by graceandy »

hello!
I use the query/retrieve model with the help of the DCMTK.And when I use the PIPIEW to send c-get message to the server,which is established with the DCMTK, the server can't give the right responses. and the problem is often like this:

# Dicom-Data-Set
# Used TransferSyntax: LittleEndianExplicit
(0008,0052) CS [PATIENT] # 8, 1 QueryRetrieveLevel
(0010,0020) LO [123] # 4, 1 PatientID
DcmQueryRetrieve: Get SCP: storeSCU: [file: f:\dicomget\p_20060718\CT\CT.1.3.46.
670589.10.1.1.2158435922.934292566.346153] No presentation context with requestor SCP role for: (CT) 1.2.840.10008.5.1.4.1.1.2
DcmQueryRetrieve: getSCP: Get Sub-Op Failed:
0006:0208 DIMSE No valid Presentation Context ID
Get SCP Response 1 [status: Pending]...

Can you tell me what is wrong with it? thank you.
________
MARIJUANA NEWS
________
Los angeles dispensary
Last edited by graceandy on Sun, 2011-02-13, 02:02, edited 2 times in total.

graceandy
Posts: 4
Joined: Sat, 2006-04-29, 08:30

#2 Post by graceandy »

And I find this value for the variant "cond":DIMSE No data avaliable (timout in non-blocking mode) in the process of debugging.
________
Buy silver surfer
________
Digital scales
Last edited by graceandy on Sun, 2011-02-13, 02:03, edited 2 times in total.

Marco Eichelberg
OFFIS DICOM Team
OFFIS DICOM Team
Posts: 1444
Joined: Tue, 2004-11-02, 17:22
Location: Oldenburg, Germany
Contact:

#3 Post by Marco Eichelberg »

I assume that you are using DCMTK to provide the image server (the C-GET SCP) and are using something else (PiView?) as the client (SCU). The error message No presentation context with requestor SCP role indicates that the client has not correctly negotiated the association and, thus, prevents the C-GET operation from succeeding. For C-GET to work, the SCU needs to negotiate one of the C-GET SOP classes with SCU role and, in the same association, negotiate some of the C-STORE (Storage) SOP classes with SCP role. This requires the optional SCP/SCU role negotiation sub-item to be used in the A-ASSOCIATE protocol, something which the SCU developer possibly "forgot" to implement. The complexity of the SCP/SCU role negotiation is also the main reason why almost nobody is using C-GET in practice.

graceandy
Posts: 4
Joined: Sat, 2006-04-29, 08:30

what can I do to make the DCMTK SCP work with PIVIEW client

#4 Post by graceandy »

thanks very much. I get much information from your reply. I am developing a project now.And I have success on developing the C-MOVE SCP and C-FIND SCP with the help of DCMTK,and all of them can be working smoothly.But only the C-Get SCP can't work with the PIVIEW client. I don't know whether you have connected the PIVIEW client with the DCMTK Quest/Retrieve SCP. Now if I need to make the PIVIEW client work with the DCMTK SCP smoothly, what should I do?Can you make some suggestions?thanks.
________
Oregon Medical Marijuana Dispensary
________
Arizona medical marijuana dispensary
Last edited by graceandy on Sun, 2011-02-13, 02:03, edited 2 times in total.

Marco Eichelberg
OFFIS DICOM Team
OFFIS DICOM Team
Posts: 1444
Joined: Tue, 2004-11-02, 17:22
Location: Oldenburg, Germany
Contact:

#5 Post by Marco Eichelberg »

We have never worked with Piview. If the Piview client does indeed negotiate the Storage SOP classes with incorrect role, as I guessed in my last post, then you would need to modify the behaviour of the dcmqrscp application in method DcmQueryRetrieveGetContext::performGetSubOp() so that the SCU/SCP role would not be checked for storage SOP classes. Basically, you have to remove the following part of the code:

Code: Select all

    } else {
        /* make sure that we can send images in this presentation context */
        T_ASC_PresentationContext pc;
        ASC_findAcceptedPresentationContext(origAssoc->params, presId, &pc);
        /* the acceptedRole is the association requestor role */
        if ((pc.acceptedRole != ASC_SC_ROLE_SCP) && (pc.acceptedRole != ASC_SC_ROLE_SCUSCP)) {
            /* the role is not appropriate */
            nFailed++;
            addFailedUIDInstance(sopInstance);
            DcmQueryRetrieveOptions::errmsg("Get SCP: storeSCU: [file: %s] No presentation context with requestor SCP role for: (%s) %s",
                fname, dcmSOPClassUIDToModality(sopClass), sopClass);
            return DIMSE_NOVALIDPRESENTATIONCONTEXTID;
        }
This behaviour should be kept configurable, though, because it makes dcmqrscp non-conformant.

graceandy
Posts: 4
Joined: Sat, 2006-04-29, 08:30

#6 Post by graceandy »

thanks a lot .I appreciate you very much.I will have a try on your suggetion.
________
PATRIOT
________
Ford Feature Model

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 1 guest