WorklistQuery(C-FIND)返回C-查找响应[2]:可选的键不支持

问题描述 投票:2回答:2

C-FIND(请求工作列表)特定PACS返回“可选键不支持”,并没有返回数据。我也曾尝试用空字符串“”,而不是空的患者ID,现有patientid等一个具有相同的结果。请求适用于其他PACS。

这到底是怎么回事,这可怎么解决?

请求代码(使用研究员橡树DICOM FO-DICOM):

var cfind = DicomCFindRequest.CreateWorklistQuery();

List<Dicom.DicomDataset> dslist = new List<Dicom.DicomDataset>();

cfind.OnResponseReceived = (DicomCFindRequest rq, DicomCFindResponse rp) =>
{

    if (rp.Status != DicomStatus.Pending)
    {                 
        return;
    }           

    dslist.Add(rp.Dataset);
};

var client = new DicomClient();
client.AddRequest(cfind);

try
{                
    await client.SendAsync(destip, port, useTLS, callingAE, calledAE);
}
catch (Exception e)
{
    logger.Error(e);                
}

这是日志。

2019-02-09 09:49:01.6540 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL -> Association request:

Calling AE Title:       XXXXXXXXX

Called AE Title:        TEST_01WL

Remote host:            XXX.29.51.XXX

Remote port:            9895

Implementation Class:   Implementation Class UID [1.3.6.1.4.1.30071.8]

Implementation Version: fo-dicom 4.0.0

Maximum PDU Length:     16384

Async Ops Invoked:      1

Async Ops Performed:    1

Presentation Contexts:  1

  Presentation Context:  1 [Proposed]

       Abstract Syntax:  Modality Worklist Information Model - FIND

       Transfer Syntax:  Implicit VR Little Endian: Default Transfer Syntax for 
DICOM 

2019-02-09 09:49:01.6540 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- Association accept:

Calling AE Title:       XXXXXXXXX

Called AE Title:        TEST_01WL

Remote host:            XXX.29.51.XXX

Remote port:            9895

Implementation Class:   Unknown [1.2.752.24.3.3.25.7]

Implementation Version: WIMWLSCP_20_1

Maximum PDU Length:     28672

Async Ops Invoked:      1

Async Ops Performed:    1

Presentation Contexts:  1

  Presentation Context:  1 [Accept]

       Abstract Syntax:  Modality Worklist Information Model - FIND

       Transfer Syntax:  Implicit VR Little Endian: Default Transfer Syntax for 
DICOM 

2019-02-09 09:49:01.7580 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL -> C-Find request [2] 

2019-02-09 09:49:01.8240 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- C-Find response [2]: Optional Keys Not Supported 

2019-02-09 09:49:01.8240 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- C-Find response [2]: Optional Keys Not Supported 

2019-02-09 09:49:01.8240 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- C-Find response [2]: Optional Keys Not Supported 

2019-02-09 09:49:01.8240 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- C-Find response [2]: Optional Keys Not Supported 

2019-02-09 09:49:01.8240 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- C-Find response [2]: Optional Keys Not Supported 

2019-02-09 09:49:01.8240 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- C-Find response [2]: Success 

2019-02-09 09:49:01.8830 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL -> Association release request 

2019-02-09 09:49:01.8830 INFO Dicom.Log.NLogManager+NLogger.Log TEST_01WL <- Association release response 

2019-02-09 09:49:01.8830 INFO Dicom.Log.NLogManager+NLogger.Log Connection closed 
c# dicom fo-dicom
2个回答
1
投票

我想补充一下状态是指:它告诉你,你的请求指定其不是由工作表,SCP支持匹配的密钥。这意味着,你可能会在不符合您查询条件,并通过SCP应该被过滤掉的响应接收工作列表记录。


2
投票

所以,我解决了它,“不支持可选的键”是一个信息的消息和数据的实际接收。

        request.OnResponseReceived += (req, rp) =>
        {
            if (rp.HasDataset)
            {
                dslist.Add(rp.Dataset);
            }

            if (rp.Status != DicomStatus.Pending && rp.Status != DicomStatus.QueryRetrieveOptionalKeysNotSupported)
            {                    
                return;
            }              
        };
© www.soinside.com 2019 - 2024. All rights reserved.