我是新的Fo-Dicom,我试图在Dicom转储中调用我的output.dcm文件, 我试图使用fo-dicom
添加私人标签 string filename = "output.dcm";
DicomDataset ds = new DicomDataset(); //Main dataset
ds.Add(DicomTag.SpecificCharacterSet, txtCharacherSet.Text);
//Add some items
ds.Add(DicomTag.PatientID, txtid.Text);
ds.Add(DicomTag.PatientName, txtname.Text);
DicomDataset sqContent = new DicomDataset();
//Content of the sequence
sqContent.Add(DicomTag.Modality, txtModality.Text);
sqContent.Add(DicomTag.ScheduledProcedureStepStartDate,
DateTime.Now.Date);
DicomSequence sq = new
DicomSequence(DicomTag.ScheduledProcedureStepSequence, sqContent);
// Create sequence, add content
ds.Add(sq); //Add sequence to main dataset
DicomFile file = new DicomFile();
file.Dataset.Add(ds); //Add main dataset to DicomFile
file.FileMetaInfo.TransferSyntax =
DicomTransferSyntax.ImplicitVRLittleEndian;
//Specify transfer syntax
file.Save(filename); //Save file to disk
此代码运行良好,但我的私有标记未以显示形式显示。
答案 0 :(得分:0)
我不太确定我是否正确理解你想做什么。但是,正如我所看到的那样,您希望匿名化数据集,这意味着您希望将自己的值写入默认的公共dicom标记(私有标记是在DICOM中定义的术语,并且表示未在DICOM标准中定义的标记)
我建议您执行以下操作:首先打开第一个文件
DicomDataset ds = DicomFile.Read("input1.dcm").Dataset;
而不是创建一个完整的新DicomDataset实例。 然后添加第二个标题中的所有信息:
ds.AddOrUpdate(DicomTag.PatientId, txtid.Text);
...
AddOrUpdate添加DicomTag(如果它尚不存在)或将其替换为新值(如果已存在)。