Summary: | C-Find request fails when found DICOM file does not have certain tags | ||
---|---|---|---|
Product: | Orthanc | Reporter: | Sébastien Jodogne <s.jodogne> |
Component: | Orthanc Core | Assignee: | Sébastien Jodogne <s.jodogne> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | --- | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All |
Description
Sébastien Jodogne
2020-06-29 15:15:23 CEST
[BitBucket user: Sébastien Jodogne] [BitBucket date: 2019-03-12.08:15:25] The following changeset should solve this issue: https://hg.orthanc-server.com/orthanc/changeset/9b0e67161600a3c83d47f1d592ab9b80385fe5b2 This changeset was part of Orthanc 1.5.5, so please make sure you use the latest version of Orthanc before submitting new problem to this bug tracker: bug 137 [BitBucket user: Harald Köstinger] [BitBucket date: 2019-03-12.09:45:28] This changeset does not fix that problem. Still have the same issues with new version 1.5.6 of Orthanc core. Also #137 still is present. [BitBucket user: Sébastien Jodogne] [BitBucket date: 2019-03-12.10:05:06] Please provide a sample DICOM file and command-line instructions so that we can reproduce your issue. [BitBucket user: Harald Köstinger] [BitBucket date: 2019-03-12.14:14:27] As it seems, the issue is not directly related to the DICOM file itself. Nevertheless, you can use the same file as provided for #137 for testing. The issue seems to be related to the SQ of the "Requested Attributes Sequence" value. Orthanc gives the following output on this. It already says, that the sequence is not supported. However, it should not fail because of this I would say. ``` #!python W0312 15:08:28.232247 FindScp.cpp:268] Orthanc only supports sequence matching on worklists, ignoring C-FIND SCU constraint on tag (0040,0275) RequestAttributesSequence I0312 15:08:28.247869 OrthancFindRequestHandler.cpp:596] DICOM C-Find request at level: Instance I0312 15:08:28.247869 OrthancFindRequestHandler.cpp:602] (0008,0005) SpecificCharacterSet = ISO_IR 100 I0312 15:08:28.247869 OrthancFindRequestHandler.cpp:602] (0008,0016) SOPClassUID = I0312 15:08:28.263504 OrthancFindRequestHandler.cpp:602] (0008,0018) SOPInstanceUID = I0312 15:08:28.263504 OrthancFindRequestHandler.cpp:602] (0008,0020) StudyDate = I0312 15:08:28.279126 OrthancFindRequestHandler.cpp:602] (0008,0030) StudyTime = I0312 15:08:28.279126 OrthancFindRequestHandler.cpp:602] (0008,0050) AccessionNumber = I0312 15:08:28.279126 OrthancFindRequestHandler.cpp:602] (0008,0052) QueryRetrieveLevel = IMAGE I0312 15:08:28.279126 OrthancFindRequestHandler.cpp:602] (0008,0056) InstanceAvailability = I0312 15:08:28.294751 OrthancFindRequestHandler.cpp:602] (0008,0060) Modality = I0312 15:08:28.294751 OrthancFindRequestHandler.cpp:602] (0008,0061) ModalitiesInStudy = I0312 15:08:28.294751 OrthancFindRequestHandler.cpp:602] (0008,0090) ReferringPhysicianName = I0312 15:08:28.310380 OrthancFindRequestHandler.cpp:602] (0008,0201) TimezoneOffsetFromUTC = I0312 15:08:28.310380 OrthancFindRequestHandler.cpp:602] (0008,103e) SeriesDescription = I0312 15:08:28.310380 OrthancFindRequestHandler.cpp:602] (0010,0010) PatientName = I0312 15:08:28.310380 OrthancFindRequestHandler.cpp:602] (0010,0020) PatientID = I0312 15:08:28.310380 OrthancFindRequestHandler.cpp:602] (0010,0030) PatientBirthDate = I0312 15:08:28.326004 OrthancFindRequestHandler.cpp:602] (0010,0040) PatientSex = I0312 15:08:28.326004 OrthancFindRequestHandler.cpp:602] (0020,000d) StudyInstanceUID = 4.5.6 I0312 15:08:28.341630 OrthancFindRequestHandler.cpp:602] (0020,000e) SeriesInstanceUID = I0312 15:08:28.341630 OrthancFindRequestHandler.cpp:602] (0020,0010) StudyID = I0312 15:08:28.341630 OrthancFindRequestHandler.cpp:602] (0020,0011) SeriesNumber = I0312 15:08:28.357257 OrthancFindRequestHandler.cpp:602] (0020,0013) InstanceNumber = I0312 15:08:28.357257 OrthancFindRequestHandler.cpp:602] (0020,1206) NumberOfStudyRelatedSeries = I0312 15:08:28.357257 OrthancFindRequestHandler.cpp:602] (0020,1208) NumberOfStudyRelatedInstances = I0312 15:08:28.372876 OrthancFindRequestHandler.cpp:602] (0020,1209) NumberOfSeriesRelatedInstances = I0312 15:08:28.372876 OrthancFindRequestHandler.cpp:602] (0028,0008) NumberOfFrames = I0312 15:08:28.372876 OrthancFindRequestHandler.cpp:602] (0040,0244) PerformedProcedureStepStartDate = I0312 15:08:28.388508 OrthancFindRequestHandler.cpp:602] (0040,0245) PerformedProcedureStepStartTime = I0312 15:08:28.388508 OrthancFindRequestHandler.cpp:611] (0040,0275) RequestAttributesSequence : sequence tag whose content will be copied I0312 15:08:28.388508 ServerContext.cpp:845] Number of candidate resources after fast DB filtering on main DICOM tags: 1 I0312 15:08:28.404127 FilesystemStorage.cpp:155] Reading attachment "48b5dab9-38b0-4087-80c9-e8b0e2b2b617" of "JSON summary of DICOM" content type E0312 15:08:28.404127 OrthancException.h:85] Bad file format: While creating a DICOM instance, tag (0028,0010) has out-of-range value: "" E0312 15:08:28.419758 FindScp.cpp:297] C-FIND request handler has failed: Bad file format I0312 15:08:28.513515 CommandDispatcher.cpp:917] DUL Peer Requested Release I0312 15:08:28.513515 CommandDispatcher.cpp:924] Association Release ``` I tried to do the C-FIND now using a fo-dicom client and the dcmtk 3.6.4 findscu client. Both fail when I do include the sequence. (Note: this is a query as I would fire to get all the attributes required by a QIDO-RS find call on instances level) ``` #!python findscu vmdta01 4242 -S -k 0010,0020="1.2.3" -aet INNOFORCE88 -aec ORTHANC -v +sr -k 0008,0005="ISO_IR 100" -k 0008,0016 -k 0008,0018 -k 0008,0020 -k 0008,0030 -k 0008,0050 -k 0008,0052="IMAGE" -k 0008,0056 -k 0008,0060 -k 0008,0061 -k 0008,0090 -k 0008,0201 -k 0008,103e -k 0010,0010 -k 0010,0020 -k 0010,0030 -k 0010,0040 -k 0020,000d="4.5.6" -k 0020,000e -k 0020,0010 -k 0020,0011 -k 0020,0013 -k 0020,1206 -k 0020,1208 -k 0020,1209 -k 0028,0008 -k 0028,0010 -k 0028,0011 -k 0028,0100 -k 0040,0244 -k 0040,0245 -k "(0040,0275)[0].(0040,0009)" -k "(0040,0275)[0].(0040,1001)" I: Requesting Association I: Association Accepted (Max Send PDV: 16372) I: Sending Find Request (MsgID 1) I: Request Identifiers: I: I: # Dicom-Data-Set I: # Used TransferSyntax: Little Endian Explicit I: (0008,0005) CS [ISO_IR 100] # 10, 1 SpecificCharacterSet I: (0008,0016) UI (no value available) # 0, 0 SOPClassUID I: (0008,0018) UI (no value available) # 0, 0 SOPInstanceUID I: (0008,0020) DA (no value available) # 0, 0 StudyDate I: (0008,0030) TM (no value available) # 0, 0 StudyTime I: (0008,0050) SH (no value available) # 0, 0 AccessionNumber I: (0008,0052) CS [IMAGE] # 6, 1 QueryRetrieveLevel I: (0008,0056) CS (no value available) # 0, 0 InstanceAvailability I: (0008,0060) CS (no value available) # 0, 0 Modality I: (0008,0061) CS (no value available) # 0, 0 ModalitiesInStudy I: (0008,0090) PN (no value available) # 0, 0 ReferringPhysicianName I: (0008,0201) SH (no value available) # 0, 0 TimezoneOffsetFromUTC I: (0008,103e) LO (no value available) # 0, 0 SeriesDescription I: (0010,0010) PN (no value available) # 0, 0 PatientName I: (0010,0020) LO (no value available) # 0, 0 PatientID I: (0010,0030) DA (no value available) # 0, 0 PatientBirthDate I: (0010,0040) CS (no value available) # 0, 0 PatientSex I: (0020,000d) UI [4.5.6] # 6, 1 StudyInstanceUID I: (0020,000e) UI (no value available) # 0, 0 SeriesInstanceUID I: (0020,0010) SH (no value available) # 0, 0 StudyID I: (0020,0011) IS (no value available) # 0, 0 SeriesNumber I: (0020,0013) IS (no value available) # 0, 0 InstanceNumber I: (0020,1206) IS (no value available) # 0, 0 NumberOfStudyRelatedSeries I: (0020,1208) IS (no value available) # 0, 0 NumberOfStudyRelatedInstances I: (0020,1209) IS (no value available) # 0, 0 NumberOfSeriesRelatedInstances I: (0028,0008) IS (no value available) # 0, 0 NumberOfFrames I: (0028,0010) US (no value available) # 0, 0 Rows I: (0028,0011) US (no value available) # 0, 0 Columns I: (0028,0100) US (no value available) # 0, 0 BitsAllocated I: (0040,0244) DA (no value available) # 0, 0 PerformedProcedureStepStartDate I: (0040,0245) TM (no value available) # 0, 0 PerformedProcedureStepStartTime I: (0040,0275) SQ (Sequence with explicit length #=1) # 0, 1 RequestAttributesSequence I: (fffe,e000) na (Item with explicit length #=2) # 0, 1 Item I: (0040,0009) SH (no value available) # 0, 0 ScheduledProcedureStepID I: (0040,1001) SH (no value available) # 0, 0 RequestedProcedureID I: (fffe,e00d) na (ItemDelimitationItem for re-encoding) # 0, 0 ItemDelimitationItem I: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem I: I: Received Final Find Response (Failed: UnableToProcess) I: Releasing Association ``` When I skip the SQ 0040,0275 with its items, then I get a response. Cheers, Harald [BitBucket user: Sébastien Jodogne] [BitBucket date: 2019-04-05.11:36:19] Fix issue #136 (C-Find request fails when found DICOM file does not have certain tags) → https://hg.orthanc-server.com/orthanc/changeset/63f59ad9381a |