Bug 69 - Worklists: Return all fields listed in the C-Find request
Summary: Worklists: Return all fields listed in the C-Find request
Status: CONFIRMED
Alias: None
Product: Orthanc
Classification: Unclassified
Component: Orthanc Core (show other bugs)
Version: unspecified
Hardware: All All
: --- enhancement
Assignee: Sébastien Jodogne
URL:
Depends on:
Blocks:
 
Reported: 2020-06-29 15:13 CEST by Sébastien Jodogne
Modified: 2020-06-29 15:13 CEST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sébastien Jodogne 2020-06-29 15:13:11 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-09-14.12:46:35]

I have seen some GE MG modalities rejecting the responses from WL C-Find request because not all requested fields where present in the response.

Right now, if you get a WL C-Find request for i.e:

```
(0008,0050) SH (no value available)                     #   0, 0 AccessionNumber
(0008,0090) PN (no value available)                     #   0, 0 ReferringPhysiciansName
(0008,1110) SQ (Sequence with explicit length #=1)      #  36, 1 ReferencedStudySequence
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
(0008,1120) SQ (Sequence with explicit length #=1)      #  36, 1 ReferencedPatientSequence
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
(0010,0010) PN [* ]                                     #   2, 1 PatientsName
(0010,0020) LO (no value available)                     #   0, 0 PatientID
...
```

And your .wl file contains:
```
(0008,0005) CS [ISO_IR 100]                             #  10, 1 SpecificCharacterSet
(0008,0018) UI [1.2.826.0.1.3680043.9.6676.1505373139.1934216832525930842800075] #  64, 1 SOPInstanceUID
(0008,0050) SH [123456]                                 #   6, 1 AccessionNumber
(0010,0010) PN [LASTNAME^FIRSTNAME^^^Mme]          #  30, 1 PatientName
(0010,0020) LO [12345678]                              #  10, 1 PatientID
(0010,0030) DA [19991231]                               #   8, 1 PatientBirthDate
(0010,0040) CS [F]                                      #   2, 1 PatientSex
(0020,000d) UI [1.2.3.4.5] #  64, 1 StudyInstanceUID
...
```
Orthanc will return the .wl file as it is.  The GE modality will reject it because some fields are missing in the response:
```
(0008,0090)
(0008,1110)
(0008,1120)
```
And it will also issue a warning because it gets the SpecificCharacterSet in the response while it did not request for it. (but that's not blocking !)

**Suggestion**: when building the response, start from the request object and update the fields that are found in the .wl file -> requester get what it asked for and, fields that are not in the .wl will be returned empty.

We should of course first check the DICOM standard but we should anyway find a way to work with such modalities -> define a 'ManufacturerType' for this kind of modalities