此前在使用dcm4che3解析DICOM圖片時,發現國內的圖片中有涉及到中文的都顯示亂碼。
PatientName=????°?
PatientName=???×??????????
然後用網上的一些使用比較多的DICOM看圖軟件(Sante DICOM Editor 5 )打開:
可以看到病人姓名以及機構名稱依舊是亂碼。
在網上找了一些資料應該是特殊字符集的問題。查看DICOM協議有有一段是這麼來寫的:
For Data Elements with Value Representations of SH (Short String), LO (Long String), UC (Unlimited Characters), ST (Short Text),LT (Long Text), UT (Unlimited Text) or PN (Person Name), the default character repertoire or the character repertoire specified byvalue 1 of Attribute Specific Character Set (0008,0005), may be extended using the Code Extension techniques specified by ISO/IEC2022:1994.
大意是數據元素的值表示爲:SH、LO、UC、ST、LT、UT、PN時,採用默認字符集或者特殊字符集來解碼。也就是說病人名和機構名的解碼受特殊字符集影響。
下一步查看特殊字符集
SpecificCharacterSet=ISO_IR 100
那就改一下特殊字符集改爲GB18030:
SpecificCharacterSet=GB18030
PatientName=李老闆
PatientName=XXX中心醫院
機構名不方便公佈,但是中文解析是OK的。
後面又試了幾個編碼格式只有GB18030和GBK可以解析出來
到這裏dcm4che3解析中文亂碼的問題算是解決了,但是問題沒有完全弄懂。
在SpecificCharacterSet=ISO_IR 100的情況下使用DICOM VIEW程序來看是可以正確解碼的,用公司的dicom軟件來看也可以真確解碼。但是用MEDISP DICOM Viewer,Sante DICOM Editor 5,PmsDView都是亂碼。
雖然問題解決了,但是心中依然有些許困惑。有相同問題的同學歡迎一起探討。