嗯,不好意思,上面的传输语法错了。为此我改了如下:
<br>
<br>为了方便查询,我做了一个查询文件内容如下:
<br>
<br>(0008,0000) VL [] # IdentifyingGroupLength
<br>(0008,0020) DA [] # StudyDate
<br>(0008,0030) TM [] # StudyTime
<br>(0008,0050) SH [] # AccessionNumber
<br>(0008,0052) CS [Study ] # QueryRetrieveLevel
<br>(0008,0090) PN [] # ReferringPhysiciansName
<br>(0008,1030) LO [] # StudyDescription
<br>(0010,0000) VL [] # patienGroupLength
<br>(0010,0010) PN [] # PatientsName
<br>(0010,0020) LO [] # PatientID
<br>(0010,0030) DA [] # patientBirthDate
<br>(0010,0040) CS [] # PatientSex
<br>(0020,0000) VL [] # ImageGroupLength
<br>(0020,000d) UI [] # StudyInstanceUID
<br>(0020,0010) SH [] # StudyID
<br>
<br>将其转换为query.dcm后对ConQuestDICOMServe服务端再次查询如下:
<br>
<br>findscu 192.168.0.100 5678 -aec "CONQUESTSRV1" -v -k 0010,0020="*" query.dcm -S
<br>
<br>返回如下:
<br>
<br>Requesting Association
<br>Association Accepted (Max Send PDV: 16372)
<br>Find SCU RQ: MsgID 1
<br>REQUEST:
<br>
<br># Dicom-Data-Set
<br># Used TransferSyntax: LittleEndianExplicit
<br>(0008,0000) UL 54 # 4, 1 IdentifyingGroupLength
<br>(0008,0020) DA (no value available) # 0, 0 StudyDate
<br>(0008,0030) TM (no value available) # 0, 0 StudyTime
<br>(0008,0050) SH (no value available) # 0, 0 AccessionNumber
<br>(0008,0052) CS [Study ] # 6, 1 QueryRetrieveLevel
<br>(0008,0090) PN (no value available) # 0, 0 ReferringPhysiciansName
<br>(0008,1030) LO (no value available) # 0, 0 StudyDescription
<br>(0010,0000) UL 32 # 4, 1 PatientGroupLength
<br>(0010,0010) PN (no value available) # 0, 0 PatientsName
<br>(0010,0020) LO # 2, 1 PatientID
<br>(0010,0030) DA (no value available) # 0, 0 PatientsBirthDate
<br>(0010,0040) CS (no value available) # 0, 0 PatientsSex
<br>(0020,0000) UL 16 # 4, 1 ImageGroupLength
<br>(0020,000d) UI (no value available) # 0, 0 StudyInstanceUID
<br>(0020,0010) SH (no value available) # 0, 0 StudyID
<br>--------
<br>C-Find RSP: MsgID: 1 [Status=Failed: UnableToProcess]
<br> AffectedSOPClassUID: =FINDStudyRootQueryRetrieveInformationModel
<br> Data Set: Not Present
<br>Releasing Association
<br>
<br>很显然连接上了,但服务器那端出了问题,但这个服务器应该是没有问题的(用eFilm验证过)。为了验证findscu,我又用同样的命名查询了dcmtk中以imagectn作为服务器的机器,当然端口和AE改了
<br>
<br>findscu 192.168.0.100 6789 -aec "COMMON" -v -k 0010,0020="*" query.dcm -S
<br>
<br>结果如下:
<br>
<br>Requesting Association
<br>Association Accepted (Max Send PDV: 16372)
<br>Find SCU RQ: MsgID 1
<br>REQUEST:
<br>
<br># Dicom-Data-Set
<br># Used TransferSyntax: LittleEndianExplicit
<br>(0008,0000) UL 54 # 4, 1 IdentifyingGroupLength
<br>(0008,0020) DA (no value available) # 0, 0 StudyDate
<br>(0008,0030) TM (no value available) # 0, 0 StudyTime
<br>(0008,0050) SH (no value available) # 0, 0 AccessionNumber
<br>(0008,0052) CS [Study ] # 6, 1 QueryRetrieveLevel
<br>(0008,0090) PN (no value available) # 0, 0 ReferringPhysiciansName
<br>(0008,1030) LO (no value available) # 0, 0 StudyDescription
<br>(0010,0000) UL 32 # 4, 1 PatientGroupLength
<br>(0010,0010) PN (no value available) # 0, 0 PatientsName
<br>(0010,0020) LO # 2, 1 PatientID
<br>(0010,0030) DA (no value available) # 0, 0 PatientsBirthDate
<br>(0010,0040) CS (no value available) # 0, 0 PatientsSex
<br>(0020,0000) UL 16 # 4, 1 ImageGroupLength
<br>(0020,000d) UI (no value available) # 0, 0 StudyInstanceUID
<br>(0020,0010) SH (no value available) # 0, 0 StudyID
<br>--------
<br>RESPONSE: 1 (Pending)
<br>
<br># Dicom-Data-Set
<br># Used TransferSyntax: LittleEndianExplicit
<br>(0008,0020) DA [2002.04.01] # 10, 1 StudyDate
<br>(0008,0030) TM [11:11:00] # 8, 1 StudyTime
<br>(0008,0050) SH (no value available) # 0, 0 AccessionNumber
<br>(0008,0052) CS [STUDY ] # 6, 1 QueryRetrieveLevel
<br>(0008,0054) AE [COMMON] # 6, 1 RetrieveAETitle
<br>(0008,0090) PN (no value available) # 0, 0 ReferringPhysiciansName
<br>(0008,1030) LO (no value available) # 0, 0 StudyDescription
<br>(0010,0010) PN [Anonymous ] # 10, 1 PatientsName
<br>(0010,0020) LO [0000] # 4, 1 PatientID
<br>(0010,0030) DA (no value available) # 0, 0 PatientsBirthDate
<br>(0010,0040) CS [M ] # 2, 1 PatientsSex
<br>(0020,000d) UI [1111] # 4, 1 StudyInstanceUID
<br>(0020,0010) SH [0000] # 4, 1 StudyID
<br>--------
<br>RESPONSE: 2 (Pending)
<br>
<br># Dicom-Data-Set
<br># Used TransferSyntax: LittleEndianExplicit
<br>(0008,0020) DA [20030401] # 8, 1 StudyDate
<br>(0008,0030) TM [124030] # 6, 1 StudyTime
<br>(0008,0050) SH [4282] # 4, 1 AccessionNumber
<br>(0008,0052) CS [STUDY ] # 6, 1 QueryRetrieveLevel
<br>(0008,0054) AE [COMMON] # 6, 1 RetrieveAETitle
<br>(0008,0090) PN (no value available) # 0, 0 ReferringPhysiciansName
<br>(0008,1030) LO (no value available) # 0, 0 StudyDescription
<br>(0010,0010) PN [COLOGRAPHIE^^^^ ] # 16, 1 PatientsName
<br>(0010,0020) LO [0000] # 4, 1 PatientID
<br>(0010,0030) DA (no value available) # 0, 0 PatientsBirthDate
<br>(0010,0040) CS [F ] # 2, 1 PatientsSex
<br>(0020,000d) UI [1.2.392.200036.9116.2.2.2.1762587269.1055387749.844680] # 54, 1 StudyInstanceUID
<br>(0020,0010) SH [8591] # 4, 1 StudyID
<br>--------
<br>C-Find RSP: MsgID: 1 [Status=Success]
<br> AffectedSOPClassUID: =FINDStudyRootQueryRetrieveInformationModel
<br> Data Set: Not Present
<br>Releasing Association
<br>
<br>这次成功了。
<br>
<br>现在我面临的问题就是,如果dcmtk无法与其他遵循Dicom标准的程序通信的话,我就无法利用它提供的函数写出程序,或者是更恐怖的选择:改写imagectn作为一个合格的服务器。这是我不想面对的。望各位能解小弟心中疑惑,给我有个安稳觉睡。
<br>
<br>[em06][em06] |