2017-01-18 5 views
0

일반 xml의 태그 이름을 기반으로 값을 검색하기 위해 DCM4CHE를 사용하는 것은 매우 간단합니다.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"을 사용하여 그 위에 노드의 값을 보는 것입니다. "NumericValue"위의 노드를 검사하는 if 문을 대답에 추가하는 방법은 "CodeMeaning"태그가 있고 특정 값을 포함하고 있습니까? – 000000000000000000000

+0

물론 필요한 모든 것을 코딩 할 수 있습니다. getNestedDataset (sequence, i)는 시퀀스의 i 번째 항목을 가져옵니다. 항목을 가져올 수 있습니다 (또는 반복 할 수 있습니다). 마찬가지로, 'items'자체는 추가 시퀀스 또는 단일 태그 이상을 포함 할 수있는 속성입니다. – cneller

+0

그래서 특정 노드를 찾고 싶다면 깊이 우선 검색에서 전체 중첩 데이터 집합을 반복해야합니까? 내 데이터에는 많은 레이어가 있습니다. 인스턴스가 상주하는 레이어에 관계없이 키워드의 모든 인스턴스를 가져올 수있는 방법이 있습니까? 감사. – 000000000000000000000

관련 문제