目前,我正在使用以下代码设置参数以从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");
我认为你想要表达的是"该查询SCU可以接受以下字符集"中的响应;。这显然是不可能的。请参阅DICOM新闻组中的讨论以供参考。最后提出了在关联协商中增加字符集协商的建议。但这样的补充资料还没有提交,据我所知,目前没有人在做这项工作。
属性Specific Character Set (0008,0005)
在查询检索服务类上下文中的语义
PS3.4,C.4.1.1.3.1请求标识符结构
有条件地,属性特定的字符集(00080005(。如果请求标识符中的任何属性中可以使用扩展或替换字符集,则应包括该属性。除非
也就是说,它只描述请求数据集的字符编码。
以及C.4.1.1.3.2响应标识符结构
有条件地,属性特定的字符集(00080005(。如果在响应标识符的任何属性中可以使用扩展或替换字符集,则应包括该属性。不得以其他方式包含。如果SCU不支持特定字符集,则不要求C-FIND SCP返回SCU请求的特定字符集中的响应。SCP可以返回具有不同特定字符集的响应。
即您无法控制SCP将向您发送响应的字符集。令人惊讶,但这是事实。
可以为属性发送多个值,但具有不同的语义。这意味着请求包含来自不同字符集的字符,这些字符集使用ISO 2022中定义的代码扩展技术进行切换。在PS3.5,H.3.2 中可以找到一个说明性的例子
实现者通常为避免字符集兼容性问题所做的是配置";唯一的";系统设置时配置的区域设置配置中特定安装(=医院(的字符集。它工作得很好,例如,在俄罗斯的安装很可能支持西里尔字母(ISO_IR144(或UNICODE(ISO_IR292(,或者两者都支持。在";两者";,您可以选择用于配置系统的首选字符集。