一、使用dcm4che3的准备工作

1.1、dcm4che git地址:GitHub - dcm4che/dcm4che: DICOM Implementation in JAVA

1.2、 执行 mvn install -DskipTests 命令进行安装( 我下载的是5.24.0 版本)

这是执行成功的效果,中间那种找包就不在这里阐述了;大家如果想要直接使用的话,我已经把包上传到CSDN上了:传送门

二、操作 Dicom 文件

2.1、引入jar包

<dependency><groupId>org.dcm4che</groupId><artifactId>dcm4che-core</artifactId><version>5.24.0</version>
</dependency>

2.2、代码例子

package com.exampl;import org.dcm4che3.data.Attributes;
import org.dcm4che3.data.Tag;
import org.dcm4che3.data.VR;
import org.dcm4che3.io.DicomInputStream;
import org.dcm4che3.io.DicomOutputStream;
import org.springframework.util.StringUtils;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;/*** @ClassName PrecessDcmUtils* @Description* @Author WangJing* @Date 2021/8/9 10:39 上午* @Version V1.1.0*/
public class PrecessDcmUtils2 {public static void execute(String path, String newPath) throws IOException {DicomInputStream in = null;Attributes attr = null;DicomOutputStream dout = null;try {in = new DicomInputStream(new File(path));attr = in.readDataset();//========患者信息//患者IDattr.setString(Tag.PatientID, VR.LO, "****");//患者姓名attr.setString(Tag.PatientName, VR.PN, "****");//出生日期attr.setString(Tag.PatientBirthDate, VR.DA, "20210101");//性别attr.setString(Tag.PatientSex, VR.CS, "F");//年龄attr.setString(Tag.PatientAge, VR.AS, "99Y");//========医院信息//医院姓名attr.setString(Tag.InstitutionName, VR.LO, "********");//医院地址attr.setString(Tag.InstitutionAddress, VR.ST, "**********");//检查信息String referringPhysicianName = attr.getString(Tag.ReferringPhysicianName);if (!StringUtils.isEmpty(referringPhysicianName)) {attr.setString(Tag.ReferringPhysicianName, VR.PN, "****");}File newFile = new File(newPath);dout = new DicomOutputStream(newFile);//Attribute写入,完成更改dout.writeDataset(in.getFileMetaInformation(), attr);} catch (Exception exception) {System.out.println(exception);} finally {//老老实实挨个关掉清理if (dout != null) {dout.finish();dout.flush();dout.close();}if (in != null) {in.close();}}}public static void main(String[] args) throws IOException {execute("/Users/wangjing/Desktop/dcm文件包/03682330/", "/Users/wangjing/Desktop/dcm文件包/03682330/");}
}

三、执行效果

3.1、原文件(源文件涉及到敏感信息就不展示了)

3.2、新文件

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!

使用 dcm4che 操作 Dicom 文件相关推荐

  1. pyDicom基本使用操作dicom文件

    dicom文件前面已经介绍,那么我们需要读和写文件信息,我发现python中有pydicom这个好用的库,可以帮助我们方便的操作,据说比java的会方便很多. pydicom的网站里面介绍的比较详细  ...

  2. dcm4che解析DICOM文件生成JPEG图像

    dcm4che概述 dcm4che是为专注于医疗健康企业开发的基于DICOM标准的开源应用和工具的集合.目前最新的版本是dcm4che3.3.8.本片文章主要讲的是使用dcm4che3.3.8解析DI ...

  3. DCM4CHE解压缩的DICOM文件

    概要 上一篇博客 DCM4CHE图像显示 是针对未压缩的dicom文件的显示处理,那对于压缩的dicom文件该怎样处理呢? 本文就介绍带压缩协议的dicom文件处理. 一.查看dicom的压缩协议 ( ...

  4. 【转】Dicom文件解析!!!!!!

    转自:https://blog.csdn.net/leaf6094189/article/details/8510325 Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题 只讲*. ...

  5. 医学图像DICOM文件解析——DICOM内部信息详解篇

    文章目录 一.医学影像学介绍 二.DICOM文件简介 三.DICOM内部信息详解(DICOM Tag与VR) 1.常见的TAG (1) Patient Tag (2) Study Tag (3) Se ...

  6. CT图像分割dicom文件与nii.gz文件预处理----窗宽(window width)和窗位(window level)的设置

    最近被CT图像的值弄得很烦,记录一下. CT分割也是个很热门的话题,病灶分割,器官分割等. CT图像大多是两种格式.dcm和nii.gz,当然也有别的,但这里我就不说别的,就说这两种常用的. .dcm ...

  7. 使用Python对Dicom文件进行读取与写入的实现(pydicom 和 SimpleITK)

    这篇文章主要介绍了使用Python对Dicom文件进行读取与写入的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 使用Pyd ...

  8. 使用python(pydicom)读取Dicom文件并且转换成png

    这篇主要讲怎么处理dicom格式的医学影像文件,并且转换成png,这样利于我们对图像进行处理. pydicom 目前取代了17年前的dicom库,更加的便捷 导入需要的模块,如果没安装,都可以用pip ...

  9. DCM4CHE实现DICOM的C-STORE --STORESCP

    概述 dcm4che是一个开源临床影像与对象管理系统,针对医疗企业的开源程序和实用软件的集合,基于java语言开发,支持JDK1.6以上的开发. DICOM网络传输采用的是C/S模式,storescu ...

最新文章

  1. Python培训教程:pycharm常用的快捷键合集
  2. 用C++/CLI搭建C++和C#之间的桥梁(一)—— 简介
  3. MT6573驱动开发日志之touchpanel .
  4. python——输入输出
  5. Chosen通用初始化
  6. 边工作边刷题:70天一遍leetcode: day 97-2
  7. java velocity是什么意思_基于 Java 的模板引擎Velocity快速入门
  8. 作者:韩芳(1987-),女,中国科学院计算机网络信息中心工程师
  9. OAuth2.0 微信授权机制
  10. 兰州大学c语言课程作业答案,2016兰州大学C语言程序设计课程作业1附答案.doc
  11. java面经_字节跳动 暑期实习 广告部 后台开发 java 一二面经
  12. [推荐]中国网管的知识宝库-网管之家
  13. 高德地图-2D转换为3D
  14. Velodyne 16线激光雷达-多雷达版本
  15. 龙少的Linux配置大全
  16. 前端开发——Ionic 3.0【爱创课堂专业前端培训】
  17. 七日杀服务器怎么修改天数,七日杀调整游戏天数 | 手游网游页游攻略大全
  18. 利用svg添加icon
  19. 这三种屏幕OLED、AMOLED、LCD的优缺点有哪些呢?
  20. uni-app开发流程一(项目搭建)

热门文章

  1. 基于JAVA小区智能停车位管理系统
  2. Compute Shader次世代优化方案
  3. 客服系统竞品分析报告Shein
  4. 性能篇 | 17 | jmeter | BeanShell内置变量prev的使用技巧
  5. 静态电影网站模板A(html+css+js)
  6. Swift 语言之父 Chris Lattner 宣布离开苹果
  7. 怎么用生活照制作一寸证件照片
  8. 教你如何一键下载汽车之家作者的所有无水印视频
  9. [PB] PB中读写文件通用的两个函数
  10. 很经典的600句人生至理格言