Fo-dicom 如何在 Main 中调用我的 Output.dcm 文件

Fo-dicom How I can Call My Output.dcm file In Main

我是 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

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

我不太确定我是否理解正确你想做什么。但是正如我所见,您想匿名化数据集,这意味着您想将自己的值写入默认的 public dicom 标签(私有标签是 DICOM 中定义的术语,意思是未在其中定义的标签DICOM 标准)。

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

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

而不是创建一个完整的新 DicomDataset 实例。 然后添加第二个 header:

的所有信息
ds.AddOrUpdate(DicomTag.PatientId, txtid.Text);
...

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