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

时间:2018-03-21 13:11:09

标签: fo-dicom

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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