Java 读取 DICOM 文件字符集转换实战指南
·
① 核心依赖引入与环境快速搭建
基于dcm4che3
② 读取dicom中的tag数据
public static Attributes ReadFile(String path)
{
Attributes attr = null;
DicomInputStream dis = null;
File file = new File(path);
//文件存在时进行读取
if(file.exists()) {
try {
dis = new DicomInputStream(file);
dis.setIncludeBulkData(DicomInputStream.IncludeBulkData.NO);
attr = dis.readDataset(-1, Tag.PixelData);
//关闭dicom流
dis.close();
} catch (Exception ex) {
logger.info(ex.getMessage());
}
}
else
{
attr = null;
}
return attr;
}
③ DICOM 字符集标识解析原理简述
String charset = getCharacterSet(attr.getString(Tag.SpecificCharacterSet));
getCharacterSet方法:
public static String getCharacterSet(String code) {
logger.info(“dicom原始编码集:{}”, code);
String charset = “GB18030”;
if (code == null){
return charset = “GB18030”;
}
switch (code) {
case "ISO_IR 100":
charset = "GB18030";
break;
case "ISO 2022 IR 100":
charset = "GB18030";
break;
case "ISO_IR 101":
case "ISO 2022 IR 101":
charset = "GB18030";
break;
case "ISO 2022 IR 6":
charset = "US-ASCII";
break;
case "ISO_IR 109":
case "ISO 2022 IR 109":
charset = "GB18030";
break;
case "ISO_IR 110":
case "ISO 2022 IR 110":
charset = "GB18030";
break;
case "ISO_IR 13":
case "ISO 2022 IR 13":
charset = "JIS_X_201";
break;
case "ISO_IR 126":
case "ISO 2022 IR 126":
charset = "GB18030";
break;
case "ISO_IR 127":
case "ISO 2022 IR 127":
charset = "GB18030";
break;
case "GB18030":
charset = "GB18030";
break;
case "GBK":
charset = "GB18030";
break;
case "ISO_IR 138":
case "ISO 2022 IR 138":
charset = "GB18030";
break;
case "ISO_IR 144":
case "ISO 2022 IR 144":
charset = "GB18030";
break;
case "ISO_IR 148":
case "ISO 2022 IR 148":
charset = "GB18030";
break;
case "ISO 2022 IR 149":
charset = "KS_X_1001";
break;
case "ISO 2022 IR 58":
charset = "GB2312";
break;
case "ISO 2022 IR 159":
charset = "JIS_X_212";
break;
case "ISO_IR 166":
case "ISO 2022 IR 166":
charset = "TIS_620";
break;
case "ISO 2022 IR 87":
charset = "JIS_X_208";
break;
case "ISO_IR 192":
charset = "UTF8";
break;
}
logger.info("dicom转换后编码集:{}", charset);
return charset;
}
更多推荐
所有评论(0)