Bug 31

Summary: Create new modality types for Philips ADW, GE Xeleris, GE AWServer
Product: Orthanc Reporter: Sébastien Jodogne <s.jodogne>
Component: Orthanc CoreAssignee: 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:11:55 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-01-26.09:34:14]

Complete description in this thread: https://groups.google.com/forum/#!topic/orthanc-users/rymVCSg_CUc

PhilipsADW : 

- OutgoingRequests: replace all '*' by '' (not only the dates like for AgfaImpax)

- IncomingRequests: remove group-lengths (same as for eFilm2)

GEXeleris:

- IncomingRequests: remove group-lengths (same as for eFilm2)


GEAWServer:

- OutgoingRequests: replace all '*' by '' (not only the dates like for AgfaImpax)

- IncomingRequests: remove group-lengths (same as for eFilm2)

Proposal: remove group-lengths for all incoming requests
Comment 1 Sébastien Jodogne 2020-06-29 15:19:30 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-02-01.14:56:50]

we should move this part of code
```
bool OrthancFindRequestHandler::FilterQueryTag(std::string& value /* can be modified */,
                                                 ResourceType level,
                                                 const DicomTag& tag,
                                                 ModalityManufacturer manufacturer)
```
into the ServerEnumerations.cpp file so we can use it in the HierarchicalMatcher (that is used by the plugins)
Comment 2 Sébastien Jodogne 2020-06-29 15:19:44 CEST
[BitBucket user: Salim Kanoun]
[BitBucket date: 2017-04-06.16:47:30]

Hi Alain,

One additional information, I met a similar problem with Conquest server which also have the "*" problem that should be '' like PhilipsADW and GEAWServer.
This is something you can easily try since Conquest is a free software (https://ingenium.home.xs4all.nl/dicom.html)

The curious point is that this problem was raised by Ilan and Sebastien Jodogne didn't duplicate the query issue (https://groups.google.com/d/msg/orthanc-users/7Ez56XaVmwM/SzBNICeMAgAJ)

Today I'm sure that I got that issue, I had empty queries until I used my lua script to change '*' by ''.

Best regards,

Salim
Comment 3 Sébastien Jodogne 2020-06-29 15:20:18 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-07-10.20:38:03]

Trying to summarize the overall situation with C-Find:

- worklist plugins uses the HierarchicalMatcher that ignores group-length (this should be done on every C-Find request)
- standard C-Find handler is customizable for each manufacturer (not the worklist plugin)
- standard C-Find requests can be sanitized by the lua callback IncomingFindRequestFilter (not the worklist plugin)

We should really try to use the same code as much as possible for all C-Finds.
Minimal work:

- ignore group-length in standard C-Find
- implement new manufacturer's type as defined in this task (only for PhilipsADW and GEAWServer)
- update the worklist page in the orthanc book to notify that the lua filter is not applied to worklist !


Ideal implementation:
- use Hierarchical matcher for standard C-Find too
- implement manufacturer patches in the Hierarchical matcher
- call the lua filter on every incoming C-Find request
Comment 4 Sébastien Jodogne 2020-06-29 15:20:20 CEST
[BitBucket user: Salim Kanoun]
[BitBucket date: 2017-07-11.16:15:26]

Dear Alain,

The switch from "*" to '' is solving the query issue for PhilipsADW, AWServer and Conquest. 
I think it also should be AgfaImpax compatible (in our discussion you said that you replace "*" by '' in patient birth date but the other "tag" may be also compatible with '', unfortunatly I don't have any Agfa impax to test).

I wonder if '' is not more generic than "*" (or at least as generic than "*").
May be a way could be to call the '' a "generic2" and to list in the documentation (or in the settings.json) all compatible workstations with this profile (you may have many manifacturer name that will land on this same query presentation).

Best regards,

Salim
Comment 5 Sébastien Jodogne 2020-06-29 15:20:29 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-07-13.10:49:20]

fixed in these changesets:
https://hg.orthanc-server.com/orthanc/changeset/5b7556568fa4e7e1bd62a74f9804971e2031c9c4
https://hg.orthanc-server.com/orthanc/changeset/ae6245053bcfc39745840923088d6ec4f5a24024

2 new generic manufacturer have been introduced: GenericNoWildcardInDates & GenericNoWildcards
Comment 6 Sébastien Jodogne 2020-06-29 15:20:37 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-07-20.10:24:00]

Feedback received from Salimkanoun:

Le GenericNoUniversalWildcard marche bien et resoud le problème de Query de Orthanc=>GE

En revanche le Query GE=> Orthanc est toujours bloqué.
Il est toujours débloqué avec le lua script qui passe en nil les generic group length.

Je ne vois plus s'afficher les generic group length quand je fais logger les requete de query entrantes pourtant elles doivent être toujours la car sans le lua script (ci dessous) les Query vers Orthanc ne marchent toujours pas.

function IncomingFindRequestFilter(query, origin)
  -- First display the content of the C-Find query
  PrintRecursive(query)
  PrintRecursive(origin)

  -- Remove the "PrivateCreator" tag from the query
  local v = query
  -- generic group lenght
  v['0008,0000'] = nil
  v['0010,0000'] = nil
  v['0020,0000'] = nil
  return v
Comment 7 Sébastien Jodogne 2020-06-29 15:20:38 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-07-20.10:24:32]

re-opened to investigate last feedback
Comment 8 Sébastien Jodogne 2020-06-29 15:20:44 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-08-21.09:45:55]

Seems another user is reporting same issues: group length are still not ignored: https://groups.google.com/forum/#!topic/orthanc-users/qlsYdf8NOH4
Comment 9 Sébastien Jodogne 2020-06-29 15:20:49 CEST
[BitBucket user: a]
[BitBucket date: 2017-10-12.09:47:49]

Hello, any plan to include this bug fix in the upcoming release? Looking forward to it :)
Comment 10 Sébastien Jodogne 2020-06-29 15:20:58 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-11-25.10:23:19]

fix issue 31 for good: removing group length correctly

→ https://hg.orthanc-server.com/orthanc/changeset/63194107e61b
Comment 11 Sébastien Jodogne 2020-06-29 15:20:59 CEST
[BitBucket user: Alain Mazy]
[BitBucket date: 2017-11-25.10:24:14]

fixed in https://hg.orthanc-server.com/orthanc/changeset/63194107e61b82c339ee034aed15a156af1d7ea2