2016-08-12 10 views
0

pynetdicom에서 쿼리/검색 예제 (qrscu.py)를 시도하고 있지만 검색 할 때 환자 이름과 잘 작동합니다. 그러나 나는 studyDate와 studyTime의 기초 위에서 그 연구를 검색해야합니다.pynetdicom qyuery/연구 날짜 및 시간을 사용하여 검색

참고 : 여기에 일부 SOP's for DICOM을 사용할 수 있습니다. 그래서 내가 사용하려고 StudyRootFindSOPClass

사용하려고 :

print "DICOM FindSCU ... ", 
d = Dataset() 
d.StudyDate = args.searchstring 
d.QueryRetrieveLevel = "STUDY" 
d.StudyID = "*" 
study = [x[1] for x in assoc.StudyRootFindSOPClass.SCU(d, 1)][:-1] 
print 'done with status "%s"' % st 
print "\n\n\n Cont...", study 

을하지만이 연구의 날짜와 시간을 사용하여 연구를 가져

Request association 
Association response received 
DICOM Echo ... done with status "Success " 
DICOM FindSCU ... 
Traceback (most recent call last): 
    File "studyqrscu.py", line 104, in <module> 
    study = [x[1] for x in assoc.StudyRootFindSOPClass.SCU(d, 1)][:-1] 
    File "/usr/local/lib/python2.7/dist-packages/pynetdicom-0.8.1-py2.7.egg/netdicom/applicationentity.py", line 90, in __getattr__ 
    raise Exception("SOP Class %s not supported as SCU" % attr) 
Exception: SOP Class StudyRootFindSOPClass not supported as SCU 

제발 도와주세요 오류를 제공합니다 .

답변

1

저는 파이썬이나 사용하고있는 특정 DICOM 툴킷에 익숙하지 않습니다. 예외가 꽤 분명해 보일 수 있기 때문에 감히 대답 할 수 있습니다. 툴킷은 연구 루트 쿼리 정보 모델을 지원하지 않는 것 같습니다.

DICOM 쿼리 정보 모델이라고 네 가지 맛에 와서 :

  • 물리 요법의 작업리스트 (즉, 다른 이야기)
  • 환자 루트
  • 연구 루트
  • 환자 연구 단지 (매우 인기가 상용 제품에서 은퇴 함)

출처 : DICOM PS3.4

이름에서 알 수 있듯이 Patient- and Study Root는 이후 쿼리에서 계층 구조를 검색 할 루트 요소 (Patient -> Study -> Series -> Image)가 무엇인지에 따라 다릅니다. 환자 루트는 환자 수준에서 시작되므로 먼저 환자 수준에서 기준을 검색하고 환자 수준 결과를 얻습니다. 결과에서 얻은 환자 ID를 사용하면 특정 환자의 연구를 쿼리하기 위해 연구 수준까지 내려갈 수 있습니다.

연구 루트 (Study Root)는 환자 수준 속성을 2 차 연구 속성으로 취급합니다. 즉, 연구를 요청하고 각 연구가 각 연구에 속한 환자의 속성을받습니다. 즉, 다른 연구에 대해 동일한 환자를 두 번받을 수 있습니다 Patient Root와 차이가 있음).

학습용 루트가 귀하의 유스 케이스에 대해 갖고 싶은 것에 동의하지만 유감스럽게도 사용중인 툴킷은 환자 루트 만 지원합니다. 오류 메시지에 따르면 클라이언트 (SCU) 측에서는 문제이므로 dcm4chee는 책임이 없습니다.

해결 방법?

StudyRoot를 지원하는 다른 툴킷을 찾을 수 있습니다. 실제로 저에게 연구 루트 지원이 없다는 것은 저에게 실제적인 사용법에 대한 적합성을 나타냅니다.

당신은 더러운 길을 갈이처럼 보이는 환자 루트에서 비 DICOM 준수 쿼리를 형성하기 위해 시도 할 수 있습니다 :이 있지만, 일하러가는 것을 공정한 기회가있다

- Q/R-Level = "STUDY" 
- Patient-ID = "*" or empty 
- Study Date = <your date range> 

DICOM을 준수하지 않으므로 SCP 구현에 따라 다르며 제품마다 다를 수 있습니다.

완전성을 위해 : 환자 수준에 대한 질의를 할 수 있으며 수신 된 각 환자에 대해 환자 ID 및 연구 날짜 범위를 일치 조건으로 제공하는 검사 수준에 대한 후속 쿼리를 입력하십시오. 이것은 성능 문제로 인해 실패 할 것이라고 언급 할 필요는 없지만 문제를 해결하는 DICOM 적합성 방법이 될 것입니다.

+0

예, 공식 문서에서는 이것에 대해 명확하게 언급하지 않았습니다 .... 그래서 이것을 달성하기 위해 노력하고 있습니다 : 계층 구조를 검색해보십시오 (환자 -> 연구 -> 시리즈 - > 이미지). 그게 나에게 정말 도움이된다. –