文档章节

基于dcm4che3的DICOM文件的读取操作

D大调协奏曲
 D大调协奏曲
发布于 2017/06/29 17:21
字数 233
阅读 184
收藏 1
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import org.dcm4che3.data.Attributes;
import org.dcm4che3.data.DatasetWithFMI;
import org.dcm4che3.data.Tag;
import org.dcm4che3.data.VR;
import org.dcm4che3.io.DicomInputStream;
import org.dcm4che3.io.DicomOutputStream;

public class DicomUtil {
	private DicomInputStream dis = null;

	private DatasetWithFMI datasetWithFMI = null;

	private Attributes data = null;

	private Attributes fmi = null;

	public DicomUtil(InputStream is) {
		super();
		try {
			dis = new DicomInputStream(is);
			datasetWithFMI = dis.readDatasetWithFMI();
			data = datasetWithFMI.getDataset();
			fmi = datasetWithFMI.getFileMetaInformation();
			dis.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public String getValueByTag(int tag) {
		String value = "";
		if (data != null) {
			value = data.getString(tag);
		}
		return value;
	}

	public void setValueByTag(int tag, VR vr,String s) {
		data.setString(tag, vr, s);
	}

	public void save(String path) {
		try {
			File file = new File(path);
			DicomOutputStream dos = new DicomOutputStream(file);
			dos.writeDataset(fmi, data);
			dos.finish();
			dos.flush();
			dos.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		File dicom = new File("C:\\Users\\zy\\Desktop\\ylzInfo\\0602_000004_3");
		InputStream fis;
		try {
			fis = new FileInputStream(dicom);
			DicomUtil dicomUtil = new DicomUtil(fis);

			 dicomUtil.setValueByTag(Tag.Modality,VR.CS ,"*****");
			 dicomUtil.setValueByTag(Tag.StudyDate,VR.DA, "***");
			 dicomUtil.setValueByTag(Tag.PatientName, VR.PN, "病人1");
			 dicomUtil.setValueByTag(Tag.PatientID, VR.LO, "病人ID");
			 
			// fis = new FileInputStream(dicom);
			// String value1 = dicomUtil.getValueByTag(Tag.Modality);

			// String value = dicomUtil.getValueByTag(Tag.StudyDate);

			 System.out.println(dicomUtil.getValueByTag(Tag.PatientName));
			// System.out.println("value1="+value1);

			 //dicomUtil.save("C:\\Users\\zy\\Desktop\\ylzInfo\\0602_000004_3");

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

 

© 著作权归作者所有

共有 人打赏支持
D大调协奏曲
粉丝 1
博文 11
码字总数 6895
作品 0
广州
程序员
私信 提问
DICOM:DICOM3.0网络通信协议(三)

背景: 专栏对于DICOM网络传输介绍过多次,例如DICOM:DICOM3.0网络通信协议(续)、DICOM医学图像处理:DICOM网络传输、DICOM医学图像处理:全面分析DICOM3.0标准中的通讯服务模块。此次通过...

zssureqh
2015/11/23
0
0
DICOM:DICOM3.0网络通信协议之“开源库实现剖析”

背景: 日前,通过对比fo-dicom与dcm4che两种开源库(也是C#与Java两大语言体系)的不同实现来实战学习了DICOM的网络传输,博文中列举了两大开源库各自的实现特点,以及使用的语言特性。本篇...

zssureqh
2015/11/26
0
0
DICOM:DICOM标准学习路线图(初稿)

题记: DICOM医学图像处理专栏撰写已有两个年头,积累了近百篇文章。起初只是用于记录自己科研、工作中遇到的疑难问题,专注于图像处理(主要是医学图像,这也正是专栏名称最初的由来);后来...

zssureqh
2015/10/18
0
0
医疗图像处理软件--OsiriX

OsiriX是一款医疗图像处理软件。主要用于医疗方面,可以把CT(计算机断层扫描)和MRI(核磁共振)的数据加以整合而生成3D的图像,可以旋转,透视甚至是动画等各种操作。只支持苹果操作系统。...

匿名
2008/12/05
16.6K
1
DICOM:最新标准梳理之DICOM Web Service,WADO-URI/WADO-WS/WADO-RS

版权声明:本文为zssure原创文章,转载请注明出处,未经允许不得转载。 https://blog.csdn.net/zssureqh/article/details/52826731 目录: 0.背景 1.DICOM3.0标准概要 2.DICOM3.0 PS18 Web Se...

zssure
2016/10/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
17分钟前
0
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
28分钟前
1
0
I2C EEPROM驱动实例分析

上篇分析了Linux Kernel中的I2C驱动框架,本篇举一个具体的I2C设备驱动(eeprom)来对I2C设备驱动有个实际的认识。 s3c24xx系列集成了一个基于I2C的eeprom设备at24cxx系列。at24cxx系列芯片包...

yepanl
30分钟前
2
0
设计模式之工厂模式

本篇博文主要翻译这篇文章: https://www.journaldev.com/1392/factory-design-pattern-in-java 由于翻译水平有限,自认为许多地方翻译不恰当,欢迎各位给出宝贵的建议,建议大家去阅读原文。...

firepation
今天
5
0

中国龙-扬科
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部