简体   繁体   English

使用 Fo-Dicom,如何制作不区分大小写的 MWL CFindRequest?

[英]With Fo-Dicom, how do you make a case-insensitive MWL CFindRequest?

I can make these great worklist queries like this one...我可以像这样进行这些很棒的工作列表查询...

//Worklist MWL PATIENTID query
var cf = DicomCFindRequest.CreateWorklistQuery();
cf.Dataset.AddOrUpdate(DicomTag.PatientID, szPatientIDsearch);
cf.OnResponseReceived = (DicomCFindRequest rq, DicomCFindResponse rp) =>
{
       if (rp.HasDataset)
       {
           worklistItems.Add(rp.Dataset);
       }
};
Dicom.Network.Client.DicomClient client = new Dicom.Network.Client.DicomClient(IPAddress, mwlserver.port, false, Preferences.SendingAETitle, mwlserver.AETitle, 5000, 10000, 50, 5);
await client.AddRequestAsync(cf);
await client.SendAsync();

But how do you make the Patient ID (0010,0020) or a Patient's Name (0010,0010) case insensitive?但是如何使Patient ID (0010,0020)Patient's Name (0010,0010)不区分大小写呢? Is there a DICOM Tag to add/set in MWL Request?在 MWL 请求中是否有要添加/设置的 DICOM 标签?

As an MWL SCU, controlling the case sensitivity of MWL Query is practically (explained below) not possible.作为 MWL SCU,控制 MWL 查询的大小写敏感性实际上是不可能的(在下面解释)。 Also, this is more about specifications;此外,这更多的是关于规格; not about toolkit.与工具包无关。 So FO-DICOM or other, does not make much difference.所以 FO-DICOM 或其他,没有太大区别。

Workflow of MWL communication is explained in this answer which may help you.答案中解释了 MWL 通信的工作流程,可能会对您有所帮助。

  • You are acting as MWL SCU.您作为 MWL SCU 行事。
  • You send MWL Query ( C-FIND ) to third party MWL SCP.您将 MWL 查询 ( C-FIND ) 发送给第三方 MWL SCP。
  • SCPs generally store Order data in RDBMS; SCP通常将订单数据存储在 RDBMS 中; this answer assumes it (does not matter any way).这个答案假设它(无论如何都无所谓)。
  • Based on your filter parameters (DICOM Tags you send ( Patient ID (0010,0020) or a Patient's Name (0010,0010) as you said in question)), SCP will generate SQL Query.根据您的过滤器参数(您发送的 DICOM 标签( Patient ID (0010,0020)Patient's Name (0010,0010) ,如您所说),SCP 将生成 SQL 查询。
  • SCP will then execute this SQL Query on its RDBMS and will get the rows.然后 SCP 将在其 RDBMS 上执行此 SQL 查询并获取行。
  • Data from these rows will be mapped to each MWL Response (see link above for description) which will be sent back to you.来自这些行的数据将被映射到每个 MWL 响应(请参阅上面的链接了解描述),这些响应将被发送回给您。

As you can see now, case sensitivity is controlled entirely on SCP while generating and executing the query (or say behaviour of underlying RDBMS).正如您现在看到的,在生成和执行查询(或者说底层 RDBMS 的行为)时,区分大小写完全由 SCP 控制。
You as SCU cannot control this behaviour.作为 SCU,你无法控制这种行为。

Is there a DICOM Tag to add/set in MWL Request?在 MWL 请求中是否有要添加/设置的 DICOM 标签?

No;不; there is no standard DICOM Tag that SCU can add/set in C-FIND request that indicates SCP to run case sensitive/insensitive query.没有 SCU 可以在C-FIND请求中添加/设置的标准 DICOM 标记,指示 SCP 运行区分大小写/不区分大小写的查询。

As @kritzel_sw said in the comment :正如@kritzel_sw 在评论中所说:

With standard worklist it is impossible to control this from the SCU side.使用标准工作列表,不可能从 SCU 端控制它。 With extended negotiation it would be possible to do this, but I have never seen that implemented in practice.通过延长谈判,可以做到这一点,但我从未见过在实践中实施过。 – kritzel_sw – kritzel_sw

Extended Negotiation may be the solution;延长谈判可能是解决办法; but in practice, I never come across any SCP implemented it.但在实践中,我从未遇到过任何实施它的 SCP。
As an SCU, you should not rely on optional features of SCP.作为 SCU,您不应依赖 SCP 的可选功能。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM