C-Find matching refactoring required

Issue #57 new
Alain Mazy
created an issue

Trying to summarize the overall situation with C-Find:

  • worklist plugins uses the HierarchicalMatcher
  • 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. 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

The following behaviour shall also be investigated: connect 2 Orthancs.
On Orthanc A: upload a patient and anonymize it. The anonymized patient does not have a PatientBirthDate, PatientSex, ...

Therefore, if Orthanc B performs a C-Find on Orthanc A, A will not match the studies because some fields that are requested (PatientBirthDate, PatientSex, ...) are not present in the studies.

The spec is not clear about that: http://dicom.nema.org/medical/dicom/current/output/chtml/part04/sect_C.2.2.2.html We should also check how other tools behave in this case.

Comments (5)

  1. Alain Mazy reporter

    The fact that the find fails in case one of the searched dicom tag is null is also affecting the search in OrthancExplorer2:

    • upload an instance from the ORTHO patient (attached),
    • perform the following tools/find request:
    curl 'http://localhost:8042/tools/find' --data-binary '{"Level":"Patient","CaseSensitive":false,"Query":{"AccessionNumber":"*","PatientBirthDate":"*","PatientID":"*","PatientName":"*O*","PatientSex":"*","StudyDate":"*","StudyDescription":"*"},"Limit":10,"Since":0}'
    
    • this will return no result
    • note that this happens with all anonymized instances since they usually lose their PatientSex and PatientBirthDate
  2. Log in to comment