java使用dcm4che3 解析dicom文件
来源:互联网 发布:mac网络代理设置 编辑:程序博客网 时间:2024/05/21 06:38
先说一下背景吧,有一台眼底照相机,拍摄患者的眼底信息后发送dicom文件到指定的服务器上面,然后再解析dicom文件,获取其中的图片和患者的其他信息,入库 给医生筛查。
在gitHub上面找了一个监听指定端口的服务,并把dicom文件保存在本地。代码如下:
protected void store(Association as, PresentationContext pc, Attributes rq, PDVInputStream data, Attributes rsp) throws IOException { String cuid = rq.getString(Tag.AffectedSOPClassUID); String iuid = rq.getString(Tag.AffectedSOPInstanceUID); System.out.println(rq.getString(Tag.PatientName)); String tsuid = pc.getTransferSyntax(); File storageDirectory = ((DicomServerApplicationEntity) as.getApplicationEntity()).getStorageDirectory(); if(storageDirectory == null) { logger.error("Unable to store instance with SOP Instance UID " + iuid + ": no storage directory configured"); return; } if(!storageDirectory.exists()){ storageDirectory.mkdirs(); } File partFile = new File(storageDirectory, iuid + PART_EXT); File instanceFile = new File(storageDirectory, iuid + FILE_EXT); try { storeTo(as, as.createFileMetaInformation(iuid, cuid, tsuid), data, partFile); renameTo(as, partFile, instanceFile); } catch(Exception e) { deleteFile(as, partFile); throw new DicomServiceException(Status.ProcessingFailure, e); } for(StoreSCPListener storeSCPListener: storeSCPListeners){ storeSCPListener.onInstanceReceived(as, iuid, instanceFile); } sendPatientInfo(iuid); }
存储到本地指定文件夹里面之后,就需要解析该文件了。可以看一下我写的测试类
File file = new File("/home/guoyh/yueke/gyh1.dcm");DisplayTag d = new DisplayTag(file);@SuppressWarnings("static-access")Attributes attr1 = d.loadDicomObject(file);byte[] bytename = attr1.getBytes(Tag.PatientName);System.out.println(new String(bytename,"gb18030"));byte[] bytesex = attr1.getBytes(Tag.PatientSex);System.out.println(new String(bytesex,"gb18030"));其中DisplayTag类是一个工具类,通过声明的file 对象,把dicom文件加载进来。其中 dicom文件的内容是由一个一个的tag组成,比如:0008,0005这个Tag是指定这个dicom文件的编码方式。获取到眼底相机传输过来的dicom文件之后,我试着去解析他,发现在0008,0005获取到的值是null,而且输入的中文全部都是乱码。打电话咨询了一下,得知编码方式是GB18030,然后就像上面的例子那样获取到指定Tag的byte[] ,再转化成String ,大功告成。
dcm4che开源框架还是很强大的。但是国内的资料比较少,刚开始做的时候也是挺费劲。而且maven好像国内的镜像没有jar包,我是导入到项目中,maven引用的本地jar。有知道的大神可以跟我说一下。如果有什么疑问,可以加我QQ guo_yuhao@foxmail.com,大家共同探讨进步!
2 0
- java使用dcm4che3 解析dicom文件
- java使用dcm4che3 api解析dicom文件
- 使用dcm4che3解析DICOM中,中文乱码问题
- dcm4che3在Windows与Linux环境下压缩dicom文件
- 使用dcm4che3获取Dicom的bmp格式缩略图
- java代码使用ImageJ解析dicom文件成图片
- Dicom文件解析
- Dicom文件解析
- DICOM靶区头文件解析
- dicom文件详细解析
- 使用dcm4che3对jpeg压缩的dcm文件进行解压
- DICOM:由fo-dicom库解析DICOM文件引申出来的……
- dcm4che解析DICOM文件生成JPEG图像
- 如何解析DICOM文件中的Pixel Data ?
- dicom文件
- 使用DCMTK存储Dicom rt文件
- android 解析并显示dicom文件的数据和图像
- JAVA解析DICOM图之获得16进制数据
- 如何判断一个数是否为2的幂次方
- sublime常用快捷键
- pandas DataFrame 索引(二)
- iOS使用CG绘制相应形状的view
- 蓝桥杯-C语言 算法训练 水仙花数
- java使用dcm4che3 解析dicom文件
- 刽子手游戏
- Linux清理
- linux下安装node.js
- ARMv8-A系列学习笔记(5)--Chapter 15 Power Management
- sttdio快捷键
- 玩转Excel系列-SUMIF函数实例教程
- android zip压缩base64解密加密,做记录用
- 多态