/// <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文件修改方法的更多相关文章

  1. 提高Linux安全性--hosts.allow, hosts.deny 文件修改方法

    有一种办法来提高Linux安全性--修改 hosts.allow , hosts.deny 这2个文件来配置 允许某个ip访问, 或者禁止访问. 可以通过这种方式设置限制 sshd 的远程访问, 只允 ...

  2. Magento后台手动修改订单状态方法及手动修改方法php

    订单详细内容页手动修改订单状态方法: 打开此文件:app\design\adminhtml\default\default\template\sales\order\view\history.phtm ...

  3. php文件上传大小限制的修改方法大全

    php文件上传大小限制的修改方法大全 基本就是修改maxsize选项,当然为了提高上传文件的成功率,还需要设置超时时间等. 文章如下: [php文件上传]php文件上传大小限制修改,phpmyadmi ...

  4. 详述 hosts 文件的作用及修改 hosts 文件的方法

    1 什么是hosts文件? hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”.当用户在浏览器中输入一个需要登录的网址时,系统会首 ...

  5. PDF文件怎么修改,PDF文件编辑方法

    PDF文件是一种独特的文件,在日常办公中已经成为我们使用最广泛的电子文档格式.在使用PDF文件中会遇到PDF文件有错区的时候,再从新制作一个PDF文件会比较麻烦,只能通过工具来对PDF文件进行修改,这 ...

  6. Mac OS系统四种修改Hosts文件的方法列举

    转自:https://blog.csdn.net/u012460084/article/details/40186973 使用Mac OS X系统的用户,在某些时候可能遇到了需要修改系统Hosts文件 ...

  7. 苹果Mac OS系统修改Hosts文件的方法

    使用苹果Mac OS X系统的用户有很多,近期也有不少童鞋问我Mac怎么修改hosts,修改hosts的方式有很多,下面我就整理两种比较方便的方法吧,希望能够帮到大家. 在某些时候可能遇到了需要修改系 ...

  8. Hosts文件路径及修改方法

    (转自:http://www.techolics.com/softdev/20111029_100.html) 什么是Hosts文件? 根据百度百科的定义,Hosts文件是一个系统文件,这是一个本地的 ...

  9. CentOS 7下修改rabbitmq打开文件数量方法

    以下为使用systemd的修改方法:   1.系统层修改: 通过修改sysctl配置,提高系统的打开文件数量 vim /etc/sysctl.conf,添加: fs.file-max = 65535 ...

随机推荐

  1. Qt编写安防视频监控系统10-视频轮询

    一.前言 视频轮询在视频监控系统中是一个基础的核心功能,尤其是上了大屏以后,这个功能是必须的,根据预先设定的轮询间隔逐个加载视频到预先设定的通道画面数中,轮询间隔.轮询画面数.轮询采用的码流类型(主码 ...

  2. 用Keras搭建神经网络 简单模版(五)——RNN LSTM Regressor 循环神经网络

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) import matplotlib.pyplot as plt from ...

  3. 解决报错Fatal error in launcher

    换电脑重装python,打算安装第三方库的时候出现错误: Fatal error in launcher 然而在网上搜到的大多数是解决 —— Fatal error in launcher: Unab ...

  4. vim实现批量注释和批量删除注释

    批量注释 1.进入文档,vim test.txt 后,按住ctrl+v进入VISUAL BLOCK模式,上下选择需要注释的行 2.按大写键,再按i,或者直接按shift+i,进入INSERT模式,输入 ...

  5. 交换分区swap

    一.查看当前的交换分区[root@server0 ~]# free      -mtotal used free shared buff/cache availableMem: 489 140 145 ...

  6. 【编程开发】非对称加密过程详解(基于RSA非对称加密算法实现)

    1.非对称加密过程:         假如现实世界中存在A和B进行通讯,为了实现在非安全的通讯通道上实现信息的保密性.完整性.可用性(即信息安全的三个性质),A和B约定使用非对称加密通道进行通讯,具体 ...

  7. 【ARM-Linux开发】wubi.exe安装Ubuntu14.04出现为/检查磁盘时发生严重错误的解决方法

    原文:http://jingyan.baidu.com/article/0aa22375bbffbe88cc0d6419.html 我写过一篇叫做 如何硬盘装麒麟系统 的经验,介绍了如何不使用优盘的情 ...

  8. 【VS开发】MP4与H.264

    一.MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二.MP4封装格式核心概念 1  MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象 ...

  9. 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总

    <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...

  10. Bootstrap 表单示例

    1.打开https://getbootstrap.com/docs/4.3/examples/checkout/复制表单源码 2.清空main标签内容 3.粘贴表单源码 4.示例图