You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fo-Dicom技术咨询:如何调用output.dcm文件并添加私有标签

Fo-Dicom新手指南:加载文件到Dump & 添加私有标签

嘿,作为Fo-Dicom的新手,我来帮你搞定加载output.dcm到Dicom Dump以及添加私有标签的操作,结合你给出的代码片段一步步来:

1. 加载output.dcm到Dicom Dump

要把output.dcm文件内容输出为Dump格式,你需要先读取文件,再调用数据集的Dump()方法即可。示例代码如下:

string filename = "output.dcm";
// 读取DICOM文件
DicomFile dicomFile = DicomFile.Open(filename);
// 获取主数据集
DicomDataset ds = dicomFile.Dataset;
// 输出Dump内容(可以打印到控制台或者写入文件)
string dumpContent = ds.Dump();
Console.WriteLine(dumpContent);

2. 完善你的代码并添加私有标签

先补全你代码里未完成的序列部分,再重点说私有标签的添加逻辑:Fo-Dicom中添加私有标签必须先定义私有创建者(Private Creator),私有标签的组号通常为奇数,且需要和私有创建者关联。

完整代码示例

string filename = "output.dcm";

// 初始化主数据集
DicomDataset ds = new DicomDataset();
// 添加公有标签
ds.Add(DicomTag.SpecificCharacterSet, txtCharacherSet.Text);
ds.Add(DicomTag.PatientID, txtid.Text);
ds.Add(DicomTag.PatientName, txtname.Text);

// 补全序列部分
DicomDataset sqContent = new DicomDataset();
sqContent.Add(DicomTag.Modality, txtModality.Text);
// 将序列添加到主数据集(这里假设序列标签是StudyInstanceSequence,你可以根据实际需求替换)
ds.Add(new DicomSequence(DicomTag.StudyInstanceSequence, sqContent));

// --- 添加私有标签的关键步骤 ---
// 1. 先添加私有创建者标签,组号建议用奇数,比如0x0011
ds.Add(DicomTag.PrivateCreator, "MyPrivateCreator", 0x0011);
// 2. 添加私有标签:指定组号、元素号、私有创建者、值
// 示例:添加组0x0011,元素0x0001的私有字符串标签
ds.Add(new DicomPrivateString(0x0011, 0x0001, "MyPrivateCreator", "PrivatePatientInfo"));
// 如果是数值类型,比如整数,可以用DicomPrivateInt32
ds.Add(new DicomPrivateInt32(0x0011, 0x0002, "MyPrivateCreator", 10086));

// 保存数据集到output.dcm
DicomFile.Save(ds, filename);

// 加载并输出Dump验证结果
DicomFile savedFile = DicomFile.Open(filename);
Console.WriteLine(savedFile.Dataset.Dump());

注意事项

  • 私有标签的组号必须是奇数,这是DICOM标准的硬性规定;
  • 私有创建者的名称要和后续添加私有元素时指定的名称完全一致,否则标签无法被正确识别;
  • 如果是从已有DICOM文件加载数据集(而非新建),直接在加载后的数据集上添加私有标签即可,无需重新初始化。

内容的提问来源于stack exchange,提问作者Ahsan Iqbal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:37:21