1

对不起,我不擅长 DICOM。我试图用fo-dicom的中文单词写入DICOM标签(0008,0080)。但发现 Tag 值只是在结果文件中显示杂乱的代码。请帮忙审核。

C#代码如下:

var file = DicomFile.Open(@"C:\Users\Administrator\Desktop\20D08F04"); 

//file.Dataset.Add(DicomTag.SpecificCharacterSet, "GB18030");
//file.Dataset.Add(DicomTag.SpecificCharacterSet, "ISO_IR 192");
//I already tried to specified the 0008,0005 with GBK and Utf-8. but it doesn't work. 
file.Dataset.Add(DicomTag.InstitutionName, "测试");

file.Save(@"C:\Users\Administrator\Desktop\test123.dcm");

生成的文件看起来像在 DCMTK 编辑器中爆炸。

你们中的任何人都可以帮助我吗?

提前致谢

在此处输入图像描述

更新

我确信DVTKDicom 文件编辑器支持中文字符集。因为还有一个属性Patient's Name的值是中文。并且可以正常查看。谢谢。

在此处输入图像描述

4

1 回答 1

3

.NET fo-dicom中的默认编码是 US-ASCII。如果在打开 DICOM 文件后设置特定字符集 也无济于事,解析是在打开操作中完成的。特定字符集 仅适用于已在 DICOM 文件中设置的情况。

如果在 DICOM 文件中未指定特定字符集,您可以做的是在DicomFile.Open.

试试这个例如:

var file = DicomFile.Open(fileName, DicomEncoding.GetEncoding("GB18030"));

正如@johnelemans 在评论中指出的那样,还要验证您的查看器是否能够显示中文字符集。

于 2016-06-13T20:53:08.617 回答