问题描述
目前,我使用以下代码设置参数以从 PACS 检索数据。
DcmDataset findParams = DcmDataset();
findParams.putAndInsertString(DCM_QueryRetrieveLevel,"SERIES");
findParams.putAndInsertString(DCM_SpecificCharacterSet,"ISO_IR 192");
但是,只是想检查我们是否可以提供支持多个字符集以同时导入数据,代码将如下所示,我正在尝试检查这是否可能,因为我没有验证的设施一样。
findParams.putAndInsertString(DCM_SpecificCharacterSet,"ISO_IR 192","ISO_IR 100");
解决方法
我想你想表达的是“这个Query SCU可以接受以下字符集的响应”。这显然是不可能的。请参阅 discussion in the DICOM newsgroup 以供参考。它以在关联协商中添加字符集协商的提议结束。但是这样的补充还没有提交,目前不知道有没有人在做。
查询检索服务类上下文中属性Specific Character Set (0008,0005)
的语义:
PS3.4、C.4.1.1.3.1 请求标识符结构
有条件地,属性特定字符集 (0008,0005)。如果在请求标识符中的任何属性中可以使用扩展或替换字符集,则应包括该属性。否则不得包含
即它只描述了请求数据集的字符编码。
和 C.4.1.1.3.2 响应标识符结构
有条件地,属性特定字符集 (0008,0005)。如果在响应标识符中的任何属性中可以使用扩展或替换字符集,则应包括该属性。否则不应包括在内。如果 SCP 不支持该字符集,则 C-FIND SCP 不需要以 SCU 请求的特定字符集返回响应。 SCP 可能会返回具有不同特定字符集的响应。
即您无法控制 SCP 向您发送响应的字符集。令人惊讶,但事实上。
可以为属性发送多个值,但具有不同的语义。这意味着请求包含来自不同字符集的字符,这些字符使用 ISO 2022 中定义的代码扩展技术进行切换。PS3.5、H.3.2 中提供了一个说明性示例。 >
为了避免字符集兼容性问题,实现者通常会在系统设置时配置的语言环境配置中为特定安装(=医院)配置“唯一”字符集。它工作得很好,例如在俄罗斯的安装很可能支持西里尔文 (ISO_IR 144) 或 UNICODE (ISO_IR 192) 或两者。在“两者”的情况下,您可以选择您喜欢的字符集来配置您的系统。