0

我是 Fo-Dicom 的新手,我正在尝试在 Dicom Dump 中调用我的 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

此代码运行良好,但我的私人标签未以显示形式显示。

4

1 回答 1

0

我不太确定我是否正确理解你想要做什么。但是正如我所看到的那样,您想匿名化数据集,这意味着您想将自己的值写入默认的公共 dicom 标签(私有标签是 DICOM 中定义的术语,并且确实意味着未在 DICOM 标准中定义的标签) .

我建议您执行以下操作:首先打开第一个文件

DicomDataset ds = DicomFile.Read("input1.dcm").Dataset;

而不是创建一个完整的新 DicomDataset 实例。然后添加第二个标题中的所有信息:

ds.AddOrUpdate(DicomTag.PatientId, txtid.Text);
...

如果 DicomTag 尚不存在,则 AddOrUpdate 添加它,如果它已存在,则将其替换为新值。

于 2018-03-21T19:23:58.763 回答