【问题标题】:WorklistQuery ( C-FIND) returns C-Find response [2]: Optional Keys Not SupportedWorklistQuery (C-FIND) 返回 C-Find 响应 [2]: Optional Keys Not Supported
【发布时间】:2019-02-09 12:03:42
【问题描述】:

特定 PACS 的 C-Find(请求工作列表)返回 “不支持可选密钥”,并且不返回任何数据。我还尝试使用空字符串“”而不是 null 来表示患者 ID、现有的患者 ID 等等,结果相同。 该请求适用于其他 PACS。

这是怎么回事?如何解决?

请求代码(使用 Fellow Oak 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


    【解决方案1】:

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

            request.OnResponseReceived += (req, rp) =>
            {
                if (rp.HasDataset)
                {
                    dslist.Add(rp.Dataset);
                }
    
                if (rp.Status != DicomStatus.Pending && rp.Status != DicomStatus.QueryRetrieveOptionalKeysNotSupported)
                {                    
                    return;
                }              
            };
    

    【讨论】:

      【解决方案2】:

      只是添加状态的含义:它告诉您您的请求指定了 Worklist-SCP 不支持的匹配键。这意味着您可能会在响应中收到与您的查询条件不匹配的工作列表记录,并且应该被 SCP 过滤掉。

      【讨论】:

      • 我总是建议在返回此类消息时阅读 DICOM 一致性声明。通常供应商会在此处描述他们的错误消息的含义以及他们实际支持的 dicom 标签。
      • 同意。然而,在这种情况下,DICOM 本身描述的状态代码的含义是毫无疑问的。见 PS3.4,表 K.4-1
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多