最近写一个dicom客户端程序,用到dcmtk3.5.4中的findscu。搞了一整天,总算马马虎虎能用了。有两个细节以后再用的时候要注意:
1. 关于findscu和movescu的bug他们的官网上有补丁,记得先down下来补上。
(补丁所在FTP的链接:ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/patch/)
2. 注意不要混淆参数(-P,-S)指定的查询信息模型和-k 0008,0052="PATIENT","STUDY","SERIES","IMAGE"指定的查询级别。(见dicom文档第4部分C.3.1)
3. 在指定较低的查询级别时,要把在此级别之上的所有唯一标识都明确指定。比如下面SERIES级别查询的例子:
findscu -aec DCMSERVER -P -k 0008,0052="SERIES" -k 0010,0020="PET123" -k 0020,000D="1.2.345.34.2.43.2343.3432.432.23" -k 0008,000E="*" localhost 104
要明确指定要查询的病人ID是"PET123",study instance uid是"1.2.345.34.2.43.2343.3432.432.23",查询此study下所有series的UID。若要做"IMAGE"级别的查询,还要明确指定series instance uid。