[BitBucket user: Sébastien Jodogne]
[BitBucket date: 2016-04-28.08:05:38]
@swederik Internally, here is how the DICOMweb plugin works:
1. It calls the `/tools/find` REST call to retrieve the list of matching studies, series or instances. This step is as fast as a C-FIND query against Orthanc's DICOM SCP.
1. In a second time, for each matching study/series/instance, the plugin chooses 1 DICOM instance among all the child instances of this study/series/instance. Hence the call to `/studies/{id}/instances` you observe.
1. In a third time, for each selected child instance, it downloads the DICOM file and parses its content using GDCM to format the queried tags. Hence the call to `/instances/{id}/file`.
As a conclusion, the number of times a DICOM file is parsed linearly depends on the number of matching resources (and not on the number of instances contained in these resources). I could indeed use the `/instances/{id}/tags` API instead of `/instances/{id}/file` to reduce the computing time, but this would only increase the speed by a constant factor (i.e. do not expect an improvement in the global complexity of the plugin). I will give a try. |