0
我想在C#中列出DICOM文件的所有標記。邪惡DICOM列出所有元素
我想的東西像什麼顯示在下面的鏈接
https://stackoverflow.com/a/7283042/1014189
我假設這是一箇舊版本,當我將其粘貼到Visual Studio中,不識別。任何幫助,將不勝感激。
我想在C#中列出DICOM文件的所有標記。邪惡DICOM列出所有元素
我想的東西像什麼顯示在下面的鏈接
https://stackoverflow.com/a/7283042/1014189
我假設這是一箇舊版本,當我將其粘貼到Visual Studio中,不識別。任何幫助,將不勝感激。
假設你可以使用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的響應,並且不會獲得值,除非你特別需要。
希望這會有所幫助!
嗨,我正在使用邪惡Dicom,它的工作魅力,謝謝。 – James
有沒有辦法獲得標籤的數據呢?所以列表將是「標籤名稱」 - 「數據」? – James
查看更新! –