DICOM文件修改方法
/// <summary>
/// 读取dicom文件
/// </summary>
/// <param name="srcdirectory"></param>
/// <param name="desdirectory"></param>
public static void ReadAndEditFileInfo(string srcdirectory, string desdirectory)
{
string[] Srcfilenames = Directory.GetFileSystemEntries(srcdirectory);
string[] Destfilenames = Directory.GetFileSystemEntries(desdirectory);
foreach (string srcfilename in Srcfilenames)
{
foreach (string destfilename in Destfilenames)
{
int oldLength = destfilename.Length;
int length = srcfilename.Length;
int oldlocation = destfilename.LastIndexOf("\\");
int location = srcfilename.LastIndexOf("\\");
string name = srcfilename.Substring(location, length - location);
string oldname = destfilename.Substring(oldlocation, oldLength - oldlocation);
//如果查找最后文件名称里面带.dcm的后缀就不进行文件比较了
if (!name.Contains(".dcm") || !oldname.Contains(".dcm"))
{
if (name == oldname)
{
//获取文件名称
if (Directory.Exists(srcfilename))
{
//获取文件夹下的所有文件名称
DirectoryInfo root = new DirectoryInfo(srcfilename);
FileInfo[] files = root.GetFiles();
DirectoryInfo oldroot = new DirectoryInfo(destfilename);
FileInfo[] oldfiles = oldroot.GetFiles();
foreach (var file in files)
{
foreach (var oldfile in oldfiles)
{
if (file.Name == oldfile.Name)
{
string path = srcfilename + "\\" + file;
string oldpath = destfilename + "\\" + oldfile;
ImageEditor.UpdateDicomFileInfo(oldpath, path);
}
}
}
}
ReadAndEditFileInfo(srcfilename, destfilename);
}
}
}
}
}
/// <summary>
/// 修改DICOM文件属性值
/// </summary>
/// <param name="srcdic"></param>
/// <param name="desdic"></param>
/// <returns></returns>
public static bool UpdateDicomFileInfo(string srcdic, string desdic)
{
try
{
FileStream fs = new FileStream(desdic, FileMode.Create);
Stream stream = fs;
var dicomFile = DicomFile.Open(srcdic);
var datasetFile = dicomFile.Dataset.GetDicomItem<Dicom.DicomStringElement>(DicomTag.StudyDate);
string patientId = dicomFile.Dataset.GetString(DicomTag.PatientID);
string patientName = dicomFile.Dataset.GetString(DicomTag.PatientName);
string studyInstanceUId = dicomFile.Dataset.GetString(DicomTag.StudyInstanceUID);
string seriesInstanceUId = dicomFile.Dataset.GetString(DicomTag.SeriesInstanceUID);
//dicomFile.Dataset.AddOrUpdate(DicomTag.StudyDate, DateTime.Now);
//dicomFile.Dataset.AddOrUpdate(DicomTag.StudyTime, DateTime.Now);
//dicomFile.Dataset.AddOrUpdate(DicomTag.PatientSex, "F");
//dicomFile.Dataset.AddOrUpdate(DicomTag.PatientAge, "015Y");//DWMY (year,month,week,day)
dicomFile.Dataset.AddOrUpdate(DicomTag.Manufacturer, "");
dicomFile.Dataset.AddOrUpdate(DicomTag.ManufacturerModelName, "");
dicomFile.Dataset.AddOrUpdate(DicomTag.PatientName, patientName + "-Name");
dicomFile.Dataset.AddOrUpdate(DicomTag.PatientID, patientId + "-ID");
dicomFile.Dataset.AddOrUpdate(DicomTag.StudyInstanceUID, studyInstanceUId + "1");
dicomFile.Dataset.AddOrUpdate(DicomTag.SeriesInstanceUID, seriesInstanceUId + "2");
//dicomFile.Dataset.AddOrUpdate(DicomTag.TableHeight,12.13);
dicomFile.Save(stream);
}
catch(Exception e)
{
return false;
}
return true;
}
DICOM文件修改方法的更多相关文章
- 提高Linux安全性--hosts.allow, hosts.deny 文件修改方法
有一种办法来提高Linux安全性--修改 hosts.allow , hosts.deny 这2个文件来配置 允许某个ip访问, 或者禁止访问. 可以通过这种方式设置限制 sshd 的远程访问, 只允 ...
- Magento后台手动修改订单状态方法及手动修改方法php
订单详细内容页手动修改订单状态方法: 打开此文件:app\design\adminhtml\default\default\template\sales\order\view\history.phtm ...
- php文件上传大小限制的修改方法大全
php文件上传大小限制的修改方法大全 基本就是修改maxsize选项,当然为了提高上传文件的成功率,还需要设置超时时间等. 文章如下: [php文件上传]php文件上传大小限制修改,phpmyadmi ...
- 详述 hosts 文件的作用及修改 hosts 文件的方法
1 什么是hosts文件? hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”.当用户在浏览器中输入一个需要登录的网址时,系统会首 ...
- PDF文件怎么修改,PDF文件编辑方法
PDF文件是一种独特的文件,在日常办公中已经成为我们使用最广泛的电子文档格式.在使用PDF文件中会遇到PDF文件有错区的时候,再从新制作一个PDF文件会比较麻烦,只能通过工具来对PDF文件进行修改,这 ...
- Mac OS系统四种修改Hosts文件的方法列举
转自:https://blog.csdn.net/u012460084/article/details/40186973 使用Mac OS X系统的用户,在某些时候可能遇到了需要修改系统Hosts文件 ...
- 苹果Mac OS系统修改Hosts文件的方法
使用苹果Mac OS X系统的用户有很多,近期也有不少童鞋问我Mac怎么修改hosts,修改hosts的方式有很多,下面我就整理两种比较方便的方法吧,希望能够帮到大家. 在某些时候可能遇到了需要修改系 ...
- Hosts文件路径及修改方法
(转自:http://www.techolics.com/softdev/20111029_100.html) 什么是Hosts文件? 根据百度百科的定义,Hosts文件是一个系统文件,这是一个本地的 ...
- CentOS 7下修改rabbitmq打开文件数量方法
以下为使用systemd的修改方法: 1.系统层修改: 通过修改sysctl配置,提高系统的打开文件数量 vim /etc/sysctl.conf,添加: fs.file-max = 65535 ...
随机推荐
- pip使用笔记
例子: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U funcat -i: 指定库的安装源 -U:升级 原来已经安装的包,不带U ...
- Linq Introduce
Linq学习网址: http://www.java2s.com/Code/CSharp/LINQ/CatalogLINQ.htm
- ubuntu下virtualbox的安装、卸载
一.添加VirtualBox的源并安装5.1版本 virtualbox官网:https://www.virtualbox.org/wiki/Download_Old_Builds 虽然也可以直接安装d ...
- Python3 Selenium自动化web测试 ==>FAQ:PyCharm中脚本不执行main函数内容解决方案
FAQ: 情景:之前写好可以正常执行的python脚本,突然main函数下的代码不运行 原因:pycharm中,会设置py脚本按照unittest的方式运行,也就是只运行用例,不运行main函数下代码 ...
- git 命令常用笔记
1. 全局操作 git --version //git 机器上是否存在 git init --bare project.git //服务端:初始化一个新的仓库 chown -R zhangsan:zh ...
- 忘记Linux的root登录密码?不用害怕,破解掉它就可以了!!!
在开启centos 7主机后会出现下面这个界面,此时要把光标放到界面内,然后按“e”进入下一个界面. 按完“e”会出现一个新的界面,然后按“↓”找到“Linux16”这行,在最后面的UTF-8后面输入 ...
- Python绘制可爱的卡通人物 | 【turtle使用】
Turtle库 简介 什么是Turtle 首先,turtle库是一个点线面的简单图像库,能够完成一些比较简单的几何图像可视化.它就像一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始 ...
- 《Java语言程序设计》继承与多态
一.动手实验:继承条件下的构造方法 调用运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent ...
- ffmpeg学习笔记-音频播放
前文讲到音频解码,将音频解码,并且输入到PCM文件,这里将音频通过AudioTrack直接输出 音频播放说明 在Android中自带的MediaPlayer也可以对音频播放,但其支持格式太少 使用ff ...
- Reactor系列(五)map映射
#java# #reactor# #flux# #map# #映射# 视频解视: https://www.bilibili.com/video/av79179444/ FluxMonoTestCase ...