2017-01-18 24 views
0

使用DCM4CHE根據plain xml中的標記名檢索值非常簡單。DCM4CHE根據序列中的標記檢索值

例如,如果我想獲得的屬性AccessionNumber值:

String accessiongNumber = attribute.getString(Tag.AccessionNumber); 

但隨着序列打交道時,什麼是最好的方法呢?我想使用它的標籤名稱來檢索一個值,但是這個值在一個序列中是5層深。

在這種情況下,我可以得到我想要與序列:

Sequence recordSequence = attribute.getSequence(Tag.RecordSequence); 

有沒有辦法來檢索它的標籤值直接一旦我有這個值被嵌入的順序?

回答

1

嘗試使用Attributes.getNestedDataset方法。這些將爲您提供序列中的屬性。例如:

Attributes refStudy = attribute.getNestedDataset(Tag.ReferencedStudySeequence, 0); 
String refSopiuid = refStudy.getString(Tag.ReferencedSOPInstanceUID); 
+0

感謝您的回答。但就我而言,在第一個getNestedDataset之後,其中還有其他嵌套數據集。我正在尋找標籤「NumericValue」的值,但存在多個實例。判斷哪個「NumericValue」是正確的唯一方法是通過標籤「CodeMeaning」查看其上方節點的值。有沒有一種方法可以將if語句添加到您的答案中,以檢查上面的節點「NumericValue」是否具有標記「CodeMeaning」幷包含我指定的特定值? – 000000000000000000000

+0

當然你可以編碼任何必要的。 getNestedDataset(sequence,i)獲取序列中的第i個項目;你可以得到任何項目(或迭代它們)。同樣,「項目」本身是可能包含更多序列的屬性,或者不只是單個標籤。 – cneller

+0

因此,如果我想要查找特定節點,是否需要在深度優先搜索中迭代整個嵌套數據集?我的數據有很多層,是否有一種方法可以獲取關鍵字的所有實例,而不管該實例所在的層是什麼?謝謝。 – 000000000000000000000