Summary: | Create new modality types for Philips ADW, GE Xeleris, GE AWServer | ||
---|---|---|---|
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:11:55 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) [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 [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 [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 [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 [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 [BitBucket user: Alain Mazy] [BitBucket date: 2017-07-20.10:24:32] re-opened to investigate last feedback [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 [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 :) [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 [BitBucket user: Alain Mazy] [BitBucket date: 2017-11-25.10:24:14] fixed in https://hg.orthanc-server.com/orthanc/changeset/63194107e61b82c339ee034aed15a156af1d7ea2 |