Closed swederik closed 5 years ago
Big support for this feature.
Our CT files (512width, 512height, 16bits per pixel) consist of approximately 2.7% metadata. Most of which are repeated tags. If in fact OHIF is currently blocking the download of the first image untill all metadata can be downloaded, this fix would reduce the time to first image of a 1000 slice CT scan on a 3mb/s connection from 64 seconds down to a floor of one sixth of a second, effectively shifting the bottleneck to latency rather than broadband.
I have one question swederik. Since most of the metadata in a CT scan is duplicated anyways, have you considered a fix that would remove the need to download duplicate data? It wouldn't be very impactful, but it would feel like justice.
Thanks for the statistics @TZubiri. Yes, I think this change will directly impact your use case.
In terms of reducing redundant metadata, one way forward is to look at storing legacy converted multiframe datasets, which have the potential for much more efficient access.
This has now been added by @emfol in #922!
@fredericcervenansky, @MathisGuilhin, @salimkanoun could you test out the latest version with some of your larger studies (i.e. with a lot of instances spread across series)?
If you are still having issues, leave a comment and I'll reopen the issue.
This ticket addresses a metadata-loading performance issue that has come up a few times lately. @salimkanoun reported it over email with a set of PET/CT studies and @fredericcervenansky have also run into it (https://github.com/OHIF/Viewers/issues/824) when deploying against their hospital PACS.
The problem is that when we load a study right now we first make a WADO-RS call to retrieve all of the metadata for every instance related to that StudyInstanceUID. When a study has a large number of instances, this initial call can become very slow. Large studies e.g. PET/CT and DICOM Whole-slide Image studies suffer from performance issues because of this issue.
The proposed change is to switch from a single initial WADO-RS RetrieveMetadata call at the Study level to a set of calls: First, a QIDO-RS SearchForSeries call at the Study Level, and then a set of WADO-RS RetrieveMetadata calls at the Series level.
Steps:
These calls can be tested on our public DICOMWeb server: https://server.dcmjs.org/dcm4chee-arc/aets/DCM4CHEE/rs/
QIDO-RS SearchForSeries: Docs: https://dicomcloud.azurewebsites.net/swagger/#!/QidoRS/QidoRS_SearchForSeries GET ${qidoRoot}/studies/{StudyInstanceUID}/series
WADO-RS RetrieveMetadata at the Series Level: Docs: https://dicomcloud.azurewebsites.net/swagger/#!/WadoRS/WadoRS_GetSeries GET ${wadoRsRoot}/studies/{StudyInstanceUID}/series/{SeriesInstanceUID}
Notes: