2016-09-29 58 views

回答

2

假設你可以使用Evil Dicom

public class DicomManager 
{ 
    public List<Tag> ReadAllTags(string dicomFile) 
    { 
     var dcm = DICOMObject.Read(dicomFile); 
     return dcm.AllElements.Select(e => e.Tag).ToList(); 
    } 
} 

UPDATE: 按您的意見,讓我們假設你需要顯示的UI組件的元素。我將舉例說明如何在控制檯應用程序中顯示所有元素,但遍歷算法在任何其他演示技術中都是相同的。

看看如何定義IDICOMElement接口邪惡的DICOM

public interface IDICOMElement 
    { 
    Tag Tag { get; set; } 

    Type DatType { get; } 

    object DData { get; set; } 

    ICollection DData_ { get; set; } 
    } 

這意味着一個元素,你需要與它合作的所有信息。

迭代元素並顯示標記名稱 - 元素值。

var dcm = DICOMObject.Read(dicomFile);  
dcm.AllElements 
     .ForEach(element => Console.WriteLine("{0} - {1}", element.Tag, element.DData)); 

正如你所看到的,如果你想要的是展現價值 - 它的字符串表示 - 上面的代碼片段應該足夠,但在元素你對裏面的真正類型對象的更多信息以及值的集合 - 在多值元素的情況下。

但是,您需要小心,因爲DICOMObject中的某些VR可能非常大,因此請確保使用異步方法或工作線程進行處理,以保持UI的響應,並且不會獲得值,除非你特別需要。

希望這會有所幫助!

+0

嗨,我正在使用邪惡Dicom,它的工作魅力,謝謝。 – James

+0

有沒有辦法獲得標籤的數據呢?所以列表將是「標籤名稱」 - 「數據」? – James

+0

查看更新! –