/// <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. Build Telemetry for Distributed Services之OpenTracing指导:C#

    官网链接:https://opentracing.io/guides/ 官方微博:https://medium.com/opentracing Welcome to the OpenTracing G ...

  2. 图解 HTTP 笔记(四)——HTTP 状态码

    本章主要内容是了解 HTTP 状态码的工作机制 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果.借助状态码,我们可以了解这次请求是否在服务器端得到了正常的处理. 状态码从其含以上可以分 ...

  3. MIGO 收货

    ls_code-gm_code = '01'. 01 - MB01 - Goods Receipts for Purchase Order 02 - MB31 - Goods Receipts for ...

  4. LODOP直接导出图片不弹框

    之前有博文测试了导出图片的图片长度关系,是直接弹窗的选择保存路径的方式:Lodop导出图片,导出单页内容的图片最近测试下不弹窗保存图片是否可以,样例是保存的excel,测试了下图片,图片也是可以的,该 ...

  5. OpenGL(6)——坐标系

    在掌握基本变换后,学习如何变换coordinate space. 对coordinate space进行变换的目的是将local space中各顶点坐标转换成normalized device coo ...

  6. OpenGL学习(3)——Shader(补)

    完成章节后练习. 练习 1. Adjust the vertex shader so that the triangle is upside down. #version 330 core layou ...

  7. github pages + hexo 搭建 blog 遇到的问题

    一. ERROR Deployer not found: git $ hexo d ERROR Deployer not found: git npm install --save hexo-depl ...

  8. vscode使用Chrome浏览器调试不好用,解决方法!!

    1.如果你是刚下载vscode,那么你需要下载两个插件. 1. open in browser(在浏览器中查看,支持五大主流浏览器),下载并启用. 2. view-in-browser (在浏览器中查 ...

  9. OpenCV.概念(读书笔记)

    ZC:学习OpenCV.pdf 1.多通道矩阵(学习OpenCV.pdf) 1.1.在学习opencv的时候看到多通道矩阵这一概率,恳求大神告诉我一下什么意思_百度知道.html(https://zh ...

  10. 洛谷 题解 P1133 【教主的花园】

    $n<=10^5 $ O(n)算法 状态 dp[i][j][k]表示在第i个位置,种j*10的高度的树,且这棵树是否比相邻两棵树高 转移 dp[i][1][0]=max(dp[i-1][2][1 ...